merge -r 57058:57111 maintenance.

master
Steven Bennetts 2007-01-25 00:18:16 +00:00
parent ad94bca0d2
commit 821f998373
2 changed files with 28 additions and 12 deletions

View File

@ -472,6 +472,7 @@ BOOL LLMenuItemGL::handleMouseUp( S32 x, S32 y, MASK )
}
}
void LLMenuItemGL::draw( void )
{
// *FIX: This can be optimized by using switches. Want to avoid
@ -4104,7 +4105,7 @@ BOOL LLMenuBarGL::handleAcceleratorKey(KEY key, MASK mask)
BOOL LLMenuBarGL::handleKeyHere(KEY key, MASK mask, BOOL called_from_parent)
{
if(key == KEY_ALT)
if(key == KEY_ALT && !gKeyboard->getKeyRepeated(key) && LLUI::sConfigGroup->getBOOL("UseAltKeyForMenus"))
{
mAltKeyTrigger = TRUE;
}

View File

@ -1950,19 +1950,34 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
// allow system keys, such as ALT-F4 to be processed by Windows
eat_keystroke = FALSE;
case WM_KEYDOWN:
if (gDebugWindowProc)
{
llinfos << "Debug WindowProc WM_KEYDOWN "
<< " key " << S32(w_param)
<< llendl;
if (gDebugWindowProc)
{
llinfos << "Debug WindowProc WM_KEYDOWN "
<< " key " << S32(w_param)
<< llendl;
}
// lower 15 bits hold key repeat count
S32 key_repeat_count = l_param & 0x7fff;
if (key_repeat_count > 1)
{
KEY translated_key;
gKeyboard->translateKey(w_param, &translated_key);
if (!gKeyboard->getKeyDown(translated_key))
{
//RN: hack for handling key repeats when we no longer recognize the key as being down
//This is necessary because we sometimes ignore the message queue and use getAsyncKeyState
// to clear key level flags before we've processed all key repeat messages
return 0;
}
}
if(gKeyboard->handleKeyDown(w_param, mask) && eat_keystroke)
{
return 0;
}
// pass on to windows if we didn't handle it
break;
}
if (gKeyboard->handleKeyDown(w_param, mask) && eat_keystroke)
{
return 0;
}
// pass on to windows if we didn't handle it
break;
case WM_SYSKEYUP:
eat_keystroke = FALSE;
case WM_KEYUP: