diff options
author | Greg V <greg@unrelenting.technology> | 2020-09-28 04:52:13 +0300 |
---|---|---|
committer | Greg V <greg@unrelenting.technology> | 2020-09-28 04:52:13 +0300 |
commit | b95accb8ff6a594d1a920b94823b38be3515f149 (patch) | |
tree | 461337bf26c699da02ad64b9050e745288e5ca6d | |
parent | 5654347c5d511c53146fe4ce1710938b311d986e (diff) |
glfw: scale cursor position by the ratio of framebuffer to screen size
This fixes the mouse being constrained to the top left quarter of the window on Wayland HiDPI setups.
-rw-r--r-- | src/skel/glfw/glfw.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/skel/glfw/glfw.cpp b/src/skel/glfw/glfw.cpp index f1b9c695..d7054b9c 100644 --- a/src/skel/glfw/glfw.cpp +++ b/src/skel/glfw/glfw.cpp @@ -1397,8 +1397,11 @@ _InputTranslateShiftKeyUpDown(RsKeyCodes *rs) { // TODO this only works in frontend(and luckily only frontend use this). Fun fact: if I get pos manually in game, glfw reports that it's > 32000 void cursorCB(GLFWwindow* window, double xpos, double ypos) { - FrontEndMenuManager.m_nMouseTempPosX = xpos; - FrontEndMenuManager.m_nMouseTempPosY = ypos; + int bufw, bufh, winw, winh; + glfwGetWindowSize(window, &winw, &winh); + glfwGetFramebufferSize(window, &bufw, &bufh); + FrontEndMenuManager.m_nMouseTempPosX = xpos * (bufw / winw); + FrontEndMenuManager.m_nMouseTempPosY = ypos * (bufh / winh); } void |