summaryrefslogtreecommitdiff
path: root/src/Fl_Tabs.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Fl_Tabs.cxx')
-rw-r--r--src/Fl_Tabs.cxx5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/Fl_Tabs.cxx b/src/Fl_Tabs.cxx
index ffca48f11..89394ac05 100644
--- a/src/Fl_Tabs.cxx
+++ b/src/Fl_Tabs.cxx
@@ -528,6 +528,7 @@ int Fl_Tabs::handle(int event) {
static int initial_x = 0;
static int initial_tab_offset = 0;
static int forward_motion_to_group = 0;
+ static Fl_Widget *o_push_drag = NULL;
Fl_Widget *o;
int i;
@@ -563,11 +564,15 @@ int Fl_Tabs::handle(int event) {
}
/* FALLTHROUGH */
case FL_DRAG:
+ o_push_drag = which(Fl::event_x(), Fl::event_y());
case FL_RELEASE:
if (forward_motion_to_group) {
return Fl_Group::handle(event);
}
o = which(Fl::event_x(), Fl::event_y());
+ if (event == FL_RELEASE && o != o_push_drag) { // see issue #1075
+ return 1;
+ }
if ( (overflow_type == OVERFLOW_DRAG) || (overflow_type == OVERFLOW_PULLDOWN) ) {
if (tab_pos[children()] < w() && tab_offset == 0) {
// fall through