diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2018-07-30 13:12:43 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2018-07-30 17:52:12 +0200 |
commit | e1d73cb5552c2566c6d7463ce001e555523f3d92 (patch) | |
tree | 95ce16970312a15c6409441f0985b6a98506b7e8 /sw/source/uibase | |
parent | efdc775d7dd464dcbd917623df94df87810d9bf3 (diff) |
tdf#118971: allow arrow keys to move images or drawing objects
Partially revert 2d5ce0e1b233c83f91481cd6b9306ac8de7f5ff8
Change-Id: Ie4c91529c1ce878f4b0474d815a3a88ed48769c2
Reviewed-on: https://gerrit.libreoffice.org/58318
Reviewed-by: Heiko Tietze <tietze.heiko@gmail.com>
Tested-by: Heiko Tietze <tietze.heiko@gmail.com>
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'sw/source/uibase')
-rw-r--r-- | sw/source/uibase/docvw/edtwin.cxx | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx index 14011cbb7b38..4edc16a3f1e5 100644 --- a/sw/source/uibase/docvw/edtwin.cxx +++ b/sw/source/uibase/docvw/edtwin.cxx @@ -1768,7 +1768,11 @@ KEYINPUT_CHECKTABLE: eFlyState = SwKeyState::Fly_Change; nDir = MOVE_LEFT_BIG; } - break; + goto KEYINPUT_CHECKTABLE_INSDEL; + } + case KEY_RIGHT | KEY_MOD1: + { + goto KEYINPUT_CHECKTABLE_INSDEL; } case KEY_UP: case KEY_UP | KEY_MOD1: @@ -1779,7 +1783,7 @@ KEYINPUT_CHECKTABLE: eFlyState = SwKeyState::Fly_Change; nDir = MOVE_UP_BIG; } - break; + goto KEYINPUT_CHECKTABLE_INSDEL; } case KEY_DOWN: case KEY_DOWN | KEY_MOD1: @@ -1790,8 +1794,26 @@ KEYINPUT_CHECKTABLE: eFlyState = SwKeyState::Fly_Change; nDir = MOVE_DOWN_BIG; } - break; + goto KEYINPUT_CHECKTABLE_INSDEL; + } + +KEYINPUT_CHECKTABLE_INSDEL: + if( rSh.IsTableMode() || !rSh.GetTableFormat() ) + { + const SelectionType nSelectionType = rSh.GetSelectionType(); + + eKeyState = SwKeyState::KeyToView; + if(SwKeyState::KeyToView != eFlyState) + { + if((nSelectionType & (SelectionType::DrawObject|SelectionType::DbForm)) && + rSh.GetDrawView()->AreObjectsMarked()) + eKeyState = SwKeyState::Draw_Change; + else if(nSelectionType & (SelectionType::Frame|SelectionType::Ole|SelectionType::Graphic)) + eKeyState = SwKeyState::Fly_Change; + } } + break; + case KEY_DELETE: if ( !rSh.HasReadonlySel() || rSh.CursorInsideInputField()) @@ -1967,7 +1989,7 @@ KEYINPUT_CHECKTABLE: { eFlyState = SwKeyState::Fly_Change; nDir = MOVE_RIGHT_BIG; - break; + goto KEYINPUT_CHECKTABLE_INSDEL; } case KEY_TAB: { |