diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2007-01-24 20:32:54 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2007-01-24 20:32:54 +0000 |
| commit | e36d3a07ce69b648b9157cf97c2aafb8f67461a9 (patch) | |
| tree | a14bfe840d3631c3c719c4c79257301934c02064 | |
| parent | ecdd893933dfcca8466a4af8c75b88e526af2e4d (diff) | |
- Fluid avoids writing unsopported combinations of the
"when()" flags (STR #1501)
- Fl_Browser_ would allow keyboard callbacks even though
"when()" was set to "never" (STR #1501)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5639 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
| -rw-r--r-- | CHANGES | 4 | ||||
| -rw-r--r-- | fluid/Fl_Widget_Type.cxx | 10 | ||||
| -rw-r--r-- | src/Fl_Browser_.cxx | 12 |
3 files changed, 18 insertions, 8 deletions
@@ -1,5 +1,9 @@ CHANGES IN FLTK 1.1.8 + - Fluid avoids writing unsupported combinations of the + "when()" flags (STR #1501) + - Fl_Browser_ would allow keyboard callbacks even though + "when()" was set to "never" (STR #1501) - Added automated little helpers to Sudoku - Added example code for Wizard with the Tabs demo (STR #1564) diff --git a/fluid/Fl_Widget_Type.cxx b/fluid/Fl_Widget_Type.cxx index 910f332d7..d7851f9c5 100644 --- a/fluid/Fl_Widget_Type.cxx +++ b/fluid/Fl_Widget_Type.cxx @@ -2223,9 +2223,15 @@ void Fl_Widget_Type::write_widget_code() { if (i & FL_ALIGN_INSIDE) write_c("|FL_ALIGN_INSIDE"); write_c(");\n"); } - if (o->when() != tplate->when() || subclass()) + // avoid the unsupported combination of flegs when user sets + // "when" to "FL_WHEN_NEVER", but keeps the "no change" set. + // FIXME: This could be reflected in the GUI by graying out the button. + Fl_When ww = o->when(); + if (ww==FL_WHEN_NOT_CHANGED) + ww = FL_WHEN_NEVER; + if (ww != tplate->when() || subclass()) write_c("%s%s->when(%s);\n", indent(), var, - item_name(whensymbolmenu, o->when())); + item_name(whensymbolmenu, ww)); if (!o->visible() && o->parent()) write_c("%s%s->hide();\n", indent(), var); if (!o->active()) diff --git a/src/Fl_Browser_.cxx b/src/Fl_Browser_.cxx index 852b25431..b64968055 100644 --- a/src/Fl_Browser_.cxx +++ b/src/Fl_Browser_.cxx @@ -578,32 +578,32 @@ int Fl_Browser_::handle(int event) { if (type()==FL_HOLD_BROWSER) switch (Fl::event_key()) { case FL_Down: while ((l = item_next(l))) - if (item_height(l)>0) {select_only(l, 1); break;} + if (item_height(l)>0) {select_only(l, when()); break;} return 1; case FL_Up: while ((l = item_prev(l))) if (item_height(l)>0) { - select_only(l, 1); break;} + select_only(l, when()); break;} return 1; } else switch (Fl::event_key()) { case FL_Enter: case FL_KP_Enter: - select_only(l, 1); + select_only(l, when()); return 1; case ' ': selection_ = l; - select(l, !item_selected(l), 1); + select(l, !item_selected(l), when()); return 1; case FL_Down: while ((l = item_next(l))) { if (Fl::event_state(FL_SHIFT|FL_CTRL)) - select(l, l1 ? item_selected(l1) : 1, 1); + select(l, l1 ? item_selected(l1) : 1, when()); if (item_height(l)>0) goto J1; } return 1; case FL_Up: while ((l = item_prev(l))) { if (Fl::event_state(FL_SHIFT|FL_CTRL)) - select(l, l1 ? item_selected(l1) : 1, 1); + select(l, l1 ? item_selected(l1) : 1, when()); if (item_height(l)>0) goto J1; } return 1; |
