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 + + + + + Use mouse middleclick to lower the window + False + True + True + False + True + True + + + 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;