diff options
author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2011-02-17 21:26:04 +0100 |
---|---|---|
committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2011-02-17 21:26:04 +0100 |
commit | dc7a94459dd07aa469ad60de677a5bce48487ed4 (patch) | |
tree | 10b0b6c08bb0491e1f5cae07325920efcd7a92e1 /dw/fltkviewbase.hh | |
parent | fd4669bd343070fa3ecebb5c0bc6a2f965a68346 (diff) |
port line clipping on expose rectangle to avoid X11 coordinate overflows
Diffstat (limited to 'dw/fltkviewbase.hh')
-rw-r--r-- | dw/fltkviewbase.hh | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/dw/fltkviewbase.hh b/dw/fltkviewbase.hh index 0d09a6a6..3f9ba4b4 100644 --- a/dw/fltkviewbase.hh +++ b/dw/fltkviewbase.hh @@ -34,26 +34,24 @@ private: int bgColor; core::Region drawRegion; - //::fltk::Rectangle *exposeArea; + core::Rectangle *exposeArea; static BackBuffer *backBuffer; static bool backBufferInUse; void draw (const core::Rectangle *rect, DrawType type); void drawChildWidgets (); -#if 0 inline void clipPoint (int *x, int *y, int border) { if (exposeArea) { - 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; + if (*x < exposeArea->x - border) + *x = exposeArea->x - border; + if (*x > exposeArea->x + exposeArea->width + border) + *x = exposeArea->x + exposeArea->width + border; + if (*y < exposeArea->y - border) + *y = exposeArea->y - border; + if (*y > exposeArea->y + exposeArea->height + border) + *y = exposeArea->y + exposeArea->height + border; } } -#endif protected: core::Layout *theLayout; int canvasWidth, canvasHeight; |