diff options
author | Jim Raykowski <raykowj@gmail..com> | 2019-11-24 20:40:46 -0900 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2020-01-07 16:45:43 +0100 |
commit | e9d591bbf166162c39865718ceab7a9b976676ce (patch) | |
tree | fac740d50c629994f77ffe97ec44c5d2d16279a9 | |
parent | 7b6245d9a20146e2629549d826267b3d8e33ee37 (diff) |
tdf#129004 Make shift+F6 cycle order reverse of F6
Change-Id: I52013b4c54ef5e457d9fa19210d08d9c042fed45
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/83637
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
(cherry picked from commit 32b9d07baa0cf6907f14ccb9aa068b51d95eefaa)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86342
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
-rw-r--r-- | vcl/source/window/taskpanelist.cxx | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/vcl/source/window/taskpanelist.cxx b/vcl/source/window/taskpanelist.cxx index 1f382b824907..35828b7d1429 100644 --- a/vcl/source/window/taskpanelist.cxx +++ b/vcl/source/window/taskpanelist.cxx @@ -61,19 +61,6 @@ struct LTRSort return ( pos1.X() < pos2.X() ); } }; -struct LTRSortBackward -{ - bool operator()( const vcl::Window* w2, const vcl::Window* w1 ) const - { - Point pos1(ImplTaskPaneListGetPos( w1 )); - Point pos2(ImplTaskPaneListGetPos( w2 )); - - if( pos1.X() == pos2.X() ) - return ( pos1.Y() < pos2.Y() ); - else - return ( pos1.X() < pos2.X() ); - } -}; static void ImplTaskPaneListGrabFocus( vcl::Window *pWindow, bool bForward ) { @@ -258,10 +245,10 @@ vcl::Window* TaskPaneList::FindNextSplitter( vcl::Window *pWindow ) // returns first valid item (regardless of type) if pWindow==0, otherwise returns next valid float vcl::Window* TaskPaneList::FindNextFloat( vcl::Window *pWindow, bool bForward ) { - if( bForward ) - ::std::stable_sort( mTaskPanes.begin(), mTaskPanes.end(), LTRSort() ); - else - ::std::stable_sort( mTaskPanes.begin(), mTaskPanes.end(), LTRSortBackward() ); + ::std::stable_sort( mTaskPanes.begin(), mTaskPanes.end(), LTRSort() ); + + if ( !bForward ) + ::std::reverse( mTaskPanes.begin(), mTaskPanes.end() ); auto p = mTaskPanes.begin(); if( pWindow ) @@ -285,6 +272,9 @@ vcl::Window* TaskPaneList::FindNextFloat( vcl::Window *pWindow, bool bForward ) ++p; } + if ( !bForward ) + ::std::reverse( mTaskPanes.begin(), mTaskPanes.end() ); + return pWindow; } |