summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES4
-rw-r--r--fluid/factory.cxx2
-rw-r--r--src/Fl_Tabs.cxx7
3 files changed, 10 insertions, 3 deletions
diff --git a/CHANGES b/CHANGES
index 604dad36e..af9b4182a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,10 @@ CHANGES IN FLTK 1.1.7
- Documentation fixes (STR #648, STR #692, STR #730, STR
#744, STR #745)
+ - FLUID didn't set the initial size of widgets properly
+ (STR #850)
+ - Fl_Tabs would steal focus away from its children on a
+ window focus change (STR #870)
- filename_relative() now converts the current directory
to forward slashes as needed on WIN32 (STR #816)
- Fl_File_Chooser::value() and ::directory() now handle
diff --git a/fluid/factory.cxx b/fluid/factory.cxx
index 1a6bff438..aedaaa1c7 100644
--- a/fluid/factory.cxx
+++ b/fluid/factory.cxx
@@ -908,7 +908,7 @@ static void cb(Fl_Widget *, void *v) {
wt->textstuff(2, f, s, c);
// Resize and/or reposition new widget...
- int w, h;
+ int w = 0, h = 0;
wt->ideal_size(w, h);
if (!strcmp(wt->type_name(), "Fl_Menu_Bar")) {
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()) {