From f3755387e8b5d0eda64d9840c3ec43b02d569037 Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Tue, 19 Mar 2024 00:25:50 -0400 Subject: [PATCH] Improve Mouse Sensitivity On Wayland --- example-mods/chat-commands/chat-commands.cpp | 4 ++-- media-layer/core/src/media.c | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/example-mods/chat-commands/chat-commands.cpp b/example-mods/chat-commands/chat-commands.cpp index cc7d1f6e..087a774b 100644 --- a/example-mods/chat-commands/chat-commands.cpp +++ b/example-mods/chat-commands/chat-commands.cpp @@ -7,11 +7,11 @@ // The Actual Mod HOOK(chat_handle_packet_send, void, (Minecraft *minecraft, ChatPacket *packet)) { // Get Message - char *message = packet->message; + const char *message = packet->message.c_str(); if (message[0] == '/') { // API Command Gui *gui = &minecraft->gui; - std::string out = chat_send_api_command(minecraft, &message[1]); + std::string out = chat_send_api_command(minecraft, (char *) &message[1]); if (out.length() > 0 && out[out.length() - 1] == '\n') { out[out.length() - 1] = '\0'; } diff --git a/media-layer/core/src/media.c b/media-layer/core/src/media.c index 33cfb83a..85cbf42c 100644 --- a/media-layer/core/src/media.c +++ b/media-layer/core/src/media.c @@ -40,6 +40,9 @@ static volatile int is_running = 0; static int cursor_grabbed = 0; static int cursor_visible = 1; +// Track If Raw Mouse Motion Is Enabled +static int raw_mouse_motion_enabled = 1; + // GLFW Code Not Needed In Headless Mode #ifndef MCPI_HEADLESS_MODE @@ -236,6 +239,10 @@ static int ignore_relative_motion = 0; // Convert Screen Coordinates To Pixels static void convert_to_pixels(GLFWwindow *window, double *xpos, double *ypos) { + // Skip If Cursor Is Grabbed + if (cursor_grabbed && raw_mouse_motion_enabled) { + return; + } // Get Window Size int window_width; int window_height; @@ -548,8 +555,7 @@ static void emit_events_after_is_interactable_change() { #endif -// Track If Raw Mouse Motion Is Enabled -static int raw_mouse_motion_enabled = 1; +// Enable/Disable Raw Mouse Motion void media_set_raw_mouse_motion_enabled(int enabled) { raw_mouse_motion_enabled = enabled; #ifndef MCPI_HEADLESS_MODE