LibInput: Add support for right super and application keys
This commit is contained in:
Binary file not shown.
@@ -157,6 +157,8 @@ namespace Kernel::Input
|
|||||||
case Key::RightCtrl: modifier_mask = KeyModifier::RCtrl; break;
|
case Key::RightCtrl: modifier_mask = KeyModifier::RCtrl; break;
|
||||||
case Key::LeftAlt: modifier_mask = KeyModifier::LAlt; break;
|
case Key::LeftAlt: modifier_mask = KeyModifier::LAlt; break;
|
||||||
case Key::RightAlt: modifier_mask = KeyModifier::RAlt; break;
|
case Key::RightAlt: modifier_mask = KeyModifier::RAlt; break;
|
||||||
|
case Key::LeftSuper: modifier_mask = KeyModifier::LSuper; break;
|
||||||
|
case Key::RightSuper: modifier_mask = KeyModifier::RSuper; break;
|
||||||
|
|
||||||
case Key::ScrollLock: toggle_mask = KeyModifier::ScrollLock; break;
|
case Key::ScrollLock: toggle_mask = KeyModifier::ScrollLock; break;
|
||||||
case Key::NumLock: toggle_mask = KeyModifier::NumLock; break;
|
case Key::NumLock: toggle_mask = KeyModifier::NumLock; break;
|
||||||
|
|||||||
@@ -95,7 +95,9 @@ namespace Kernel::Input
|
|||||||
m_scancode_to_keycode_normal[0x38] = keycode_normal(4, 2);
|
m_scancode_to_keycode_normal[0x38] = keycode_normal(4, 2);
|
||||||
m_scancode_to_keycode_normal[0x39] = keycode_normal(4, 3);
|
m_scancode_to_keycode_normal[0x39] = keycode_normal(4, 3);
|
||||||
m_scancode_to_keycode_extended[0x38] = keycode_normal(4, 4);
|
m_scancode_to_keycode_extended[0x38] = keycode_normal(4, 4);
|
||||||
m_scancode_to_keycode_extended[0x1D] = keycode_normal(4, 5);
|
m_scancode_to_keycode_extended[0x5C] = keycode_normal(4, 5);
|
||||||
|
m_scancode_to_keycode_extended[0x5D] = keycode_normal(4, 6);
|
||||||
|
m_scancode_to_keycode_extended[0x1D] = keycode_normal(4, 7);
|
||||||
|
|
||||||
m_scancode_to_keycode_normal[0x45] = keycode_numpad(0, 0);
|
m_scancode_to_keycode_normal[0x45] = keycode_numpad(0, 0);
|
||||||
m_scancode_to_keycode_extended[0x35] = keycode_numpad(0, 1);
|
m_scancode_to_keycode_extended[0x35] = keycode_numpad(0, 1);
|
||||||
@@ -208,7 +210,9 @@ namespace Kernel::Input
|
|||||||
m_scancode_to_keycode_normal[0x11] = keycode_normal(4, 2);
|
m_scancode_to_keycode_normal[0x11] = keycode_normal(4, 2);
|
||||||
m_scancode_to_keycode_normal[0x29] = keycode_normal(4, 3);
|
m_scancode_to_keycode_normal[0x29] = keycode_normal(4, 3);
|
||||||
m_scancode_to_keycode_extended[0x11] = keycode_normal(4, 4);
|
m_scancode_to_keycode_extended[0x11] = keycode_normal(4, 4);
|
||||||
m_scancode_to_keycode_extended[0x14] = keycode_normal(4, 5);
|
m_scancode_to_keycode_extended[0x27] = keycode_normal(4, 5);
|
||||||
|
m_scancode_to_keycode_extended[0x2F] = keycode_normal(4, 6);
|
||||||
|
m_scancode_to_keycode_extended[0x14] = keycode_normal(4, 7);
|
||||||
|
|
||||||
m_scancode_to_keycode_normal[0x77] = keycode_numpad(0, 0);
|
m_scancode_to_keycode_normal[0x77] = keycode_numpad(0, 0);
|
||||||
m_scancode_to_keycode_extended[0x4A] = keycode_numpad(0, 1);
|
m_scancode_to_keycode_extended[0x4A] = keycode_numpad(0, 1);
|
||||||
@@ -321,7 +325,9 @@ namespace Kernel::Input
|
|||||||
m_scancode_to_keycode_normal[0x19] = keycode_normal(4, 2);
|
m_scancode_to_keycode_normal[0x19] = keycode_normal(4, 2);
|
||||||
m_scancode_to_keycode_normal[0x29] = keycode_normal(4, 3);
|
m_scancode_to_keycode_normal[0x29] = keycode_normal(4, 3);
|
||||||
m_scancode_to_keycode_normal[0x39] = keycode_normal(4, 4);
|
m_scancode_to_keycode_normal[0x39] = keycode_normal(4, 4);
|
||||||
m_scancode_to_keycode_normal[0x58] = keycode_normal(4, 5);
|
m_scancode_to_keycode_normal[0x8C] = keycode_normal(4, 5);
|
||||||
|
m_scancode_to_keycode_normal[0x8D] = keycode_normal(4, 6);
|
||||||
|
m_scancode_to_keycode_normal[0x58] = keycode_normal(4, 7);
|
||||||
|
|
||||||
m_scancode_to_keycode_normal[0x76] = keycode_numpad(0, 0);
|
m_scancode_to_keycode_normal[0x76] = keycode_numpad(0, 0);
|
||||||
m_scancode_to_keycode_normal[0x4A] = keycode_numpad(0, 1);
|
m_scancode_to_keycode_normal[0x4A] = keycode_numpad(0, 1);
|
||||||
|
|||||||
@@ -56,6 +56,8 @@ namespace Kernel
|
|||||||
READ_MODIFIER(0xE4, KeyModifier::RCtrl);
|
READ_MODIFIER(0xE4, KeyModifier::RCtrl);
|
||||||
READ_MODIFIER(0xE2, KeyModifier::LAlt);
|
READ_MODIFIER(0xE2, KeyModifier::LAlt);
|
||||||
READ_MODIFIER(0xE6, KeyModifier::RAlt);
|
READ_MODIFIER(0xE6, KeyModifier::RAlt);
|
||||||
|
READ_MODIFIER(0xE3, KeyModifier::LSuper);
|
||||||
|
READ_MODIFIER(0xE7, KeyModifier::RSuper);
|
||||||
#undef READ_MODIFIER
|
#undef READ_MODIFIER
|
||||||
|
|
||||||
#define READ_TOGGLE(scancode, key_modifier) \
|
#define READ_TOGGLE(scancode, key_modifier) \
|
||||||
@@ -340,8 +342,10 @@ namespace Kernel
|
|||||||
s_scancode_to_keycode[0xE3] = keycode_normal(4, 1);
|
s_scancode_to_keycode[0xE3] = keycode_normal(4, 1);
|
||||||
s_scancode_to_keycode[0xE2] = keycode_normal(4, 2);
|
s_scancode_to_keycode[0xE2] = keycode_normal(4, 2);
|
||||||
s_scancode_to_keycode[0x2C] = keycode_normal(4, 3);
|
s_scancode_to_keycode[0x2C] = keycode_normal(4, 3);
|
||||||
s_scancode_to_keycode[0xE6] = keycode_normal(4, 5);
|
s_scancode_to_keycode[0xE6] = keycode_normal(4, 4);
|
||||||
s_scancode_to_keycode[0xE4] = keycode_normal(4, 6);
|
s_scancode_to_keycode[0xE7] = keycode_normal(4, 5);
|
||||||
|
s_scancode_to_keycode[0x65] = keycode_normal(5, 6);
|
||||||
|
s_scancode_to_keycode[0xE4] = keycode_normal(4, 7);
|
||||||
|
|
||||||
s_scancode_to_keycode[0x52] = keycode_normal(5, 0);
|
s_scancode_to_keycode[0x52] = keycode_normal(5, 0);
|
||||||
s_scancode_to_keycode[0x50] = keycode_normal(5, 1);
|
s_scancode_to_keycode[0x50] = keycode_normal(5, 1);
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace LibInput
|
|||||||
"!", "\"", "#", "¤", "%", "&", "/", "§", "½",
|
"!", "\"", "#", "¤", "%", "&", "/", "§", "½",
|
||||||
"(", ")", "[", "]", "{", "}",
|
"(", ")", "[", "]", "{", "}",
|
||||||
"=", "?", "+", "\\", "´", "`", "¨", "¸", nullptr, "@", "£", "$", "€",
|
"=", "?", "+", "\\", "´", "`", "¨", "¸", nullptr, "@", "£", "$", "€",
|
||||||
nullptr, "\t", nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
|
nullptr, "\t", nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||||
"'", "*", "^", "~", nullptr, nullptr, nullptr, nullptr,
|
"'", "*", "^", "~", nullptr, nullptr, nullptr, nullptr,
|
||||||
",", ";", ".", ":", "-", "_", nullptr, nullptr, "<", ">", "|", "¬", "¦",
|
",", ";", ".", ":", "-", "_", nullptr, nullptr, "<", ">", "|", "¬", "¦",
|
||||||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||||||
@@ -37,7 +37,7 @@ namespace LibInput
|
|||||||
"!", "\"", "#", "¤", "%", "&", "/", "§", "½",
|
"!", "\"", "#", "¤", "%", "&", "/", "§", "½",
|
||||||
"(", ")", "[", "]", "{", "}",
|
"(", ")", "[", "]", "{", "}",
|
||||||
"=", "?", "+", "\\", "´", "`", "¨", "¸", nullptr, "@", "£", "$", "€",
|
"=", "?", "+", "\\", "´", "`", "¨", "¸", nullptr, "@", "£", "$", "€",
|
||||||
nullptr, "\t", nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
|
nullptr, "\t", nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||||
"'", "*", "^", "~", nullptr, nullptr, nullptr, nullptr,
|
"'", "*", "^", "~", nullptr, nullptr, nullptr, nullptr,
|
||||||
",", ";", ".", ":", "-", "_", nullptr, nullptr, "<", ">", "|", "¬", "¦",
|
",", ";", ".", ":", "-", "_", nullptr, nullptr, "<", ">", "|", "¬", "¦",
|
||||||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||||||
@@ -62,7 +62,7 @@ namespace LibInput
|
|||||||
"!", "\"", "#", "¤", "%", "&", "/", "§", "½",
|
"!", "\"", "#", "¤", "%", "&", "/", "§", "½",
|
||||||
"(", ")", "[", "]", "{", "}",
|
"(", ")", "[", "]", "{", "}",
|
||||||
"=", "?", "+", "\\", "´", "`", "¨", "¸", "\b", "@", "£", "$", "€",
|
"=", "?", "+", "\\", "´", "`", "¨", "¸", "\b", "@", "£", "$", "€",
|
||||||
"\e", "\t", nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
|
"\e", "\t", nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||||
"'", "*", "^", "~", "\e[A", "\e[B", "\e[D", "\e[C",
|
"'", "*", "^", "~", "\e[A", "\e[B", "\e[D", "\e[C",
|
||||||
",", ";", ".", ":", "-", "_", nullptr, nullptr, "<", ">", "|", "¬", "¦",
|
",", ";", ".", ":", "-", "_", nullptr, nullptr, "<", ">", "|", "¬", "¦",
|
||||||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||||||
@@ -81,7 +81,7 @@ namespace LibInput
|
|||||||
"!", "\"", "#", "¤", "%", "&", "/", "§", "½",
|
"!", "\"", "#", "¤", "%", "&", "/", "§", "½",
|
||||||
"(", ")", "[", "]", "{", "}",
|
"(", ")", "[", "]", "{", "}",
|
||||||
"=", "?", "+", "\\", "´", "`", "¨", "¸", "\b", "@", "£", "$", "€",
|
"=", "?", "+", "\\", "´", "`", "¨", "¸", "\b", "@", "£", "$", "€",
|
||||||
"\e", "\t", nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
|
"\e", "\t", nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||||
"'", "*", "^", "~", "\e[A", "\e[B", "\e[D", "\e[C",
|
"'", "*", "^", "~", "\e[A", "\e[B", "\e[D", "\e[C",
|
||||||
",", ";", ".", ":", "-", "_", nullptr, nullptr, "<", ">", "|", "¬", "¦",
|
",", ";", ".", ":", "-", "_", nullptr, nullptr, "<", ">", "|", "¬", "¦",
|
||||||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||||||
@@ -100,7 +100,7 @@ namespace LibInput
|
|||||||
"!", "\"", "#", "¤", "%", "&", "/", "§", "½",
|
"!", "\"", "#", "¤", "%", "&", "/", "§", "½",
|
||||||
"(", ")", "[", "]", "{", "}",
|
"(", ")", "[", "]", "{", "}",
|
||||||
"=", "?", "+", "\\", "´", "`", "¨", "¸", "\b", "@", "£", "$", "€",
|
"=", "?", "+", "\\", "´", "`", "¨", "¸", "\b", "@", "£", "$", "€",
|
||||||
"\e", "\t", nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
|
"\e", "\t", nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
|
||||||
"'", "*", "^", "~", "\e[A", "\e[B", "\e[D", "\e[C",
|
"'", "*", "^", "~", "\e[A", "\e[B", "\e[D", "\e[C",
|
||||||
",", ";", ".", ":", "-", "_", nullptr, nullptr, "<", ">", "|", "¬", "¦",
|
",", ";", ".", ":", "-", "_", nullptr, nullptr, "<", ">", "|", "¬", "¦",
|
||||||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||||||
|
|||||||
@@ -394,11 +394,13 @@ namespace LibInput
|
|||||||
TRY(s_name_to_key.insert("LeftShift"_sv, Key::LeftShift));
|
TRY(s_name_to_key.insert("LeftShift"_sv, Key::LeftShift));
|
||||||
TRY(s_name_to_key.insert("LessThan"_sv, Key::LessThan));
|
TRY(s_name_to_key.insert("LessThan"_sv, Key::LessThan));
|
||||||
TRY(s_name_to_key.insert("LShift"_sv, Key::LeftShift));
|
TRY(s_name_to_key.insert("LShift"_sv, Key::LeftShift));
|
||||||
|
TRY(s_name_to_key.insert("LSuper"_sv, Key::LeftSuper));
|
||||||
TRY(s_name_to_key.insert("M"_sv, Key::M));
|
TRY(s_name_to_key.insert("M"_sv, Key::M));
|
||||||
TRY(s_name_to_key.insert("MediaNext"_sv, Key::MediaNext));
|
TRY(s_name_to_key.insert("MediaNext"_sv, Key::MediaNext));
|
||||||
TRY(s_name_to_key.insert("MediaPlayPause"_sv, Key::MediaPlayPause));
|
TRY(s_name_to_key.insert("MediaPlayPause"_sv, Key::MediaPlayPause));
|
||||||
TRY(s_name_to_key.insert("MediaPrevious"_sv, Key::MediaPrevious));
|
TRY(s_name_to_key.insert("MediaPrevious"_sv, Key::MediaPrevious));
|
||||||
TRY(s_name_to_key.insert("MediaStop"_sv, Key::MediaStop));
|
TRY(s_name_to_key.insert("MediaStop"_sv, Key::MediaStop));
|
||||||
|
TRY(s_name_to_key.insert("Application"_sv, Key::Application));
|
||||||
TRY(s_name_to_key.insert("N"_sv, Key::N));
|
TRY(s_name_to_key.insert("N"_sv, Key::N));
|
||||||
TRY(s_name_to_key.insert("Negation"_sv, Key::Negation));
|
TRY(s_name_to_key.insert("Negation"_sv, Key::Negation));
|
||||||
TRY(s_name_to_key.insert("None"_sv, Key::None));
|
TRY(s_name_to_key.insert("None"_sv, Key::None));
|
||||||
@@ -443,6 +445,7 @@ namespace LibInput
|
|||||||
TRY(s_name_to_key.insert("RightControl"_sv, Key::RightCtrl));
|
TRY(s_name_to_key.insert("RightControl"_sv, Key::RightCtrl));
|
||||||
TRY(s_name_to_key.insert("RightShift"_sv, Key::RightShift));
|
TRY(s_name_to_key.insert("RightShift"_sv, Key::RightShift));
|
||||||
TRY(s_name_to_key.insert("RShift"_sv, Key::RightShift));
|
TRY(s_name_to_key.insert("RShift"_sv, Key::RightShift));
|
||||||
|
TRY(s_name_to_key.insert("RSuper"_sv, Key::RightSuper));
|
||||||
TRY(s_name_to_key.insert("S"_sv, Key::S));
|
TRY(s_name_to_key.insert("S"_sv, Key::S));
|
||||||
TRY(s_name_to_key.insert("ScrollLock"_sv, Key::ScrollLock));
|
TRY(s_name_to_key.insert("ScrollLock"_sv, Key::ScrollLock));
|
||||||
TRY(s_name_to_key.insert("Section"_sv, Key::Section));
|
TRY(s_name_to_key.insert("Section"_sv, Key::Section));
|
||||||
@@ -450,7 +453,6 @@ namespace LibInput
|
|||||||
TRY(s_name_to_key.insert("SingleQuote"_sv, Key::SingleQuote));
|
TRY(s_name_to_key.insert("SingleQuote"_sv, Key::SingleQuote));
|
||||||
TRY(s_name_to_key.insert("Slash"_sv, Key::Slash));
|
TRY(s_name_to_key.insert("Slash"_sv, Key::Slash));
|
||||||
TRY(s_name_to_key.insert("Space"_sv, Key::Space));
|
TRY(s_name_to_key.insert("Space"_sv, Key::Space));
|
||||||
TRY(s_name_to_key.insert("Super"_sv, Key::Super));
|
|
||||||
TRY(s_name_to_key.insert("T"_sv, Key::T));
|
TRY(s_name_to_key.insert("T"_sv, Key::T));
|
||||||
TRY(s_name_to_key.insert("Tab"_sv, Key::Tab));
|
TRY(s_name_to_key.insert("Tab"_sv, Key::Tab));
|
||||||
TRY(s_name_to_key.insert("Tilde"_sv, Key::Tilde));
|
TRY(s_name_to_key.insert("Tilde"_sv, Key::Tilde));
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ namespace LibInput
|
|||||||
ExclamationMark, DoubleQuote, Hashtag, Currency, Percent, Ampersand, Slash, Section, Half,
|
ExclamationMark, DoubleQuote, Hashtag, Currency, Percent, Ampersand, Slash, Section, Half,
|
||||||
OpenParenthesis, CloseParenthesis, OpenSquareBracket, CloseSquareBracket, OpenCurlyBracket, CloseCurlyBracket,
|
OpenParenthesis, CloseParenthesis, OpenSquareBracket, CloseSquareBracket, OpenCurlyBracket, CloseCurlyBracket,
|
||||||
Equals, QuestionMark, Plus, BackSlash, Acute, BackTick, TwoDots, Cedilla, Backspace, AtSign, Pound, Dollar, Euro,
|
Equals, QuestionMark, Plus, BackSlash, Acute, BackTick, TwoDots, Cedilla, Backspace, AtSign, Pound, Dollar, Euro,
|
||||||
Escape, Tab, CapsLock, LeftShift, LeftCtrl, Super, LeftAlt, RightAlt, AltGr = RightAlt, RightCtrl, RightShift,
|
Escape, Tab, CapsLock, LeftShift, LeftCtrl, LeftSuper, LeftAlt, RightAlt, AltGr = RightAlt, RightSuper, Application, RightCtrl, RightShift,
|
||||||
SingleQuote, Asterix, Caret, Tilde, ArrowUp, ArrowDown, ArrowLeft, ArrowRight,
|
SingleQuote, Asterix, Caret, Tilde, ArrowUp, ArrowDown, ArrowLeft, ArrowRight,
|
||||||
Comma, Semicolon, Period, Colon, Hyphen, Underscore, NumLock, ScrollLock, LessThan, GreaterThan, Pipe, Negation, BrokenBar,
|
Comma, Semicolon, Period, Colon, Hyphen, Underscore, NumLock, ScrollLock, LessThan, GreaterThan, Pipe, Negation, BrokenBar,
|
||||||
Numpad0, Numpad1, Numpad2, Numpad3, Numpad4, Numpad5, Numpad6, Numpad7, Numpad8, Numpad9,
|
Numpad0, Numpad1, Numpad2, Numpad3, Numpad4, Numpad5, Numpad6, Numpad7, Numpad8, Numpad9,
|
||||||
@@ -71,10 +71,12 @@ namespace LibInput
|
|||||||
RCtrl = (1 << 3),
|
RCtrl = (1 << 3),
|
||||||
LAlt = (1 << 4),
|
LAlt = (1 << 4),
|
||||||
RAlt = (1 << 5),
|
RAlt = (1 << 5),
|
||||||
CapsLock = (1 << 6),
|
LSuper = (1 << 6),
|
||||||
NumLock = (1 << 7),
|
RSuper = (1 << 7),
|
||||||
ScrollLock = (1 << 8),
|
CapsLock = (1 << 8),
|
||||||
Pressed = (1 << 9),
|
NumLock = (1 << 9),
|
||||||
|
ScrollLock = (1 << 10),
|
||||||
|
Pressed = (1 << 11),
|
||||||
};
|
};
|
||||||
|
|
||||||
bool lshift() const { return modifier & Modifier::LShift; }
|
bool lshift() const { return modifier & Modifier::LShift; }
|
||||||
@@ -89,6 +91,10 @@ namespace LibInput
|
|||||||
bool ralt() const { return modifier & Modifier::RAlt; }
|
bool ralt() const { return modifier & Modifier::RAlt; }
|
||||||
bool alt() const { return lalt() || ralt(); }
|
bool alt() const { return lalt() || ralt(); }
|
||||||
|
|
||||||
|
bool lsuper() const { return modifier & Modifier::LSuper; }
|
||||||
|
bool rsuper() const { return modifier & Modifier::RSuper; }
|
||||||
|
bool super() const { return lsuper() || rsuper(); }
|
||||||
|
|
||||||
bool caps_lock() const { return modifier & Modifier::CapsLock; }
|
bool caps_lock() const { return modifier & Modifier::CapsLock; }
|
||||||
bool num_lock() const { return modifier & Modifier::NumLock; }
|
bool num_lock() const { return modifier & Modifier::NumLock; }
|
||||||
bool scroll_lock() const { return modifier & Modifier::ScrollLock; }
|
bool scroll_lock() const { return modifier & Modifier::ScrollLock; }
|
||||||
|
|||||||
@@ -481,7 +481,7 @@ static void update_volume(const char* new_volume)
|
|||||||
|
|
||||||
void WindowServer::on_key_event(LibInput::KeyEvent event)
|
void WindowServer::on_key_event(LibInput::KeyEvent event)
|
||||||
{
|
{
|
||||||
if (event.key == LibInput::Key::Super)
|
if (event.key == LibInput::Key::LeftSuper)
|
||||||
m_is_mod_key_held = event.pressed();
|
m_is_mod_key_held = event.pressed();
|
||||||
|
|
||||||
if (event.pressed() && event.key == LibInput::Key::VolumeDown)
|
if (event.pressed() && event.key == LibInput::Key::VolumeDown)
|
||||||
|
|||||||
Reference in New Issue
Block a user