summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES2
-rw-r--r--src/Fl_Browser_.cxx14
2 files changed, 14 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index a5c5006be..bc2bd1a8a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,8 @@ CHANGES IN FLTK 1.1.8
STR #1457, STR #1458, STR #1460, STR #1481, STR #1578,
STR #1639, STR #1645, STR #1644, STR #1792, STR #1793,
STR #1742, STR #1777, STR #1794)
+ - Fl_Browser_ and friends now support FL_WHEN_ENTER_KEY
+ for both Enter/Return and double-clicks (STR #1818)
- Fl_Help_View did not release the images it used (STR
#1817)
- Shared libraries would not build on 64-bit Linux
diff --git a/src/Fl_Browser_.cxx b/src/Fl_Browser_.cxx
index 183ccaf62..64beaa74a 100644
--- a/src/Fl_Browser_.cxx
+++ b/src/Fl_Browser_.cxx
@@ -590,11 +590,15 @@ int Fl_Browser_::handle(int event) {
switch (Fl::event_key()) {
case FL_Enter:
case FL_KP_Enter:
- select_only(l, when());
+ select_only(l, when() & ~FL_WHEN_ENTER_KEY);
+ if (when() & FL_WHEN_ENTER_KEY) {
+ set_changed();
+ do_callback();
+ }
return 1;
case ' ':
selection_ = l;
- select(l, !item_selected(l), when());
+ select(l, !item_selected(l), when() & ~FL_WHEN_ENTER_KEY);
return 1;
case FL_Down:
while ((l = item_next(l))) {
@@ -762,6 +766,12 @@ J1:
} else {
if (when() & FL_WHEN_NOT_CHANGED) do_callback();
}
+
+ // double click calls the callback: (like Enter Key)
+ if (Fl::event_clicks() && (when() & FL_WHEN_ENTER_KEY)) {
+ set_changed();
+ do_callback();
+ }
return 1;
case FL_FOCUS:
case FL_UNFOCUS: