aboutsummaryrefslogtreecommitdiff
path: root/backends/graphics
diff options
context:
space:
mode:
authorMatthew Stewart2018-06-25 00:38:08 -0400
committerThierry Crozat2018-07-08 22:30:31 +0100
commita382a6dd303a97a0f813eb2f86bc93f27ef83aa9 (patch)
treedd233c919cc25810998cf16701b4276803a3bfa5 /backends/graphics
parent8c2f9dec26e2bcd4b975246732782d0c823037d1 (diff)
downloadscummvm-rg350-a382a6dd303a97a0f813eb2f86bc93f27ef83aa9.tar.gz
scummvm-rg350-a382a6dd303a97a0f813eb2f86bc93f27ef83aa9.tar.bz2
scummvm-rg350-a382a6dd303a97a0f813eb2f86bc93f27ef83aa9.zip
SDL: Clip mouse range in convertWindowToVirtual
When the graphics scale was 2x or higher, it was possible for the mouse to pass the size of the screen specified by "initSize".
Diffstat (limited to 'backends/graphics')
-rw-r--r--backends/graphics/windowed.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/backends/graphics/windowed.h b/backends/graphics/windowed.h
index 4732ea9708..40ae561df1 100644
--- a/backends/graphics/windowed.h
+++ b/backends/graphics/windowed.h
@@ -128,8 +128,11 @@ protected:
x = CLIP<int>(x, sourceX, sourceMaxX);
y = CLIP<int>(y, sourceY, sourceMaxY);
- return Common::Point(((x - sourceX) * targetWidth + sourceWidth / 2) / sourceWidth,
- ((y - sourceY) * targetHeight + sourceHeight / 2) / sourceHeight);
+ int virtualX = ((x - sourceX) * targetWidth + sourceWidth / 2) / sourceWidth;
+ int virtualY = ((y - sourceY) * targetHeight + sourceHeight / 2) / sourceHeight;
+
+ return Common::Point(CLIP<int>(virtualX, 0, targetWidth - 1),
+ CLIP<int>(virtualY, 0, targetHeight - 1));
}
/**