window: Move surface property to it subclasses

As we have specific window types per display server,
having it in the parent class makes building without wayland
harder to achieve

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2418>
This commit is contained in:
Bilal Elmoussaoui
2022-05-18 13:51:44 +02:00
committed by Marge Bot
parent c3a01e4e18
commit 6b77532a23
13 changed files with 193 additions and 45 deletions

View File

@ -197,7 +197,6 @@ enum
PROP_IS_ALIVE,
PROP_DISPLAY,
PROP_EFFECT,
PROP_SURFACE,
PROP_XWINDOW,
PROP_LAST,
@ -418,9 +417,6 @@ meta_window_get_property(GObject *object,
case PROP_EFFECT:
g_value_set_int (value, win->pending_compositor_effect);
break;
case PROP_SURFACE:
g_value_set_pointer (value, win->surface);
break;
case PROP_XWINDOW:
g_value_set_ulong (value, win->xwindow);
break;
@ -446,9 +442,6 @@ meta_window_set_property(GObject *object,
case PROP_EFFECT:
win->pending_compositor_effect = g_value_get_int (value);
break;
case PROP_SURFACE:
win->surface = g_value_get_pointer (value);
break;
case PROP_XWINDOW:
win->xwindow = g_value_get_ulong (value);
break;
@ -834,9 +827,12 @@ static gboolean
client_window_should_be_mapped (MetaWindow *window)
{
#ifdef HAVE_WAYLAND
if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND &&
!meta_wayland_surface_get_buffer (window->surface))
return FALSE;
if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND)
{
MetaWaylandSurface *surface = meta_window_get_wayland_surface (window);
if (!meta_wayland_surface_get_buffer (surface))
return FALSE;
}
#endif
return !window->shaded;
@ -1683,9 +1679,12 @@ meta_window_should_be_showing (MetaWindow *window)
MetaWorkspaceManager *workspace_manager = window->display->workspace_manager;
#ifdef HAVE_WAYLAND
if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND &&
!meta_wayland_surface_get_buffer (window->surface))
return FALSE;
if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND)
{
MetaWaylandSurface *surface = meta_window_get_wayland_surface (window);
if (!meta_wayland_surface_get_buffer (surface))
return FALSE;
}
#endif
/* Windows should be showing if they're located on the
@ -4503,7 +4502,10 @@ meta_window_transient_can_focus (MetaWindow *window)
{
#ifdef HAVE_WAYLAND
if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND)
return meta_wayland_surface_get_buffer (window->surface) != NULL;
{
MetaWaylandSurface *surface = meta_window_get_wayland_surface (window);
return meta_wayland_surface_get_buffer (surface) != NULL;
}
#endif
return TRUE;
@ -8526,6 +8528,17 @@ meta_window_calculate_layer (MetaWindow *window)
return META_WINDOW_GET_CLASS (window)->calculate_layer (window);
}
#ifdef HAVE_WAYLAND
MetaWaylandSurface *
meta_window_get_wayland_surface (MetaWindow *window)
{
MetaWindowClass *klass = META_WINDOW_GET_CLASS (window);
g_return_val_if_fail (klass->get_wayland_surface != NULL, NULL);
return klass->get_wayland_surface (window);
}
#endif
/**
* meta_window_get_id:
* @window: a #MetaWindow