[Xfce4-commits] <xfmpc:master> status-icon: Add popup menu with item "Quit" for status icon
Mike Massonnet
noreply at xfce.org
Sat Aug 13 10:54:06 CEST 2011
Updating branch refs/heads/master
to 8f0898e19c37d0124a4905c5244672a28122399e (commit)
from 642de204b16ca65ffbc5f797413971cfa030b028 (commit)
commit 8f0898e19c37d0124a4905c5244672a28122399e
Author: Mike Massonnet <mmassonnet at xfce.org>
Date: Sun Jul 31 20:53:50 2011 +0200
status-icon: Add popup menu with item "Quit" for status icon
src/main-window.vala | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/src/main-window.vala b/src/main-window.vala
index 06a723e..536e230 100644
--- a/src/main-window.vala
+++ b/src/main-window.vala
@@ -24,6 +24,7 @@ namespace Xfmpc {
public class MainWindow : Window {
private Gtk.StatusIcon status_icon;
+ private Gtk.Menu status_icon_menu;
private unowned Xfmpc.Mpdclient mpdclient;
private unowned Xfmpc.Preferences preferences;
@@ -69,6 +70,7 @@ namespace Xfmpc {
this.status_icon = new Gtk.StatusIcon.from_icon_name ("stock_volume");
show_hide_status_icon ();
this.status_icon.activate.connect (status_icon_activated);
+ this.status_icon.popup_menu.connect (status_icon_popup_menu);
this.preferences.notify["show-status-icon"].connect (show_hide_status_icon);
/* Window */
@@ -146,6 +148,18 @@ namespace Xfmpc {
}
}
+ private void status_icon_popup_menu (uint button, uint activate_time) {
+ if (this.status_icon_menu == null) {
+ this.status_icon_menu = new Gtk.Menu ();
+ var mi = new Gtk.ImageMenuItem.from_stock (Gtk.STOCK_QUIT, null);
+ mi.activate.connect (Gtk.main_quit);
+ this.status_icon_menu.add (mi);
+ this.status_icon_menu.show_all ();
+ }
+
+ this.status_icon_menu.popup (null, null, this.status_icon.position_menu, button, activate_time);
+ }
+
private bool refresh () {
if (this.mpdclient.is_connected ()) {
this.mpdclient.update_status ();
More information about the Xfce4-commits
mailing list