summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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);