[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59684] trunk/blender/source/blender/ editors/interface: fix for ui glitch, pressing backspace over a button to reset to the default value didnt work for the uilist text button (others too), missing redraw.

Campbell Barton ideasman42 at gmail.com
Sat Aug 31 06:11:51 CEST 2013


Revision: 59684
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59684
Author:   campbellbarton
Date:     2013-08-31 04:11:50 +0000 (Sat, 31 Aug 2013)
Log Message:
-----------
fix for ui glitch, pressing backspace over a button to reset to the default value didnt work for the uilist text button (others too), missing redraw.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface.c
    trunk/blender/source/blender/editors/interface/interface_handlers.c
    trunk/blender/source/blender/editors/interface/interface_intern.h

Modified: trunk/blender/source/blender/editors/interface/interface.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface.c	2013-08-31 03:18:55 UTC (rev 59683)
+++ trunk/blender/source/blender/editors/interface/interface.c	2013-08-31 04:11:50 UTC (rev 59684)
@@ -2047,13 +2047,14 @@
 	return false;
 }
 
-void ui_set_but_default(bContext *C, short all)
+void ui_set_but_default(bContext *C, const bool all)
 {
+	const char *opstring = "UI_OT_reset_default_button";
 	PointerRNA ptr;
 
-	WM_operator_properties_create(&ptr, "UI_OT_reset_default_button");
+	WM_operator_properties_create(&ptr, opstring);
 	RNA_boolean_set(&ptr, "all", all);
-	WM_operator_name_call(C, "UI_OT_reset_default_button", WM_OP_EXEC_DEFAULT, &ptr);
+	WM_operator_name_call(C, opstring, WM_OP_EXEC_DEFAULT, &ptr);
 	WM_operator_properties_free(&ptr);
 }
 

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2013-08-31 03:18:55 UTC (rev 59683)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2013-08-31 04:11:50 UTC (rev 59684)
@@ -5400,13 +5400,6 @@
 			
 			return WM_UI_HANDLER_BREAK;
 		}
-		/* reset to default */
-		/* XXX hardcoded keymap check.... */
-		else if (event->type == BACKSPACEKEY && event->val == KM_PRESS) {
-			/* ctrl+backspace = reset active button; backspace = reset a whole array*/
-			if (!(ELEM3(but->type, HSVCIRCLE, HSVCUBE, HISTOGRAM)))
-				ui_set_but_default(C, !event->ctrl);
-		}
 		/* handle menu */
 		else if (event->type == RIGHTMOUSE && event->val == KM_PRESS) {
 			/* RMB has two options now */
@@ -5533,7 +5526,22 @@
 		case BUT_EXTRA:
 			break;
 	}
-	
+
+
+	/* reset to default (generic function, only use if not handled by switch above) */
+	/* XXX hardcoded keymap check.... */
+	if (data->state == BUTTON_STATE_HIGHLIGHT) {
+		if ((retval == WM_UI_HANDLER_CONTINUE) &&
+		    (event->type == BACKSPACEKEY && event->val == KM_PRESS))
+		{
+			/* ctrl+backspace = reset active button; backspace = reset a whole array*/
+			ui_set_but_default(C, !event->ctrl);
+			ED_region_tag_redraw(data->region);
+			retval = WM_UI_HANDLER_BREAK;
+		}
+	}
+
+
 	return retval;
 }
 

Modified: trunk/blender/source/blender/editors/interface/interface_intern.h
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_intern.h	2013-08-31 03:18:55 UTC (rev 59683)
+++ trunk/blender/source/blender/editors/interface/interface_intern.h	2013-08-31 04:11:50 UTC (rev 59684)
@@ -393,7 +393,7 @@
 extern bool ui_set_but_string_eval_num(struct bContext *C, uiBut *but, const char *str, double *value);
 extern int  ui_get_but_string_max_length(uiBut *but);
 
-extern void ui_set_but_default(struct bContext *C, short all);
+extern void ui_set_but_default(struct bContext *C, const bool all);
 
 extern void ui_check_but(uiBut *but);
 extern bool ui_is_but_float(uiBut *but);




More information about the Bf-blender-cvs mailing list