From 3932ed261f124a44484417f1a1cef96ec09f4387 Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Wed, 27 Jul 2022 17:52:58 +0200 Subject: Fix for issue #471 for the Wayland platform. --- src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx index 2da3b9844..2a2b59a9d 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx @@ -1417,6 +1417,10 @@ static void delayed_minsize(Fl_Window *win) { void Fl_Wayland_Window_Driver::resize(int X, int Y, int W, int H) { + struct wld_window *fl_win = fl_xid(pWindow); + if (fl_win && fl_win->kind == DECORATED && !xdg_toplevel()) { + pWindow->wait_for_expose(); + } int is_a_move = (X != x() || Y != y() || Fl_Window::is_a_rescale()); int is_a_resize = (W != w() || H != h() || Fl_Window::is_a_rescale()); if (is_a_move) force_position(1); @@ -1436,7 +1440,6 @@ void Fl_Wayland_Window_Driver::resize(int X, int Y, int W, int H) { } if (shown()) { - struct wld_window *fl_win = fl_xid(pWindow); float f = Fl::screen_scale(pWindow->screen_num()); if (is_a_resize) { if (fl_win->kind == DECORATED) { // a decorated window -- cgit v1.2.3