You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by or...@apache.org on 2013/05/31 16:03:02 UTC

svn commit: r1488232 - /openoffice/trunk/main/sw/source/ui/docvw/edtwin.cxx

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: