diff --git a/CHANGES b/CHANGES index 280e7d1c3..e5a33c4ad 100644 --- a/CHANGES +++ b/CHANGES @@ -3,6 +3,8 @@ CHANGES IN FLTK 1.1.8 - Documentation fixes (STR #1454, STR #1455, STR #1456, STR #1457, STR #1458, STR #1460, STR #1481, STR #1578, STR #1639, STR #1645, STR #1644) + - Fixed mapping of subwindows with unmapped parent + windows (STR #1706) - Fixed rendering of grayscale images with alpha channel (STR #1703) - Fixed occasional incomplete refresh (STR #1681) diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx index 696cda10c..5603b22c8 100644 --- a/src/Fl_x.cxx +++ b/src/Fl_x.cxx @@ -1134,6 +1134,14 @@ void Fl_X::make_xid(Fl_Window* win, XVisualInfo *visual, Colormap colormap) if (Y < scr_y) Y = scr_y; } + // if the window is a subwindow and our parent is not mapped, we + // mark this window visible, so that mapping the parent later will + // call this function again. + if (win->parent() && !Fl_X::i(win->window())) { + win->set_visible(); + return; + } + ulong root = win->parent() ? fl_xid(win->window()) : RootWindow(fl_display, fl_screen);