Patch #27085, Restore old 2.49 TAB behaviour for window splitting, by Andre Oliveira
authorMichael Fox <mfoxdogg@gmail.com>
Tue, 20 Dec 2011 00:46:55 +0000 (00:46 +0000)
committerMichael Fox <mfoxdogg@gmail.com>
Tue, 20 Dec 2011 00:46:55 +0000 (00:46 +0000)
Now this patch only applies to RMB window splitting not the click and drag as that would cause confusion and big mess

source/blender/editors/screen/screen_ops.c

index 007a8f7e4d7160293c803533bbe8ae31a5623a47..1c34df5393ada1652a6e8d49760af3e7170ba379 100644 (file)
@@ -1293,6 +1293,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 */
@@ -1491,6 +1492,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);