Add option to always send scancodes
Default is enabled to match v0.19.1 behavior Fixes #1233
This commit is contained in:
@@ -441,6 +441,7 @@ namespace config {
|
||||
true, // keyboard enabled
|
||||
true, // mouse enabled
|
||||
true, // controller enabled
|
||||
true, // always send scancodes
|
||||
};
|
||||
|
||||
sunshine_t sunshine {
|
||||
@@ -1039,6 +1040,8 @@ namespace config {
|
||||
bool_f(vars, "keyboard", input.keyboard);
|
||||
bool_f(vars, "controller", input.controller);
|
||||
|
||||
bool_f(vars, "always_send_scancodes", input.always_send_scancodes);
|
||||
|
||||
int port = sunshine.port;
|
||||
int_f(vars, "port"s, port);
|
||||
sunshine.port = (std::uint16_t) port;
|
||||
|
||||
@@ -109,6 +109,8 @@ namespace config {
|
||||
bool keyboard;
|
||||
bool mouse;
|
||||
bool controller;
|
||||
|
||||
bool always_send_scancodes;
|
||||
};
|
||||
|
||||
namespace flag {
|
||||
|
||||
@@ -350,7 +350,9 @@ namespace platf {
|
||||
auto &ki = i.ki;
|
||||
|
||||
// If the client did not normalize this VK code to a US English layout, we can't accurately convert it to a scancode.
|
||||
if (!(flags & SS_KBE_FLAG_NON_NORMALIZED) && modcode != VK_LWIN && modcode != VK_RWIN && modcode != VK_PAUSE && raw->keyboard_layout != NULL) {
|
||||
bool send_scancode = !(flags & SS_KBE_FLAG_NON_NORMALIZED) || config::input.always_send_scancodes;
|
||||
|
||||
if (send_scancode && modcode != VK_LWIN && modcode != VK_RWIN && modcode != VK_PAUSE && raw->keyboard_layout != NULL) {
|
||||
// For some reason, MapVirtualKey(VK_LWIN, MAPVK_VK_TO_VSC) doesn't seem to work :/
|
||||
ki.wScan = MapVirtualKeyEx(modcode, MAPVK_VK_TO_VSC, raw->keyboard_layout);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user