mirror of
https://github.com/swaywm/sway.git
synced 2024-11-26 18:01:29 +00:00
Merge pull request #1869 from emersion/xwayland-ignore-fullscreen-unmapped
Don't call view_set_fullscreen on unmapped xwayland views
This commit is contained in:
commit
950c451f30
|
@ -228,13 +228,15 @@ static void handle_request_fullscreen(struct wl_listener *listener, void *data)
|
||||||
struct sway_xdg_shell_v6_view *xdg_shell_v6_view =
|
struct sway_xdg_shell_v6_view *xdg_shell_v6_view =
|
||||||
wl_container_of(listener, xdg_shell_v6_view, request_fullscreen);
|
wl_container_of(listener, xdg_shell_v6_view, request_fullscreen);
|
||||||
struct wlr_xdg_toplevel_v6_set_fullscreen_event *e = data;
|
struct wlr_xdg_toplevel_v6_set_fullscreen_event *e = data;
|
||||||
|
struct wlr_xdg_surface_v6 *xdg_surface =
|
||||||
|
xdg_shell_v6_view->view.wlr_xdg_surface_v6;
|
||||||
|
|
||||||
if (!sway_assert(xdg_shell_v6_view->view.wlr_xdg_surface_v6->role == WLR_XDG_SURFACE_V6_ROLE_TOPLEVEL,
|
if (!sway_assert(xdg_surface->role == WLR_XDG_SURFACE_V6_ROLE_TOPLEVEL,
|
||||||
"xdg_shell_v6 requested fullscreen of surface with role %i",
|
"xdg_shell_v6 requested fullscreen of surface with role %i",
|
||||||
xdg_shell_v6_view->view.wlr_xdg_surface_v6->role)) {
|
xdg_surface->role)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!xdg_shell_v6_view->view.wlr_xdg_surface_v6->mapped) {
|
if (!xdg_surface->mapped) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,7 +269,6 @@ void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data) {
|
||||||
|
|
||||||
// TODO:
|
// TODO:
|
||||||
// - Look up pid and open on appropriate workspace
|
// - Look up pid and open on appropriate workspace
|
||||||
// - Criteria
|
|
||||||
|
|
||||||
xdg_shell_v6_view->map.notify = handle_map;
|
xdg_shell_v6_view->map.notify = handle_map;
|
||||||
wl_signal_add(&xdg_surface->events.map, &xdg_shell_v6_view->map);
|
wl_signal_add(&xdg_surface->events.map, &xdg_shell_v6_view->map);
|
||||||
|
|
|
@ -280,6 +280,9 @@ static void handle_request_fullscreen(struct wl_listener *listener, void *data)
|
||||||
wl_container_of(listener, xwayland_view, request_fullscreen);
|
wl_container_of(listener, xwayland_view, request_fullscreen);
|
||||||
struct sway_view *view = &xwayland_view->view;
|
struct sway_view *view = &xwayland_view->view;
|
||||||
struct wlr_xwayland_surface *xsurface = view->wlr_xwayland_surface;
|
struct wlr_xwayland_surface *xsurface = view->wlr_xwayland_surface;
|
||||||
|
if (!xsurface->mapped) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
view_set_fullscreen(view, xsurface->fullscreen);
|
view_set_fullscreen(view, xsurface->fullscreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,7 +312,6 @@ void handle_xwayland_surface(struct wl_listener *listener, void *data) {
|
||||||
|
|
||||||
// TODO:
|
// TODO:
|
||||||
// - Look up pid and open on appropriate workspace
|
// - Look up pid and open on appropriate workspace
|
||||||
// - Criteria
|
|
||||||
|
|
||||||
wl_signal_add(&xsurface->events.destroy, &xwayland_view->destroy);
|
wl_signal_add(&xsurface->events.destroy, &xwayland_view->destroy);
|
||||||
xwayland_view->destroy.notify = handle_destroy;
|
xwayland_view->destroy.notify = handle_destroy;
|
||||||
|
|
Loading…
Reference in a new issue