Index: basctl/source/basicide/objdlg.cxx =================================================================== --- basctl/source/basicide/objdlg.cxx (revision 1562449) +++ basctl/source/basicide/objdlg.cxx (working copy) @@ -64,28 +64,41 @@ { BasicTreeListBox::MouseButtonDown( rMEvt ); - if ( rMEvt.IsLeft() && ( rMEvt.GetClicks() == 2 ) ) - { - BasicEntryDescriptor aDesc( GetEntryDescriptor( GetCurEntry() ) ); + if ( rMEvt.IsLeft() && ( rMEvt.GetClicks() == 2 ) ) + { + OpenCurrent(); + } +} - if ( aDesc.GetType() == OBJ_TYPE_METHOD ) - { - BasicIDEShell* pIDEShell = IDE_DLL()->GetShell(); - SfxViewFrame* pViewFrame = pIDEShell ? pIDEShell->GetViewFrame() : NULL; - SfxDispatcher* pDispatcher = pViewFrame ? pViewFrame->GetDispatcher() : NULL; - if( pDispatcher ) - { - 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 ); - } - } - } +void ObjectTreeListBox::KeyInput( const KeyEvent& rEvt ) +{ + if ( rEvt.GetKeyCode() == KEY_RETURN && OpenCurrent() ) + { + return; + } + BasicTreeListBox::KeyInput( rEvt ); } +bool ObjectTreeListBox::OpenCurrent() +{ + BasicEntryDescriptor aDesc( GetEntryDescriptor( GetCurEntry() ) ); + if ( aDesc.GetType() == OBJ_TYPE_METHOD ) + { + BasicIDEShell* pIDEShell = IDE_DLL()->GetShell(); + SfxViewFrame* pViewFrame = pIDEShell ? pIDEShell->GetViewFrame() : NULL; + SfxDispatcher* pDispatcher = pViewFrame ? pViewFrame->GetDispatcher() : NULL; + if( pDispatcher ) + { + 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 ); + } + } +} + ObjectCatalog::ObjectCatalog( Window * pParent ) :FloatingWindow( pParent, IDEResId( RID_BASICIDE_OBJCAT ) ) ,aMacroTreeList( this, IDEResId( RID_TLB_MACROS ) ) Index: basctl/source/basicide/objdlg.hxx =================================================================== --- basctl/source/basicide/objdlg.hxx (revision 1562449) +++ basctl/source/basicide/objdlg.hxx (working copy) @@ -40,7 +40,9 @@ virtual void Command( const CommandEvent& rCEvt ); virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void KeyInput( const KeyEvent& rEvt ); + bool OpenCurrent(); public: ObjectTreeListBox( Window* pParent, const ResId& rRes ); ~ObjectTreeListBox();