[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