diff --git a/graphics/painting.c b/graphics/painting.c index b62dd848c6160381c8e02d4765705a6e1ad899f2..881ba2bae8fd702da754710b80b95941c57f14d8 100644 --- a/graphics/painting.c +++ b/graphics/painting.c @@ -5,11 +5,6 @@ * Copyright 1997 Bertho A. Stultiens */ -#include <X11/Intrinsic.h> -#include "ts_xlib.h" -#include "ts_xutil.h" -#include "x11drv.h" - #include <stdlib.h> #include "dc.h" #include "bitmap.h" @@ -20,6 +15,8 @@ #include "path.h" #include "debug.h" #include "winerror.h" +#include "winuser.h" +#include "wine/winuser16.h" /*********************************************************************** @@ -654,10 +651,9 @@ void WINAPI DrawFocusRect16( HDC16 hdc, const RECT16* rc ) */ BOOL WINAPI DrawFocusRect( HDC hdc, const RECT* rc ) { - HPEN hOldPen, hnewPen; + HBRUSH hOldBrush; + HPEN hOldPen, hNewPen; INT oldDrawMode, oldBkMode; - INT left, top, right, bottom; - X11DRV_PDEVICE *physDev; DC * dc = (DC *) GDI_GetObjPtr( hdc, DC_MAGIC ); if (!dc) @@ -665,36 +661,21 @@ BOOL WINAPI DrawFocusRect( HDC hdc, const RECT* rc ) SetLastError( ERROR_INVALID_HANDLE ); return FALSE; } - physDev = (X11DRV_PDEVICE *)dc->physDev; - - left = XLPTODP( dc, rc->left ); - top = YLPTODP( dc, rc->top ); - right = XLPTODP( dc, rc->right ); - bottom = YLPTODP( dc, rc->bottom ); - - if(left == right || top == bottom) - { - SetLastError( ERROR_INVALID_PARAMETER ); - return FALSE; - } - hnewPen = CreatePen(PS_DOT, 1, GetSysColor(COLOR_WINDOWTEXT) ); - hOldPen = SelectObject( hdc, hnewPen ); + hOldBrush = SelectObject(hdc, GetStockObject(NULL_BRUSH)); + hNewPen = CreatePen(PS_DOT, 1, GetSysColor(COLOR_WINDOWTEXT)); + hOldPen = SelectObject(hdc, hNewPen); oldDrawMode = SetROP2(hdc, R2_XORPEN); oldBkMode = SetBkMode(hdc, TRANSPARENT); - /* Hack: make sure the XORPEN operation has an effect */ - physDev->pen.pixel = (1 << MONITOR_GetDepth(&MONITOR_PrimaryMonitor)) - 1; - - if (X11DRV_SetupGCForPen( dc )) - TSXDrawRectangle( display, physDev->drawable, physDev->gc, - dc->w.DCOrgX + left, dc->w.DCOrgY + top, - right-left-1, bottom-top-1 ); + Rectangle(hdc, rc->left, rc->top, rc->right, rc->bottom); SetBkMode(hdc, oldBkMode); SetROP2(hdc, oldDrawMode); SelectObject(hdc, hOldPen); - DeleteObject(hnewPen); + DeleteObject(hNewPen); + SelectObject(hdc, hOldBrush); + return TRUE; }