Author: orw Date: Fri May 31 14:03:01 2013 New Revision: 1488232 URL: http://svn.apache.org/r1488232 Log: 122262: correct handling of Shift-<arrow key> for bigger steps movement of objects in order to get back text selection via keys in a table
Modified: openoffice/trunk/main/sw/source/ui/docvw/edtwin.cxx Modified: openoffice/trunk/main/sw/source/ui/docvw/edtwin.cxx URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sw/source/ui/docvw/edtwin.cxx?rev=1488232&r1=1488231&r2=1488232&view=diff ============================================================================== --- openoffice/trunk/main/sw/source/ui/docvw/edtwin.cxx (original) +++ openoffice/trunk/main/sw/source/ui/docvw/edtwin.cxx Fri May 31 14:03:01 2013 @@ -1626,17 +1626,15 @@ void SwEditWin::KeyInput(const KeyEvent switch( rKeyCode.GetModifier() | rKeyCode.GetCode() ) { case KEY_RIGHT | KEY_MOD2: - case KEY_RIGHT | KEY_SHIFT: eKeyState = KS_ColRightBig; eFlyState = KS_Fly_Change; - nDir = rKeyCode.GetModifier() & KEY_SHIFT ? MOVE_RIGHT_HUGE : MOVE_RIGHT_SMALL; + nDir = MOVE_RIGHT_SMALL; goto KEYINPUT_CHECKTABLE; case KEY_LEFT | KEY_MOD2: - case KEY_LEFT | KEY_SHIFT: eKeyState = KS_ColRightSmall; eFlyState = KS_Fly_Change; - nDir = rKeyCode.GetModifier() & KEY_SHIFT ? MOVE_LEFT_HUGE : MOVE_LEFT_SMALL; + nDir = MOVE_LEFT_SMALL; goto KEYINPUT_CHECKTABLE; case KEY_RIGHT | KEY_MOD2 | KEY_SHIFT: @@ -1664,17 +1662,15 @@ void SwEditWin::KeyInput(const KeyEvent goto KEYINPUT_CHECKTABLE; case KEY_UP | KEY_MOD2: - case KEY_UP | KEY_SHIFT: eKeyState = KS_ColBottomSmall; eFlyState = KS_Fly_Change; - nDir = rKeyCode.GetModifier() & KEY_SHIFT ? MOVE_UP_HUGE : MOVE_UP_SMALL; + nDir = MOVE_UP_SMALL; goto KEYINPUT_CHECKTABLE; case KEY_DOWN | KEY_MOD2: - case KEY_DOWN | KEY_SHIFT: eKeyState = KS_ColBottomBig; eFlyState = KS_Fly_Change; - nDir = rKeyCode.GetModifier() & KEY_SHIFT ? MOVE_DOWN_HUGE : MOVE_DOWN_SMALL; + nDir = MOVE_DOWN_SMALL; goto KEYINPUT_CHECKTABLE; // case KEY_UP | KEY_MOD2 | KEY_SHIFT: @@ -1718,6 +1714,28 @@ KEYINPUT_CHECKTABLE: } break; + // huge object move + case KEY_RIGHT | KEY_SHIFT: + case KEY_LEFT | KEY_SHIFT: + case KEY_UP | KEY_SHIFT: + case KEY_DOWN | KEY_SHIFT: + { + if ( pFlyFmt + || ( (rSh.GetSelectionType() & (nsSelectionType::SEL_DRW|nsSelectionType::SEL_DRW_FORM)) + && rSh.GetDrawView()->AreObjectsMarked() ) ) + { + eKeyState = pFlyFmt ? KS_Fly_Change : KS_Draw_Change; + switch ( rKeyCode.GetCode() ) + { + case KEY_RIGHT: nDir = MOVE_RIGHT_HUGE; break; + case KEY_LEFT: nDir = MOVE_LEFT_HUGE; break; + case KEY_UP: nDir = MOVE_UP_HUGE; break; + case KEY_DOWN: nDir = MOVE_DOWN_HUGE; break; + } + } + break; + } + //------- // Insert/Delete case KEY_LEFT: