metacity r4091 - in trunk: . src src/core src/include



Author: tthurman
Date: Tue Jan 27 21:05:42 2009
New Revision: 4091
URL: http://svn.gnome.org/viewvc/metacity?rev=4091&view=rev

Log:
        Added a gconf key to swap the meanings of the right and
        middle buttons when the modifier key is held down.
        Closes #437910.  Thanks to Matt Kraai for looking over
        the patch.
	* src/core/display.c:
	* src/core/prefs.c:
	* src/include/prefs.h:
	* src/metacity.schemas.in.in:



Modified:
   trunk/ChangeLog
   trunk/src/core/display.c
   trunk/src/core/prefs.c
   trunk/src/include/prefs.h
   trunk/src/metacity.schemas.in.in

Modified: trunk/src/core/display.c
==============================================================================
--- trunk/src/core/display.c	(original)
+++ trunk/src/core/display.c	Tue Jan 27 21:05:42 2009
@@ -1669,7 +1669,7 @@
               if (!unmodified)
                 begin_move = TRUE;
             }
-          else if (!unmodified && event->xbutton.button == 2)
+          else if (!unmodified && event->xbutton.button == meta_prefs_get_mouse_button_resize())
             {
               if (window->has_resize_func)
                 {
@@ -1718,7 +1718,7 @@
                                                 event->xbutton.y_root);
                 }
             }
-          else if (event->xbutton.button == 3)
+          else if (event->xbutton.button == meta_prefs_get_mouse_button_menu())
             {
               if (meta_prefs_get_raise_on_click ())
                 meta_window_raise (window);

Modified: trunk/src/core/prefs.c
==============================================================================
--- trunk/src/core/prefs.c	(original)
+++ trunk/src/core/prefs.c	Tue Jan 27 21:05:42 2009
@@ -94,6 +94,7 @@
 static char *cursor_theme = NULL;
 static int   cursor_size = 24;
 static gboolean compositing_manager = FALSE;
+static gboolean resize_with_right_button = FALSE;
 
 static MetaVisualBellType visual_bell_type = META_VISUAL_BELL_FULLSCREEN_FLASH;
 static MetaButtonLayout button_layout;
@@ -403,6 +404,11 @@
       &compositing_manager,
       FALSE,
     },
+    { "/apps/metacity/general/resize_with_right_button",
+      META_PREF_RESIZE_WITH_RIGHT_BUTTON,
+      &resize_with_right_button,
+      FALSE,
+    },
     { NULL, 0, NULL, FALSE },
   };
 
@@ -1740,6 +1746,9 @@
 
     case META_PREF_COMPOSITING_MANAGER:
       return "COMPOSITING_MANAGER";
+
+    case META_PREF_RESIZE_WITH_RIGHT_BUTTON:
+      return "RESIZE_WITH_RIGHT_BUTTON";
     }
 
   return "(unknown)";
@@ -2714,6 +2723,18 @@
   return compositing_manager;
 }
 
+guint
+meta_prefs_get_mouse_button_resize (void)
+{
+  return resize_with_right_button ? 3: 2;
+}
+
+guint
+meta_prefs_get_mouse_button_menu (void)
+{
+  return resize_with_right_button ? 2: 3;
+}
+
 void
 meta_prefs_set_compositing_manager (gboolean whether)
 {

Modified: trunk/src/include/prefs.h
==============================================================================
--- trunk/src/include/prefs.h	(original)
+++ trunk/src/include/prefs.h	Tue Jan 27 21:05:42 2009
@@ -58,7 +58,8 @@
   META_PREF_GNOME_ANIMATIONS,
   META_PREF_CURSOR_THEME,
   META_PREF_CURSOR_SIZE,
-  META_PREF_COMPOSITING_MANAGER
+  META_PREF_COMPOSITING_MANAGER,
+  META_PREF_RESIZE_WITH_RIGHT_BUTTON
 } MetaPreference;
 
 typedef void (* MetaPrefsChangedFunc) (MetaPreference pref,
@@ -73,6 +74,8 @@
 const char* meta_preference_to_string (MetaPreference pref);
 
 MetaVirtualModifier         meta_prefs_get_mouse_button_mods  (void);
+guint                       meta_prefs_get_mouse_button_resize (void);
+guint                       meta_prefs_get_mouse_button_menu  (void);
 MetaFocusMode               meta_prefs_get_focus_mode         (void);
 MetaFocusNewWindows         meta_prefs_get_focus_new_windows  (void);
 gboolean                    meta_prefs_get_raise_on_click     (void);

Modified: trunk/src/metacity.schemas.in.in
==============================================================================
--- trunk/src/metacity.schemas.in.in	(original)
+++ trunk/src/metacity.schemas.in.in	Tue Jan 27 21:05:42 2009
@@ -15,6 +15,8 @@
            Clicking a window while holding down this modifier key 
            will move the window (left click), resize the window 
            (middle click), or show the window menu (right click).
+           The left and right operations may be swapped
+           using the "mouse_button_resize" key.
            Modifier is expressed as "<Alt>" or "<Super>"
            for example.
          </long>
@@ -22,6 +24,23 @@
     </schema>
 
     <schema>
+      <key>/schemas/apps/metacity/general/resize_with_right_button</key>
+      <applyto>/apps/metacity/general/resize_with_right_button</applyto>
+      <owner>metacity</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+         <short>Whether to resize with the right button</short>
+         <long>
+           Set this to true to resize with the right button and show a menu
+           with the middle button while holding down the key given in
+           "mouse_button_modifier"; set it to false to make it work the
+           opposite way around.
+         </long>
+      </locale>
+    </schema>
+
+    <schema>
       <key>/schemas/apps/metacity/general/button_layout</key>
       <applyto>/apps/metacity/general/button_layout</applyto>
       <owner>metacity</owner>



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