summaryrefslogtreecommitdiffstats
path: root/sway/desktop
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-10-08 23:00:36 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-10-08 23:00:36 +1000
commitf23588de3c7085830614f6764a5c0cd262538afd (patch)
tree6460aecbaf206dffcc4ffb546c4a8143025b82db /sway/desktop
parentImplement popup_during_fullscreen (diff)
downloadsway-f23588de3c7085830614f6764a5c0cd262538afd.tar.gz
sway-f23588de3c7085830614f6764a5c0cd262538afd.tar.zst
sway-f23588de3c7085830614f6764a5c0cd262538afd.zip
Introduce container_is_transient_for
Diffstat (limited to 'sway/desktop')
-rw-r--r--sway/desktop/output.c15
-rw-r--r--sway/desktop/render.c12
2 files changed, 10 insertions, 17 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index 0bcdcac1..adc1ee10 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -329,15 +329,12 @@ static void send_frame_done(struct sway_output *output, struct timespec *when) {
329 workspace->current.fullscreen, &data); 329 workspace->current.fullscreen, &data);
330 container_for_each_child(workspace->current.fullscreen, 330 container_for_each_child(workspace->current.fullscreen,
331 send_frame_done_container_iterator, &data); 331 send_frame_done_container_iterator, &data);
332 if (config->popup_during_fullscreen == POPUP_SMART && 332 for (int i = 0; i < workspace->current.floating->length; ++i) {
333 workspace->current.fullscreen->view) { 333 struct sway_container *floater =
334 for (int i = 0; i < workspace->current.floating->length; ++i) { 334 workspace->current.floating->items[i];
335 struct sway_container *floater = 335 if (container_is_transient_for(floater,
336 workspace->current.floating->items[i]; 336 workspace->current.fullscreen)) {
337 if (floater->view && view_is_transient_for(floater->view, 337 send_frame_done_container_iterator(floater, &data);
338 workspace->current.fullscreen->view)) {
339 send_frame_done_container_iterator(floater, &data);
340 }
341 } 338 }
342 } 339 }
343#ifdef HAVE_XWAYLAND 340#ifdef HAVE_XWAYLAND
diff --git a/sway/desktop/render.c b/sway/desktop/render.c
index c2a0d29f..765317db 100644
--- a/sway/desktop/render.c
+++ b/sway/desktop/render.c
@@ -962,14 +962,10 @@ void output_render(struct sway_output *output, struct timespec *when,
962 fullscreen_con->current.focused); 962 fullscreen_con->current.focused);
963 } 963 }
964 964
965 if (config->popup_during_fullscreen == POPUP_SMART && 965 for (int i = 0; i < workspace->floating->length; ++i) {
966 fullscreen_con->view) { 966 struct sway_container *floater = workspace->floating->items[i];
967 for (int i = 0; i < workspace->floating->length; ++i) { 967 if (container_is_transient_for(floater, fullscreen_con)) {
968 struct sway_container *floater = workspace->floating->items[i]; 968 render_floating_container(output, damage, floater);
969 if (floater->view && view_is_transient_for(
970 floater->view, fullscreen_con->view)) {
971 render_floating_container(output, damage, floater);
972 }
973 } 969 }
974 } 970 }
975#ifdef HAVE_XWAYLAND 971#ifdef HAVE_XWAYLAND