summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FL/platform.H2
-rw-r--r--src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx1
2 files changed, 2 insertions, 1 deletions
diff --git a/FL/platform.H b/FL/platform.H
index fbabca2fb..7dfa4a186 100644
--- a/FL/platform.H
+++ b/FL/platform.H
@@ -57,7 +57,7 @@ public:
Fl_X *next;
// static variables, static functions and member functions
static Fl_X* first;
- static Fl_X* i(const Fl_Window* w) {return (Fl_X*)w->i;}
+ static Fl_X* i(const Fl_Window* w) {return w ? (Fl_X*)w->i : 0;}
# if defined(FLTK_USE_X11) && FLTK_USE_X11 // for backward compatibility
static void make_xid(Fl_Window*, XVisualInfo* =fl_visual, Colormap=fl_colormap);
static Fl_X* set_xid(Fl_Window*, Window);
diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
index d3df1494b..3b1e7bbf8 100644
--- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
+++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
@@ -980,6 +980,7 @@ Fl_X *Fl_Wayland_Window_Driver::makeWindow()
Fl_Wayland_Screen_Driver::output *output;
wait_for_expose_value = 1;
+ if (pWindow->parent() && !pWindow->window()) return NULL;
if (pWindow->parent() && !pWindow->window()->shown()) return NULL;
new_window = (struct wld_window *)calloc(1, sizeof *new_window);