summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2011-02-07 23:17:55 +0100
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2011-02-08 18:02:29 +0100
commitf96dab44cf2391c30abf76f5598e0f8557c7d549 (patch)
tree05faf5f86cbefcfd83f6376ab67227e72fb99b60
parentedb15598ed566f37d90129492a86341badee0672 (diff)
directdrawsink: avoid aspect-ratio borders overlying other windows
Fixes #632056.
-rw-r--r--sys/directdraw/gstdirectdrawsink.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/directdraw/gstdirectdrawsink.c b/sys/directdraw/gstdirectdrawsink.c
index 3b8967f6c..05c81367a 100644
--- a/sys/directdraw/gstdirectdrawsink.c
+++ b/sys/directdraw/gstdirectdrawsink.c
@@ -821,9 +821,11 @@ gst_directdraw_sink_draw_borders (GstDirectDrawSink * ddrawsink, RECT dst_rect)
OffsetRect (&win_rect, win_point.x, win_point.y);
/* We acquire a drawing context */
- if (IDirectDrawSurface7_GetDC (ddrawsink->primary_surface, &hdc) == DD_OK) {
+ if ((hdc = GetDC (ddrawsink->video_window))) {
HBRUSH brush = CreateSolidBrush (RGB (0, 0, 0));
+ /* arrange for logical coordinates that match screen coordinates */
+ SetWindowOrgEx (hdc, win_point.x, win_point.y, NULL);
/* Left border */
if (dst_rect.left > win_rect.left) {
fill_rect.left = win_rect.left;
@@ -857,7 +859,7 @@ gst_directdraw_sink_draw_borders (GstDirectDrawSink * ddrawsink, RECT dst_rect)
FillRect (hdc, &fill_rect, brush);
}
DeleteObject (brush);
- IDirectDrawSurface7_ReleaseDC (ddrawsink->primary_surface, hdc);
+ ReleaseDC (ddrawsink->video_window, hdc);
}
}