summaryrefslogtreecommitdiffstats
path: root/basctl/source/basicide/bastype2.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'basctl/source/basicide/bastype2.cxx')
-rw-r--r--basctl/source/basicide/bastype2.cxx59
1 files changed, 37 insertions, 22 deletions
diff --git a/basctl/source/basicide/bastype2.cxx b/basctl/source/basicide/bastype2.cxx
index 8f848a8f390b..9ff70c06d753 100644
--- a/basctl/source/basicide/bastype2.cxx
+++ b/basctl/source/basicide/bastype2.cxx
@@ -922,32 +922,47 @@ void TreeListBox::MouseButtonDown( const MouseEvent& rMEvt )
SvTreeListBox::MouseButtonDown( rMEvt );
if ( rMEvt.IsLeft() && ( rMEvt.GetClicks() == 2 ) )
{
- EntryDescriptor aDesc = GetEntryDescriptor(GetCurEntry());
- switch (aDesc.GetType())
- {
- case OBJ_TYPE_METHOD:
- case OBJ_TYPE_MODULE:
- case OBJ_TYPE_DIALOG:
- if (SfxDispatcher* pDispatcher = GetDispatcher())
- {
- SbxItem aSbxItem(
- SID_BASICIDE_ARG_SBX, aDesc.GetDocument(),
- aDesc.GetLibName(), aDesc.GetName(), aDesc.GetMethodName(),
- ConvertType(aDesc.GetType())
- );
- pDispatcher->Execute(
- SID_BASICIDE_SHOWSBX,
- SFX_CALLMODE_SYNCHRON, &aSbxItem, 0L
- );
- }
- break;
+ OpenCurrent();
+ }
+}
- default:
- break;
- }
+void TreeListBox::KeyInput( const KeyEvent& rEvt )
+{
+ if ( rEvt.GetKeyCode() == KEY_RETURN && OpenCurrent() )
+ {
+ return;
}
+ SvTreeListBox::KeyInput( rEvt );
}
+bool TreeListBox::OpenCurrent()
+{
+ EntryDescriptor aDesc = GetEntryDescriptor(GetCurEntry());
+ switch (aDesc.GetType())
+ {
+ case OBJ_TYPE_METHOD:
+ case OBJ_TYPE_MODULE:
+ case OBJ_TYPE_DIALOG:
+ if (SfxDispatcher* pDispatcher = GetDispatcher())
+ {
+ SbxItem aSbxItem(
+ SID_BASICIDE_ARG_SBX, aDesc.GetDocument(),
+ aDesc.GetLibName(), aDesc.GetName(), aDesc.GetMethodName(),
+ ConvertType(aDesc.GetType())
+ );
+ pDispatcher->Execute(
+ SID_BASICIDE_SHOWSBX,
+ SFX_CALLMODE_SYNCHRON, &aSbxItem, 0L
+ );
+ return true;
+ }
+ break;
+
+ default:
+ break;
+ }
+ return false;
+}
} // namespace basctl