Revision: 48295
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48295
Author:   vino
Date:     2012-06-26 01:18:30 +0000 (Tue, 26 Jun 2012)
Log Message:
-----------
A slightly different way of dealing with the shift problem that doesn't involve 
a hack. It also changes the design of the layer buttons slightly such that 
clicking one doesn't automatically reset the others, which I think may be a 
usability improvement anyway as their purpose is to act like layers, which 
should be independent of each other. To make up for this I've added a 
ctrl-click which acts as before, selecting a single layer to the exclusion of 
others.

Modified Paths:
--------------
    
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_handlers.c
    
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_layout.c
    
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_templates.c
    
branches/soc-2012-bratwurst/source/blender/windowmanager/intern/wm_event_system.c

Modified: 
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_handlers.c
===================================================================
--- 
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_handlers.c
   2012-06-26 00:35:05 UTC (rev 48294)
+++ 
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_handlers.c
   2012-06-26 01:18:30 UTC (rev 48295)
@@ -2246,9 +2246,6 @@
 
                        button_activate_state(C, but, BUTTON_STATE_EXIT);
 
-                       // Kind of a hack. We don't want this assignment to 
turn off others, so force shift on to cause handle_layer_buttons to skip that.
-                       win->eventstate->shift = 1;
-
                        return WM_UI_HANDLER_BREAK;
                }
        }

Modified: 
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_layout.c
===================================================================
--- 
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_layout.c 
    2012-06-26 00:35:05 UTC (rev 48294)
+++ 
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_layout.c 
    2012-06-26 01:18:30 UTC (rev 48295)
@@ -327,7 +327,10 @@
        int shift = win->eventstate->shift;
        int len = RNA_property_array_length(ptr, prop);
 
-       if (!shift) {
+       if (G.drag_button_func)
+               shift = 1;
+
+       if (!shift || win->eventstate->ctrl) {
                RNA_property_boolean_set_index(ptr, prop, index, TRUE);
 
                for (i = 0; i < len; i++)

Modified: 
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_templates.c
===================================================================
--- 
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_templates.c
  2012-06-26 00:35:05 UTC (rev 48294)
+++ 
branches/soc-2012-bratwurst/source/blender/editors/interface/interface_templates.c
  2012-06-26 01:18:30 UTC (rev 48295)
@@ -1979,7 +1979,10 @@
        wmWindow *win = CTX_wm_window(C);
        int i, tot, shift = win->eventstate->shift;
 
-       if (!shift) {
+       if (G.drag_button_func)
+               shift = 1;
+
+       if (!shift || win->eventstate->ctrl) {
                tot = RNA_property_array_length(&but->rnapoin, but->rnaprop);
                
                /* Normally clicking only selects one layer */

Modified: 
branches/soc-2012-bratwurst/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- 
branches/soc-2012-bratwurst/source/blender/windowmanager/intern/wm_event_system.c
   2012-06-26 00:35:05 UTC (rev 48294)
+++ 
branches/soc-2012-bratwurst/source/blender/windowmanager/intern/wm_event_system.c
   2012-06-26 01:18:30 UTC (rev 48295)
@@ -2127,10 +2127,7 @@
                        }
 
                        if (event->val == KM_RELEASE)
-                       {
                                G.drag_button_func = 0;
-                               win->eventstate->shift = 0; // This was set in 
ui_do_but_TOG(). Clear it now that we're done toggling buttons.
-                       }
 
                        /* unlink and free here, blender-quit then frees all */
                        BLI_remlink(&win->queue, event);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to