X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FWindow.cc;h=3a9821157ea585643672cd379cfd3beb729c469f;hb=72a2e98738d87b89620bafd15141690aa4be8fab;hp=8a1b56845fb563206adcac1e5526f4fb1d6d4b03;hpb=01732a20dbb6b75431dc34fbe8401bfca952f43a;p=chaz%2Fopenbox diff --git a/src/Window.cc b/src/Window.cc index 8a1b5684..3a982115 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -40,7 +40,7 @@ extern "C" { #endif // DEBUG #ifdef HAVE_STDLIB_H - #include +# include #endif // HAVE_STDLIB_H } @@ -2618,7 +2618,7 @@ void BlackboxWindow::redrawIconifyButton(bool pressed) const { XClearWindow(blackbox->getXDisplay(), frame.iconify_button); BPen pen((flags.focused) ? screen->getWindowStyle()->b_pic_focus : screen->getWindowStyle()->b_pic_unfocus); - +#ifdef BITMAPBUTTONS PixmapMask pm = screen->getWindowStyle()->icon_button; if (screen->getWindowStyle()->icon_button.mask != None) { @@ -2628,15 +2628,17 @@ void BlackboxWindow::redrawIconifyButton(bool pressed) const { XFillRectangle(blackbox->getXDisplay(), frame.iconify_button, pen.gc(), (frame.button_w - pm.w)/2, (frame.button_w - pm.h)/2, - pm.w, pm.h); + (frame.button_w + pm.w)/2, (frame.button_w + pm.h)/2); XSetClipMask(blackbox->getXDisplay(), pen.gc(), None); XSetClipOrigin(blackbox->getXDisplay(), pen.gc(), 0, 0); } else { - +#endif // BITMAPBUTTONS XDrawRectangle(blackbox->getXDisplay(), frame.iconify_button, pen.gc(), 2, (frame.button_w - 5), (frame.button_w - 5), 2); +#ifdef BITMAPBUTTONS } +#endif // BITMAPBUTTONS } @@ -2669,7 +2671,8 @@ void BlackboxWindow::redrawMaximizeButton(bool pressed) const { BPen pen((flags.focused) ? screen->getWindowStyle()->b_pic_focus : screen->getWindowStyle()->b_pic_unfocus); - + +#ifdef BITMAPBUTTONS PixmapMask pm = screen->getWindowStyle()->max_button; if (pm.mask != None) { @@ -2679,16 +2682,19 @@ void BlackboxWindow::redrawMaximizeButton(bool pressed) const { XFillRectangle(blackbox->getXDisplay(), frame.maximize_button, pen.gc(), (frame.button_w - pm.w)/2, (frame.button_w - pm.h)/2, - pm.w, pm.h); + (frame.button_w + pm.w)/2, (frame.button_w + pm.h)/2); XSetClipOrigin(blackbox->getXDisplay(), pen.gc(), 0, 0 ); XSetClipMask( blackbox->getXDisplay(), pen.gc(), None ); } else { +#endif // BITMAPBUTTONS XDrawRectangle(blackbox->getXDisplay(), frame.maximize_button, pen.gc(), 2, 2, (frame.button_w - 5), (frame.button_w - 5)); XDrawLine(blackbox->getXDisplay(), frame.maximize_button, pen.gc(), 2, 3, (frame.button_w - 3), 3); +#ifdef BITMAPBUTTONS } +#endif // BITMAPBUTTONS } @@ -2721,12 +2727,32 @@ void BlackboxWindow::redrawCloseButton(bool pressed) const { BPen pen((flags.focused) ? screen->getWindowStyle()->b_pic_focus : screen->getWindowStyle()->b_pic_unfocus); - XDrawLine(blackbox->getXDisplay(), frame.close_button, pen.gc(), - 2, 2, (frame.button_w - 3), (frame.button_w - 3)); - XDrawLine(blackbox->getXDisplay(), frame.close_button, pen.gc(), - 2, (frame.button_w - 3), (frame.button_w - 3), 2); -} + +#ifdef BITMAPBUTTONS + PixmapMask pm = screen->getWindowStyle()->close_button; + + if (pm.mask != None) { + XSetClipMask(blackbox->getXDisplay(), pen.gc(), pm.mask); + XSetClipOrigin(blackbox->getXDisplay(), pen.gc(), + (frame.button_w - pm.w)/2, (frame.button_w - pm.h)/2); + + XFillRectangle(blackbox->getXDisplay(), frame.close_button, pen.gc(), + (frame.button_w - pm.w)/2, (frame.button_w - pm.h)/2, + (frame.button_w + pm.w)/2, (frame.button_w + pm.h)/2); + + XSetClipOrigin(blackbox->getXDisplay(), pen.gc(), 0, 0 ); + XSetClipMask( blackbox->getXDisplay(), pen.gc(), None ); + } else { +#endif // BITMAPBUTTONS + XDrawLine(blackbox->getXDisplay(), frame.close_button, pen.gc(), + 2, 2, (frame.button_w - 3), (frame.button_w - 3)); + XDrawLine(blackbox->getXDisplay(), frame.close_button, pen.gc(), + 2, (frame.button_w - 3), (frame.button_w - 3), 2); +#ifdef BITMAPBUTTONS + } +#endif // BITMAPBUTTONS +} void BlackboxWindow::redrawStickyButton(bool pressed) const { if (! pressed) { @@ -2757,7 +2783,8 @@ void BlackboxWindow::redrawStickyButton(bool pressed) const { BPen pen((flags.focused) ? screen->getWindowStyle()->b_pic_focus : screen->getWindowStyle()->b_pic_unfocus); - + +#ifdef BITMAPBUTTONS PixmapMask pm = screen->getWindowStyle()->stick_button; if (pm.mask != None) { @@ -2767,15 +2794,18 @@ void BlackboxWindow::redrawStickyButton(bool pressed) const { XFillRectangle(blackbox->getXDisplay(), frame.stick_button, pen.gc(), (frame.button_w - pm.w)/2, (frame.button_w - pm.h)/2, - pm.w, pm.h); + (frame.button_w + pm.w)/2, (frame.button_w + pm.h)/2); XSetClipOrigin(blackbox->getXDisplay(), pen.gc(), 0, 0 ); XSetClipMask( blackbox->getXDisplay(), pen.gc(), None ); } else { +#endif // BITMAPBUTTONS XFillRectangle(blackbox->getXDisplay(), frame.stick_button, pen.gc(), frame.button_w/2 - 1, frame.button_w/2 -1, 2, 2 ); +#ifdef BITMAPBUTTONS } +#endif } void BlackboxWindow::mapRequestEvent(const XMapRequestEvent *re) { @@ -3143,13 +3173,19 @@ void BlackboxWindow::buttonPressEvent(const XButtonEvent *be) { if (mx < left_edge) mx = left_edge; - if (mx > right_edge) + else if (mx > right_edge) mx = right_edge; if (my < top_edge) my = top_edge; - if (my > bottom_edge) + else if (my > bottom_edge) my = bottom_edge; + + if (my + windowmenu->getHeight() > screen->getHeight()) + my = screen->getHeight() - windowmenu->getHeight() - + (screen->getBorderWidth() * 2); + + cout << my << endl; windowmenu->move(mx, my); windowmenu->show(); XRaiseWindow(blackbox->getXDisplay(), windowmenu->getWindowID()); @@ -3334,7 +3370,7 @@ void BlackboxWindow::doWorkspaceWarping(int x_root, int y_root, int &dx) { bool focus = flags.focused; // had focus while moving? int dest_x = x_root; - if (x_root <= 0) { + if (x_root < 0) { dest_x += screen->getRect().width() - 1; dx += screen->getRect().width() - 1; } else {