summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kyoshida@novell.com>2009-09-23 10:59:10 -0400
committerKohei Yoshida <kyoshida@novell.com>2009-09-23 11:02:35 -0400
commitdfae7670722533f98455aa7f96d8709f79c72d84 (patch)
treef98e91406f13ff0a59a63a03309919a8613664c9
parentc83a95615891e7ba0d4ad1d84e7fbd2c90eaccd0 (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.diff10
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 )