From b63255e4cfa7327283aa9432a936dc1e95d35a19 Mon Sep 17 00:00:00 2001 From: Mathias-Boulay Date: Sat, 25 Jan 2025 20:34:32 +0100 Subject: [PATCH] fix(glsurface): avoid negative size --- .../java/net/kdt/pojavlaunch/MinecraftGLSurface.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLSurface.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLSurface.java index dd9f5f10f..b54d28f8e 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLSurface.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/MinecraftGLSurface.java @@ -239,7 +239,7 @@ public class MinecraftGLSurface extends View implements GrabListener { CallbackBridge.sendCursorPos(CallbackBridge.mouseX, CallbackBridge.mouseY); return true; case MotionEvent.ACTION_SCROLL: - CallbackBridge.sendScroll((double) event.getAxisValue(MotionEvent.AXIS_HSCROLL), (double) event.getAxisValue(MotionEvent.AXIS_VSCROLL)); + CallbackBridge.sendScroll(event.getAxisValue(MotionEvent.AXIS_HSCROLL), event.getAxisValue(MotionEvent.AXIS_VSCROLL)); return true; case MotionEvent.ACTION_BUTTON_PRESS: return sendMouseButtonUnconverted(event.getActionButton(),true); @@ -338,8 +338,14 @@ public class MinecraftGLSurface extends View implements GrabListener { // Use the width and height of the View instead of display dimensions to avoid // getting squiched/stretched due to inconsistencies between the layout and // screen dimensions. - windowWidth = Tools.getDisplayFriendlyRes(getWidth(), LauncherPreferences.PREF_SCALE_FACTOR); - windowHeight = Tools.getDisplayFriendlyRes(getHeight(), LauncherPreferences.PREF_SCALE_FACTOR); + int newWidth = Tools.getDisplayFriendlyRes(getWidth(), LauncherPreferences.PREF_SCALE_FACTOR); + int newHeight = Tools.getDisplayFriendlyRes(getHeight(), LauncherPreferences.PREF_SCALE_FACTOR); + if (newHeight < 1 || newWidth < 1) { + Log.e("MGLSurface", String.format("Impossible resolution : %dx%d", newWidth, newHeight)); + return; + } + windowWidth = newWidth; + windowHeight = newHeight; if(mSurface == null){ Log.w("MGLSurface", "Attempt to refresh size on null surface"); return;