diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c index 1c62c8f65e..b5d427ce31 100644 --- a/gdk/wayland/gdkwindow-wayland.c +++ b/gdk/wayland/gdkwindow-wayland.c @@ -3311,6 +3311,12 @@ gdk_window_wayland_move_resize (GdkWindow *window, } } + if (window->state & (GDK_WINDOW_STATE_FULLSCREEN | GDK_WINDOW_STATE_MAXIMIZED)) + { + impl->saved_width = width; + impl->saved_height = height; + } + /* If this function is called with width and height = -1 then that means * just move the window - don't update its size */ diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 62a7cb7686..5298470d6f 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -9416,8 +9416,9 @@ gtk_window_compute_configure_request_size (GtkWindow *window, info = gtk_window_get_geometry_info (window, FALSE); - if (priv->need_default_size || - priv->force_resize) + if ((priv->need_default_size || priv->force_resize) && + !priv->maximized && + !priv->fullscreen) { gtk_window_guess_default_size (window, width, height); gtk_window_get_remembered_size (window, &w, &h); @@ -9453,13 +9454,7 @@ gtk_window_compute_configure_request_size (GtkWindow *window, gtk_window_get_remembered_size (window, width, height); } - /* Override any size with gtk_window_resize() values */ - if (priv->maximized || priv->fullscreen) - { - /* Unless we are maximized or fullscreen */ - gtk_window_get_remembered_size (window, width, height); - } - else if (info) + if (info) { gint resize_width_csd = info->resize_width; gint resize_height_csd = info->resize_height;