]> git.sur5r.net Git - i3/i3/commitdiff
Bugfix: fix floating window size with hide_edge_borders (+test)
authorMichael Stapelberg <michael@stapelberg.de>
Tue, 2 Apr 2013 21:59:26 +0000 (23:59 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 2 Apr 2013 21:59:26 +0000 (23:59 +0200)
fixes #998

src/con.c
testcases/t/194-regress-floating-size.t

index 559c1375bc62a5ef13500449561aa01bbba0843e..1050513ae593a76e8981e8d93055be0a07f550bf 100644 (file)
--- a/src/con.c
+++ b/src/con.c
@@ -1079,6 +1079,12 @@ Rect con_border_style_rect(Con *con) {
     } else {
         result = (Rect){border_width, border_width, -(2 * border_width), -(2 * border_width)};
     }
+
+    /* Floating windows are never adjacent to any other window, so
+       don’t hide their border(s). This prevents bug #998. */
+    if (con_is_floating(con))
+      return result;
+
     if (borders_to_hide & ADJ_LEFT_SCREEN_EDGE) {
         result.x -= border_width;
         result.width += border_width;
index dc6739e576259e1342800717b06040dd101bb337..a86cc6bfdc457b2733bdc3d0ead49237edc287df 100644 (file)
@@ -19,7 +19,7 @@
 # ticket #770, bug still present in commit ae88accf6fe3817ff42d0d51be1965071194766e
 use i3test i3_autostart => 0;
 
-sub test_with_new_window_value {
+sub test_with_config {
     my ($value) = @_;
 
     my $config = <<EOT;
@@ -28,8 +28,8 @@ font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
 EOT
 
     if (defined($value)) {
-        $config .= "new_window $value\n";
-        diag("testing with new_window $value");
+        $config .= "$value\n";
+        diag("testing with $value");
     } else {
         diag("testing without new_window");
     }
@@ -49,9 +49,10 @@ EOT
     exit_gracefully($pid);
 }
 
-test_with_new_window_value(undef);
-test_with_new_window_value('1pixel');
-test_with_new_window_value('normal');
-test_with_new_window_value('none');
+test_with_config(undef);
+test_with_config('new_window 1pixel');
+test_with_config('new_window normal');
+test_with_config('new_window none');
+test_with_config('hide_edge_borders both');
 
 done_testing;