summaryrefslogtreecommitdiff
path: root/src/Window.cc
diff options
context:
space:
mode:
authorScott Moynes <smoynes@nexus.carleton.ca>2002-09-14 04:52:04 +0000
committerScott Moynes <smoynes@nexus.carleton.ca>2002-09-14 04:52:04 +0000
commitc196ecd8783e5640380ad1b5f55bcd860abd0c62 (patch)
tree52bfadbd5467b0bc8f0f00fc7b5ad570361dce0b /src/Window.cc
parent01732a20dbb6b75431dc34fbe8401bfca952f43a (diff)
more bitmap merge fixes
Diffstat (limited to 'src/Window.cc')
-rw-r--r--src/Window.cc34
1 files changed, 25 insertions, 9 deletions
diff --git a/src/Window.cc b/src/Window.cc
index 8a1b5684..a5263384 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -2628,7 +2628,7 @@ 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);
@@ -2679,7 +2679,7 @@ 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 );
@@ -2721,12 +2721,28 @@ 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);
-}
+ 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 {
+ 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);
+ }
+}
void BlackboxWindow::redrawStickyButton(bool pressed) const {
if (! pressed) {
@@ -2767,7 +2783,7 @@ 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 );
@@ -3334,7 +3350,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 {