add option to disable mouse hiding (#1782)

* add option to disable mouse hiding

* write setting
This commit is contained in:
water111 2022-08-21 19:00:13 -04:00 committed by GitHub
parent a3dac2ab24
commit b388aa7b71
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 4 deletions

View file

@ -94,6 +94,7 @@ void DumpToJson(ghc::filesystem::path& filename) {
nlohmann::json json;
json["Debug Menu Visibility"] = false; // Assume start up debug display is disabled
auto& peripherals_json = json["Peripherals"];
json["Use Mouse"] = g_settings.pad_mapping_info.use_mouse;
for (uint32_t i = 0; i < Pad::CONTROLLER_COUNT; ++i) {
nlohmann::json peripheral_json;
@ -154,6 +155,8 @@ void LoadPeripheralSettings(const ghc::filesystem::path& filepath) {
g_is_debug_menu_visible_on_startup = configuration["Debug Menu Visibility"].get<bool>();
}
g_settings.pad_mapping_info.use_mouse = configuration.value<bool>("Use Mouse", false);
int controller_index = 0;
for (const auto& peripheral : configuration["Peripherals"]) {
auto& controller_buttons_json = peripheral["Controller"]["Buttons"];

View file

@ -306,9 +306,11 @@ GLDisplay::~GLDisplay() {
}
void GLDisplay::update_cursor_visibility(GLFWwindow* window, bool is_visible) {
auto cursor_mode = (is_visible) ? GLFW_CURSOR_NORMAL : GLFW_CURSOR_DISABLED;
if (Gfx::get_button_mapping().use_mouse) {
auto cursor_mode = is_visible ? GLFW_CURSOR_NORMAL : GLFW_CURSOR_DISABLED;
glfwSetInputMode(window, GLFW_CURSOR, cursor_mode);
}
}
void GLDisplay::on_key(GLFWwindow* window, int key, int /*scancode*/, int action, int /*mods*/) {
if (action == GlfwKeyAction::Press) {
@ -344,7 +346,7 @@ void GLDisplay::on_mouse_key(GLFWwindow* window, int button, int action, int mod
void GLDisplay::on_cursor_position(GLFWwindow* window, double xposition, double yposition) {
Pad::MappingInfo mapping_info = Gfx::get_button_mapping();
if (is_imgui_visible()) {
if (is_imgui_visible() || !mapping_info.use_mouse) {
if (is_cursor_position_valid == true) {
Pad::ClearAnalogAxisValue(mapping_info, GlfwKeyCustomAxis::CURSOR_X_AXIS);
Pad::ClearAnalogAxisValue(mapping_info, GlfwKeyCustomAxis::CURSOR_Y_AXIS);

View file

@ -76,6 +76,7 @@ struct AnalogMappingInfo {
struct MappingInfo {
bool debug = true; // debug mode
bool use_mouse = false;
bool buffer_mode = true; // use buffered inputs
int controller_button_mapping[CONTROLLER_COUNT][(int)Pad::Button::Max];