From b4ec7a31e291c07a7c360f49df049fed1b99ef07 Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Wed, 10 Mar 2021 21:10:52 +1100 Subject: [PATCH] Webclient: Try to support mouse 4/5 presses, and also intercept clicking mouse4 closing the page --- src/Game.c | 7 +++++-- src/Window.c | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Game.c b/src/Game.c index cad2ddf67..47aee8996 100644 --- a/src/Game.c +++ b/src/Game.c @@ -655,8 +655,11 @@ cc_bool Game_ShouldClose(void) { /* Close if map was saved within last 5 seconds */ return World.LastSave + 5 >= Game.Time; } - /* Intercept Ctrl+W or Cmd+W for multiplayer */ - return !(Key_IsCtrlPressed() || Key_IsWinPressed()); + + /* Try to intercept Ctrl+W or Cmd+W for multiplayer */ + if (Key_IsCtrlPressed() || Key_IsWinPressed()) return false; + /* Also try to intercept mouse back button (Mouse4) */ + return !Input_Pressed[KEY_XBUTTON1]; } #else static void Game_RunLoop(void) { diff --git a/src/Window.c b/src/Window.c index 07c2f0936..e282da676 100644 --- a/src/Window.c +++ b/src/Window.c @@ -2793,6 +2793,8 @@ static EM_BOOL OnMouseButton(int type, const EmscriptenMouseEvent* ev, void* dat case 0: Input_Set(KEY_LMOUSE, down); break; case 1: Input_Set(KEY_MMOUSE, down); break; case 2: Input_Set(KEY_RMOUSE, down); break; + case 3: Input_Set(KEY_XBUTTON1, down); break; + case 4: Input_Set(KEY_XBUTTON2, down); break; } DeferredEnableRawMouse();