[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54850] trunk/blender/source/blender/ editors/interface: fix for toggle buttons not taking effect on mousedown.
Campbell Barton
ideasman42 at gmail.com
Mon Feb 25 12:52:18 CET 2013
Revision: 54850
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54850
Author: campbellbarton
Date: 2013-02-25 11:52:18 +0000 (Mon, 25 Feb 2013)
Log Message:
-----------
fix for toggle buttons not taking effect on mousedown.
Modified Paths:
--------------
trunk/blender/source/blender/editors/interface/interface_handlers.c
trunk/blender/source/blender/editors/interface/interface_ops.c
Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c 2013-02-25 10:19:02 UTC (rev 54849)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c 2013-02-25 11:52:18 UTC (rev 54850)
@@ -767,7 +767,8 @@
data->cancel = TRUE;
if (ui_is_but_bool(but)) {
- const bool is_set = (ui_get_but_val(but) != 0.0);
+ /* assumes button has already been pressed */
+ const bool is_set = (ui_get_but_val(but) == 0.0);
PointerRNA ptr;
WM_operator_properties_create(&ptr, "UI_OT_drag_toggle");
RNA_boolean_set(&ptr, "state", !is_set);
@@ -2487,6 +2488,7 @@
{
if (data->state == BUTTON_STATE_HIGHLIGHT) {
if (event->type == LEFTMOUSE && event->val == KM_PRESS && ui_is_but_bool(but)) {
+ ui_apply_button(C, but->block, but, data, true);
button_activate_state(C, but, BUTTON_STATE_WAIT_DRAG);
data->dragstartx = event->x;
data->dragstarty = event->y;
@@ -2502,9 +2504,12 @@
}
else if (data->state == BUTTON_STATE_WAIT_DRAG) {
/* note: the 'BUTTON_STATE_WAIT_DRAG' part of 'ui_do_but_EXIT' could be refactored into its own function */
+ data->cancel = true;
+ data->applied = false;
return ui_do_but_EXIT(C, but, data, event);
}
- return WM_UI_HANDLER_CONTINUE;
+
+ return WM_UI_HANDLER_BREAK;
}
static int ui_do_but_EXIT(bContext *C, uiBut *but, uiHandleButtonData *data, const wmEvent *event)
Modified: trunk/blender/source/blender/editors/interface/interface_ops.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_ops.c 2013-02-25 10:19:02 UTC (rev 54849)
+++ trunk/blender/source/blender/editors/interface/interface_ops.c 2013-02-25 11:52:18 UTC (rev 54850)
@@ -1252,6 +1252,7 @@
}
if (done) {
+ WM_event_add_mousemove(C);
MEM_freeN(op->customdata);
return OPERATOR_FINISHED;
}
More information about the Bf-blender-cvs
mailing list