diff -Naur xfwm4-4.7.4-orig//defaults/defaults xfwm4-4.7.4/defaults/defaults
--- xfwm4-4.7.4-orig//defaults/defaults 2011-01-02 14:27:02.000000000 +0100
+++ xfwm4-4.7.4/defaults/defaults 2011-01-06 22:11:43.000000000 +0100
@@ -30,6 +30,7 @@
prevent_focus_stealing=false
raise_delay=250
raise_on_click=true
+raise_on_wheel=true
raise_on_focus=false
raise_with_any_button=true
repeat_urgent_blink=false
diff -Naur xfwm4-4.7.4-orig//settings-dialogs/Makefile.in xfwm4-4.7.4/settings-dialogs/Makefile.in
--- xfwm4-4.7.4-orig//settings-dialogs/Makefile.in 2011-01-02 14:27:08.000000000 +0100
+++ xfwm4-4.7.4/settings-dialogs/Makefile.in 2011-01-06 21:01:03.000000000 +0100
@@ -845,8 +845,8 @@
@MAINTAINER_MODE_TRUE@xfwm4-workspace-dialog_ui.h: xfwm4-workspace-dialog.glade
@MAINTAINER_MODE_TRUE@ $(AM_V_GEN) exo-csource --static --strip-comments --strip-content --name=workspace_dialog_ui $< >$@
-@MAINTAINER_MODE_TRUE@xfwm4-dialog_ui.h: xfwm4-dialog.glade
-@MAINTAINER_MODE_TRUE@ $(AM_V_GEN) exo-csource --static --strip-comments --strip-content --name=xfwm4_dialog_ui $< >$@
+xfwm4-dialog_ui.h: xfwm4-dialog.glade
+ $(AM_V_GEN) exo-csource --static --strip-comments --strip-content --name=xfwm4_dialog_ui $< >$@
@MAINTAINER_MODE_TRUE@xfwm4-tweaks-dialog_ui.h: xfwm4-tweaks-dialog.glade
@MAINTAINER_MODE_TRUE@ $(AM_V_GEN) exo-csource --static --strip-comments --strip-content --name=tweaks_dialog_ui $< >$@
diff -Naur xfwm4-4.7.4-orig//settings-dialogs/xfwm4-dialog.glade xfwm4-4.7.4/settings-dialogs/xfwm4-dialog.glade
--- xfwm4-4.7.4-orig//settings-dialogs/xfwm4-dialog.glade 2011-01-02 14:27:02.000000000 +0100
+++ xfwm4-4.7.4/settings-dialogs/xfwm4-dialog.glade 2011-01-06 21:20:41.000000000 +0100
@@ -830,13 +830,43 @@
6
12
-
diff -Naur xfwm4-4.7.4-orig//settings-dialogs/xfwm4-settings.c xfwm4-4.7.4/settings-dialogs/xfwm4-settings.c
--- xfwm4-4.7.4-orig//settings-dialogs/xfwm4-settings.c 2011-01-02 14:27:02.000000000 +0100
+++ xfwm4-4.7.4/settings-dialogs/xfwm4-settings.c 2011-01-06 21:50:11.000000000 +0100
@@ -166,6 +166,8 @@
const gchar *property,
const GValue *value,
XfwmSettings *settings);
+static void xfwm_settings_raise_on_click_changed (GtkToggleButton *toggle,
+ GtkWidget *invert);
static void xfwm_settings_initialize_shortcuts (XfwmSettings *settings);
static void xfwm_settings_reload_shortcuts (XfwmSettings *settings);
static void xfwm_settings_shortcut_added (XfceShortcutsProvider *provider,
@@ -406,6 +408,7 @@
GtkWidget *focus_delay_scale;
GtkWidget *focus_raise_delay_scale;
GtkWidget *raise_on_click_check;
+ GtkWidget *raise_on_wheel_check;
GtkWidget *raise_on_focus_check;
GtkWidget *click_to_focus_radio;
GtkWidget *focus_new_check;
@@ -618,6 +621,7 @@
focus_new_check = GTK_WIDGET (gtk_builder_get_object (settings->priv->builder, "focus_new_check"));
raise_on_focus_check = GTK_WIDGET (gtk_builder_get_object (settings->priv->builder, "raise_on_focus_check"));
raise_on_click_check = GTK_WIDGET (gtk_builder_get_object (settings->priv->builder, "raise_on_click_check"));
+ raise_on_wheel_check = GTK_WIDGET (gtk_builder_get_object (settings->priv->builder, "raise_on_wheel_check"));
click_to_focus_radio = GTK_WIDGET (gtk_builder_get_object (settings->priv->builder, "click_to_focus_radio"));
/* Focus tab */
@@ -627,6 +631,8 @@
gtk_range_get_adjustment (GTK_RANGE (focus_raise_delay_scale)), "value");
xfconf_g_property_bind (settings->priv->wm_channel, "/general/raise_on_click", G_TYPE_BOOLEAN,
raise_on_click_check, "active");
+ xfconf_g_property_bind (settings->priv->wm_channel, "/general/raise_on_wheel", G_TYPE_BOOLEAN,
+ raise_on_wheel_check, "active");
xfconf_g_property_bind (settings->priv->wm_channel, "/general/raise_on_focus", G_TYPE_BOOLEAN,
raise_on_focus_check, "active");
xfconf_g_property_bind (settings->priv->wm_channel, "/general/focus_new", G_TYPE_BOOLEAN,
@@ -634,6 +640,13 @@
xfconf_g_property_bind (settings->priv->wm_channel, "/general/click_to_focus", G_TYPE_BOOLEAN,
click_to_focus_radio, "active");
+ g_signal_connect (G_OBJECT (raise_on_click_check), "toggled",
+ G_CALLBACK (xfwm_settings_raise_on_click_changed), raise_on_wheel_check);
+
+ gtk_widget_set_sensitive (GTK_WIDGET (raise_on_wheel_check),
+ gtk_toggle_button_get_active (
+ GTK_TOGGLE_BUTTON (raise_on_click_check)));
+
g_signal_connect (settings->priv->wm_channel, "property-changed::/general/click_to_focus",
G_CALLBACK (xfwm_settings_click_to_focus_property_changed), settings);
@@ -1663,6 +1676,13 @@
+static void
+xfwm_settings_raise_on_click_changed (GtkToggleButton *toggle, GtkWidget *invert)
+{
+ gtk_widget_set_sensitive (invert, gtk_toggle_button_get_active (toggle));
+}
+
+
static void
xfwm_settings_initialize_shortcuts (XfwmSettings *settings)
diff -Naur xfwm4-4.7.4-orig//src/focus.c xfwm4-4.7.4/src/focus.c
--- xfwm4-4.7.4-orig//src/focus.c 2011-01-02 14:27:01.000000000 +0100
+++ xfwm4-4.7.4/src/focus.c 2011-01-06 22:53:53.000000000 +0100
@@ -715,7 +715,16 @@
screen_info = c->screen_info;
if (screen_info->params->raise_with_any_button)
{
- grabButton(clientGetXDisplay (c), AnyButton, AnyModifier, c->window);
+ if (screen_info->params->raise_on_wheel)
+ {
+ grabButton(clientGetXDisplay (c), AnyButton, AnyModifier, c->window);
+ }
+ else
+ {
+ grabButton(clientGetXDisplay (c), Button1, AnyModifier, c->window);
+ grabButton(clientGetXDisplay (c), Button2, AnyModifier, c->window);
+ grabButton(clientGetXDisplay (c), Button3, AnyModifier, c->window);
+ }
}
else
{
diff -Naur xfwm4-4.7.4-orig//src/settings.c xfwm4-4.7.4/src/settings.c
--- xfwm4-4.7.4-orig//src/settings.c 2011-01-02 14:27:01.000000000 +0100
+++ xfwm4-4.7.4/src/settings.c 2011-01-06 22:05:30.000000000 +0100
@@ -700,7 +700,8 @@
{"mousewheel_rollup", NULL, G_TYPE_BOOLEAN, TRUE},
{"prevent_focus_stealing", NULL, G_TYPE_BOOLEAN, TRUE},
{"raise_delay", NULL, G_TYPE_INT, TRUE},
- {"raise_on_click", NULL, G_TYPE_BOOLEAN, TRUE},
+ {"raise_on_click", NULL, G_TYPE_BOOLEAN, TRUE},
+ {"raise_on_wheel", NULL, G_TYPE_BOOLEAN, TRUE},
{"raise_on_focus", NULL, G_TYPE_BOOLEAN, TRUE},
{"raise_with_any_button", NULL, G_TYPE_BOOLEAN, TRUE},
{"repeat_urgent_blink", NULL, G_TYPE_BOOLEAN, TRUE},
@@ -784,6 +785,8 @@
getIntValue ("focus_delay", rc);
screen_info->params->raise_on_click =
getBoolValue ("raise_on_click", rc);
+ screen_info->params->raise_on_wheel =
+ getBoolValue ("raise_on_wheel", rc);
screen_info->params->raise_with_any_button =
getBoolValue ("raise_with_any_button", rc);
screen_info->params->repeat_urgent_blink =
@@ -1234,6 +1237,11 @@
screen_info->params->raise_on_click = g_value_get_boolean (value);
update_grabs (screen_info);
}
+ else if (!strcmp (name, "raise_on_wheel"))
+ {
+ screen_info->params->raise_on_wheel = g_value_get_boolean (value);
+ update_grabs (screen_info);
+ }
else if (!strcmp (name, "repeat_urgent_blink"))
{
screen_info->params->repeat_urgent_blink = g_value_get_boolean (value);
diff -Naur xfwm4-4.7.4-orig//src/settings.h xfwm4-4.7.4/src/settings.h
--- xfwm4-4.7.4-orig//src/settings.h 2011-01-02 14:27:01.000000000 +0100
+++ xfwm4-4.7.4/src/settings.h 2011-01-06 22:26:10.000000000 +0100
@@ -207,6 +207,7 @@
gboolean mousewheel_rollup;
gboolean prevent_focus_stealing;
gboolean raise_on_click;
+ gboolean raise_on_wheel;
gboolean raise_on_focus;
gboolean raise_with_any_button;
gboolean repeat_urgent_blink;