svn merge ^/trunk/blender -r42742:42757
[blender-staging.git] / source / blender / editors / screen / screen_ops.c
index b15278bd5838bd8aaa10e49775765c88a35c5488..2f80c58a836d2ebea2347f10755d57e1348dd0ab 100644 (file)
@@ -1291,6 +1291,7 @@ static void area_split_exit(bContext *C, wmOperator *op)
                op->customdata = NULL;
        }
        
+       WM_cursor_restore(CTX_wm_window(C));
        WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL);
        
        /* this makes sure aligned edges will result in aligned grabbing */
@@ -1489,6 +1490,37 @@ static int area_split_modal(bContext *C, wmOperator *op, wmEvent *event)
                                }
                        }
                        break;
+                       
+               case MIDDLEMOUSE:
+               case TABKEY:
+                       if (sd->previewmode==0){
+                       }
+                       else{
+                               dir = RNA_enum_get(op->ptr, "direction");
+                               
+                               if(event->val==KM_PRESS){
+                                       if (sd->sarea){
+                                               sd->sarea->flag &= ~(AREA_FLAG_DRAWSPLIT_H|AREA_FLAG_DRAWSPLIT_V);
+                                               ED_area_tag_redraw(sd->sarea);
+                                               
+                                               if (dir=='v'){
+                                                       RNA_enum_set(op->ptr, "direction", 'h');
+                                                       sd->sarea->flag |= AREA_FLAG_DRAWSPLIT_H;
+                                                       
+                                                       WM_cursor_set(CTX_wm_window(C),CURSOR_X_MOVE);
+                                               }
+                                               else{
+                                                       RNA_enum_set(op->ptr, "direction", 'v');
+                                                       sd->sarea->flag |= AREA_FLAG_DRAWSPLIT_V;
+                                                       
+                                                       WM_cursor_set(CTX_wm_window(C),CURSOR_Y_MOVE);
+                                               }
+                                       }
+                               }
+                       }
+                       
+                       break;
+                       
                case RIGHTMOUSE: /* cancel operation */
                case ESCKEY:
                        return area_split_cancel(C, op);