Index: dll/cpl/desk/appearance.c =================================================================== --- dll/cpl/desk/appearance.c (revision 39952) +++ dll/cpl/desk/appearance.c (working copy) @@ -462,6 +462,15 @@ case WM_COMMAND: switch (LOWORD(wParam)) { + case IDC_APPEARANCE_EFFECTS: + MessageBox( + NULL, + (LPCWSTR)L"Implement IDC_APPEARANCE_EFFECTS dialog", + (LPCWSTR)L"Not implemented", + MB_OK + ); + break; + case IDC_APPEARANCE_ADVANCED: DialogBoxParam(hApplet, (LPCTSTR)IDD_ADVAPPEARANCE, hwndDlg, AdvAppearanceDlgProc, (LPARAM)g); Index: dll/cpl/desk/lang/en-US.rc =================================================================== --- dll/cpl/desk/lang/en-US.rc (revision 39952) +++ dll/cpl/desk/lang/en-US.rc (working copy) @@ -55,7 +55,8 @@ WS_VISIBLE | WS_BORDER, 7, 7, 232, 120 LTEXT "Colorscheme", IDC_STATIC, 7, 140, 64, 7 COMBOBOX IDC_APPEARANCE_COLORSCHEME, 7, 150, 134, 90 , CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_SORT | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Advanced", IDC_APPEARANCE_ADVANCED, 182, 150, 56, 15 + PUSHBUTTON "&Effects...", IDC_APPEARANCE_EFFECTS, 182, 150, 56, 15 + PUSHBUTTON "Ad&vanced...", IDC_APPEARANCE_ADVANCED, 182, 170, 56, 15 END IDD_ADVAPPEARANCE DIALOGEX DISCARDABLE 0, 0, 250, 239 Index: dll/cpl/desk/lang/it-IT.rc =================================================================== --- dll/cpl/desk/lang/it-IT.rc (revision 39952) +++ dll/cpl/desk/lang/it-IT.rc (working copy) @@ -53,7 +53,8 @@ WS_VISIBLE | WS_BORDER, 7, 7, 232, 120 LTEXT "Schema dei colori", IDC_STATIC, 7, 140, 64, 7 COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Avanzato", IDC_APPEARANCE_ADVANCED, 182, 150, 56, 15 + PUSHBUTTON "&Effetti...", IDC_APPEARANCE_EFFECTS, 182, 150, 56, 15 + PUSHBUTTON "A&vanzato...", IDC_APPEARANCE_ADVANCED, 182, 170, 56, 15 END IDD_ADVAPPEARANCE DIALOGEX DISCARDABLE 0, 0, 250, 239 Index: dll/cpl/desk/lang/nl-NL.rc =================================================================== --- dll/cpl/desk/lang/nl-NL.rc (revision 39952) +++ dll/cpl/desk/lang/nl-NL.rc (working copy) @@ -55,7 +55,8 @@ WS_VISIBLE | WS_BORDER, 7, 7, 232, 120 LTEXT "Kleurenschema:", IDC_STATIC, 7, 140, 64, 7 COMBOBOX IDC_APPEARANCE_UI_ITEM, 7, 169, 120, 54, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Geavan&ceerd", IDC_APPEARANCE_ADVANCED, 182, 150, 56, 15 + PUSHBUTTON "&Effecten...", IDC_APPEARANCE_EFFECTS, 182, 150, 56, 15 + PUSHBUTTON "Geavan&ceerd...", IDC_APPEARANCE_ADVANCED, 182, 170, 56, 15 END IDD_ADVAPPEARANCE DIALOGEX DISCARDABLE 0, 0, 250, 239 Index: dll/win32/user32/windows/defwnd.c =================================================================== --- dll/win32/user32/windows/defwnd.c (revision 39952) +++ dll/win32/user32/windows/defwnd.c (working copy) @@ -1383,6 +1383,7 @@ } case WM_SYSCOMMAND: + TRACE("WM_SYSCOMMAND\n"); return (DefWndHandleSysCommand(hWnd, wParam, lParam)); case WM_KEYDOWN: @@ -1392,20 +1393,24 @@ /* FIXME: This is also incomplete. */ case WM_SYSKEYDOWN: { + TRACE("WM_SYSKEYDOWN\n"); if (HIWORD(lParam) & KEYDATA_ALT) { + TRACE("WM_SYSKEYDOWN KEYDATA_ALT\n"); + HWND top = GetAncestor(hWnd, GA_ROOT); /* if( HIWORD(lParam) & ~KEYDATA_PREVSTATE ) */ if ( (wParam == VK_MENU || wParam == VK_LMENU - || wParam == VK_RMENU) && !iMenuSysKey ) + || wParam == VK_RMENU) && !iMenuSysKey ) { iMenuSysKey = 1; - else + /* mimic behaviour of XP, sending a WM_SYSCOMMAND when pressing */ + SendMessageW( top, WM_SYSCOMMAND, SC_KEYMENU, 0L ); + } else iMenuSysKey = 0; iF10Key = 0; if (wParam == VK_F4) /* Try to close the window */ { - HWND top = GetAncestor(hWnd, GA_ROOT); if (!(GetClassLongW(top, GCL_STYLE) & CS_NOCLOSE)) { if (bUnicode) @@ -1629,7 +1634,7 @@ case WM_CHANGEUISTATE: { - BOOL AlwaysShowCues = TRUE; + BOOL AlwaysShowCues = FALSE; WORD Action = LOWORD(wParam); WORD Flags = HIWORD(wParam); PWINDOW Wnd; @@ -1711,7 +1716,7 @@ case WM_UPDATEUISTATE: { BOOL Change = TRUE; - BOOL AlwaysShowCues = TRUE; + BOOL AlwaysShowCues = FALSE; WORD Action = LOWORD(wParam); WORD Flags = HIWORD(wParam); PWINDOW Wnd; Index: dll/win32/user32/windows/dialog.c =================================================================== --- dll/win32/user32/windows/dialog.c (revision 39952) +++ dll/win32/user32/windows/dialog.c (working copy) @@ -2408,6 +2408,13 @@ if (lpMsg->lParam & (1 << 29)) SendMessageW(hDlg, WM_CHANGEUISTATE, MAKEWPARAM(UIS_CLEAR, UISF_HIDEACCEL | UISF_HIDEFOCUS), 0); break; + + case WM_SYSCOMMAND: + /* If the ALT key is being pressed display the keyboard cues */ + if (lpMsg->wParam == SC_KEYMENU) { + SendMessageW(hDlg, WM_CHANGEUISTATE, MAKEWPARAM(UIS_CLEAR, UISF_HIDEACCEL | UISF_HIDEFOCUS), 0); + } + break; } TranslateMessage( lpMsg );