- 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
This commit is contained in:
Dana Jansens 2002-05-25 15:45:09 +00:00
parent 2f65b6533c
commit c04cb76409

View file

@ -1442,9 +1442,11 @@ void BlackboxWindow::maximize(unsigned int button) {
blackbox_attrib.flags &= ! (AttribMaxHoriz | AttribMaxVert); blackbox_attrib.flags &= ! (AttribMaxHoriz | AttribMaxVert);
blackbox_attrib.attrib &= ! (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. when a resize is begun, maximize(0) is called to clear any maximization
// so we do not need to call configure() because resizing will handle it 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) if (!flags.resizing)
configure(blackbox_attrib.premax_x, blackbox_attrib.premax_y, configure(blackbox_attrib.premax_x, blackbox_attrib.premax_y,
blackbox_attrib.premax_w, blackbox_attrib.premax_h); blackbox_attrib.premax_w, blackbox_attrib.premax_h);
@ -1499,7 +1501,8 @@ void BlackboxWindow::maximize(unsigned int button) {
configure(frame.changing.x(), frame.changing.y(), configure(frame.changing.x(), frame.changing.y(),
frame.changing.width(), frame.changing.height()); frame.changing.width(), frame.changing.height());
screen->getWorkspace(blackbox_attrib.workspace)->raiseWindow(this); if (flags.focused)
screen->getWorkspace(blackbox_attrib.workspace)->raiseWindow(this);
redrawAllButtons(); redrawAllButtons();
setState(current_state); setState(current_state);
} }
@ -2640,8 +2643,10 @@ void BlackboxWindow::restore(bool remap) {
XSetWindowBorderWidth(blackbox->getXDisplay(), client.window, client.old_bw); XSetWindowBorderWidth(blackbox->getXDisplay(), client.window, client.old_bw);
XEvent ev; XEvent ev;
if (! XCheckTypedWindowEvent(blackbox->getXDisplay(), client.window, if (XCheckTypedWindowEvent(blackbox->getXDisplay(), client.window,
ReparentNotify, &ev)) { ReparentNotify, &ev)) {
remap = True;
} else {
// according to the ICCCM - if the client doesn't reparent to // according to the ICCCM - if the client doesn't reparent to
// root, then we have to do it for them // root, then we have to do it for them
XReparentWindow(blackbox->getXDisplay(), client.window, XReparentWindow(blackbox->getXDisplay(), client.window,