]> git.sur5r.net Git - i3/i3/commitdiff
toggle fullscreen on 'scratchpad show'
authorSimon Elsbrock <simon@iodev.org>
Thu, 6 Sep 2012 06:08:46 +0000 (08:08 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 16 Sep 2012 15:59:35 +0000 (17:59 +0200)
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

src/scratchpad.c

index c54b1adaed868cf10eb03291491d099bddf16c3d..508d4a82edd82cd3b1d0ba6c602d144de8f8398d 100644 (file)
@@ -76,6 +76,16 @@ void scratchpad_show(Con *con) {
     Con *__i3_scratch = workspace_get("__i3_scratch", NULL);
     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
      * currently focused window is a scratchpad window and should be hidden
      * again. */