diff --git a/panel-plugins/power-manager-plugin/power-manager-button.c b/panel-plugins/power-manager-plugin/power-manager-button.c index f5f5f0f86c0dc46de20716dd1ea02f62d890cfa9..83017cc715ccb1a9ab76092a272a98ff5c3420cc 100644 --- a/panel-plugins/power-manager-plugin/power-manager-button.c +++ b/panel-plugins/power-manager-plugin/power-manager-button.c @@ -1087,9 +1087,23 @@ power_manager_button_press_event (GtkWidget *widget, GdkEventButton *event) { PowerManagerButton *button = POWER_MANAGER_BUTTON (widget); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); - power_manager_button_show_menu (button); - return TRUE; + if (event->button == 1 && !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button))) + { + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); + power_manager_button_show_menu (button); + return TRUE; + } + + if (event->button == 2) + { + gboolean state; + + state = xfconf_channel_get_bool (button->priv->channel, XFPM_PROPERTIES_PREFIX PRESENTATION_MODE, FALSE); + xfconf_channel_set_bool (button->priv->channel, XFPM_PROPERTIES_PREFIX PRESENTATION_MODE, !state); + return TRUE; + } + + return FALSE; } #ifdef XFCE_PLUGIN