summaryrefslogtreecommitdiff
path: root/indra/newview/lllocationinputctrl.cpp
diff options
context:
space:
mode:
authorVadim Savchuk <vsavchuk@productengine.com>2010-07-08 14:32:45 +0300
committerVadim Savchuk <vsavchuk@productengine.com>2010-07-08 14:32:45 +0300
commit75f8563e0a4ba06c45853a97170ef8322458bd08 (patch)
tree39ff74fee67d6ba0f0f9524d910bb3d3ae1870b8 /indra/newview/lllocationinputctrl.cpp
parent04a9a19c8361eda9bf6d7d6aa014db4d15dcf715 (diff)
parentf6ac20860fb5110571802dd0a5ac76d236855ba7 (diff)
Merge from default branch
--HG-- branch : product-engine
Diffstat (limited to 'indra/newview/lllocationinputctrl.cpp')
-rw-r--r--indra/newview/lllocationinputctrl.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp
index 53a11eff04..b8590d838e 100644
--- a/indra/newview/lllocationinputctrl.cpp
+++ b/indra/newview/lllocationinputctrl.cpp
@@ -231,7 +231,7 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p)
params.rect(text_entry_rect);
params.default_text(LLStringUtil::null);
params.max_length_bytes(p.max_chars);
- params.keystroke_callback(boost::bind(&LLComboBox::onTextEntry, this, _1));
+ params.keystroke_callback(boost::bind(&LLLocationInputCtrl::onTextEntry, this, _1));
params.commit_on_focus_lost(false);
params.follows.flags(FOLLOWS_ALL);
mTextEntry = LLUICtrlFactory::create<LLURLLineEditor>(params);
@@ -484,13 +484,16 @@ void LLLocationInputCtrl::onTextEntry(LLLineEditor* line_editor)
KEY key = gKeyboard->currentKey();
MASK mask = gKeyboard->currentMask(TRUE);
+ // Typing? (moving cursor should not affect showing the list)
+ bool typing = mask != MASK_CONTROL && key != KEY_LEFT && key != KEY_RIGHT && key != KEY_HOME && key != KEY_END;
+ bool pasting = mask == MASK_CONTROL && key == 'V';
+
if (line_editor->getText().empty())
{
prearrangeList(); // resets filter
hideList();
}
- // Typing? (moving cursor should not affect showing the list)
- else if (mask != MASK_CONTROL && key != KEY_LEFT && key != KEY_RIGHT && key != KEY_HOME && key != KEY_END)
+ else if (typing || pasting)
{
prearrangeList(line_editor->getText());
if (mList->getItemCount() != 0)
@@ -966,7 +969,12 @@ void LLLocationInputCtrl::focusTextEntry()
// if the "select_on_focus" parameter is true it places the cursor
// at the beginning (after selecting text), thus screwing up updateSelection().
if (mTextEntry)
+ {
gFocusMgr.setKeyboardFocus(mTextEntry);
+
+ // Enable the text entry to handle accelerator keys (EXT-8104).
+ LLEditMenuHandler::gEditMenuHandler = mTextEntry;
+ }
}
void LLLocationInputCtrl::enableAddLandmarkButton(bool val)