summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorGuilherme Felipe <guilhermefelipecgs@gmail.com>2018-09-03 09:21:13 -0300
committerGuilherme Felipe <guilhermefelipecgs@gmail.com>2018-09-03 09:57:07 -0300
commite5470cfa70121221fd9e51b085ec0dff259b5865 (patch)
tree90a2d139db048176d35de696620e5541305630ac /platform
parent6ead00733aea5eb0003e70ffbf71997b9be2c8c4 (diff)
Fix custom cursor hotspot
Cursor hotspot must be inside image on Linux. Adding validation for all platforms for consistency.
Diffstat (limited to 'platform')
-rw-r--r--platform/osx/os_osx.mm1
-rw-r--r--platform/windows/os_windows.cpp1
-rw-r--r--platform/x11/os_x11.cpp1
3 files changed, 3 insertions, 0 deletions
diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm
index 79d7ec410a..16f1ff8e11 100644
--- a/platform/osx/os_osx.mm
+++ b/platform/osx/os_osx.mm
@@ -1605,6 +1605,7 @@ void OS_OSX::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, c
ERR_FAIL_COND(!texture.is_valid());
ERR_FAIL_COND(texture_size.width > 256 || texture_size.height > 256);
+ ERR_FAIL_COND(p_hotspot.x > texture_size.width || p_hotspot.y > texture_size.height);
image = texture->get_data();
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp
index 4ca6f36629..9d5cae00e8 100644
--- a/platform/windows/os_windows.cpp
+++ b/platform/windows/os_windows.cpp
@@ -2253,6 +2253,7 @@ void OS_Windows::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shap
ERR_FAIL_COND(!texture.is_valid());
ERR_FAIL_COND(texture_size.width > 256 || texture_size.height > 256);
+ ERR_FAIL_COND(p_hotspot.x > texture_size.width || p_hotspot.y > texture_size.height);
image = texture->get_data();
diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp
index a62bd714d2..606a2371fe 100644
--- a/platform/x11/os_x11.cpp
+++ b/platform/x11/os_x11.cpp
@@ -2535,6 +2535,7 @@ void OS_X11::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, c
ERR_FAIL_COND(!texture.is_valid());
ERR_FAIL_COND(texture_size.width > 256 || texture_size.height > 256);
+ ERR_FAIL_COND(p_hotspot.x > texture_size.width || p_hotspot.y > texture_size.height);
image = texture->get_data();