From: Luca Bacci Date: Fri, 4 Nov 2022 14:38:29 +0000 (+0100) Subject: GdkWin32: Fix leak of screen HDC X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~9^2~119^2~5 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=95c121b6d6933e73a8dcbd49bec81a8e1225efe6;p=gtk4.git GdkWin32: Fix leak of screen HDC --- diff --git a/gdk/win32/gdkproperty-win32.c b/gdk/win32/gdkproperty-win32.c index 24c6c69573..9b65b8d86a 100644 --- a/gdk/win32/gdkproperty-win32.c +++ b/gdk/win32/gdkproperty-win32.c @@ -160,17 +160,22 @@ _gdk_win32_get_setting (const char *name, if (display->dpi_aware_type == PROCESS_SYSTEM_DPI_AWARE && !display->has_fixed_scale) { - int dpi = GetDeviceCaps (GetDC (NULL), LOGPIXELSX); - if (dpi >= 96) + HDC hdc = GetDC (NULL); + + if (hdc != NULL) { - int xft_dpi = 1024 * dpi / display->surface_scale; - g_value_set_int (value, xft_dpi); - GDK_NOTE(MISC, g_print ("gdk_screen_get_setting(\"%s\") : %d\n", name, xft_dpi)); - return TRUE; + int dpi = GetDeviceCaps (GetDC (NULL), LOGPIXELSX); + ReleaseDC (NULL, hdc); + + if (dpi >= 96) + { + int xft_dpi = 1024 * dpi / display->surface_scale; + GDK_NOTE(MISC, g_print ("gdk_screen_get_setting(\"%s\") : %d\n", name, xft_dpi)); + g_value_set_int (value, xft_dpi); + return TRUE; + } } } - - return FALSE; } else if (strcmp ("gtk-xft-hinting", name) == 0) {