From 8a49d4ef949e139385e2c0de77e14332b2ac0b8e Mon Sep 17 00:00:00 2001 From: Siana Gearz Date: Mon, 6 Feb 2012 03:01:15 +0100 Subject: [PATCH] Allow pretty much any key for gestures, like Emerald --- indra/newview/llpreviewgesture.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp index a968f6e12..b6dfcc185 100644 --- a/indra/newview/llpreviewgesture.cpp +++ b/indra/newview/llpreviewgesture.cpp @@ -567,20 +567,23 @@ void LLPreviewGesture::addModifiers() combo->setCurrentByIndex(0); } + +static const std::string valid_key_to_string(KEY key) +{ + std::string skey(1,(char)key); + std::string strkey = LLKeyboard::stringFromKey(key); + return ((skey == strkey && key >= ' ' && key <= '~') || (skey != strkey) ) ? strkey : ""; +} + void LLPreviewGesture::addKeys() { LLComboBox* combo = mKeyCombo; - combo->add( NONE_LABEL ); - - // - //define for the lulz -#define addKey(k) combo->add( LLKeyboard::stringFromKey(k), ADD_BOTTOM ); - for (KEY key = KEY_F2; key <= KEY_F12; key++) - addKey(key) - for (KEY key = ' '; key <= '~'; key++) - addKey(key) - // + for (KEY key = ' '; key < KEY_NONE; key++) + { + std::string keystr = valid_key_to_string(key); + if(keystr != "")combo->add( keystr, ADD_BOTTOM ); + } combo->setCurrentByIndex(0); }