Improve Mouse Sensitivity On Wayland

This commit is contained in:
TheBrokenRail 2024-03-19 00:25:50 -04:00
parent b1b28defd5
commit f3755387e8
2 changed files with 10 additions and 4 deletions

View File

@ -7,11 +7,11 @@
// The Actual Mod // The Actual Mod
HOOK(chat_handle_packet_send, void, (Minecraft *minecraft, ChatPacket *packet)) { HOOK(chat_handle_packet_send, void, (Minecraft *minecraft, ChatPacket *packet)) {
// Get Message // Get Message
char *message = packet->message; const char *message = packet->message.c_str();
if (message[0] == '/') { if (message[0] == '/') {
// API Command // API Command
Gui *gui = &minecraft->gui; 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') { if (out.length() > 0 && out[out.length() - 1] == '\n') {
out[out.length() - 1] = '\0'; out[out.length() - 1] = '\0';
} }

View File

@ -40,6 +40,9 @@ static volatile int is_running = 0;
static int cursor_grabbed = 0; static int cursor_grabbed = 0;
static int cursor_visible = 1; 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 // GLFW Code Not Needed In Headless Mode
#ifndef MCPI_HEADLESS_MODE #ifndef MCPI_HEADLESS_MODE
@ -236,6 +239,10 @@ static int ignore_relative_motion = 0;
// Convert Screen Coordinates To Pixels // Convert Screen Coordinates To Pixels
static void convert_to_pixels(GLFWwindow *window, double *xpos, double *ypos) { 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 // Get Window Size
int window_width; int window_width;
int window_height; int window_height;
@ -548,8 +555,7 @@ static void emit_events_after_is_interactable_change() {
#endif #endif
// Track If Raw Mouse Motion Is Enabled // Enable/Disable Raw Mouse Motion
static int raw_mouse_motion_enabled = 1;
void media_set_raw_mouse_motion_enabled(int enabled) { void media_set_raw_mouse_motion_enabled(int enabled) {
raw_mouse_motion_enabled = enabled; raw_mouse_motion_enabled = enabled;
#ifndef MCPI_HEADLESS_MODE #ifndef MCPI_HEADLESS_MODE