window: Add adjust_fullscreen_monitor_rect virtual method

Add an adjust_fullscreen_monitor_rect virtual method to MetaWindowClass
and call this from setup_constraint_info() if the window is fullscreen.

This allows MetaWindowClass to adjust the monitor-rectangle used to size
the window when going fullscreen, which will be used in further commits
for a workaround related to fullscreen games under Xwayland.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/739
This commit is contained in:
Hans de Goede
2019-08-22 10:55:17 +02:00
parent 6051712919
commit ae238d1d4d
3 changed files with 22 additions and 5 deletions

View File

@ -413,11 +413,7 @@ setup_constraint_info (ConstraintInfo *info,
logical_monitor,
&info->work_area_monitor);
if (!window->fullscreen || !meta_window_has_fullscreen_monitors (window))
{
info->entire_monitor = logical_monitor->rect;
}
else
if (window->fullscreen && meta_window_has_fullscreen_monitors (window))
{
info->entire_monitor = window->fullscreen_monitors.top->rect;
meta_rectangle_union (&info->entire_monitor,
@ -430,6 +426,12 @@ setup_constraint_info (ConstraintInfo *info,
&window->fullscreen_monitors.right->rect,
&info->entire_monitor);
}
else
{
info->entire_monitor = logical_monitor->rect;
if (window->fullscreen)
meta_window_adjust_fullscreen_monitor_rect (window, &info->entire_monitor);
}
cur_workspace = window->display->workspace_manager->active_workspace;
info->usable_screen_region =