diff options
author | Drew DeVault <sir@cmpwn.com> | 2019-01-27 18:06:50 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-27 18:06:50 -0500 |
commit | 783fadab284c79c8e13625e5e2a2eefae02c75d3 (patch) | |
tree | 795c5c69a7fcfc9336115ac157a41b943190f206 /sway/desktop/output.c | |
parent | Merge pull request #3519 from emersion/pointer-frame (diff) | |
parent | Implement fullscreen global (diff) | |
download | sway-783fadab284c79c8e13625e5e2a2eefae02c75d3.tar.gz sway-783fadab284c79c8e13625e5e2a2eefae02c75d3.tar.zst sway-783fadab284c79c8e13625e5e2a2eefae02c75d3.zip |
Merge pull request #3423 from RyanDwyer/fullscreen-global
Implement fullscreen global
Diffstat (limited to 'sway/desktop/output.c')
-rw-r--r-- | sway/desktop/output.c | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/sway/desktop/output.c b/sway/desktop/output.c index f18a118f..b5f164cb 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c | |||
@@ -251,17 +251,27 @@ static void output_for_each_surface(struct sway_output *output, | |||
251 | }; | 251 | }; |
252 | 252 | ||
253 | struct sway_workspace *workspace = output_get_active_workspace(output); | 253 | struct sway_workspace *workspace = output_get_active_workspace(output); |
254 | if (workspace->current.fullscreen) { | 254 | struct sway_container *fullscreen_con = root->fullscreen_global; |
255 | for_each_surface_container_iterator( | 255 | if (fullscreen_con && fullscreen_con->scratchpad && |
256 | workspace->current.fullscreen, &data); | 256 | !fullscreen_con->workspace) { |
257 | container_for_each_child(workspace->current.fullscreen, | 257 | fullscreen_con = NULL; |
258 | } | ||
259 | if (!fullscreen_con) { | ||
260 | fullscreen_con = workspace->current.fullscreen; | ||
261 | } | ||
262 | if (fullscreen_con) { | ||
263 | for_each_surface_container_iterator(fullscreen_con, &data); | ||
264 | container_for_each_child(fullscreen_con, | ||
258 | for_each_surface_container_iterator, &data); | 265 | for_each_surface_container_iterator, &data); |
259 | for (int i = 0; i < workspace->current.floating->length; ++i) { | 266 | |
260 | struct sway_container *floater = | 267 | // TODO: Show transient containers for fullscreen global |
261 | workspace->current.floating->items[i]; | 268 | if (fullscreen_con == workspace->current.fullscreen) { |
262 | if (container_is_transient_for(floater, | 269 | for (int i = 0; i < workspace->current.floating->length; ++i) { |
263 | workspace->current.fullscreen)) { | 270 | struct sway_container *floater = |
264 | for_each_surface_container_iterator(floater, &data); | 271 | workspace->current.floating->items[i]; |
272 | if (container_is_transient_for(floater, fullscreen_con)) { | ||
273 | for_each_surface_container_iterator(floater, &data); | ||
274 | } | ||
265 | } | 275 | } |
266 | } | 276 | } |
267 | #if HAVE_XWAYLAND | 277 | #if HAVE_XWAYLAND |