From f96dab44cf2391c30abf76f5598e0f8557c7d549 Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Mon, 7 Feb 2011 23:17:55 +0100 Subject: directdrawsink: avoid aspect-ratio borders overlying other windows Fixes #632056. --- sys/directdraw/gstdirectdrawsink.c | 6 ++++-- 1 file 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); } } -- cgit v1.2.3