X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/edd6813c826edc2311548da53eb83e7f1bc18d2b..3f8cdda4851796e5f5f5bcd82d9e867a30581a6f:/src/gtk/taskbar.cpp diff --git a/src/gtk/taskbar.cpp b/src/gtk/taskbar.cpp index 8035e5b342..ee192ae7b9 100644 --- a/src/gtk/taskbar.cpp +++ b/src/gtk/taskbar.cpp @@ -32,6 +32,7 @@ wxTaskBarIconAreaBase::wxTaskBarIconAreaBase() if (IsProtocolSupported()) { m_widget = GTK_WIDGET(egg_tray_icon_new("systray icon")); + g_object_ref(m_widget); gtk_window_set_resizable(GTK_WINDOW(m_widget), false); wxLogTrace(_T("systray"), _T("using freedesktop.org systray spec")); @@ -59,23 +60,17 @@ wxTaskBarIconAreaBase::wxTaskBarIconAreaBase() bool wxTaskBarIconAreaBase::IsProtocolSupported() { - static int s_supported = -1; - if (s_supported == -1) - { - Display *display = GDK_DISPLAY(); - Screen *screen = DefaultScreenOfDisplay(display); - - char name[32]; - g_snprintf(name, sizeof(name), "_NET_SYSTEM_TRAY_S%d", - XScreenNumberOfScreen(screen)); - Atom atom = XInternAtom(display, name, False); + Display *display = GDK_DISPLAY(); + Screen *screen = DefaultScreenOfDisplay(display); - Window manager = XGetSelectionOwner(display, atom); + char name[32]; + g_snprintf(name, sizeof(name), "_NET_SYSTEM_TRAY_S%d", + XScreenNumberOfScreen(screen)); + Atom atom = XInternAtom(display, name, False); - s_supported = (manager != None); - } + Window manager = XGetSelectionOwner(display, atom); - return (bool)s_supported; + return (manager != None); } //-----------------------------------------------------------------------------