diff options
-rw-r--r-- | svx/source/dialog/graphctl.cxx | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/svx/source/dialog/graphctl.cxx b/svx/source/dialog/graphctl.cxx index 4fc18b71cbeb..d70bb3df343b 100644 --- a/svx/source/dialog/graphctl.cxx +++ b/svx/source/dialog/graphctl.cxx @@ -309,6 +309,8 @@ void GraphCtrl::KeyInput( const KeyEvent& rKEvt ) KeyCode aCode( rKEvt.GetKeyCode() ); bool bProc = false; + Dialog* pDialog = GetParentDialog(); + switch ( aCode.GetCode() ) { case KEY_DELETE: @@ -318,8 +320,8 @@ void GraphCtrl::KeyInput( const KeyEvent& rKEvt ) { pView->DeleteMarked(); bProc = true; - if( !pView->AreObjectsMarked() ) - GetParentDialog()->GrabFocusToFirstControl(); + if (!pView->AreObjectsMarked() && pDialog) + pDialog->GrabFocusToFirstControl(); } } break; @@ -328,9 +330,11 @@ void GraphCtrl::KeyInput( const KeyEvent& rKEvt ) { if ( bSdrMode ) { + bool bGrabFocusToFirstControl = true; if ( pView->IsAction() ) { pView->BrkAction(); + bGrabFocusToFirstControl = false; } else if ( pView->AreObjectsMarked() ) { @@ -340,16 +344,11 @@ void GraphCtrl::KeyInput( const KeyEvent& rKEvt ) if(pHdl) { ((SdrHdlList&)rHdlList).ResetFocusHdl(); + bGrabFocusToFirstControl = false; } - else - { - GetParentDialog()->GrabFocusToFirstControl(); - } - } - else - { - GetParentDialog()->GrabFocusToFirstControl(); } + if (bGrabFocusToFirstControl && pDialog) + pDialog->GrabFocusToFirstControl(); bProc = true; } } |