diff --git a/win32ss/user/ntuser/simplecall.c b/win32ss/user/ntuser/simplecall.c index 179d58bcdec..67377de4a8c 100644 --- a/win32ss/user/ntuser/simplecall.c +++ b/win32ss/user/ntuser/simplecall.c @@ -342,7 +342,7 @@ NtUserCallOneParam( case ONEPARAM_ROUTINE_SETPROCDEFLAYOUT: { PPROCESSINFO ppi; - if (Param & LAYOUT_ORIENTATIONMASK) + if (Param & LAYOUT_ORIENTATIONMASK || Param == LAYOUT_LTR) { ppi = PsGetCurrentProcessWin32Process(); ppi->dwLayout = Param; diff --git a/win32ss/user/ntuser/window.c b/win32ss/user/ntuser/window.c index 7d6ac871558..a557c4d3387 100644 --- a/win32ss/user/ntuser/window.c +++ b/win32ss/user/ntuser/window.c @@ -2017,6 +2017,16 @@ co_UserCreateWindowEx(CREATESTRUCTW* Cs, EngSetLastError(ERROR_TLW_WITH_WSCHILD); goto cleanup; /* WS_CHILD needs a parent, but WS_POPUP doesn't */ } + else if (Cs->lpszClass != (LPCWSTR)MAKEINTATOM(gpsi->atomSysClass[ICLS_DESKTOP]) && + (IS_INTRESOURCE(Cs->lpszClass) || + Cs->lpszClass != (LPCWSTR)MAKEINTATOM(gpsi->atomSysClass[ICLS_HWNDMESSAGE]) || + _wcsicmp(Cs->lpszClass, L"Message") != 0)) + { + if (pti->ppi->dwLayout & LAYOUT_RTL) + { + Cs->dwExStyle |= WS_EX_LAYOUTRTL; + } + } ParentWindow = hWndParent ? UserGetWindowObject(hWndParent): NULL; OwnerWindow = hWndOwner ? UserGetWindowObject(hWndOwner): NULL;