diff options
author | Kohei Yoshida <kyoshida@novell.com> | 2009-09-23 10:59:10 -0400 |
---|---|---|
committer | Kohei Yoshida <kyoshida@novell.com> | 2009-09-23 11:02:35 -0400 |
commit | dfae7670722533f98455aa7f96d8709f79c72d84 (patch) | |
tree | f98e91406f13ff0a59a63a03309919a8613664c9 | |
parent | c83a95615891e7ba0d4ad1d84e7fbd2c90eaccd0 (diff) |
Fixed improper cell selection handling when cell is being edited.
* patches/dev300/calc-selection-fixed-cursor.diff: flush the text
in the current cell & end the cell input mode, before starting
the selection. (n#541269)
-rw-r--r-- | patches/dev300/calc-selection-fixed-cursor.diff | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/patches/dev300/calc-selection-fixed-cursor.diff b/patches/dev300/calc-selection-fixed-cursor.diff index b64f34b9e..0688c2b37 100644 --- a/patches/dev300/calc-selection-fixed-cursor.diff +++ b/patches/dev300/calc-selection-fixed-cursor.diff @@ -145,7 +145,7 @@ index 4cb00fb..3f80397 100644 SCsCOLROW nRTLSign = 1; if ( pData->GetDocument()->IsLayoutRTL( pData->GetTabNo() ) ) { -@@ -172,38 +218,50 @@ void ScCellShell::GetStateCursor( SfxItemSet& /* rSet */ ) +@@ -172,38 +218,58 @@ void ScCellShell::GetStateCursor( SfxItemSet& /* rSet */ ) void ScCellShell::ExecuteCursorSel( SfxRequest& rReq ) { @@ -161,6 +161,13 @@ index 4cb00fb..3f80397 100644 - } + sal_uInt16 nSlotId = rReq.GetSlot(); + ScTabViewShell* pViewShell = GetViewData()->GetViewShell(); ++ ScInputHandler* pInputHdl = pViewShell->GetInputHandler(); ++ pViewShell->HideAllCursors(); ++ if (pInputHdl && pInputHdl->IsInputMode()) ++ { ++ // the current cell is in edit mode. Commit the text before moving on. ++ pViewShell->ExecuteInputDirect(); ++ } - switch ( nSlotId ) + switch (nSlotId) @@ -221,6 +228,7 @@ index 4cb00fb..3f80397 100644 - rReq.AppendItem( SfxInt16Item(FN_PARAM_1, nRepeat ) ); - rReq.AppendItem( SfxBoolItem(FN_PARAM_2, TRUE) ); - ExecuteSlot( rReq, GetInterface() ); ++ pViewShell->ShowAllCursors(); } void ScCellShell::ExecuteMove( SfxRequest& rReq ) |