remove the net_wm_desktop/state hints from a window when we stop managing it, so that if an app reuses the window, we don't place it on the wrong workspace the second time.
This commit is contained in:
parent
75b6a5a378
commit
4bebd476c3
1 changed files with 9 additions and 3 deletions
|
@ -2701,7 +2701,7 @@ void BlackboxWindow::propertyNotifyEvent(const XPropertyEvent *pe) {
|
|||
if (pe->state == PropertyDelete)
|
||||
return;
|
||||
|
||||
#ifdef DEBUG
|
||||
#if 0
|
||||
fprintf(stderr, "BlackboxWindow::propertyNotifyEvent(): for 0x%lx\n",
|
||||
client.window);
|
||||
#endif
|
||||
|
@ -2802,7 +2802,7 @@ void BlackboxWindow::propertyNotifyEvent(const XPropertyEvent *pe) {
|
|||
|
||||
|
||||
void BlackboxWindow::exposeEvent(const XExposeEvent *ee) {
|
||||
#ifdef DEBUG
|
||||
#if 0
|
||||
fprintf(stderr, "BlackboxWindow::exposeEvent() for 0x%lx\n", client.window);
|
||||
#endif
|
||||
|
||||
|
@ -3611,7 +3611,7 @@ void BlackboxWindow::endResize(void) {
|
|||
|
||||
|
||||
void BlackboxWindow::motionNotifyEvent(const XMotionEvent *me) {
|
||||
#ifdef DEBUG
|
||||
#if 0
|
||||
fprintf(stderr, "BlackboxWindow::motionNotifyEvent() for 0x%lx\n",
|
||||
client.window);
|
||||
#endif
|
||||
|
@ -3730,6 +3730,12 @@ void BlackboxWindow::restore(bool remap) {
|
|||
if (flags.shaded && ! flags.iconic)
|
||||
setState(NormalState);
|
||||
|
||||
// erase the netwm stuff that we read when a window maps, so that it
|
||||
// doesn't persist between mappings.
|
||||
// (these are the ones read in getNetWMFlags().)
|
||||
xatom->eraseValue(client.window, XAtom::net_wm_desktop);
|
||||
xatom->eraseValue(client.window, XAtom::net_wm_state);
|
||||
|
||||
restoreGravity(client.rect);
|
||||
|
||||
XUnmapWindow(blackbox->getXDisplay(), frame.window);
|
||||
|
|
Loading…
Reference in a new issue