- raise the window during maximization if the user clicked the maximize button, but otherwise don't - two fixes here. 1) only raise window in maximize if the window is focused, 2) remap window on reparent event
Dana Jansens danakj@orodu.net
1 files changed,
11 insertions(+),
6 deletions(-)
jump to
M
src/Window.cc
→
src/Window.cc
@@ -1442,9 +1442,11 @@
blackbox_attrib.flags &= ! (AttribMaxHoriz | AttribMaxVert); blackbox_attrib.attrib &= ! (AttribMaxHoriz | AttribMaxVert); - // when a resize is begun, maximize(0) is called to clear any maximization - // flags currently set. Otherwise it still thinks it is maximized. - // so we do not need to call configure() because resizing will handle it + /* + when a resize is begun, maximize(0) is called to clear any maximization + flags currently set. Otherwise it still thinks it is maximized. + so we do not need to call configure() because resizing will handle it + */ if (!flags.resizing) configure(blackbox_attrib.premax_x, blackbox_attrib.premax_y, blackbox_attrib.premax_w, blackbox_attrib.premax_h);@@ -1499,7 +1501,8 @@ flags.maximized = button;
configure(frame.changing.x(), frame.changing.y(), frame.changing.width(), frame.changing.height()); - screen->getWorkspace(blackbox_attrib.workspace)->raiseWindow(this); + if (flags.focused) + screen->getWorkspace(blackbox_attrib.workspace)->raiseWindow(this); redrawAllButtons(); setState(current_state); }@@ -2640,8 +2643,10 @@
XSetWindowBorderWidth(blackbox->getXDisplay(), client.window, client.old_bw); XEvent ev; - if (! XCheckTypedWindowEvent(blackbox->getXDisplay(), client.window, - ReparentNotify, &ev)) { + if (XCheckTypedWindowEvent(blackbox->getXDisplay(), client.window, + ReparentNotify, &ev)) { + remap = True; + } else { // according to the ICCCM - if the client doesn't reparent to // root, then we have to do it for them XReparentWindow(blackbox->getXDisplay(), client.window,