#endif // DEBUG
#ifdef HAVE_STDLIB_H
- #include <stdlib.h>
+# include <stdlib.h>
#endif // HAVE_STDLIB_H
}
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) {
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
}
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) {
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
}
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) {
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) {
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) {
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());
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 {