diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Tabs.cxx | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/Fl_Tabs.cxx b/src/Fl_Tabs.cxx index dc75c064f..8d46e8726 100644 --- a/src/Fl_Tabs.cxx +++ b/src/Fl_Tabs.cxx @@ -149,7 +149,9 @@ int Fl_Tabs::handle(int event) { if (!Fl::visible_focus()) return Fl_Group::handle(event); if (Fl::event() == FL_RELEASE || Fl::event() == FL_SHORTCUT || - Fl::event() == FL_KEYBOARD) { + Fl::event() == FL_KEYBOARD || + Fl::event() == FL_FOCUS || + Fl::event() == FL_UNFOCUS) { int H = tab_height(); if (H >= 0) { H += Fl::box_dy(box()); @@ -158,7 +160,8 @@ int Fl_Tabs::handle(int event) { H = Fl::box_dy(box()) - H; damage(FL_DAMAGE_SCROLL, x(), y() + h() - H, w(), H); } - return 1; + if (Fl::event() == FL_FOCUS || Fl::event() == FL_UNFOCUS) return 0; + else return 1; } else return Fl_Group::handle(event); case FL_KEYBOARD: switch (Fl::event_key()) { |
