Add Alt+Enter button to Utilities page, update Win Alt+Tab func

Requested in this reddit post:
https://www.reddit.com/r/Vive/comments/agnvux/advanced_settings_280_motion_smoothing_audio_and/ee7muqo/

Use case is toggling full screen mode on applications.

The Alt+Tab function has been updated with a constexpr var that reduces
duplication in the function calls and makes the keys even more explicit.
This commit is contained in:
Vasily
2019-01-23 18:49:10 +01:00
parent c10e45d2ab
commit 0a49c7a717
8 changed files with 59 additions and 10 deletions
+1
View File
@@ -17,6 +17,7 @@ public:
virtual void sendKeyboardEnter() = 0;
virtual void sendKeyboardBackspace( const int count ) = 0;
virtual void sendKeyboardAltTab() = 0;
virtual void sendKeyboardAltEnter() = 0;
virtual void sendMediaNextSong() = 0;
virtual void sendMediaPreviousSong() = 0;
virtual void sendMediaPausePlay() = 0;
@@ -78,6 +78,11 @@ void UtilitiesTabController::sendKeyboardEnter()
keyboardInput->sendKeyboardEnter();
}
void UtilitiesTabController::sendKeyboardAltEnter()
{
keyboardInput->sendKeyboardAltEnter();
}
void UtilitiesTabController::sendKeyboardAltTab()
{
keyboardInput->sendKeyboardAltTab();
@@ -69,6 +69,7 @@ public slots:
void sendKeyboardInput( QString input );
void sendKeyboardEnter();
void sendKeyboardAltTab();
void sendKeyboardAltEnter();
void sendKeyboardBackspace( const int count );
void sendMediaNextSong();
void sendMediaPreviousSong();
@@ -28,6 +28,11 @@ void KeyboardInputDummy::sendKeyboardAltTab()
// noop
}
void KeyboardInputDummy::sendKeyboardAltEnter()
{
// noop
}
void KeyboardInputDummy::sendMediaNextSong()
{
// noop
@@ -13,6 +13,7 @@ public:
virtual void sendKeyboardEnter() override;
virtual void sendKeyboardBackspace( const int count ) override;
virtual void sendKeyboardAltTab() override;
virtual void sendKeyboardAltEnter() override;
virtual void sendMediaNextSong() override;
virtual void sendMediaPreviousSong() override;
virtual void sendMediaPausePlay() override;
@@ -234,11 +234,13 @@ a music player.
*/
void KeyboardInputWindows::sendKeyboardAltTab()
{
// VK_MENU is Alt.
const auto pressAlt = createInputStruct( VK_MENU, KeyStatus::Down );
const auto pressTab = createInputStruct( VK_TAB, KeyStatus::Down );
const auto releaseAlt = createInputStruct( VK_MENU, KeyStatus::Up );
const auto releaseTab = createInputStruct( VK_TAB, KeyStatus::Up );
constexpr auto altKey = VK_MENU;
constexpr auto tabKey = VK_TAB;
const auto pressAlt = createInputStruct( altKey, KeyStatus::Down );
const auto pressTab = createInputStruct( tabKey, KeyStatus::Down );
const auto releaseAlt = createInputStruct( altKey, KeyStatus::Up );
const auto releaseTab = createInputStruct( tabKey, KeyStatus::Up );
constexpr auto numberOfActions = 4;
@@ -248,6 +250,30 @@ void KeyboardInputWindows::sendKeyboardAltTab()
sendKeyboardInputRaw( numberOfActions, actions );
}
/*!
Sends an Alt + Tab combination to Windows.
Used for toggling full screen on games and various applications that appear on
the desktop.
*/
void KeyboardInputWindows::sendKeyboardAltEnter()
{
constexpr auto altKey = VK_MENU;
constexpr auto enterKey = VK_RETURN;
const auto pressAlt = createInputStruct( altKey, KeyStatus::Down );
const auto pressEnter = createInputStruct( enterKey, KeyStatus::Down );
const auto releaseAlt = createInputStruct( altKey, KeyStatus::Up );
const auto releaseEnter = createInputStruct( enterKey, KeyStatus::Up );
constexpr auto numberOfActions = 4;
INPUT actions[numberOfActions]
= { pressAlt, pressEnter, releaseAlt, releaseEnter };
sendKeyboardInputRaw( numberOfActions, actions );
}
/*!
Sends a media key Next Song button to Windows.
*/
@@ -13,6 +13,7 @@ public:
virtual void sendKeyboardEnter() override;
virtual void sendKeyboardBackspace( const int count ) override;
virtual void sendKeyboardAltTab() override;
virtual void sendKeyboardAltEnter() override;
virtual void sendMediaNextSong() override;
virtual void sendMediaPreviousSong() override;
virtual void sendMediaPausePlay() override;