X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FWindow.cc;h=ec042c305ae77e80cb253bdddbb40d7f9ed4afd7;hb=eb8a11a5a7b066ada63cc3550f8314f53eaf1a39;hp=f722902a232df9d91cb5178dcc80e6209e143d83;hpb=0be1c1e8d72f5c5d8ef73c5c6a924e1f540a205a;p=chaz%2Fopenbox diff --git a/src/Window.cc b/src/Window.cc index f722902a..ec042c30 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -1385,12 +1385,12 @@ Bool OpenboxWindow::setInputFocus(void) { } else if (! flags.focused) { if (focus_mode == F_LocallyActive || focus_mode == F_Passive) XSetInputFocus(display, client.window, - RevertToPointerRoot, CurrentTime); + RevertToPointerRoot, CurrentTime); else XSetInputFocus(display, screen->getRootWindow(), RevertToNone, CurrentTime); - openbox.setFocusedWindow(this); + openbox.focusWindow(this); if (flags.send_focus_message) { XEvent ce; @@ -1527,6 +1527,9 @@ void OpenboxWindow::withdraw(void) { void OpenboxWindow::maximize(unsigned int button) { + if (flags.moving) + endMove(); + // handle case where menu is open then the max button is used instead if (windowmenu && windowmenu->isVisible()) windowmenu->hide(); @@ -2202,7 +2205,6 @@ void OpenboxWindow::redrawCloseButton(Bool pressed) { void OpenboxWindow::mapRequestEvent(XMapRequestEvent *re) { - cout << "MAP REQUEST " << client.window << " " << client.title << endl; if (re->window == client.window) { #ifdef DEBUG fprintf(stderr, i18n->getMessage(WindowSet, WindowMapRequest, @@ -2283,6 +2285,9 @@ void OpenboxWindow::unmapNotifyEvent(XUnmapEvent *ue) { openbox.grab(); if (! validateClient()) return; + if (flags.moving) + endMove(); + XChangeSaveSet(display, client.window, SetModeDelete); XSelectInput(display, client.window, NoEventMask); @@ -2318,6 +2323,8 @@ void OpenboxWindow::unmapNotifyEvent(XUnmapEvent *ue) { void OpenboxWindow::destroyNotifyEvent(XDestroyWindowEvent *de) { if (de->window == client.window) { + if (flags.moving) + endMove(); XUnmapWindow(display, frame.window); delete this; @@ -2754,9 +2761,8 @@ void OpenboxWindow::startMove(int x, int y) { ASSERT(!flags.moving); // make sure only one window is moving at a time - OpenboxWindow *w; - if ((w = openbox.getMaskedWindow()) != (OpenboxWindow *) 0 && - w->flags.moving) + OpenboxWindow *w = openbox.getMaskedWindow(); + if (w != (OpenboxWindow *) 0 && w->flags.moving) w->endMove(); XGrabPointer(display, frame.window, False, PointerMotionMask | @@ -2787,7 +2793,6 @@ void OpenboxWindow::startMove(int x, int y) { } frame.grab_x = x - frame.x - frame.border_w; frame.grab_y = y - frame.y - frame.border_w; - cout << "START MOVE " << client.window << " " << client.title << endl; } @@ -2881,7 +2886,6 @@ void OpenboxWindow::endMove() { // cause problems XEvent e; while (XCheckTypedWindowEvent(display, frame.window, MotionNotify, &e)); - cout << "END MOVE " << client.window << " " << client.title << endl; } @@ -2900,7 +2904,6 @@ void OpenboxWindow::motionNotifyEvent(XMotionEvent *me) { Bool left = resize_zone & ZoneLeft; if (! flags.resizing) { - cout << "START RESIZE " << client.window << " " << client.title << endl; Cursor cursor; if (resize_zone & ZoneTop) cursor = (resize_zone & ZoneLeft) ? @@ -2974,8 +2977,7 @@ void OpenboxWindow::motionNotifyEvent(XMotionEvent *me) { screen->showGeometry(gx, gy); } - } else - cout << "MOTION " << client.window << " " << client.title << endl; + } } @@ -3044,6 +3046,8 @@ void OpenboxWindow::restore(void) { XMapWindow(display, client.window); XFlush(display); + + delete this; }