[mutter] theme: Complete removal of "fringe" titlebar button support



commit ffd95c2ad594f7433d90b557ad4ed27eef98abf4
Author: Florian Müllner <fmuellner gnome org>
Date:   Tue Sep 29 14:24:05 2015 +0200

    theme: Complete removal of "fringe" titlebar button support
    
    We have been ignoring those buttons since 3.16 after they had been
    broken in the default theme for a couple of versions. As nobody
    appears to miss them, it's time to remove them for good.

 src/core/prefs.c       |   53 -----------------------
 src/meta/common.h      |   20 ++-------
 src/ui/frames.c        |  108 ------------------------------------------------
 src/ui/frames.h        |    6 ---
 src/ui/theme-private.h |   14 +------
 src/ui/theme.c         |   51 +----------------------
 6 files changed, 7 insertions(+), 245 deletions(-)
---
diff --git a/src/core/prefs.c b/src/core/prefs.c
index 90ad108..3ea5aa2 100644
--- a/src/core/prefs.c
+++ b/src/core/prefs.c
@@ -1477,42 +1477,11 @@ button_function_from_string (const char *str)
     return META_BUTTON_FUNCTION_MAXIMIZE;
   else if (strcmp (str, "close") == 0)
     return META_BUTTON_FUNCTION_CLOSE;
-  else if (strcmp (str, "shade") == 0)
-    return META_BUTTON_FUNCTION_SHADE;
-  else if (strcmp (str, "above") == 0)
-    return META_BUTTON_FUNCTION_ABOVE;
-  else if (strcmp (str, "stick") == 0)
-    return META_BUTTON_FUNCTION_STICK;
   else
     /* don't know; give up */
     return META_BUTTON_FUNCTION_LAST;
 }
 
-static MetaButtonFunction
-button_opposite_function (MetaButtonFunction ofwhat)
-{
-  switch (ofwhat)
-    {
-    case META_BUTTON_FUNCTION_SHADE:
-      return META_BUTTON_FUNCTION_UNSHADE;
-    case META_BUTTON_FUNCTION_UNSHADE:
-      return META_BUTTON_FUNCTION_SHADE;
-
-    case META_BUTTON_FUNCTION_ABOVE:
-      return META_BUTTON_FUNCTION_UNABOVE;
-    case META_BUTTON_FUNCTION_UNABOVE:
-      return META_BUTTON_FUNCTION_ABOVE;
-
-    case META_BUTTON_FUNCTION_STICK:
-      return META_BUTTON_FUNCTION_UNSTICK;
-    case META_BUTTON_FUNCTION_UNSTICK:
-      return META_BUTTON_FUNCTION_STICK;
-
-    default:
-      return META_BUTTON_FUNCTION_LAST;
-    }
-}
-
 static gboolean
 button_layout_handler (GVariant *value,
                        gpointer *result,
@@ -1556,12 +1525,6 @@ button_layout_handler (GVariant *value,
           if (i > 0 && strcmp("spacer", buttons[b]) == 0)
             {
               new_layout.left_buttons_has_spacer[i-1] = TRUE;
-              f = button_opposite_function (f);
-
-              if (f != META_BUTTON_FUNCTION_LAST)
-                {
-                  new_layout.left_buttons_has_spacer[i-2] = TRUE;
-                }
             }
           else
             {
@@ -1570,11 +1533,6 @@ button_layout_handler (GVariant *value,
                   new_layout.left_buttons[i] = f;
                   used[f] = TRUE;
                   ++i;
-
-                  f = button_opposite_function (f);
-
-                  if (f != META_BUTTON_FUNCTION_LAST)
-                      new_layout.left_buttons[i++] = f;
                 }
               else
                 {
@@ -1618,11 +1576,6 @@ button_layout_handler (GVariant *value,
           if (i > 0 && strcmp("spacer", buttons[b]) == 0)
             {
               new_layout.right_buttons_has_spacer[i-1] = TRUE;
-              f = button_opposite_function (f);
-              if (f != META_BUTTON_FUNCTION_LAST)
-                {
-                  new_layout.right_buttons_has_spacer[i-2] = TRUE;
-                }
             }
           else
             {
@@ -1631,12 +1584,6 @@ button_layout_handler (GVariant *value,
                   new_layout.right_buttons[i] = f;
                   used[f] = TRUE;
                   ++i;
-
-                  f = button_opposite_function (f);
-
-                  if (f != META_BUTTON_FUNCTION_LAST)
-                      new_layout.right_buttons[i++] = f;
-
                 }
               else
                 {
diff --git a/src/meta/common.h b/src/meta/common.h
index d6a7cf7..a18be7f 100644
--- a/src/meta/common.h
+++ b/src/meta/common.h
@@ -372,12 +372,6 @@ typedef enum
  * @META_BUTTON_FUNCTION_MINIMIZE: Minimize
  * @META_BUTTON_FUNCTION_MAXIMIZE: Maximize
  * @META_BUTTON_FUNCTION_CLOSE: Close
- * @META_BUTTON_FUNCTION_SHADE: Shade
- * @META_BUTTON_FUNCTION_ABOVE: Above
- * @META_BUTTON_FUNCTION_STICK: Stick
- * @META_BUTTON_FUNCTION_UNSHADE: Unshade
- * @META_BUTTON_FUNCTION_UNABOVE: Unabove
- * @META_BUTTON_FUNCTION_UNSTICK: Unstick
  * @META_BUTTON_FUNCTION_LAST: Marks the end of the #MetaButtonFunction enumeration
  *
  * Function a window button can have.  Note, you can't add stuff here
@@ -390,12 +384,6 @@ typedef enum
   META_BUTTON_FUNCTION_MINIMIZE,
   META_BUTTON_FUNCTION_MAXIMIZE,
   META_BUTTON_FUNCTION_CLOSE,
-  META_BUTTON_FUNCTION_SHADE,
-  META_BUTTON_FUNCTION_ABOVE,
-  META_BUTTON_FUNCTION_STICK,
-  META_BUTTON_FUNCTION_UNSHADE,
-  META_BUTTON_FUNCTION_UNABOVE,
-  META_BUTTON_FUNCTION_UNSTICK,
   META_BUTTON_FUNCTION_APPMENU,
   META_BUTTON_FUNCTION_LAST
 } MetaButtonFunction;
@@ -405,10 +393,10 @@ typedef enum
 /* Keep array size in sync with MAX_BUTTONS_PER_CORNER */
 /**
  * MetaButtonLayout:
- * @left_buttons: (array fixed-size=11):
- * @right_buttons: (array fixed-size=11):
- * @left_buttons_has_spacer: (array fixed-size=11):
- * @right_buttons_has_spacer: (array fixed-size=11):
+ * @left_buttons: (array fixed-size=5):
+ * @right_buttons: (array fixed-size=5):
+ * @left_buttons_has_spacer: (array fixed-size=5):
+ * @right_buttons_has_spacer: (array fixed-size=5):
  */
 typedef struct _MetaButtonLayout MetaButtonLayout;
 struct _MetaButtonLayout
diff --git a/src/ui/frames.c b/src/ui/frames.c
index a2f7f45..b29a592 100644
--- a/src/ui/frames.c
+++ b/src/ui/frames.c
@@ -970,12 +970,6 @@ meta_frame_left_click_event (MetaUIFrame *frame,
     case META_FRAME_CONTROL_UNMAXIMIZE:
     case META_FRAME_CONTROL_MINIMIZE:
     case META_FRAME_CONTROL_DELETE:
-    case META_FRAME_CONTROL_SHADE:
-    case META_FRAME_CONTROL_UNSHADE:
-    case META_FRAME_CONTROL_ABOVE:
-    case META_FRAME_CONTROL_UNABOVE:
-    case META_FRAME_CONTROL_STICK:
-    case META_FRAME_CONTROL_UNSTICK:
     case META_FRAME_CONTROL_MENU:
     case META_FRAME_CONTROL_APPMENU:
       frame->grab_button = event->button;
@@ -1154,24 +1148,6 @@ handle_button_release_event (MetaUIFrame *frame,
         case META_FRAME_CONTROL_DELETE:
           meta_window_delete (frame->meta_window, event->time);
           break;
-        case META_FRAME_CONTROL_SHADE:
-          meta_window_shade (frame->meta_window, event->time);
-          break;
-        case META_FRAME_CONTROL_UNSHADE:
-          meta_window_unshade (frame->meta_window, event->time);
-          break;
-        case META_FRAME_CONTROL_ABOVE:
-          meta_window_make_above (frame->meta_window);
-          break;
-        case META_FRAME_CONTROL_UNABOVE:
-          meta_window_unmake_above (frame->meta_window);
-          break;
-        case META_FRAME_CONTROL_STICK:
-          meta_window_stick (frame->meta_window);
-          break;
-        case META_FRAME_CONTROL_UNSTICK:
-          meta_window_unstick (frame->meta_window);
-          break;
         default:
           break;
         }
@@ -1220,18 +1196,6 @@ meta_ui_frame_update_prelit_control (MetaUIFrame     *frame,
       break;
     case META_FRAME_CONTROL_UNMAXIMIZE:
       break;
-    case META_FRAME_CONTROL_SHADE:
-      break;
-    case META_FRAME_CONTROL_UNSHADE:
-      break;
-    case META_FRAME_CONTROL_ABOVE:
-      break;
-    case META_FRAME_CONTROL_UNABOVE:
-      break;
-    case META_FRAME_CONTROL_STICK:
-      break;
-    case META_FRAME_CONTROL_UNSTICK:
-      break;
     case META_FRAME_CONTROL_RESIZE_SE:
       cursor = META_CURSOR_SE_RESIZE;
       break;
@@ -1270,12 +1234,6 @@ meta_ui_frame_update_prelit_control (MetaUIFrame     *frame,
     case META_FRAME_CONTROL_MINIMIZE:
     case META_FRAME_CONTROL_MAXIMIZE:
     case META_FRAME_CONTROL_DELETE:
-    case META_FRAME_CONTROL_SHADE:
-    case META_FRAME_CONTROL_UNSHADE:
-    case META_FRAME_CONTROL_ABOVE:
-    case META_FRAME_CONTROL_UNABOVE:
-    case META_FRAME_CONTROL_STICK:
-    case META_FRAME_CONTROL_UNSTICK:
     case META_FRAME_CONTROL_UNMAXIMIZE:
       /* leave control set */
       break;
@@ -1487,24 +1445,6 @@ meta_ui_frame_paint (MetaUIFrame  *frame,
     case META_FRAME_CONTROL_UNMAXIMIZE:
       button_type = META_BUTTON_TYPE_MAXIMIZE;
       break;
-    case META_FRAME_CONTROL_SHADE:
-      button_type = META_BUTTON_TYPE_SHADE;
-      break;
-    case META_FRAME_CONTROL_UNSHADE:
-      button_type = META_BUTTON_TYPE_UNSHADE;
-      break;
-    case META_FRAME_CONTROL_ABOVE:
-      button_type = META_BUTTON_TYPE_ABOVE;
-      break;
-    case META_FRAME_CONTROL_UNABOVE:
-      button_type = META_BUTTON_TYPE_UNABOVE;
-      break;
-    case META_FRAME_CONTROL_STICK:
-      button_type = META_BUTTON_TYPE_STICK;
-      break;
-    case META_FRAME_CONTROL_UNSTICK:
-      button_type = META_BUTTON_TYPE_UNSTICK;
-      break;
     case META_FRAME_CONTROL_DELETE:
       button_type = META_BUTTON_TYPE_CLOSE;
       break;
@@ -1624,24 +1564,6 @@ control_rect (MetaFrameControl control,
     case META_FRAME_CONTROL_UNMAXIMIZE:
       rect = &fgeom->max_rect.visible;
       break;
-    case META_FRAME_CONTROL_SHADE:
-      rect = &fgeom->shade_rect.visible;
-      break;
-    case META_FRAME_CONTROL_UNSHADE:
-      rect = &fgeom->unshade_rect.visible;
-      break;
-    case META_FRAME_CONTROL_ABOVE:
-      rect = &fgeom->above_rect.visible;
-      break;
-    case META_FRAME_CONTROL_UNABOVE:
-      rect = &fgeom->unabove_rect.visible;
-      break;
-    case META_FRAME_CONTROL_STICK:
-      rect = &fgeom->stick_rect.visible;
-      break;
-    case META_FRAME_CONTROL_UNSTICK:
-      rect = &fgeom->unstick_rect.visible;
-      break;
     case META_FRAME_CONTROL_RESIZE_SE:
       break;
     case META_FRAME_CONTROL_RESIZE_S:
@@ -1726,36 +1648,6 @@ get_control (MetaUIFrame *frame, int root_x, int root_y)
         return META_FRAME_CONTROL_MAXIMIZE;
     }
 
-  if (POINT_IN_RECT (x, y, fgeom.shade_rect.clickable))
-    {
-      return META_FRAME_CONTROL_SHADE;
-    }
-
-  if (POINT_IN_RECT (x, y, fgeom.unshade_rect.clickable))
-    {
-      return META_FRAME_CONTROL_UNSHADE;
-    }
-
-  if (POINT_IN_RECT (x, y, fgeom.above_rect.clickable))
-    {
-      return META_FRAME_CONTROL_ABOVE;
-    }
-
-  if (POINT_IN_RECT (x, y, fgeom.unabove_rect.clickable))
-    {
-      return META_FRAME_CONTROL_UNABOVE;
-    }
-
-  if (POINT_IN_RECT (x, y, fgeom.stick_rect.clickable))
-    {
-      return META_FRAME_CONTROL_STICK;
-    }
-
-  if (POINT_IN_RECT (x, y, fgeom.unstick_rect.clickable))
-    {
-      return META_FRAME_CONTROL_UNSTICK;
-    }
-
   /* South resize always has priority over north resize,
    * in case of overlap.
    */
diff --git a/src/ui/frames.h b/src/ui/frames.h
index 3bca1aa..e986dbc 100644
--- a/src/ui/frames.h
+++ b/src/ui/frames.h
@@ -39,12 +39,6 @@ typedef enum
   META_FRAME_CONTROL_MINIMIZE,
   META_FRAME_CONTROL_MAXIMIZE,
   META_FRAME_CONTROL_UNMAXIMIZE,
-  META_FRAME_CONTROL_SHADE,
-  META_FRAME_CONTROL_UNSHADE,
-  META_FRAME_CONTROL_ABOVE,
-  META_FRAME_CONTROL_UNABOVE,
-  META_FRAME_CONTROL_STICK,
-  META_FRAME_CONTROL_UNSTICK,
   META_FRAME_CONTROL_RESIZE_SE,
   META_FRAME_CONTROL_RESIZE_S,
   META_FRAME_CONTROL_RESIZE_SW,
diff --git a/src/ui/theme-private.h b/src/ui/theme-private.h
index a61457e..61d151d 100644
--- a/src/ui/theme-private.h
+++ b/src/ui/theme-private.h
@@ -115,7 +115,7 @@ struct _MetaFrameGeometry
 
   /* used for a memset hack */
 #define ADDRESS_OF_BUTTON_RECTS(fgeom) (((char*)(fgeom)) + G_STRUCT_OFFSET (MetaFrameGeometry, close_rect))
-#define LENGTH_OF_BUTTON_RECTS (G_STRUCT_OFFSET (MetaFrameGeometry, unstick_rect) + sizeof (MetaButtonSpace) 
- G_STRUCT_OFFSET (MetaFrameGeometry, close_rect))
+#define LENGTH_OF_BUTTON_RECTS (G_STRUCT_OFFSET (MetaFrameGeometry, appmenu_rect) + sizeof (MetaButtonSpace) 
- G_STRUCT_OFFSET (MetaFrameGeometry, close_rect))
 
   /* The button rects (if changed adjust memset hack) */
   MetaButtonSpace close_rect;
@@ -123,12 +123,6 @@ struct _MetaFrameGeometry
   MetaButtonSpace min_rect;
   MetaButtonSpace menu_rect;
   MetaButtonSpace appmenu_rect;
-  MetaButtonSpace shade_rect;
-  MetaButtonSpace above_rect;
-  MetaButtonSpace stick_rect;
-  MetaButtonSpace unshade_rect;
-  MetaButtonSpace unabove_rect;
-  MetaButtonSpace unstick_rect;
   /* End of button rects (if changed adjust memset hack) */
 
   /* Saved button layout */
@@ -158,12 +152,6 @@ typedef enum
   META_BUTTON_TYPE_MINIMIZE,
   META_BUTTON_TYPE_MENU,
   META_BUTTON_TYPE_APPMENU,
-  META_BUTTON_TYPE_SHADE,
-  META_BUTTON_TYPE_ABOVE,
-  META_BUTTON_TYPE_STICK,
-  META_BUTTON_TYPE_UNSHADE,
-  META_BUTTON_TYPE_UNABOVE,
-  META_BUTTON_TYPE_UNSTICK,
   META_BUTTON_TYPE_LAST
 } MetaButtonType;
 
diff --git a/src/ui/theme.c b/src/ui/theme.c
index d86c251..87b4adb 100644
--- a/src/ui/theme.c
+++ b/src/ui/theme.c
@@ -177,17 +177,6 @@ rect_for_function (MetaFrameGeometry *fgeom,
         return &fgeom->close_rect;
       else
         return NULL;
-    case META_BUTTON_FUNCTION_STICK:
-    case META_BUTTON_FUNCTION_SHADE:
-    case META_BUTTON_FUNCTION_ABOVE:
-    case META_BUTTON_FUNCTION_UNSTICK:
-    case META_BUTTON_FUNCTION_UNSHADE:
-    case META_BUTTON_FUNCTION_UNABOVE:
-      /* Fringe buttons that used to be supported by theme versions >v1;
-       * if we want to support them again, we need to return the
-       * correspondings rects here
-       */
-      return NULL;
 
     case META_BUTTON_FUNCTION_LAST:
       return NULL;
@@ -457,22 +446,10 @@ meta_frame_layout_calc_geometry (MetaFrameLayout        *layout,
         }
 
       /* Otherwise we need to shave out a button. Shave
-       * above, stick, shade, min, max, close, then menu (menu is most useful);
+       * min, max, close, then menu (menu is most useful);
        * prefer the default button locations.
        */
-      if (strip_button (left_func_rects, &n_left, &fgeom->above_rect))
-        continue;
-      else if (strip_button (right_func_rects, &n_right, &fgeom->above_rect))
-        continue;
-      else if (strip_button (left_func_rects, &n_left, &fgeom->stick_rect))
-        continue;
-      else if (strip_button (right_func_rects, &n_right, &fgeom->stick_rect))
-        continue;
-      else if (strip_button (left_func_rects, &n_left, &fgeom->shade_rect))
-        continue;
-      else if (strip_button (right_func_rects, &n_right, &fgeom->shade_rect))
-        continue;
-      else if (strip_button (left_func_rects, &n_left, &fgeom->min_rect))
+      if (strip_button (left_func_rects, &n_left, &fgeom->min_rect))
         continue;
       else if (strip_button (right_func_rects, &n_right, &fgeom->min_rect))
         continue;
@@ -643,30 +620,6 @@ get_button_rect (MetaButtonType           type,
       *rect = fgeom->close_rect.visible;
       break;
 
-    case META_BUTTON_TYPE_SHADE:
-      *rect = fgeom->shade_rect.visible;
-      break;
-
-    case META_BUTTON_TYPE_UNSHADE:
-      *rect = fgeom->unshade_rect.visible;
-      break;
-
-    case META_BUTTON_TYPE_ABOVE:
-      *rect = fgeom->above_rect.visible;
-      break;
-
-    case META_BUTTON_TYPE_UNABOVE:
-      *rect = fgeom->unabove_rect.visible;
-      break;
-
-    case META_BUTTON_TYPE_STICK:
-      *rect = fgeom->stick_rect.visible;
-      break;
-
-    case META_BUTTON_TYPE_UNSTICK:
-      *rect = fgeom->unstick_rect.visible;
-      break;
-
     case META_BUTTON_TYPE_MAXIMIZE:
       *rect = fgeom->max_rect.visible;
       break;


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