Module: wine Branch: master Commit: 50bbaf9d5e40cfd0c36d7e8e82e33822b3df23bb URL: https://gitlab.winehq.org/wine/wine/-/commit/50bbaf9d5e40cfd0c36d7e8e82e3382...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Aug 5 12:34:19 2022 +0200
win32u: Fix handling uninitialized process_layout.
---
dlls/win32u/sysparams.c | 7 ++++++- dlls/win32u/win32u_private.h | 2 +- dlls/win32u/window.c | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c index 201004e1447..454c4702612 100644 --- a/dlls/win32u/sysparams.c +++ b/dlls/win32u/sysparams.c @@ -375,7 +375,7 @@ union sysparam_all_entry
static UINT system_dpi; static RECT work_area; -DWORD process_layout = ~0u; +static DWORD process_layout = ~0u;
static HDC display_dc; static pthread_mutex_t display_dc_lock = PTHREAD_MUTEX_INITIALIZER; @@ -1631,6 +1631,11 @@ DPI_AWARENESS get_thread_dpi_awareness(void) } }
+DWORD get_process_layout(void) +{ + return process_layout == ~0u ? 0 : process_layout; +} + /********************************************************************** * get_thread_dpi */ diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index a0bc1d62882..e1d163ea8eb 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -326,7 +326,6 @@ extern void track_scroll_bar( HWND hwnd, int scrollbar, POINT pt ) DECLSPEC_HIDD
/* sysparams.c */ extern BOOL enable_thunk_lock DECLSPEC_HIDDEN; -extern DWORD process_layout DECLSPEC_HIDDEN; extern HBRUSH get_55aa_brush(void) DECLSPEC_HIDDEN; extern DWORD get_dialog_base_units(void) DECLSPEC_HIDDEN; extern LONG get_char_dimensions( HDC hdc, TEXTMETRICW *metric, LONG *height ) DECLSPEC_HIDDEN; @@ -335,6 +334,7 @@ extern UINT get_monitor_dpi( HMONITOR monitor ) DECLSPEC_HIDDEN; extern BOOL get_monitor_info( HMONITOR handle, MONITORINFO *info ) DECLSPEC_HIDDEN; extern UINT get_win_monitor_dpi( HWND hwnd ) DECLSPEC_HIDDEN; extern RECT get_primary_monitor_rect( UINT dpi ) DECLSPEC_HIDDEN; +extern DWORD get_process_layout(void) DECLSPEC_HIDDEN; extern COLORREF get_sys_color( int index ) DECLSPEC_HIDDEN; extern HBRUSH get_sys_color_brush( unsigned int index ) DECLSPEC_HIDDEN; extern HPEN get_sys_color_pen( unsigned int index ) DECLSPEC_HIDDEN; diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index b4a65b883f3..d9c771e5d3d 100644 --- a/dlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -5094,7 +5094,7 @@ HWND WINAPI NtUserCreateWindowEx( DWORD ex_style, UNICODE_STRING *class_name, (class_name->Length != sizeof(messageW) || wcsnicmp( class_name->Buffer, messageW, ARRAYSIZE(messageW) ))) { - if (process_layout & LAYOUT_RTL) cs.dwExStyle |= WS_EX_LAYOUTRTL; + if (get_process_layout() & LAYOUT_RTL) cs.dwExStyle |= WS_EX_LAYOUTRTL; parent = get_desktop_window(); } }