summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/window.cpp72
1 files changed, 33 insertions, 39 deletions
diff --git a/src/window.cpp b/src/window.cpp
index 28c2c1a36..7fe896993 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -250,33 +250,6 @@ static void DispatchMouseWheelEvent(Window *w, int widget, int wheel)
}
}
-static void DrawOverlappedWindow(Window* const *wz, int left, int top, int right, int bottom);
-
-/**
- * From a rectangle that needs redrawing, find the windows that intersect with the rectangle.
- * These windows should be re-painted.
- * @param left Left edge of the rectangle that should be repainted
- * @param top Top edge of the rectangle that should be repainted
- * @param right Right edge of the rectangle that should be repainted
- * @param bottom Bottom edge of the rectangle that should be repainted
- */
-void DrawOverlappedWindowForAll(int left, int top, int right, int bottom)
-{
- Window* const *wz;
- DrawPixelInfo bk;
- _cur_dpi = &bk;
-
- FOR_ALL_WINDOWS(wz) {
- const Window *w = *wz;
- if (right > w->left &&
- bottom > w->top &&
- left < w->left + w->width &&
- top < w->top + w->height) {
- DrawOverlappedWindow(wz, left, top, right, bottom);
- }
- }
-}
-
/**
* Generate repaint events for the visible part of window *wz within the rectangle.
*
@@ -288,8 +261,6 @@ void DrawOverlappedWindowForAll(int left, int top, int right, int bottom)
* @param top Top edge of the rectangle that should be repainted
* @param right Right edge of the rectangle that should be repainted
* @param bottom Bottom edge of the rectangle that should be repainted
- *
- * @todo Swap this function to above DrawOverlappedWindowForAll() to eliminate the forward declaration
*/
static void DrawOverlappedWindow(Window* const *wz, int left, int top, int right, int bottom)
{
@@ -333,16 +304,39 @@ static void DrawOverlappedWindow(Window* const *wz, int left, int top, int right
}
}
- {
- DrawPixelInfo *dp = _cur_dpi;
- dp->width = right - left;
- dp->height = bottom - top;
- dp->left = left - (*wz)->left;
- dp->top = top - (*wz)->top;
- dp->pitch = _screen.pitch;
- dp->dst_ptr = BlitterFactoryBase::GetCurrentBlitter()->MoveTo(_screen.dst_ptr, left, top);
- dp->zoom = ZOOM_LVL_NORMAL;
- CallWindowEventNP(*wz, WE_PAINT);
+ DrawPixelInfo *dp = _cur_dpi;
+ dp->width = right - left;
+ dp->height = bottom - top;
+ dp->left = left - (*wz)->left;
+ dp->top = top - (*wz)->top;
+ dp->pitch = _screen.pitch;
+ dp->dst_ptr = BlitterFactoryBase::GetCurrentBlitter()->MoveTo(_screen.dst_ptr, left, top);
+ dp->zoom = ZOOM_LVL_NORMAL;
+ CallWindowEventNP(*wz, WE_PAINT);
+}
+
+/**
+ * From a rectangle that needs redrawing, find the windows that intersect with the rectangle.
+ * These windows should be re-painted.
+ * @param left Left edge of the rectangle that should be repainted
+ * @param top Top edge of the rectangle that should be repainted
+ * @param right Right edge of the rectangle that should be repainted
+ * @param bottom Bottom edge of the rectangle that should be repainted
+ */
+void DrawOverlappedWindowForAll(int left, int top, int right, int bottom)
+{
+ Window* const *wz;
+ DrawPixelInfo bk;
+ _cur_dpi = &bk;
+
+ FOR_ALL_WINDOWS(wz) {
+ const Window *w = *wz;
+ if (right > w->left &&
+ bottom > w->top &&
+ left < w->left + w->width &&
+ top < w->top + w->height) {
+ DrawOverlappedWindow(wz, left, top, right, bottom);
+ }
}
}