Module: wine Branch: master Commit: ed1fbcf75bb35de9d9836bed6b8615bae3b1eb84 URL: https://source.winehq.org/git/wine.git/?a=commit;h=ed1fbcf75bb35de9d9836bed6...
Author: Jacek Caban jacek@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@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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;