[EXPLORER]

Implement support for hotkeys for run, show desktop and logoff
currently it also causes the startmenu to open, like with win-E, but this is a different bug

See issue #1512 for more details.

svn path=/trunk/; revision=54076
This commit is contained in:
Timo Kreuzer 2011-10-10 22:12:39 +00:00
parent 8605da369f
commit d5a6da4ea8
4 changed files with 33 additions and 7 deletions

View file

@ -245,7 +245,10 @@ LRESULT StartButton::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
void DesktopBar::RegisterHotkeys() void DesktopBar::RegisterHotkeys()
{ {
// register hotkey WIN+E opening explorer // register hotkey WIN+E opening explorer
RegisterHotKey(_hwnd, 0, MOD_WIN, 'E'); RegisterHotKey(_hwnd, IDHK_EXPLORER, MOD_WIN, 'E');
RegisterHotKey(_hwnd, IDHK_RUN, MOD_WIN, 'R');
RegisterHotKey(_hwnd, IDHK_DESKTOP, MOD_WIN, 'D');
RegisterHotKey(_hwnd, IDHK_LOGOFF, MOD_WIN, 'L');
///@todo register all common hotkeys ///@todo register all common hotkeys
} }
@ -253,7 +256,20 @@ void DesktopBar::RegisterHotkeys()
void DesktopBar::ProcessHotKey(int id_hotkey) void DesktopBar::ProcessHotKey(int id_hotkey)
{ {
switch(id_hotkey) { switch(id_hotkey) {
case 0: explorer_show_frame(SW_SHOWNORMAL); case IDHK_EXPLORER:
explorer_show_frame(SW_SHOWNORMAL);
break;
case IDHK_RUN:
_startMenuRoot->Command(IDC_LAUNCH, 0);
break;
case IDHK_LOGOFF:
_startMenuRoot->Command(IDC_LOGOFF, 0);
break;
case IDHK_DESKTOP:
g_Globals._desktops.ToggleMinimize();
break; break;
///@todo implement all common hotkeys ///@todo implement all common hotkeys

View file

@ -63,6 +63,11 @@
#define IDC_FIRST_MENU 0x3000 #define IDC_FIRST_MENU 0x3000
// hotkeys
#define IDHK_EXPLORER 0
#define IDHK_RUN 1
#define IDHK_DESKTOP 2
#define IDHK_LOGOFF 3
/// desktop bar window, also known as "system tray" /// desktop bar window, also known as "system tray"
struct DesktopBar : public struct DesktopBar : public

View file

@ -1692,6 +1692,10 @@ void StartMenuRoot::TrackStartmenu()
} }
} }
int StartMenuRoot::Command(int id, int code)
{
return super::Command(id, code);
}
LRESULT StartMenuRoot::Init(LPCREATESTRUCT pcs) LRESULT StartMenuRoot::Init(LPCREATESTRUCT pcs)
{ {

View file

@ -369,6 +369,7 @@ struct StartMenuRoot : public StartMenuHandler
static HWND Create(HWND hwndDesktopBar, int icon_size); static HWND Create(HWND hwndDesktopBar, int icon_size);
void TrackStartmenu(); void TrackStartmenu();
int Command(int id, int code);
HWND _hwndStartButton; HWND _hwndStartButton;