@@ -329,7 +329,7 @@ PyImaging_GrabScreenWin32(PyObject *self, PyObject *args) {
329
329
HWND wnd ;
330
330
DWORD rop ;
331
331
PyObject * buffer ;
332
- HANDLE dpiAwareness ;
332
+ HANDLE dpiAwareness = NULL ;
333
333
HMODULE user32 ;
334
334
Func_GetWindowDpiAwarenessContext GetWindowDpiAwarenessContext_function ;
335
335
Func_SetThreadDpiAwarenessContext SetThreadDpiAwarenessContext_function ;
@@ -359,23 +359,15 @@ PyImaging_GrabScreenWin32(PyObject *self, PyObject *args) {
359
359
user32 = LoadLibraryA ("User32.dll" );
360
360
SetThreadDpiAwarenessContext_function = (Func_SetThreadDpiAwarenessContext
361
361
)GetProcAddress (user32 , "SetThreadDpiAwarenessContext" );
362
+ GetWindowDpiAwarenessContext_function = (Func_GetWindowDpiAwarenessContext
363
+ )GetProcAddress (user32 , "GetWindowDpiAwarenessContext" );
362
364
if (SetThreadDpiAwarenessContext_function != NULL ) {
363
- if (screens == -1 ) {
364
- GetWindowDpiAwarenessContext_function = (Func_GetWindowDpiAwarenessContext
365
- )GetProcAddress (user32 , "GetWindowDpiAwarenessContext" );
366
- DPI_AWARENESS_CONTEXT dpiAwarenessContext =
365
+ if (screens == -1 && GetWindowDpiAwarenessContext_function != NULL ) {
366
+ dpiAwareness =
367
367
GetWindowDpiAwarenessContext_function (wnd );
368
- if (GetWindowDpiAwarenessContext_function != NULL &&
369
- dpiAwarenessContext != NULL ) {
370
- dpiAwareness =
371
- SetThreadDpiAwarenessContext_function (dpiAwarenessContext );
372
- } else {
373
- dpiAwareness = SetThreadDpiAwarenessContext_function ((HANDLE )- 3 );
374
- }
375
- } else {
376
- // DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE = ((DPI_CONTEXT_HANDLE)-3)
377
- dpiAwareness = SetThreadDpiAwarenessContext_function ((HANDLE )- 3 );
378
368
}
369
+ // DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE = ((DPI_CONTEXT_HANDLE)-3)
370
+ dpiAwareness = SetThreadDpiAwarenessContext_function (dpiAwareness == NULL ? (HANDLE )- 3 : dpiAwareness );
379
371
}
380
372
381
373
if (screens == 1 ) {
0 commit comments