Browse Source

Do not set _NET_WM_WINDOW_TYPE_DIALOG hint for standalones

Signed-off-by: falkTX <falktx@falktx.com>
pull/351/head
falkTX 3 years ago
parent
commit
400dca29de
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
3 changed files with 11 additions and 10 deletions
  1. +1
    -1
      dgl/src/WindowPrivateData.cpp
  2. +9
    -8
      dgl/src/pugl.cpp
  3. +1
    -1
      dgl/src/pugl.hpp

+ 1
- 1
dgl/src/WindowPrivateData.cpp View File

@@ -761,7 +761,7 @@ PuglStatus Window::PrivateData::puglEventCallback(PuglView* const view, const Pu
case PUGL_CREATE:
#ifdef HAVE_X11
if (! pData->isEmbed)
puglX11SetWindowTypeAndPID(view);
puglX11SetWindowTypeAndPID(view, pData->appData->isStandalone);
#endif
break;



+ 9
- 8
dgl/src/pugl.cpp View File

@@ -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);
}

// --------------------------------------------------------------------------------------------------------------------


+ 1
- 1
dgl/src/pugl.hpp View File

@@ -134,7 +134,7 @@ puglX11GrabFocus(const PuglView* view);

// X11 specific, set dialog window type and pid hints
PUGL_API void
puglX11SetWindowTypeAndPID(const PuglView* view);
puglX11SetWindowTypeAndPID(const PuglView* view, bool isStandalone);
#endif

PUGL_END_DECLS


Loading…
Cancel
Save