don't cache tray protocol availability result in wxTaskBarIconAreaBase::IsProtocolSupported(), it may change at runtime
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55992 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -60,23 +60,17 @@ wxTaskBarIconAreaBase::wxTaskBarIconAreaBase()
|
|||||||
|
|
||||||
bool wxTaskBarIconAreaBase::IsProtocolSupported()
|
bool wxTaskBarIconAreaBase::IsProtocolSupported()
|
||||||
{
|
{
|
||||||
static int s_supported = -1;
|
Display *display = GDK_DISPLAY();
|
||||||
if (s_supported == -1)
|
Screen *screen = DefaultScreenOfDisplay(display);
|
||||||
{
|
|
||||||
Display *display = GDK_DISPLAY();
|
|
||||||
Screen *screen = DefaultScreenOfDisplay(display);
|
|
||||||
|
|
||||||
char name[32];
|
char name[32];
|
||||||
g_snprintf(name, sizeof(name), "_NET_SYSTEM_TRAY_S%d",
|
g_snprintf(name, sizeof(name), "_NET_SYSTEM_TRAY_S%d",
|
||||||
XScreenNumberOfScreen(screen));
|
XScreenNumberOfScreen(screen));
|
||||||
Atom atom = XInternAtom(display, name, False);
|
Atom atom = XInternAtom(display, name, False);
|
||||||
|
|
||||||
Window manager = XGetSelectionOwner(display, atom);
|
Window manager = XGetSelectionOwner(display, atom);
|
||||||
|
|
||||||
s_supported = (manager != None);
|
return (manager != None);
|
||||||
}
|
|
||||||
|
|
||||||
return (bool)s_supported;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user