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.
This commit is contained in:
Greg V 2020-09-28 04:52:13 +03:00 committed by erorcun
parent d05c50ea74
commit 7c1497a058

View file

@ -1438,8 +1438,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