[Bf-blender-cvs] [a6fb54f2364] blender2.8: UI: Set cursor to X_MOV when editing number button middle area

Dalai Felinto noreply at git.blender.org
Fri Apr 27 19:38:28 CEST 2018


Commit: a6fb54f236463721dd822f8fa608ebc22dbe160f
Author: Dalai Felinto
Date:   Fri Apr 27 18:32:43 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBa6fb54f236463721dd822f8fa608ebc22dbe160f

UI: Set cursor to X_MOV when editing number button middle area

Reviewers: campbellbarton, brecht

Differential Revision: https://developer.blender.org/D3184

===================================================================

M	source/blender/editors/include/UI_interface.h
M	source/blender/editors/interface/interface_handlers.c

===================================================================

diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index 67dd2630da3..968007f42f7 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -225,7 +225,7 @@ enum {
 	UI_BUT_BOX_ITEM          = (1 << 20), /* This but is "inside" a box item (currently used to change theme colors). */
 
 	UI_BUT_ACTIVE_LEFT       = (1 << 21), /* Active left part of number button */
-	UI_BUT_ACTIVE_RIGHT      = (1 << 22), /* Active left part of number button */
+	UI_BUT_ACTIVE_RIGHT      = (1 << 22), /* Active right part of number button */
 };
 
 /* scale fixed button widths by this to account for DPI */
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 5e628bf797d..de032f03f57 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -276,6 +276,7 @@ typedef struct uiHandleButtonData {
 	/* booleans (could be made into flags) */
 	bool cancel, escapecancel;
 	bool applied, applied_interactive;
+	bool changed_cursor;
 	wmTimer *flashtimer;
 
 	/* edited value */
@@ -4192,6 +4193,19 @@ static void ui_numedit_set_active(uiBut *but)
 		but->drawflag |= UI_BUT_ACTIVE_RIGHT;
 	}
 
+	if ((but->drawflag & (UI_BUT_ACTIVE_LEFT)) || (but->drawflag & (UI_BUT_ACTIVE_RIGHT))) {
+		if (data->changed_cursor) {
+			WM_cursor_modal_restore(data->window);
+			data->changed_cursor = false;
+		}
+	}
+	else {
+		if (data->changed_cursor == false) {
+			WM_cursor_modal_set(data->window, CURSOR_X_MOVE);
+			data->changed_cursor = true;
+		}
+	}
+
 	if (but->drawflag != oldflag) {
 		ED_region_tag_redraw(data->region);
 	}
@@ -7918,6 +7932,10 @@ static void button_activate_exit(
 	ui_selectcontext_end(but, &data->select_others);
 #endif
 
+	if (data->changed_cursor) {
+		WM_cursor_modal_restore(data->window);
+	}
+
 	/* redraw (data is but->active!) */
 	ED_region_tag_redraw(data->region);



More information about the Bf-blender-cvs mailing list