diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2018-09-15 11:56:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-15 11:56:45 +0200 |
commit | 82e69f38eeb4a41f74527248bf257ba50d375870 (patch) | |
tree | 71f8171f21b47609a9ad9b4e8a7a8850b16f85d7 | |
parent | 4547e223933d1c1b24a526b3d632a2f96cdd6c8b (diff) | |
parent | 04aef23585376c3e648c086e39a58e7f5fd41f7d (diff) |
Merge pull request #21973 from guilhermefelipecgs/fix_default_cursor_shape
Some fixes to mouse's cursor and shape
-rw-r--r-- | doc/classes/Input.xml | 4 | ||||
-rw-r--r-- | platform/osx/os_osx.mm | 6 | ||||
-rw-r--r-- | platform/windows/os_windows.cpp | 6 | ||||
-rw-r--r-- | platform/x11/os_x11.cpp | 5 |
4 files changed, 14 insertions, 7 deletions
diff --git a/doc/classes/Input.xml b/doc/classes/Input.xml index a0bb585583..d9929b3d31 100644 --- a/doc/classes/Input.xml +++ b/doc/classes/Input.xml @@ -293,7 +293,7 @@ <argument index="2" name="hotspot" type="Vector2" default="Vector2( 0, 0 )"> </argument> <description> - Set a custom mouse cursor image, which is only visible inside the game window. The hotspot can also be specified. Passing [code]null[/code] to the image parameter resets to the system cursor. See enum [code]CURSOR_*[/code] for the list of shapes. + Sets a custom mouse cursor image, which is only visible inside the game window. The hotspot can also be specified. Passing [code]null[/code] to the image parameter resets to the system cursor. See enum [code]CURSOR_*[/code] for the list of shapes. [code]image[/code]'s size must be lower than 256x256. [code]hotspot[/code] must be within [code]image[/code]'s size. </description> @@ -304,6 +304,8 @@ <argument index="0" name="shape" type="int" enum="Input.CursorShape" default="0"> </argument> <description> + Sets the default cursor shape to be used in the viewport instead of [code]CURSOR_ARROW[/code]. + Note that if you want to change the default cursor shape for [Control]'s nodes, use [member Control.mouse_default_cursor_shape] instead. </description> </method> <method name="set_mouse_mode"> diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index c0de4e3f2a..b98113baeb 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -1662,7 +1662,7 @@ void OS_OSX::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, c [cursors[p_shape] release]; cursors[p_shape] = cursor; - if (p_shape == CURSOR_ARROW) { + if (p_shape == cursor_shape) { [cursor set]; } @@ -1671,8 +1671,10 @@ void OS_OSX::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, c } else { // Reset to default system cursor cursors[p_shape] = NULL; + + CursorShape c = cursor_shape; cursor_shape = CURSOR_MAX; - set_cursor_shape(p_shape); + set_cursor_shape(c); } } diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index 67fc1c7496..f63aebbbd3 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -2311,7 +2311,7 @@ void OS_Windows::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shap cursors[p_shape] = CreateIconIndirect(&iconinfo); - if (p_shape == CURSOR_ARROW) { + if (p_shape == cursor_shape) { SetCursor(cursors[p_shape]); } @@ -2328,8 +2328,10 @@ void OS_Windows::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shap } else { // Reset to default system cursor cursors[p_shape] = NULL; + + CursorShape c = cursor_shape; cursor_shape = CURSOR_MAX; - set_cursor_shape(p_shape); + set_cursor_shape(c); } } diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index b80a20ce40..24dfe541f9 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -2606,7 +2606,7 @@ void OS_X11::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, c // Save it for a further usage cursors[p_shape] = XcursorImageLoadCursor(x11_display, cursor_image); - if (p_shape == CURSOR_ARROW) { + if (p_shape == current_cursor) { XDefineCursor(x11_display, x11_window, cursors[p_shape]); } @@ -2618,8 +2618,9 @@ void OS_X11::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, c cursors[p_shape] = XcursorImageLoadCursor(x11_display, img[p_shape]); } + CursorShape c = current_cursor; current_cursor = CURSOR_MAX; - set_cursor_shape(p_shape); + set_cursor_shape(c); } } |