toggle fullscreen on 'scratchpad show'

If the focused application is in fullscreen mode and 'scratchpad show'
is executed, toggle the fullscreen mode before showing the scratchpad
application. Otherwise, the scratchpad app would not be visible anyways
but focus would be stolen.

fixes #613
This commit is contained in:
Simon Elsbrock 2012-09-06 08:08:46 +02:00 committed by Michael Stapelberg
parent 0929f68a10
commit fe6e1f496a
1 changed files with 10 additions and 0 deletions

View File

@ -76,6 +76,16 @@ void scratchpad_show(Con *con) {
Con *__i3_scratch = workspace_get("__i3_scratch", NULL); Con *__i3_scratch = workspace_get("__i3_scratch", NULL);
Con *floating; Con *floating;
/* If the current con or any of its parents are in fullscreen mode, we
* first need to disable it before showing the scratchpad con. */
Con *fs = focused;
while (fs && fs->fullscreen_mode == CF_NONE)
fs = fs->parent;
if (fs->type != CT_WORKSPACE) {
con_toggle_fullscreen(focused, CF_OUTPUT);
}
/* If this was 'scratchpad show' without criteria, we check if the /* If this was 'scratchpad show' without criteria, we check if the
* currently focused window is a scratchpad window and should be hidden * currently focused window is a scratchpad window and should be hidden
* again. */ * again. */