[gtk+/treeview-refactor] Bug 609622 - disappearing statusicon



commit 017f637a765781518397c098e9b734a933e8ddfe
Author: Hans Breuer <hans breuer org>
Date:   Sun Nov 7 21:19:48 2010 +0100

    Bug 609622 - disappearing statusicon
    
    Windows 7 is managing status icon visibility across process lifetime,
    which did not work with GTK+ create icons. Apparently the mechanism
    does not require use of new API (like suggested by MSDN), but it is
    enough to give a "unique" tooltip at creation time.
    Formerly this initial tooltip was not set at all, later setting via
    gtk_status_icon_set_tooltip_text() is not enough, but luckily
    different follow-up tooltips don't disturb the intended behavior.
    (cherry picked from commit ae0544c636c72753098b698e4951897c609a75b6)
    (cherry picked from commit 8a9d458bafe368335d0acca2c324f878ee64463f)

 gtk/gtkstatusicon.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkstatusicon.c b/gtk/gtkstatusicon.c
index 7e7ab22..678cb8c 100644
--- a/gtk/gtkstatusicon.c
+++ b/gtk/gtkstatusicon.c
@@ -903,6 +903,17 @@ gtk_status_icon_init (GtkStatusIcon *status_icon)
   priv->nid.uCallbackMessage = WM_GTK_TRAY_NOTIFICATION;
   priv->nid.uFlags = NIF_MESSAGE;
 
+  /* To help win7 identify the icon create it with an application "unique" tip */
+  if (g_get_prgname ())
+  {
+    WCHAR *wcs = g_utf8_to_utf16 (g_get_prgname (), -1, NULL, NULL, NULL);
+
+    priv->nid.uFlags |= NIF_TIP;
+    wcsncpy (priv->nid.szTip, wcs, G_N_ELEMENTS (priv->nid.szTip) - 1);
+    priv->nid.szTip[G_N_ELEMENTS (priv->nid.szTip) - 1] = 0;
+    g_free (wcs);
+  }
+
   if (!Shell_NotifyIconW (NIM_ADD, &priv->nid))
     {
       g_warning (G_STRLOC ": Shell_NotifyIcon(NIM_ADD) failed");



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]