mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 01:20:42 -05:00
wayland: Use helper to set shell surface window
The helper deals with updating the surface output state. https://gitlab.gnome.org/GNOME/mutter/merge_requests/5 https://bugzilla.gnome.org/show_bug.cgi?id=791938
This commit is contained in:
parent
44624736c5
commit
514c7028f4
@ -73,6 +73,19 @@ meta_wayland_shell_surface_calculate_geometry (MetaWaylandShellSurface *shell_su
|
|||||||
*out_geometry = geometry;
|
*out_geometry = geometry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_wayland_shell_surface_set_window (MetaWaylandShellSurface *shell_surface,
|
||||||
|
MetaWindow *window)
|
||||||
|
{
|
||||||
|
MetaWaylandSurfaceRole *surface_role =
|
||||||
|
META_WAYLAND_SURFACE_ROLE (shell_surface);
|
||||||
|
MetaWaylandSurface *surface =
|
||||||
|
meta_wayland_surface_role_get_surface (surface_role);
|
||||||
|
|
||||||
|
meta_wayland_surface_set_window (surface, window);
|
||||||
|
meta_window_update_monitor (window, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_wayland_shell_surface_configure (MetaWaylandShellSurface *shell_surface,
|
meta_wayland_shell_surface_configure (MetaWaylandShellSurface *shell_surface,
|
||||||
int new_x,
|
int new_x,
|
||||||
|
@ -64,4 +64,7 @@ void meta_wayland_shell_surface_managed (MetaWaylandShellSurface *shell_surface,
|
|||||||
void meta_wayland_shell_surface_calculate_geometry (MetaWaylandShellSurface *shell_surface,
|
void meta_wayland_shell_surface_calculate_geometry (MetaWaylandShellSurface *shell_surface,
|
||||||
MetaRectangle *out_geometry);
|
MetaRectangle *out_geometry);
|
||||||
|
|
||||||
|
void meta_wayland_shell_surface_set_window (MetaWaylandShellSurface *shell_surface,
|
||||||
|
MetaWindow *window);
|
||||||
|
|
||||||
#endif /* META_WAYLAND_SHELL_SURFACE_H */
|
#endif /* META_WAYLAND_SHELL_SURFACE_H */
|
||||||
|
@ -474,12 +474,14 @@ create_wl_shell_surface_window (MetaWaylandSurface *surface)
|
|||||||
{
|
{
|
||||||
MetaWaylandWlShellSurface *wl_shell_surface =
|
MetaWaylandWlShellSurface *wl_shell_surface =
|
||||||
META_WAYLAND_WL_SHELL_SURFACE (surface->role);
|
META_WAYLAND_WL_SHELL_SURFACE (surface->role);
|
||||||
|
MetaWaylandShellSurface *shell_surface =
|
||||||
|
META_WAYLAND_SHELL_SURFACE (wl_shell_surface);
|
||||||
MetaWaylandSurface *parent;
|
MetaWaylandSurface *parent;
|
||||||
MetaWindow *window;
|
MetaWindow *window;
|
||||||
GList *l;
|
GList *l;
|
||||||
|
|
||||||
window = meta_window_wayland_new (meta_get_display (), surface);
|
window = meta_window_wayland_new (meta_get_display (), surface);
|
||||||
meta_wayland_surface_set_window (surface, window);
|
meta_wayland_shell_surface_set_window (shell_surface, window);
|
||||||
|
|
||||||
if (wl_shell_surface->title)
|
if (wl_shell_surface->title)
|
||||||
meta_window_set_title (surface->window, wl_shell_surface->title);
|
meta_window_set_title (surface->window, wl_shell_surface->title);
|
||||||
|
@ -782,6 +782,8 @@ static void
|
|||||||
finish_popup_setup (MetaWaylandXdgPopup *xdg_popup)
|
finish_popup_setup (MetaWaylandXdgPopup *xdg_popup)
|
||||||
{
|
{
|
||||||
MetaWaylandXdgSurface *xdg_surface = META_WAYLAND_XDG_SURFACE (xdg_popup);
|
MetaWaylandXdgSurface *xdg_surface = META_WAYLAND_XDG_SURFACE (xdg_popup);
|
||||||
|
MetaWaylandShellSurface *shell_surface =
|
||||||
|
META_WAYLAND_SHELL_SURFACE (xdg_surface);
|
||||||
MetaWaylandSurfaceRole *surface_role = META_WAYLAND_SURFACE_ROLE (xdg_popup);
|
MetaWaylandSurfaceRole *surface_role = META_WAYLAND_SURFACE_ROLE (xdg_popup);
|
||||||
struct wl_resource *xdg_shell_resource =
|
struct wl_resource *xdg_shell_resource =
|
||||||
meta_wayland_xdg_surface_get_shell_resource (xdg_surface);
|
meta_wayland_xdg_surface_get_shell_resource (xdg_surface);
|
||||||
@ -833,8 +835,7 @@ finish_popup_setup (MetaWaylandXdgPopup *xdg_popup)
|
|||||||
&xdg_popup->parent_destroy_listener);
|
&xdg_popup->parent_destroy_listener);
|
||||||
|
|
||||||
window = meta_window_wayland_new (display, surface);
|
window = meta_window_wayland_new (display, surface);
|
||||||
meta_wayland_surface_set_window (surface, window);
|
meta_wayland_shell_surface_set_window (shell_surface, window);
|
||||||
meta_window_update_monitor (window, FALSE);
|
|
||||||
|
|
||||||
scaled_placement_rule = xdg_popup->setup.placement_rule;
|
scaled_placement_rule = xdg_popup->setup.placement_rule;
|
||||||
scale_placement_rule (&scaled_placement_rule, surface);
|
scale_placement_rule (&scaled_placement_rule, surface);
|
||||||
@ -1498,6 +1499,7 @@ xdg_surface_constructor_get_toplevel (struct wl_client *client,
|
|||||||
MetaWaylandSurface *surface = constructor->surface;
|
MetaWaylandSurface *surface = constructor->surface;
|
||||||
MetaWaylandXdgToplevel *xdg_toplevel;
|
MetaWaylandXdgToplevel *xdg_toplevel;
|
||||||
MetaWaylandXdgSurface *xdg_surface;
|
MetaWaylandXdgSurface *xdg_surface;
|
||||||
|
MetaWaylandShellSurface *shell_surface;
|
||||||
MetaWindow *window;
|
MetaWindow *window;
|
||||||
|
|
||||||
if (!meta_wayland_surface_assign_role (surface,
|
if (!meta_wayland_surface_assign_role (surface,
|
||||||
@ -1526,8 +1528,8 @@ xdg_surface_constructor_get_toplevel (struct wl_client *client,
|
|||||||
meta_wayland_xdg_surface_constructor_finalize (constructor, xdg_surface);
|
meta_wayland_xdg_surface_constructor_finalize (constructor, xdg_surface);
|
||||||
|
|
||||||
window = meta_window_wayland_new (meta_get_display (), surface);
|
window = meta_window_wayland_new (meta_get_display (), surface);
|
||||||
meta_wayland_surface_set_window (surface, window);
|
shell_surface = META_WAYLAND_SHELL_SURFACE (xdg_surface);
|
||||||
meta_window_update_monitor (window, FALSE);
|
meta_wayland_shell_surface_set_window (shell_surface, window);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user