RegisterHotKey will be more robust

This commit is contained in:
Mike Griese 2021-01-28 10:56:57 -06:00
parent 1c2f8e5d6a
commit 71f6b581e2

View file

@ -352,6 +352,18 @@ long IslandWindow::_calculateTotalSize(const bool isWidth, const long clientSize
{
switch (message)
{
case WM_HOTKEY:
{
auto a = 0;
a++;
a;
// ShowWindow(_window.get(), SW_RESTORE);
// SetFocus(_window.get());
HWND myHwnd = _window.get();
SendMessage(_window.get(), WM_SYSCOMMAND, SC_HOTKEY, (LPARAM)myHwnd);
// break;
return 0;
}
case WM_GETMINMAXINFO:
{
_OnGetMinMaxInfo(wparam, lparam);
@ -849,14 +861,29 @@ void IslandWindow::SetGlobalHotkey(const winrt::Microsoft::Terminal::TerminalCon
if (hotkey)
{
auto modifiers = hotkey.Modifiers();
WPARAM wParam = hotkey.Vkey() |
(WI_IsFlagSet(modifiers, KeyModifiers::Alt) ? HOTKEYF_ALT << 8 : 0) |
(WI_IsFlagSet(modifiers, KeyModifiers::Ctrl) ? HOTKEYF_CONTROL << 8 : 0) |
(WI_IsFlagSet(modifiers, KeyModifiers::Shift) ? HOTKEYF_SHIFT << 8 : 0);
auto result = SendMessage(_window.get(), WM_SETHOTKEY, wParam, 0);
result;
auto a = result + 1;
a;
// WPARAM wParam = hotkey.Vkey() |
// (WI_IsFlagSet(modifiers, KeyModifiers::Alt) ? HOTKEYF_ALT << 8 : 0) |
// (WI_IsFlagSet(modifiers, KeyModifiers::Ctrl) ? HOTKEYF_CONTROL << 8 : 0) |
// (WI_IsFlagSet(modifiers, KeyModifiers::Shift) ? HOTKEYF_SHIFT << 8 : 0);
// auto result = SendMessage(_window.get(), WM_SETHOTKEY, wParam, 0);
// result;
// auto a = result + 1;
// a;
auto MODs = MOD_NOREPEAT |
(WI_IsFlagSet(modifiers, KeyModifiers::Alt) ? MOD_ALT : 0) |
(WI_IsFlagSet(modifiers, KeyModifiers::Ctrl) ? MOD_CONTROL : 0) |
(WI_IsFlagSet(modifiers, KeyModifiers::Shift) ? MOD_SHIFT : 0);
auto res = RegisterHotKey(_window.get(), 1, MODs, hotkey.Vkey());
LOG_LAST_ERROR_IF(!res);
// if (!res)
// {
// // auto gle = GetLastError();
// }
// res;
// auto b = !res;
// b;
}
}