Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2020-02-22 02:41:19 +0300
committerCampbell Barton <ideasman42@gmail.com>2020-02-22 02:50:25 +0300
commit0b626703f99fb7146915f4be9e7013bae0c64c61 (patch)
tree77cb94ed9d019d25a36e9ec6278be58bfd0ad827 /source/blender/editors
parent3e777653620a9261c35319fae64b3aa0eb83cdd4 (diff)
Cleanup: internal changes to cursor resetting
- Move gizmo cursor check into ED_region_cursor_set so the result of calling this function is the same as flagging for cursor update. - Use tagging in ui_popup_block_remove which avoids adding a mouse-move event in case the cursor needs to be changed again.
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/interface/interface_region_popup.c4
-rw-r--r--source/blender/editors/screen/area.c18
-rw-r--r--source/blender/editors/screen/screen_edit.c5
3 files changed, 13 insertions, 14 deletions
diff --git a/source/blender/editors/interface/interface_region_popup.c b/source/blender/editors/interface/interface_region_popup.c
index 867ac652505..dee462e929a 100644
--- a/source/blender/editors/interface/interface_region_popup.c
+++ b/source/blender/editors/interface/interface_region_popup.c
@@ -555,9 +555,7 @@ static void ui_popup_block_remove(bContext *C, uiPopupBlockHandle *handle)
/* reset to region cursor (only if there's not another menu open) */
if (BLI_listbase_is_empty(&sc->regionbase)) {
- ED_region_cursor_set(win, ctx_sa, ctx_ar);
- /* in case cursor needs to be changed again */
- WM_event_add_mousemove(C);
+ ctx_sa->flag |= AREA_FLAG_CURSOR_UPDATE;
}
if (handle->scrolltimer) {
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index c9e6cd24ac0..26240482e6d 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -1869,15 +1869,21 @@ void ED_region_floating_initialize(ARegion *ar)
void ED_region_cursor_set(wmWindow *win, ScrArea *sa, ARegion *ar)
{
- if (ar && sa && ar->type && ar->type->cursor) {
- ar->type->cursor(win, sa, ar);
- }
- else {
- if (WM_cursor_set_from_tool(win, sa, ar)) {
+ if (ar != NULL) {
+ if ((ar->gizmo_map != NULL) && WM_gizmomap_cursor_set(ar->gizmo_map, win)) {
+ return;
+ }
+ if (sa && ar->type && ar->type->cursor) {
+ ar->type->cursor(win, sa, ar);
return;
}
- WM_cursor_set(win, WM_CURSOR_DEFAULT);
}
+
+ if (WM_cursor_set_from_tool(win, sa, ar)) {
+ return;
+ }
+
+ WM_cursor_set(win, WM_CURSOR_DEFAULT);
}
/* for use after changing visibility of regions */
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index 8e0e8116da2..23a6704a617 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -403,11 +403,6 @@ static void region_cursor_set_ex(wmWindow *win, ScrArea *sa, ARegion *ar, bool s
BLI_assert(WM_window_get_active_screen(win)->active_region == ar);
if (sa->flag & AREA_FLAG_CURSOR_UPDATE || swin_changed || (ar->type && ar->type->event_cursor)) {
sa->flag &= ~AREA_FLAG_CURSOR_UPDATE;
- if (ar->gizmo_map != NULL) {
- if (WM_gizmomap_cursor_set(ar->gizmo_map, win)) {
- return;
- }
- }
ED_region_cursor_set(win, sa, ar);
}
}