diff options
| author | Tofu Linden <tofu.linden@lindenlab.com> | 2010-09-27 17:49:03 +0100 | 
|---|---|---|
| committer | Tofu Linden <tofu.linden@lindenlab.com> | 2010-09-27 17:49:03 +0100 | 
| commit | e6688f993f82d2683e3eadce96c893959c94be2d (patch) | |
| tree | d3078961189c207b49ecfb76586da5110080d755 /indra/newview | |
| parent | 595cbb77d250e3df2ba8caa66ad9c940430a8d3f (diff) | |
| parent | fa22f0a6f8d1144bee20654209342280a772bcae (diff) | |
merge
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llpreviewscript.cpp | 20 | ||||
| -rw-r--r-- | indra/newview/llpreviewscript.h | 2 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.cpp | 11 | 
3 files changed, 32 insertions, 1 deletions
| diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index 627010bb53..cf2ea38288 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -138,6 +138,9 @@ public:  	LLScriptEdCore* getEditorCore() { return mEditorCore; }  	static LLFloaterScriptSearch* getInstance() { return sInstance; } +	virtual bool hasAccelerators() const; +	virtual BOOL handleKeyHere(KEY key, MASK mask); +  private:  	LLScriptEdCore* mEditorCore; @@ -242,7 +245,24 @@ void LLFloaterScriptSearch::handleBtnReplaceAll()  	mEditorCore->mEditor->replaceTextAll(getChild<LLUICtrl>("search_text")->getValue().asString(), getChild<LLUICtrl>("replace_text")->getValue().asString(), caseChk->get());  } +bool LLFloaterScriptSearch::hasAccelerators() const +{ +	if (mEditorCore) +	{ +		return mEditorCore->hasAccelerators(); +	} +	return FALSE; +} + +BOOL LLFloaterScriptSearch::handleKeyHere(KEY key, MASK mask) +{ +	if (mEditorCore) +	{ +		return mEditorCore->handleKeyHere(key, mask); +	} +	return FALSE; +}  /// ---------------------------------------------------------------------------  /// LLScriptEdCore diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h index ef4f0d9c20..f4b31e5962 100644 --- a/indra/newview/llpreviewscript.h +++ b/indra/newview/llpreviewscript.h @@ -87,6 +87,8 @@ public:  	static void		onBtnInsertSample(void*);  	static void		onBtnInsertFunction(LLUICtrl*, void*); +	virtual bool	hasAccelerators() const { return true; } +  private:  	void		onBtnHelp();  	void		onBtnDynamicHelp(); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index b2ff39bbd2..983a2d25c8 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -2136,10 +2136,20 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)  		return TRUE;  	} +	LLFocusableElement* keyboard_focus = gFocusMgr.getKeyboardFocus(); +  	// give menus a chance to handle modified (Ctrl, Alt) shortcut keys before current focus   	// as long as focus isn't locked  	if (mask & (MASK_CONTROL | MASK_ALT) && !gFocusMgr.focusLocked())  	{ +		// Check the current floater's menu first, if it has one. +		if (gFocusMgr.keyboardFocusHasAccelerators() +			&& keyboard_focus  +			&& keyboard_focus->handleKey(key,mask,FALSE)) +		{ +			return TRUE; +		} +  		if ((gMenuBarView && gMenuBarView->handleAcceleratorKey(key, mask))  			||(gLoginMenuBarView && gLoginMenuBarView->handleAcceleratorKey(key, mask)))  		{ @@ -2175,7 +2185,6 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)  	}  	// Traverses up the hierarchy -	LLFocusableElement* keyboard_focus = gFocusMgr.getKeyboardFocus();  	if( keyboard_focus )  	{  		LLLineEditor* chat_editor = LLBottomTray::instanceExists() ? LLBottomTray::getInstance()->getNearbyChatBar()->getChatBox() : NULL; | 
