diff --git a/src/client.c b/src/client.c index 3804770..9c814bb 100644 --- a/src/client.c +++ b/src/client.c @@ -3347,6 +3347,23 @@ clientScreenResize(ScreenInfo *screen_info, gboolean fully_visible) } } + /* + * If there is a non-resizable window that is exactly the size of the + * screen, then it is probably an application that has temporarily + * changed the screen size + */ + for (list = list_of_windows; list; list = g_list_next (list)) + { + c = (Client *) list->data; + + if (c->width == screen_info->width && + c->height == screen_info->height && + ! FLAG_TEST (c->xfwm_flags, XFWM_FLAG_IS_RESIZABLE)) + { + goto tmp_size_change; + } + } + for (list = list_of_windows; list; list = g_list_next (list)) { unsigned long maximization_flags = 0L; @@ -3386,6 +3403,8 @@ clientScreenResize(ScreenInfo *screen_info, gboolean fully_visible) } } + tmp_size_change: + g_list_free (list_of_windows); }