mirror of
https://github.com/luanti-org/luanti.git
synced 2025-10-21 20:05:45 +02:00
Restrict relative mouse mode to Wayland users (#15697)
This commit is contained in:
@@ -754,6 +754,7 @@ private:
|
||||
f32 m_repeat_dig_time;
|
||||
f32 m_cache_cam_smoothing;
|
||||
|
||||
bool m_enable_relative_mode = false;
|
||||
bool m_invert_mouse;
|
||||
bool m_enable_hotbar_mouse_wheel;
|
||||
bool m_invert_hotbar_mouse_wheel;
|
||||
@@ -898,6 +899,11 @@ bool Game::startup(bool *kill,
|
||||
|
||||
m_first_loop_after_window_activation = true;
|
||||
|
||||
// In principle we could always enable relative mouse mode, but it causes weird
|
||||
// bugs on some setups (e.g. #14932), so we enable it only when it's required.
|
||||
// That is: on Wayland, because it does not support mouse repositioning
|
||||
m_enable_relative_mode = device->isUsingWayland();
|
||||
|
||||
g_client_translations->clear();
|
||||
|
||||
// address can change if simple_singleplayer_mode
|
||||
@@ -2349,8 +2355,10 @@ void Game::updateCameraDirection(CameraOrientation *cam, float dtime)
|
||||
Since Minetest has its own code to synthesize mouse events from touch events,
|
||||
this results in duplicated input. To avoid that, we don't enable relative
|
||||
mouse mode if we're in touchscreen mode. */
|
||||
if (cur_control)
|
||||
cur_control->setRelativeMode(!g_touchcontrols && !isMenuActive());
|
||||
if (cur_control) {
|
||||
cur_control->setRelativeMode(m_enable_relative_mode &&
|
||||
!g_touchcontrols && !isMenuActive());
|
||||
}
|
||||
|
||||
if ((device->isWindowActive() && device->isWindowFocused()
|
||||
&& !isMenuActive()) || input->isRandom()) {
|
||||
|
Reference in New Issue
Block a user