dcbf7c74f1
`VkKeyScanW` as well as `MapVirtualKeyW` are used throughout the project, but are input method sensitive functions. Since #10666 `win+sc(41)` is used as the quake mode keybinding, which is then mapped to a virtual key in order to call `RegisterHotKey`. This mapping is highly dependent on the input method and the quake mode key binding will fail to work once the input method was changed. <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist * [x] Closes #10729 * [x] I work here * [ ] Tests added/passed ## Validation Steps Performed * win+` opens quake window before & after changing keyboard layout ✔️ * keyboard layout changes while WT is minimized trigger reloaded ✔️
22 lines
744 B
C++
22 lines
744 B
C++
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT license.
|
|
|
|
#pragma once
|
|
|
|
namespace winrt::TerminalApp::implementation
|
|
{
|
|
class LanguageProfileNotifier : public winrt::implements<LanguageProfileNotifier, ITfInputProcessorProfileActivationSink>
|
|
{
|
|
public:
|
|
explicit LanguageProfileNotifier(std::function<void()>&& callback);
|
|
~LanguageProfileNotifier();
|
|
STDMETHODIMP OnActivated(DWORD dwProfileType, LANGID langid, REFCLSID clsid, REFGUID catid, REFGUID guidProfile, HKL hkl, DWORD dwFlags);
|
|
|
|
private:
|
|
std::function<void()> _callback;
|
|
wil::com_ptr<ITfSource> _source;
|
|
DWORD _cookie = TF_INVALID_COOKIE;
|
|
HKL _currentKeyboardLayout;
|
|
};
|
|
}
|