[Xfce4-commits] r25819 - in xfwm4/branches/xfce_4_4: . src
Olivier Fourdan
olivier at xfce.org
Sun Jun 17 01:17:23 CEST 2007
Author: olivier
Date: 2007-06-16 23:17:22 +0000 (Sat, 16 Jun 2007)
New Revision: 25819
Modified:
xfwm4/branches/xfce_4_4/NEWS
xfwm4/branches/xfce_4_4/src/client.c
xfwm4/branches/xfce_4_4/src/settings.c
Log:
Plug a leak in mouse button grab when changing theme
Modified: xfwm4/branches/xfce_4_4/NEWS
===================================================================
--- xfwm4/branches/xfce_4_4/NEWS 2007-06-16 23:15:15 UTC (rev 25818)
+++ xfwm4/branches/xfce_4_4/NEWS 2007-06-16 23:17:22 UTC (rev 25819)
@@ -12,6 +12,7 @@
- Transients for group shouldn't apply to other transients, or it breaks
stacking for some apps, noticeably mozilla "save as" dialog...
- Fix typo breaking compilation on systems without XShape 1.1 support
+- Plug a leak in mouse button grab when changing theme
4.4.1
=====
Modified: xfwm4/branches/xfce_4_4/src/client.c
===================================================================
--- xfwm4/branches/xfce_4_4/src/client.c 2007-06-16 23:15:15 UTC (rev 25818)
+++ xfwm4/branches/xfce_4_4/src/client.c 2007-06-16 23:17:22 UTC (rev 25819)
@@ -254,26 +254,26 @@
/* Recompute size and position of maximized windows */
if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ | CLIENT_FLAG_MAXIMIZED_VERT))
{
- maximization_flags |= FLAG_TEST (c->flags,
- CLIENT_FLAG_MAXIMIZED_HORIZ) ? WIN_STATE_MAXIMIZED_HORIZ : 0;
- maximization_flags |= FLAG_TEST (c->flags,
- CLIENT_FLAG_MAXIMIZED_VERT) ? WIN_STATE_MAXIMIZED_VERT : 0;
+ maximization_flags |= FLAG_TEST (c->flags,
+ CLIENT_FLAG_MAXIMIZED_HORIZ) ? WIN_STATE_MAXIMIZED_HORIZ : 0;
+ maximization_flags |= FLAG_TEST (c->flags,
+ CLIENT_FLAG_MAXIMIZED_VERT) ? WIN_STATE_MAXIMIZED_VERT : 0;
- /* Force an update by clearing the internal flags */
- FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ | CLIENT_FLAG_MAXIMIZED_VERT);
- clientToggleMaximized (c, maximization_flags, FALSE);
+ /* Force an update by clearing the internal flags */
+ FLAG_UNSET (c->flags, CLIENT_FLAG_MAXIMIZED_HORIZ | CLIENT_FLAG_MAXIMIZED_VERT);
+ clientToggleMaximized (c, maximization_flags, FALSE);
- configure_flags |= CFG_FORCE_REDRAW;
- mask &= ~UPDATE_FRAME;
+ configure_flags |= CFG_FORCE_REDRAW;
+ mask &= ~UPDATE_FRAME;
}
}
if (configure_flags != 0L)
{
- wc.x = c->x;
- wc.y = c->y;
- wc.width = c->width;
- wc.height = c->height;
- clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, configure_flags);
+ wc.x = c->x;
+ wc.y = c->y;
+ wc.width = c->width;
+ wc.height = c->height;
+ clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, configure_flags);
}
if (mask & UPDATE_FRAME)
{
Modified: xfwm4/branches/xfce_4_4/src/settings.c
===================================================================
--- xfwm4/branches/xfce_4_4/src/settings.c 2007-06-16 23:15:15 UTC (rev 25818)
+++ xfwm4/branches/xfce_4_4/src/settings.c 2007-06-16 23:17:22 UTC (rev 25819)
@@ -54,7 +54,7 @@
/* Forward static decls. */
-static void check_for_grabs (ScreenInfo *);
+static void update_grabs (ScreenInfo *);
static void set_settings_margin (ScreenInfo *,
int ,
int);
@@ -84,16 +84,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
@@ -208,7 +205,7 @@
else 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"))
{
@@ -225,7 +222,7 @@
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/SnapToBorder"))
{
@@ -449,12 +446,11 @@
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/RestoreOnMove"))
{
screen_info->params->restore_on_move = setting->data.v_int;
- check_for_grabs (screen_info);
}
else if (!strcmp (name, "Xfwm/ScrollWorkspaces"))
{
@@ -594,7 +590,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,
@@ -619,7 +614,6 @@
&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/SnapToBorder", CHANNEL1,
@@ -777,10 +771,7 @@
if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/EasyClick", CHANNEL5,
&setting) == MCS_SUCCESS)
{
- if (setting->type == MCS_TYPE_STRING)
- {
- setValue ("easy_click", setting->data.v_string, rc);
- }
+ setValue ("easy_click", setting->data.v_string, rc);
mcs_setting_free (setting);
}
if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/FocusHint", CHANNEL5,
@@ -853,14 +844,12 @@
&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/RestoreOnMove", CHANNEL5,
&setting) == MCS_SUCCESS)
{
setBooleanValueFromInt ("restore_on_move", setting->data.v_int, rc);
- check_for_grabs (screen_info);
mcs_setting_free (setting);
}
if (mcs_client_get_setting (screen_info->mcs_client, "Xfwm/ScrollWorkspaces", CHANNEL5,
@@ -1454,6 +1443,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