diff options
author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2010-03-11 16:27:37 +0100 |
---|---|---|
committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2010-03-11 16:27:37 +0100 |
commit | 6697c42e7393ce469e8c58c9407930439208fb2a (patch) | |
tree | 780add2ae9fc7ce03dd9744aff9c3bd34ed5bf85 /dw/fltkviewbase.hh | |
parent | c93c8f584c02f2f35c0d050ab05eb05520b67586 (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.hh | 18 |
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; } } |