summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Browser_.cxx14
1 files changed, 12 insertions, 2 deletions
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: