mirror of
https://github.com/NickHu/sway
synced 2024-12-27 21:58:11 +01:00
Look for any ancestor when checking for fullscreen exit
This commit is contained in:
parent
88317b59ce
commit
b8002fc0c4
3 changed files with 12 additions and 15 deletions
|
@ -404,12 +404,11 @@ static void handle_map(struct wl_listener *listener, void *data) {
|
|||
if (config->popup_during_fullscreen == POPUP_LEAVE &&
|
||||
view->container->workspace &&
|
||||
view->container->workspace->fullscreen &&
|
||||
view->container->workspace->fullscreen->view &&
|
||||
xdg_surface->toplevel->parent) {
|
||||
struct wlr_xdg_surface *psurface = xdg_surface->toplevel->parent;
|
||||
struct sway_xdg_shell_view *parent = psurface->data;
|
||||
struct sway_view *sway_view = &parent->view;
|
||||
if (sway_view->container && sway_view->container->is_fullscreen) {
|
||||
container_set_fullscreen(sway_view->container, false);
|
||||
struct sway_container *fs = view->container->workspace->fullscreen;
|
||||
if (is_transient_for(view, fs->view)) {
|
||||
container_set_fullscreen(fs, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -399,12 +399,11 @@ static void handle_map(struct wl_listener *listener, void *data) {
|
|||
if (config->popup_during_fullscreen == POPUP_LEAVE &&
|
||||
view->container->workspace &&
|
||||
view->container->workspace->fullscreen &&
|
||||
view->container->workspace->fullscreen->view &&
|
||||
xdg_surface->toplevel->parent) {
|
||||
struct wlr_xdg_surface_v6 *psurface = xdg_surface->toplevel->parent;
|
||||
struct sway_xdg_shell_v6_view *parent = psurface->data;
|
||||
struct sway_view *sway_view = &parent->view;
|
||||
if (sway_view->container && sway_view->container->is_fullscreen) {
|
||||
container_set_fullscreen(sway_view->container, false);
|
||||
struct sway_container *fs = view->container->workspace->fullscreen;
|
||||
if (is_transient_for(view, fs->view)) {
|
||||
container_set_fullscreen(fs, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -410,12 +410,11 @@ static void handle_map(struct wl_listener *listener, void *data) {
|
|||
if (config->popup_during_fullscreen == POPUP_LEAVE &&
|
||||
view->container->workspace &&
|
||||
view->container->workspace->fullscreen &&
|
||||
view->container->workspace->fullscreen->view &&
|
||||
xsurface->parent) {
|
||||
struct wlr_xwayland_surface *psurface = xsurface->parent;
|
||||
struct sway_xwayland_view *parent = psurface->data;
|
||||
struct sway_view *sway_view = &parent->view;
|
||||
if (sway_view->container && sway_view->container->is_fullscreen) {
|
||||
container_set_fullscreen(sway_view->container, false);
|
||||
struct sway_container *fs = view->container->workspace->fullscreen;
|
||||
if (is_transient_for(view, fs->view)) {
|
||||
container_set_fullscreen(fs, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue