diff --git a/PowerEditor/src/WinControls/DockingWnd/DockingSplitter.cpp b/PowerEditor/src/WinControls/DockingWnd/DockingSplitter.cpp index daeee1263..0c46ce93b 100644 --- a/PowerEditor/src/WinControls/DockingWnd/DockingSplitter.cpp +++ b/PowerEditor/src/WinControls/DockingWnd/DockingSplitter.cpp @@ -31,6 +31,8 @@ void DockingSplitter::init(HINSTANCE hInst, HWND hWnd, HWND hMessage, UINT flags _flags = flags; WNDCLASS wc; + DWORD hwndExStyle = (DWORD)GetWindowLongPtr(hWnd, GWL_EXSTYLE); + isRTL = hwndExStyle & WS_EX_LAYOUTRTL; if (flags & DMS_HORIZONTAL) { @@ -137,7 +139,7 @@ LRESULT DockingSplitter::runProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM } else if (_ptOldPos.x != pt.x) { - ::SendMessage(_hMessage, DMM_MOVE_SPLITTER, _ptOldPos.x - pt.x, reinterpret_cast(_hSelf)); + ::SendMessage(_hMessage, DMM_MOVE_SPLITTER, isRTL ? pt.x - _ptOldPos.x : _ptOldPos.x - pt.x, reinterpret_cast(_hSelf)); } _ptOldPos = pt; } diff --git a/PowerEditor/src/WinControls/DockingWnd/DockingSplitter.h b/PowerEditor/src/WinControls/DockingWnd/DockingSplitter.h index 901c15db9..b1085ce5a 100644 --- a/PowerEditor/src/WinControls/DockingWnd/DockingSplitter.h +++ b/PowerEditor/src/WinControls/DockingWnd/DockingSplitter.h @@ -49,5 +49,8 @@ private: static BOOL _isVertReg; static BOOL _isHoriReg; + + // get layout direction + bool isRTL; };