diff --git a/defaults/defaults b/defaults/defaults
index 30580732..473c5273 100644
--- a/defaults/defaults
+++ b/defaults/defaults
@@ -25,6 +25,7 @@ frame_opacity=100
full_width_title=true
horiz_scroll_opacity=false
inactive_opacity=100
+lower_on_middleclick=true
maximized_offset=0
mousewheel_rollup=true
move_opacity=100
diff --git a/settings-dialogs/tweaks-settings.c b/settings-dialogs/tweaks-settings.c
index d5f711be..2719516b 100644
--- a/settings-dialogs/tweaks-settings.c
+++ b/settings-dialogs/tweaks-settings.c
@@ -194,6 +194,7 @@ wm_tweaks_dialog_configure_widgets (GtkBuilder *builder)
GtkWidget *urgent_blink = GTK_WIDGET (gtk_builder_get_object (builder, "urgent_blink"));
GtkWidget *repeat_urgent_blink = GTK_WIDGET (gtk_builder_get_object (builder, "repeat_urgent_blink"));
GtkWidget *mousewheel_rollup = GTK_WIDGET (gtk_builder_get_object (builder, "mousewheel_rollup"));
+ GtkWidget *lower_on_middleclick = GTK_WIDGET (gtk_builder_get_object (builder, "lower_on_middleclick"));
/* Workspaces tab */
GtkWidget *scroll_workspaces_check = GTK_WIDGET (gtk_builder_get_object (builder, "scroll_workspaces_check"));
@@ -370,6 +371,10 @@ wm_tweaks_dialog_configure_widgets (GtkBuilder *builder)
"/general/mousewheel_rollup",
G_TYPE_BOOLEAN,
(GObject *)mousewheel_rollup, "active");
+ xfconf_g_property_bind (xfwm4_channel,
+ "/general/lower_on_middleclick",
+ G_TYPE_BOOLEAN,
+ (GObject *)lower_on_middleclick, "active");
gtk_widget_set_sensitive (repeat_urgent_blink,
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (urgent_blink)));
gtk_widget_set_sensitive (titleless_maximize_check,
diff --git a/settings-dialogs/xfwm4-tweaks-dialog.glade b/settings-dialogs/xfwm4-tweaks-dialog.glade
index 9e2cee50..b1d11d94 100644
--- a/settings-dialogs/xfwm4-tweaks-dialog.glade
+++ b/settings-dialogs/xfwm4-tweaks-dialog.glade
@@ -546,7 +546,23 @@ or "skip taskbar" properties set
False
False
- 7
+ 8
+
+
+
+
+
+ False
+ False
+ 9
diff --git a/src/events.c b/src/events.c
index f536fee1..9b7504c9 100644
--- a/src/events.c
+++ b/src/events.c
@@ -784,7 +784,10 @@ titleButton (Client *c, guint state, XfwmEventButton *event)
}
else if (event->button == Button2)
{
- clientLower (c, None);
+ if (screen_info->params->lower_on_middleclick)
+ {
+ clientLower (c, None);
+ }
}
else if (event->button == Button3)
{
diff --git a/src/settings.c b/src/settings.c
index 9c473e9c..73607c66 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -671,6 +671,7 @@ loadSettings (ScreenInfo *screen_info)
{"full_width_title", NULL, G_TYPE_BOOLEAN, TRUE},
{"horiz_scroll_opacity", NULL, G_TYPE_BOOLEAN, FALSE},
{"inactive_opacity", NULL, G_TYPE_INT, TRUE},
+ {"lower_on_middleclick", NULL, G_TYPE_BOOLEAN, TRUE},
{"margin_bottom", NULL, G_TYPE_INT, FALSE},
{"margin_left", NULL, G_TYPE_INT, FALSE},
{"margin_right", NULL, G_TYPE_INT, FALSE},
@@ -768,6 +769,8 @@ loadSettings (ScreenInfo *screen_info)
getBoolValue ("focus_new", rc);
screen_info->params->horiz_scroll_opacity =
getBoolValue ("horiz_scroll_opacity", rc);
+ screen_info->params->lower_on_middleclick =
+ getBoolValue ("lower_on_middleclick", rc);
screen_info->params->mousewheel_rollup =
getBoolValue ("mousewheel_rollup", rc);
screen_info->params->prevent_focus_stealing =
@@ -1311,6 +1314,10 @@ cb_xfwm4_channel_property_changed(XfconfChannel *channel, const gchar *property_
{
screen_info->params->horiz_scroll_opacity = g_value_get_boolean (value);
}
+ else if (!strcmp (name, "lower_on_middleclick"))
+ {
+ screen_info->params->lower_on_middleclick = g_value_get_boolean (value);
+ }
else if (!strcmp (name, "mousewheel_rollup"))
{
screen_info->params->mousewheel_rollup = g_value_get_boolean (value);
diff --git a/src/settings.h b/src/settings.h
index 334acdd4..5c2eda7e 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -210,6 +210,7 @@ struct _XfwmParams
gboolean focus_new;
gboolean full_width_title;
gboolean horiz_scroll_opacity;
+ gboolean lower_on_middleclick;
gboolean mousewheel_rollup;
gboolean prevent_focus_stealing;
gboolean raise_on_click;