aboutsummaryrefslogtreecommitdiff
path: root/dw/fltkviewbase.hh
diff options
context:
space:
mode:
authorJohannes Hofmann <Johannes.Hofmann@gmx.de>2010-03-11 16:27:37 +0100
committerJohannes Hofmann <Johannes.Hofmann@gmx.de>2010-03-11 16:27:37 +0100
commit6697c42e7393ce469e8c58c9407930439208fb2a (patch)
tree780add2ae9fc7ce03dd9744aff9c3bd34ed5bf85 /dw/fltkviewbase.hh
parentc93c8f584c02f2f35c0d050ab05eb05520b67586 (diff)
fix clipped drawing of non-filled rectangles
To avoid artifacts we need clip with a rectangle that is line_width() larger than our expose area. Noticed by: corvid <corvid@lavabit.com>
Diffstat (limited to 'dw/fltkviewbase.hh')
-rw-r--r--dw/fltkviewbase.hh18
1 files changed, 9 insertions, 9 deletions
diff --git a/dw/fltkviewbase.hh b/dw/fltkviewbase.hh
index fb3f2fe1..ba4cc6d2 100644
--- a/dw/fltkviewbase.hh
+++ b/dw/fltkviewbase.hh
@@ -26,16 +26,16 @@ private:
void draw (const core::Rectangle *rect, DrawType type);
void drawChildWidgets ();
- inline void clipPoint (int *x, int *y) {
+ inline void clipPoint (int *x, int *y, int border) {
if (exposeArea) {
- if (*x < exposeArea->x ())
- *x = exposeArea->x ();
- if (*x > exposeArea->r ())
- *x = exposeArea->r ();
- if (*y < exposeArea->y ())
- *y = exposeArea->y ();
- if (*y > exposeArea->b ())
- *y = exposeArea->b ();
+ if (*x < exposeArea->x () - border)
+ *x = exposeArea->x () - border;
+ if (*x > exposeArea->r () + border)
+ *x = exposeArea->r () + border;
+ if (*y < exposeArea->y () - border)
+ *y = exposeArea->y () - border;
+ if (*y > exposeArea->b () + border)
+ *y = exposeArea->b () + border;
}
}