mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-16 03:37:59 +01:00
[PastePlain]Repress modifier keys after plain paste (#24462)
This commit is contained in:
committed by
GitHub
parent
9867a9909d
commit
48e5c69c43
@@ -165,6 +165,18 @@ private:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void try_inject_modifier_key_restore(std::vector<INPUT> &inputs, short modifier)
|
||||||
|
{
|
||||||
|
// Most significant bit is set if key is down
|
||||||
|
if ((GetAsyncKeyState(static_cast<int>(modifier)) & 0x8000) != 0)
|
||||||
|
{
|
||||||
|
INPUT input_event = {};
|
||||||
|
input_event.type = INPUT_KEYBOARD;
|
||||||
|
input_event.ki.wVk = modifier;
|
||||||
|
inputs.push_back(input_event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void try_to_paste_as_plain_text()
|
void try_to_paste_as_plain_text()
|
||||||
{
|
{
|
||||||
std::wstring clipboard_text;
|
std::wstring clipboard_text;
|
||||||
@@ -334,6 +346,15 @@ private:
|
|||||||
inputs.push_back(input_event);
|
inputs.push_back(input_event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try_inject_modifier_key_restore(inputs, VK_LCONTROL);
|
||||||
|
try_inject_modifier_key_restore(inputs, VK_RCONTROL);
|
||||||
|
try_inject_modifier_key_restore(inputs, VK_LWIN);
|
||||||
|
try_inject_modifier_key_restore(inputs, VK_RWIN);
|
||||||
|
try_inject_modifier_key_restore(inputs, VK_LSHIFT);
|
||||||
|
try_inject_modifier_key_restore(inputs, VK_RSHIFT);
|
||||||
|
try_inject_modifier_key_restore(inputs, VK_LMENU);
|
||||||
|
try_inject_modifier_key_restore(inputs, VK_RMENU);
|
||||||
|
|
||||||
auto uSent = SendInput(static_cast<UINT>(inputs.size()), inputs.data(), sizeof(INPUT));
|
auto uSent = SendInput(static_cast<UINT>(inputs.size()), inputs.data(), sizeof(INPUT));
|
||||||
if (uSent != inputs.size())
|
if (uSent != inputs.size())
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user