diff options
author | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2011-02-07 23:17:55 +0100 |
---|---|---|
committer | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2011-02-08 18:02:29 +0100 |
commit | f96dab44cf2391c30abf76f5598e0f8557c7d549 (patch) | |
tree | 05faf5f86cbefcfd83f6376ab67227e72fb99b60 /sys/directdraw | |
parent | edb15598ed566f37d90129492a86341badee0672 (diff) | |
download | gstreamer-plugins-bad-f96dab44cf2391c30abf76f5598e0f8557c7d549.tar.gz |
directdrawsink: avoid aspect-ratio borders overlying other windows
Fixes #632056.
Diffstat (limited to 'sys/directdraw')
-rw-r--r-- | sys/directdraw/gstdirectdrawsink.c | 6 |
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); } } |