|
|
@@ -608,7 +608,7 @@ PuglStatus puglX11GrabFocus(const PuglView* const view) |
|
|
|
// -------------------------------------------------------------------------------------------------------------------- |
|
|
|
// X11 specific, set dialog window type and pid hints |
|
|
|
|
|
|
|
void puglX11SetWindowTypeAndPID(const PuglView* const view) |
|
|
|
void puglX11SetWindowTypeAndPID(const PuglView* const view, const bool isStandalone) |
|
|
|
{ |
|
|
|
const PuglInternals* const impl = view->impl; |
|
|
|
|
|
|
@@ -618,14 +618,15 @@ void puglX11SetWindowTypeAndPID(const PuglView* const view) |
|
|
|
|
|
|
|
const Atom _wt = XInternAtom(impl->display, "_NET_WM_WINDOW_TYPE", False); |
|
|
|
|
|
|
|
// Setting the window to both dialog and normal will produce a decorated floating dialog |
|
|
|
// Order is important: DIALOG needs to come before NORMAL |
|
|
|
const Atom _wts[2] = { |
|
|
|
XInternAtom(impl->display, "_NET_WM_WINDOW_TYPE_DIALOG", False), |
|
|
|
XInternAtom(impl->display, "_NET_WM_WINDOW_TYPE_NORMAL", False) |
|
|
|
}; |
|
|
|
Atom _wts[2]; |
|
|
|
int numAtoms = 0; |
|
|
|
|
|
|
|
XChangeProperty(impl->display, impl->win, _wt, XA_ATOM, 32, PropModeReplace, (const uchar*)&_wts, 2); |
|
|
|
if (! isStandalone) |
|
|
|
_wts[numAtoms++] = XInternAtom(impl->display, "_NET_WM_WINDOW_TYPE_DIALOG", False); |
|
|
|
|
|
|
|
_wts[numAtoms++] = XInternAtom(impl->display, "_NET_WM_WINDOW_TYPE_NORMAL", False); |
|
|
|
|
|
|
|
XChangeProperty(impl->display, impl->win, _wt, XA_ATOM, 32, PropModeReplace, (const uchar*)&_wts, numAtoms); |
|
|
|
} |
|
|
|
|
|
|
|
// -------------------------------------------------------------------------------------------------------------------- |
|
|
|