NoGUI: Implement mouse cursor hiding in fullscreen

This commit is contained in:
Connor McLaughlin 2021-05-18 02:29:56 +10:00
parent 6f38e171b2
commit f3cceca805
3 changed files with 9 additions and 5 deletions

View file

@ -97,6 +97,9 @@ bool SDLHostInterface::SetFullscreen(bool enabled)
SDL_SetWindowFullscreen(m_window, enabled ? SDL_WINDOW_FULLSCREEN_DESKTOP : 0);
m_fullscreen = enabled;
const bool hide_cursor = (enabled && GetBoolSettingValue("Main", "HideCursorInFullscreen", true));
SDL_ShowCursor(hide_cursor ? SDL_DISABLE : SDL_ENABLE);
return true;
}
@ -145,10 +148,7 @@ bool SDLHostInterface::CreatePlatformWindow(bool fullscreen)
}
if (fullscreen || m_fullscreen)
{
SDL_SetWindowFullscreen(m_window, SDL_WINDOW_FULLSCREEN_DESKTOP);
m_fullscreen = true;
}
SetFullscreen(true);
ImGui_ImplSDL2_Init(m_window);

View file

@ -514,7 +514,8 @@ void CommonHostInterface::CreateImGuiContext()
ImGui::GetIO().IniFilename = nullptr;
#ifndef __ANDROID__
// Android has no keyboard, nor are we using ImGui for any actual user-interactable windows.
ImGui::GetIO().ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard | ImGuiConfigFlags_NavEnableGamepad;
ImGui::GetIO().ConfigFlags |=
ImGuiConfigFlags_NavEnableKeyboard | ImGuiConfigFlags_NavEnableGamepad | ImGuiConfigFlags_NoMouseCursorChange;
#endif
}

View file

@ -1297,6 +1297,9 @@ void DrawSettingsWindow()
settings_changed |=
ToggleButton("Start Fullscreen", "Automatically switches to fullscreen mode when the program is started.",
&s_settings_copy.start_fullscreen);
settings_changed |= ToggleButtonForNonSetting(
"Hide Cursor In Fullscreen", "Hides the mouse pointer/cursor when the emulator is in fullscreen mode.",
"Main", "HideCursorInFullscreen", true);
settings_changed |=
ToggleButton("Load Devices From Save States",
"When enabled, memory cards and controllers will be overwritten when save states are loaded.",