[metacity] theme: don't add invisible borders for windows that can't be resized



commit 64615667b8437d6b562f4d2542121e3d59d1e780
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Sun Jan 18 17:02:18 2015 +0200

    theme: don't add invisible borders for windows that can't be resized
    
    Invisible borders are all about resizing -- in the case that a window
    cannot be resized, it makes no sense to add them.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=659854
    
    Based on mutter commit:
    https://git.gnome.org/browse/mutter/commit/?id=be9f7d77292c1dfd868640fe95f7223fbbfd4273

 src/ui/theme.c |   27 +++++++++++++++------------
 1 files changed, 15 insertions(+), 12 deletions(-)
---
diff --git a/src/ui/theme.c b/src/ui/theme.c
index 82cae7e..af65681 100644
--- a/src/ui/theme.c
+++ b/src/ui/theme.c
@@ -410,6 +410,12 @@ meta_frame_layout_get_borders (const MetaFrameLayout *layout,
 {
   int buttons_height, title_height;
 
+  meta_frame_borders_clear (borders);
+
+  /* For a full-screen window, we don't have any borders, visible or not. */
+  if (flags & META_FRAME_FULLSCREEN)
+    return;
+
   g_return_if_fail (layout != NULL);
 
   if (!layout->has_title)
@@ -426,22 +432,19 @@ meta_frame_layout_get_borders (const MetaFrameLayout *layout,
   borders->visible.right = layout->right_width;
   borders->visible.bottom = layout->bottom_height;
 
-  if (flags & META_FRAME_FULLSCREEN)
+  if (flags & META_FRAME_ALLOWS_HORIZONTAL_RESIZE)
     {
-      meta_frame_borders_clear (borders);
-      return;
+      borders->invisible.left = layout->invisible_border.left;
+      borders->invisible.right = layout->invisible_border.right;
     }
 
-  borders->invisible.left = layout->invisible_border.left;
-  borders->invisible.right = layout->invisible_border.right;
-  borders->invisible.bottom = layout->invisible_border.bottom;
-  borders->invisible.top = layout->invisible_border.top;
-
-  if (type == META_FRAME_TYPE_ATTACHED)
-    borders->invisible.top = 0;
+  if (flags & META_FRAME_ALLOWS_VERTICAL_RESIZE)
+    {
+      borders->invisible.bottom = layout->invisible_border.bottom;
 
-  if (flags & META_FRAME_SHADED)
-    borders->visible.bottom = borders->invisible.bottom = 0;
+      if (type != META_FRAME_TYPE_ATTACHED)
+        borders->invisible.top = layout->invisible_border.top;
+    }
 
   borders->total.left = borders->invisible.left + borders->visible.left;
   borders->total.right = borders->invisible.right + borders->visible.right;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]