summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2006-08-17 11:10:54 +0000
committerMatthias Melcher <fltk@matthiasm.com>2006-08-17 11:10:54 +0000
commitae971b97da65ba73f5a3b965435f54e8c0634274 (patch)
tree84e0797d2411de0db9049b405709469b35b73ac2 /src
parent2d2e6f9bf81c32c516a1a2f6fbb429b4a67be7c6 (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.cxx1
-rw-r--r--src/Fl_Text_Editor.cxx22
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);