Author: jimtabor Date: Tue Feb 25 05:29:00 2014 New Revision: 62327
URL: http://svn.reactos.org/svn/reactos?rev=62327&view=rev Log: [Win32ss] - MapWindowPoints return incorrect result for windows with WS_EX_LAYOUTRTL style. - Patch by Maxim Andreyanov. see CORE-7947.
Modified: trunk/reactos/win32ss/user/ntuser/window.c trunk/reactos/win32ss/user/ntuser/winpos.c trunk/reactos/win32ss/user/user32/windows/winpos.c
Modified: trunk/reactos/win32ss/user/ntuser/window.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/window.... ============================================================================== --- trunk/reactos/win32ss/user/ntuser/window.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/window.c [iso-8859-1] Tue Feb 25 05:29:00 2014 @@ -2313,6 +2313,17 @@ ParentWindow->rcClient.top); } */ + /* correct child window coordinates if mirroring on parent is enabled */ + if (ParentWindow != NULL) + { + if ( ((Cs->style & WS_CHILD) == WS_CHILD) && + ((ParentWindow->ExStyle & WS_EX_LAYOUTRTL) == WS_EX_LAYOUTRTL)) + { + Window->rcWindow.right = ParentWindow->rcClient.right - (Window->rcWindow.left - ParentWindow->rcClient.left); + Window->rcWindow.left = Window->rcWindow.right - Size.cx; + } + } + Window->rcClient = Window->rcWindow;
/* Link the window */
Modified: trunk/reactos/win32ss/user/ntuser/winpos.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/ntuser/winpos.... ============================================================================== --- trunk/reactos/win32ss/user/ntuser/winpos.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/ntuser/winpos.c [iso-8859-1] Tue Feb 25 05:29:00 2014 @@ -119,8 +119,6 @@ Delta.x -= Change * ToWnd->rcClient.left; Delta.y -= ToWnd->rcClient.top; } - - if (mirror_from) Delta.x = -Delta.x;
for (i = 0; i != cPoints; i++) {
Modified: trunk/reactos/win32ss/user/user32/windows/winpos.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/user32/windows... ============================================================================== --- trunk/reactos/win32ss/user/user32/windows/winpos.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/user32/windows/winpos.c [iso-8859-1] Tue Feb 25 05:29:00 2014 @@ -218,8 +218,6 @@ Delta.y -= ToWnd->rcClient.top; }
- if (mirror_from) Delta.x = -Delta.x; - for (i = 0; i != cPoints; i++) { lpPoints[i].x += Delta.x;