[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58348] branches/soc-2013-paint/source/ blender/editors/interface/interface_handlers.c: Fix evil issue that prevented popping up a color widget if you had

Antony Riakiotakis kalast at gmail.com
Wed Jul 17 19:36:07 CEST 2013


Revision: 58348
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58348
Author:   psy-fi
Date:     2013-07-17 17:36:07 +0000 (Wed, 17 Jul 2013)
Log Message:
-----------
Fix evil issue that prevented popping up a color widget if you had
closed a previous widget by clicking to a colour button next to it.

Also some style fixes and a better return value.

Modified Paths:
--------------
    branches/soc-2013-paint/source/blender/editors/interface/interface_handlers.c

Modified: branches/soc-2013-paint/source/blender/editors/interface/interface_handlers.c
===================================================================
--- branches/soc-2013-paint/source/blender/editors/interface/interface_handlers.c	2013-07-17 17:31:12 UTC (rev 58347)
+++ branches/soc-2013-paint/source/blender/editors/interface/interface_handlers.c	2013-07-17 17:36:07 UTC (rev 58348)
@@ -833,6 +833,8 @@
 				ui_handler_region_drag_color_remove(C, drag_info);
 
 				WM_event_add_mousemove(C);
+				ED_region_tag_redraw(ar);
+
 				return WM_UI_HANDLER_BREAK;
 			}
 			break;
@@ -970,7 +972,7 @@
 				RNA_property_float_get_array(&but->rnapoin, but->rnaprop, drag_info->color);
 				drag_info->gamma_corrected = false;
 				valid = true;
-			}else if (but->pointype == UI_BUT_POIN_FLOAT) {
+			} else if (but->pointype == UI_BUT_POIN_FLOAT) {
 				copy_v3_v3(drag_info->color, (float *)but->poin);
 				valid = true;
 			} else if (but->pointype == UI_BUT_POIN_CHAR) {
@@ -978,13 +980,15 @@
 				valid = true;
 			}
 
-			if (valid)
+			if (valid) {
 				WM_event_add_ui_handler(C, &data->window->modalhandlers,
 			                        ui_handler_region_drag_color,
 			                        ui_handler_region_drag_color_remove,
 			                        drag_info);
+			}
 			else {
 				MEM_freeN(drag_info);
+				return false;
 			}
 		}
 		else
@@ -3511,7 +3515,9 @@
 			}
 		}
 #ifdef USE_DRAG_TOGGLE
-		if (event->type == LEFTMOUSE && (ui_is_but_bool(but) || but->type == COLOR)) {
+		if (event->type == LEFTMOUSE && event->val == KM_PRESS
+		    && (ui_is_but_bool(but) || but->type == COLOR))
+		{
 			button_activate_state(C, but, BUTTON_STATE_WAIT_DRAG);
 			data->dragstartx = event->x;
 			data->dragstarty = event->y;
@@ -3594,7 +3600,7 @@
 			data->cancel = true;
 			return WM_UI_HANDLER_BREAK;
 		}
-		
+
 		if (event->type == LEFTMOUSE && event->val == KM_RELEASE) {
 			button_activate_state(C, but, BUTTON_STATE_MENU_OPEN);
 			return WM_UI_HANDLER_BREAK;




More information about the Bf-blender-cvs mailing list