diff options
author | Caolán McNamara <caolanm@redhat.com> | 2014-01-08 11:22:25 +0000 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2014-05-18 22:10:19 +0200 |
commit | a29ddb2a595c334557a78fcb941ef9332271ecf0 (patch) | |
tree | a5ac5817ab4844fa9f468d903e2aace339473a26 /svx | |
parent | 979a1c32f393fd8b21b1b8cc7f986acee1c48e08 (diff) |
Resolves: rhbz#1096486 avoid access to nonexisting parent dialog
was Related: rhbz#1047174
(cherry picked from commit 794f5af121906668870a58700aed25b660381240)
Change-Id: I0bf9116d088adde838993ac5e909a6f3481f883e
Reviewed-on: https://gerrit.libreoffice.org/9326
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'svx')
-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; } } |