diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2006-08-17 11:10:54 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2006-08-17 11:10:54 +0000 |
| commit | ae971b97da65ba73f5a3b965435f54e8c0634274 (patch) | |
| tree | 84e0797d2411de0db9049b405709469b35b73ac2 /src | |
| parent | 2d2e6f9bf81c32c516a1a2f6fbb429b4a67be7c6 (diff) | |
Fl_Text_Editor now correctly handles middle mouse clicks (STR #1384)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5325 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
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); |
