[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58130] trunk/blender/source/blender/ editors: fix [#36073] Changing list items misses undo push

Campbell Barton ideasman42 at gmail.com
Wed Jul 10 01:40:54 CEST 2013


Revision: 58130
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58130
Author:   campbellbarton
Date:     2013-07-09 23:40:53 +0000 (Tue, 09 Jul 2013)
Log Message:
-----------
fix [#36073] Changing list items misses undo push

Modified Paths:
--------------
    trunk/blender/source/blender/editors/include/UI_interface.h
    trunk/blender/source/blender/editors/interface/interface.c
    trunk/blender/source/blender/editors/interface/interface_handlers.c
    trunk/blender/source/blender/editors/interface/interface_layout.c
    trunk/blender/source/blender/editors/interface/interface_templates.c

Modified: trunk/blender/source/blender/editors/include/UI_interface.h
===================================================================
--- trunk/blender/source/blender/editors/include/UI_interface.h	2013-07-09 23:25:02 UTC (rev 58129)
+++ trunk/blender/source/blender/editors/include/UI_interface.h	2013-07-09 23:40:53 UTC (rev 58130)
@@ -236,6 +236,8 @@
 	BUT_NORMAL    = (31 << 9),
 	BUT_CURVE     = (32 << 9),
 	ICONTOGN      = (34 << 9),
+	LISTBOX       = (35 << 9),
+	LISTROW       = (36 << 9),
 	TOGBUT        = (37 << 9),
 	OPTION        = (38 << 9),
 	OPTIONN       = (39 << 9),
@@ -244,8 +246,6 @@
 	SEARCH_MENU   = (41 << 9),
 	BUT_EXTRA     = (42 << 9),
 	HSVCIRCLE     = (43 << 9),
-	LISTBOX       = (44 << 9),
-	LISTROW       = (45 << 9),
 	HOTKEYEVT     = (46 << 9),
 	BUT_IMAGE     = (47 << 9),
 	HISTOGRAM     = (48 << 9),

Modified: trunk/blender/source/blender/editors/interface/interface.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface.c	2013-07-09 23:25:02 UTC (rev 58129)
+++ trunk/blender/source/blender/editors/interface/interface.c	2013-07-09 23:40:53 UTC (rev 58130)
@@ -2861,7 +2861,7 @@
 	}
 
 	/* keep track of UI_interface.h */
-	if      (ELEM9(but->type, BLOCK, BUT, LABEL, PULLDOWN, ROUNDBOX, LISTBOX, BUTM, SCROLL, SEPR /* , FTPREVIEW */)) {}
+	if      (ELEM8(but->type, BLOCK, BUT, LABEL, PULLDOWN, ROUNDBOX, BUTM, SCROLL, SEPR)) {}
 	else if (but->type >= SEARCH_MENU) {}
 	else but->flag |= UI_BUT_UNDO;
 

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2013-07-09 23:25:02 UTC (rev 58129)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2013-07-09 23:40:53 UTC (rev 58130)
@@ -6419,7 +6419,6 @@
 {
 	uiBut *but = ui_list_find_mouse_over(ar, event->x, event->y);
 	int retval = WM_UI_HANDLER_CONTINUE;
-	int value, min, max;
 	int type = event->type, val = event->val;
 
 	if (but) {
@@ -6442,8 +6441,11 @@
 				if (ELEM(type, UPARROWKEY, DOWNARROWKEY) ||
 					((ELEM(type, WHEELUPMOUSE, WHEELDOWNMOUSE) && event->alt)))
 				{
+					const int value_orig = RNA_property_int_get(&but->rnapoin, but->rnaprop);
+					int value, min, max;
+
 					/* activate up/down the list */
-					value = RNA_property_int_get(&but->rnapoin, but->rnaprop);
+					value = value_orig;
 
 					if (ELEM(type, UPARROWKEY, WHEELUPMOUSE))
 						value--;
@@ -6460,10 +6462,14 @@
 					RNA_property_int_range(&but->rnapoin, but->rnaprop, &min, &max);
 					value = CLAMPIS(value, min, max);
 
-					RNA_property_int_set(&but->rnapoin, but->rnaprop, value);
-					RNA_property_update(C, &but->rnapoin, but->rnaprop);
-					ED_region_tag_redraw(ar);
+					if (value != value_orig) {
+						RNA_property_int_set(&but->rnapoin, but->rnaprop, value);
+						RNA_property_update(C, &but->rnapoin, but->rnaprop);
 
+						ui_apply_undo(but);
+						ED_region_tag_redraw(ar);
+					}
+
 					retval = WM_UI_HANDLER_BREAK;
 				}
 				else if (ELEM(type, WHEELUPMOUSE, WHEELDOWNMOUSE) && event->shift) {

Modified: trunk/blender/source/blender/editors/interface/interface_layout.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_layout.c	2013-07-09 23:25:02 UTC (rev 58129)
+++ trunk/blender/source/blender/editors/interface/interface_layout.c	2013-07-09 23:40:53 UTC (rev 58130)
@@ -2429,6 +2429,11 @@
 	but->rnapoin = *actptr;
 	but->rnaprop = actprop;
 
+	/* only for the undo string */
+	if (but->flag & UI_BUT_UNDO) {
+		but->tip = RNA_property_description(actprop);
+	}
+
 	return (uiLayout *)box;
 }
 

Modified: trunk/blender/source/blender/editors/interface/interface_templates.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_templates.c	2013-07-09 23:25:02 UTC (rev 58129)
+++ trunk/blender/source/blender/editors/interface/interface_templates.c	2013-07-09 23:40:53 UTC (rev 58130)
@@ -2646,7 +2646,7 @@
 						sub = uiLayoutRow(overlap, FALSE);
 
 						but = uiDefButR_prop(subblock, LISTROW, 0, "", 0, 0, UI_UNIT_X * 10, UI_UNIT_Y,
-						                     active_dataptr, activeprop, 0, 0, i, 0, 0, "");
+						                     active_dataptr, activeprop, 0, 0, i, 0, 0, NULL);
 						uiButSetFlag(but, UI_BUT_NO_TOOLTIP);
 
 						sub = uiLayoutRow(overlap, FALSE);
@@ -2734,7 +2734,7 @@
 					sub = uiLayoutRow(overlap, FALSE);
 
 					but = uiDefButR_prop(subblock, LISTROW, 0, "", 0, 0, UI_UNIT_X * 10, UI_UNIT_Y,
-					                     active_dataptr, activeprop, 0, 0, i, 0, 0, "");
+					                     active_dataptr, activeprop, 0, 0, i, 0, 0, NULL);
 					uiButSetFlag(but, UI_BUT_NO_TOOLTIP);
 
 					sub = uiLayoutRow(overlap, FALSE);




More information about the Bf-blender-cvs mailing list