diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Text_Display.cxx | 1 | ||||
| -rw-r--r-- | src/Fl_Text_Editor.cxx | 22 |
2 files changed, 14 insertions, 9 deletions
diff --git a/src/Fl_Text_Display.cxx b/src/Fl_Text_Display.cxx index 6cf4b8c53..a61fc5778 100644 --- a/src/Fl_Text_Display.cxx +++ b/src/Fl_Text_Display.cxx @@ -3122,6 +3122,7 @@ int Fl_Text_Display::handle(int event) { Fl::focus(this); handle(FL_FOCUS); } + if (Fl_Group::handle(event)) return 1; if (Fl::event_state()&FL_SHIFT) return handle(FL_DRAG); dragging = 1; int pos = xy_to_position(Fl::event_x(), Fl::event_y(), CURSOR_POS); diff --git a/src/Fl_Text_Editor.cxx b/src/Fl_Text_Editor.cxx index cea3bb199..291753d9c 100644 --- a/src/Fl_Text_Editor.cxx +++ b/src/Fl_Text_Editor.cxx @@ -431,15 +431,6 @@ void Fl_Text_Editor::maybe_do_callback() { int Fl_Text_Editor::handle(int event) { if (!buffer()) return 0; - if (event == FL_PUSH && Fl::event_button() == 2) { - dragType = -1; - Fl::paste(*this, 0); - Fl::focus(this); - set_changed(); - if (when()&FL_WHEN_CHANGED) do_callback(); - return 1; - } - switch (event) { case FL_FOCUS: show_cursor(mCursorOn); // redraws the cursor @@ -475,6 +466,19 @@ int Fl_Text_Editor::handle(int event) { // case FL_MOVE: show_cursor(mCursorOn); return 1; + + case FL_PUSH: + if (Fl::event_button() == 2) { + // don't let the text_display see this event + if (Fl_Group::handle(event)) return 1; + dragType = -1; + Fl::paste(*this, 0); + Fl::focus(this); + set_changed(); + if (when()&FL_WHEN_CHANGED) do_callback(); + return 1; + } + break; } return Fl_Text_Display::handle(event); |
