]> git.sur5r.net Git - i3/i3/commitdiff
Don't disable floating in internal workspaces 3376/head
authorOrestis Floros <orestisf1993@gmail.com>
Tue, 28 Aug 2018 07:26:07 +0000 (10:26 +0300)
committerOrestis Floros <orestisf1993@gmail.com>
Tue, 28 Aug 2018 08:26:20 +0000 (11:26 +0300)
src/floating.c
testcases/t/185-scratchpad.t

index 080413347899b4d36007d990dae0196f86af729d..3c5afb25aeb984b97f19ba65a0642f5ee7d89fb9 100644 (file)
@@ -366,6 +366,10 @@ void floating_disable(Con *con, bool automatic) {
     }
 
     Con *ws = con_get_workspace(con);
+    if (con_is_internal(ws)) {
+        LOG("Can't disable floating for container in internal workspace.\n");
+        return;
+    }
     Con *tiling_focused = con_descend_tiling_focused(ws);
 
     if (tiling_focused->type == CT_WORKSPACE) {
index efb5d002c1b6cb60985aec7665ea7d6a8b89f822..fd3827f740c16de5b6526b237d74466c9c944f32 100644 (file)
@@ -517,4 +517,20 @@ fresh_workspace;
 $result = cmd 'scratchpad show';
 is($result->[0]->{success}, 1, 'call to scratchpad in another workspace succeeded');
 
+################################################################################
+# 18: Disabling floating for a scratchpad window should not work.
+################################################################################
+
+kill_all_windows;
+
+$ws = fresh_workspace;
+$window = open_window;
+cmd 'move scratchpad';
+cmd '[id=' . $window->id . '] floating disable';
+
+is(scalar @{get_ws_content($ws)}, 0, 'no window in workspace');
+cmd 'scratchpad show';
+is($x->input_focus, $window->id, 'scratchpad window shown');
+
+
 done_testing;