gtk: Implement click event for status icon.
authorCheng Zhao <zcbenz@gmail.com>
Mon, 2 Jun 2014 15:10:36 +0000 (23:10 +0800)
committerCheng Zhao <zcbenz@gmail.com>
Mon, 2 Jun 2014 15:10:36 +0000 (23:10 +0800)
atom/browser/ui/gtk/status_icon.cc
atom/browser/ui/gtk/status_icon.h

index 3de2a8f..433e4af 100644 (file)
@@ -12,6 +12,7 @@ namespace atom {
 StatusIcon::StatusIcon() : icon_(gtk_status_icon_new()) {
   gtk_status_icon_set_visible(icon_, TRUE);
 
+  g_signal_connect(icon_, "activate", G_CALLBACK(OnActivateThunk), this);
   g_signal_connect(icon_, "popup-menu", G_CALLBACK(OnPopupMenuThunk), this);
 }
 
@@ -48,4 +49,8 @@ void StatusIcon::OnPopupMenu(GtkWidget* widget, guint button, guint time) {
     menu_->PopupAsContextForStatusIcon(time, button, icon_);
 }
 
+void StatusIcon::OnActivate(GtkWidget* widget) {
+  NotifyClicked();
+}
+
 }  // namespace atom
index 60e6dd3..9c8aa1f 100644 (file)
@@ -30,6 +30,9 @@ class StatusIcon : public TrayIcon {
   // Callback invoked when user right-clicks on the status icon.
   CHROMEGTK_CALLBACK_2(StatusIcon, void, OnPopupMenu, guint, guint);
 
+  // Callback invoked when the icon is clicked.
+  CHROMEGTK_CALLBACK_0(StatusIcon, void, OnActivate);
+
   // The currently-displayed icon for the window.
   GtkStatusIcon* icon_;