Jacek Caban : gdi32: Move disabled flag to DC_ATTR.
Alexandre Julliard
julliard at winehq.org
Wed Jul 28 15:37:41 CDT 2021
Module: wine
Branch: master
Commit: ed1fbcf75bb35de9d9836bed6b8615bae3b1eb84
URL: https://source.winehq.org/git/wine.git/?a=commit;h=ed1fbcf75bb35de9d9836bed6b8615bae3b1eb84
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Jul 28 11:38:58 2021 +0200
gdi32: Move disabled flag to DC_ATTR.
And honour it in get_dc_attr.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/gdi32/dc.c | 6 +++---
dlls/gdi32/gdidc.c | 2 +-
dlls/gdi32/ntgdi_private.h | 1 -
include/ntgdi.h | 1 +
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c
index cba97c1231a..5f86bb524ba 100644
--- a/dlls/gdi32/dc.c
+++ b/dlls/gdi32/dc.c
@@ -206,7 +206,7 @@ DC *get_dc_ptr( HDC hdc )
{
DC *dc = get_dc_obj( hdc );
if (!dc) return NULL;
- if (dc->disabled)
+ if (dc->attr->disabled)
{
GDI_ReleaseObj( hdc );
return NULL;
@@ -1258,9 +1258,9 @@ WORD WINAPI SetHookFlags( HDC hdc, WORD flags )
ret = InterlockedExchange( &dc->dirty, 0 );
if (flags & DCHF_DISABLEDC)
- ret = InterlockedExchange( &dc->disabled, 1 );
+ ret = InterlockedExchange( &dc->attr->disabled, 1 );
else if (flags & DCHF_ENABLEDC)
- ret = InterlockedExchange( &dc->disabled, 0 );
+ ret = InterlockedExchange( &dc->attr->disabled, 0 );
GDI_ReleaseObj( hdc );
diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c
index 3b477f920f9..1318533d100 100644
--- a/dlls/gdi32/gdidc.c
+++ b/dlls/gdi32/gdidc.c
@@ -34,7 +34,7 @@ static DC_ATTR *get_dc_attr( HDC hdc )
SetLastError( ERROR_INVALID_HANDLE );
return NULL;
}
- return dc_attr;
+ return dc_attr->disabled ? NULL : dc_attr;
}
/***********************************************************************
diff --git a/dlls/gdi32/ntgdi_private.h b/dlls/gdi32/ntgdi_private.h
index 674c5085a7f..6efc3f2e7d1 100644
--- a/dlls/gdi32/ntgdi_private.h
+++ b/dlls/gdi32/ntgdi_private.h
@@ -79,7 +79,6 @@ typedef struct tagDC
DWORD thread; /* thread owning the DC */
LONG refcount; /* thread refcount */
LONG dirty; /* dirty flag */
- LONG disabled; /* get_dc_ptr() will return NULL. Controlled by DCHF_(DISABLE|ENABLE)DC */
INT saveLevel;
DC_ATTR *attr; /* DC attributes accessible by client */
struct tagDC *saved_dc;
diff --git a/include/ntgdi.h b/include/ntgdi.h
index f71c993e67c..f1a3436437f 100644
--- a/include/ntgdi.h
+++ b/include/ntgdi.h
@@ -98,6 +98,7 @@ enum
typedef struct DC_ATTR
{
+ LONG disabled; /* disabled flag, controled by DCHF_(DISABLE|ENABLE)DC */
POINT cur_pos;
INT graphics_mode;
WORD text_align;
More information about the wine-cvs
mailing list