@@ -329,7 +329,7 @@ PyImaging_GrabScreenWin32(PyObject *self, PyObject *args) {
329329 HWND wnd ;
330330 DWORD rop ;
331331 PyObject * buffer ;
332- HANDLE dpiAwareness ;
332+ HANDLE dpiAwareness = NULL ;
333333 HMODULE user32 ;
334334 Func_GetWindowDpiAwarenessContext GetWindowDpiAwarenessContext_function ;
335335 Func_SetThreadDpiAwarenessContext SetThreadDpiAwarenessContext_function ;
@@ -360,22 +360,15 @@ PyImaging_GrabScreenWin32(PyObject *self, PyObject *args) {
360360 SetThreadDpiAwarenessContext_function = (Func_SetThreadDpiAwarenessContext
361361 )GetProcAddress (user32 , "SetThreadDpiAwarenessContext" );
362362 if (SetThreadDpiAwarenessContext_function != NULL ) {
363- if (screens == -1 ) {
364- GetWindowDpiAwarenessContext_function = (Func_GetWindowDpiAwarenessContext
365- )GetProcAddress (user32 , "GetWindowDpiAwarenessContext" );
366- DPI_AWARENESS_CONTEXT dpiAwarenessContext =
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 );
363+ GetWindowDpiAwarenessContext_function = (Func_GetWindowDpiAwarenessContext
364+ )GetProcAddress (user32 , "GetWindowDpiAwarenessContext" );
365+ if (screens == -1 && GetWindowDpiAwarenessContext_function != NULL ) {
366+ dpiAwareness = GetWindowDpiAwarenessContext_function (wnd );
378367 }
368+ // DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE = ((DPI_CONTEXT_HANDLE)-3)
369+ dpiAwareness = SetThreadDpiAwarenessContext_function (
370+ dpiAwareness == NULL ? (HANDLE )- 3 : dpiAwareness
371+ );
379372 }
380373
381374 if (screens == 1 ) {
0 commit comments