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 - - Raise window when clicking _inside application window + True - True - False - True - True + vertical + 6 + + + Raise window when clicking _inside application window + True + True + False + True + True + + + 0 + + + + + True + 12 + + + _Using mouse wheel inside application window raises window + True + False + True + True + True + True + + + + + 1 + + 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;