[Xfce4-commits] r25820 - xfwm4/branches/xfce_4_2/src

Olivier Fourdan olivier at xfce.org
Sun Jun 17 01:17:52 CEST 2007


Author: olivier
Date: 2007-06-16 23:17:52 +0000 (Sat, 16 Jun 2007)
New Revision: 25820

Modified:
   xfwm4/branches/xfce_4_2/src/settings.c
Log:
Plug a leak in mouse button grab when changing theme

Modified: xfwm4/branches/xfce_4_2/src/settings.c
===================================================================
--- xfwm4/branches/xfce_4_2/src/settings.c	2007-06-16 23:17:22 UTC (rev 25819)
+++ xfwm4/branches/xfce_4_2/src/settings.c	2007-06-16 23:17:52 UTC (rev 25820)
@@ -51,7 +51,7 @@
 
 /* Forward static decls. */
 
-static void              check_for_grabs      (ScreenInfo *);
+static void              update_grabs         (ScreenInfo *);
 static void              set_settings_margin  (ScreenInfo *, 
                                                int , 
                                                int);
@@ -83,16 +83,13 @@
                                                int);
 
 static void
-check_for_grabs (ScreenInfo *screen_info)
+update_grabs (ScreenInfo *screen_info)
 {
+    clientUngrabMouseButtonForAll (screen_info);
     if ((screen_info->params->raise_on_click) || (screen_info->params->click_to_focus))
     {
         clientGrabMouseButtonForAll (screen_info);
     }
-    else if (!(screen_info->params->raise_on_click) && !(screen_info->params->click_to_focus))
-    {
-        clientUngrabMouseButtonForAll (screen_info);
-    }
 }
 
 static void
@@ -162,7 +159,7 @@
                     if (!strcmp (name, "Xfwm/ClickToFocus"))
                     {
                         screen_info->params->click_to_focus = setting->data.v_int;
-                        check_for_grabs (screen_info);
+                        update_grabs (screen_info);
                     }
                     else if (!strcmp (name, "Xfwm/FocusNewWindow"))
                     {
@@ -195,12 +192,12 @@
                     else if (!strcmp (name, "Xfwm/RaiseOnClick"))
                     {
                         screen_info->params->raise_on_click = setting->data.v_int;
-                        check_for_grabs (screen_info);
+                        update_grabs (screen_info);
                     }
                     else if (!strcmp (name, "Xfwm/RaiseWithAnyButton"))
                     {
                         screen_info->params->raise_with_any_button = setting->data.v_int;
-                        check_for_grabs (screen_info);
+                        update_grabs (screen_info);
                     }
                     else if (!strcmp (name, "Xfwm/SnapToBorder"))
                     {
@@ -443,7 +440,6 @@
                 &setting) == MCS_SUCCESS)
         {
             setBooleanValueFromInt ("click_to_focus", setting->data.v_int, rc);
-            check_for_grabs (screen_info);
             mcs_setting_free (setting);
         }
         if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/FocusNewWindow", CHANNEL1,
@@ -486,14 +482,12 @@
                 &setting) == MCS_SUCCESS)
         {
             setBooleanValueFromInt ("raise_on_click", setting->data.v_int, rc);
-            check_for_grabs (screen_info);
             mcs_setting_free (setting);
         }
         if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/RaiseWithAnyButton", CHANNEL1,
                 &setting) == MCS_SUCCESS)
         {
             setBooleanValueFromInt ("raise_with_any_button", setting->data.v_int, rc);
-            check_for_grabs (screen_info);
             mcs_setting_free (setting);
         }
         if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/SnapToBorder", CHANNEL1,
@@ -505,8 +499,7 @@
         if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/SnapToWindows", CHANNEL1,
                 &setting) == MCS_SUCCESS)
         {
-            setBooleanValueFromInt ("snap_to_windows", setting->data.v_int,
-                rc);
+            setBooleanValueFromInt ("snap_to_windows", setting->data.v_int, rc);
             mcs_setting_free (setting);
         }
         if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/SnapWidth", CHANNEL1,
@@ -1195,6 +1188,7 @@
     loadRcData (screen_info, rc);
     loadMcsData (screen_info, rc);
     loadTheme (screen_info, rc);
+    update_grabs (screen_info);
 
     if (!loadKeyBindings (screen_info, rc))
     {



More information about the Xfce4-commits mailing list