Revision: 18019
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18019
Author:   aligorith
Date:     2008-12-22 23:59:48 +0100 (Mon, 22 Dec 2008)

Log Message:
-----------
2.5 - Bugfixes

* View Pan Operator now stores area, etc. values from context in case user 
moves out of view
* Moved the invalid-context check for Action Editor so that mode can still be 
changed when there's no data to show.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/interface/view2d.c
    branches/blender2.5/blender/source/blender/editors/interface/view2d_ops.c
    
branches/blender2.5/blender/source/blender/editors/space_action/action_header.c

Modified: branches/blender2.5/blender/source/blender/editors/interface/view2d.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/view2d.c       
2008-12-22 20:53:38 UTC (rev 18018)
+++ branches/blender2.5/blender/source/blender/editors/interface/view2d.c       
2008-12-22 22:59:48 UTC (rev 18019)
@@ -562,7 +562,7 @@
                return;
                
        /* check if doing within area syncing (i.e. channels/vertical) */
-       if (v2dcur->flag & V2D_VIEWSYNC_AREA_VERTICAL) {
+       if ((v2dcur->flag & V2D_VIEWSYNC_AREA_VERTICAL) && (area)) {
                for (ar= area->regionbase.first; ar; ar= ar->next) {
                        /* don't operate on self */
                        if (v2dcur != &ar->v2d) {
@@ -587,7 +587,7 @@
        }
        
        /* check if doing whole screen syncing (i.e. time/horizontal) */
-       if (v2dcur->flag & V2D_VIEWSYNC_SCREEN_TIME) {
+       if ((v2dcur->flag & V2D_VIEWSYNC_SCREEN_TIME) && (screen)) {
                for (sa= screen->areabase.first; sa; sa= sa->next) {
                        for (ar= sa->regionbase.first; ar; ar= ar->next) {
                                /* don't operate on self */

Modified: 
branches/blender2.5/blender/source/blender/editors/interface/view2d_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/view2d_ops.c   
2008-12-22 20:53:38 UTC (rev 18018)
+++ branches/blender2.5/blender/source/blender/editors/interface/view2d_ops.c   
2008-12-22 22:59:48 UTC (rev 18019)
@@ -101,6 +101,8 @@
  
 /* temp customdata for operator */
 typedef struct v2dViewPanData {
+       bScreen *sc;                    /* screen where view pan was initiated 
*/
+       ScrArea *sa;                    /* area where view pan was initiated */
        View2D *v2d;                    /* view2d we're operating in */
        
        float facx, facy;               /* amount to move view relative to zoom 
*/
@@ -129,6 +131,8 @@
        op->customdata= vpd;
        
        /* set pointers to owners */
+       vpd->sc= CTX_wm_screen(C);
+       vpd->sa= CTX_wm_area(C);
        vpd->v2d= v2d= &ar->v2d;
        
        /* calculate translation factor - based on size of view */
@@ -165,8 +169,8 @@
        UI_view2d_curRect_validate(v2d);
        
        /* request updates to be done... */
-       ED_area_tag_redraw(CTX_wm_area(C));
-       UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
+       ED_area_tag_redraw(vpd->sa);
+       UI_view2d_sync(vpd->sc, vpd->sa, v2d, V2D_LOCK_COPY);
 }
 
 /* cleanup temp customdata  */

Modified: 
branches/blender2.5/blender/source/blender/editors/space_action/action_header.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_action/action_header.c 
    2008-12-22 20:53:38 UTC (rev 18018)
+++ 
branches/blender2.5/blender/source/blender/editors/space_action/action_header.c 
    2008-12-22 22:59:48 UTC (rev 18019)
@@ -329,66 +329,68 @@
        uiBlockSetEmboss(block, UI_EMBOSS);
        
        /* get context... (also syncs data) */
-       if ((ANIM_animdata_get_context(C, &ac)) && (ac.data)) { 
-               if ((sa->flag & HEADER_NO_PULLDOWN)==0) {
-                       /* pull down menus */
-                       uiBlockSetEmboss(block, UI_EMBOSSP);
-                       
-                       xmax= GetButStringLength("View");
-                       uiDefPulldownBut(block, action_viewmenu, 
CTX_wm_area(C), 
-                                                 "View", xco, yco, xmax-3, 24, 
"");
+       ANIM_animdata_get_context(C, &ac);
+       
+       if ((sa->flag & HEADER_NO_PULLDOWN)==0) {
+               /* pull down menus */
+               uiBlockSetEmboss(block, UI_EMBOSSP);
+               
+               xmax= GetButStringLength("View");
+               uiDefPulldownBut(block, action_viewmenu, CTX_wm_area(C), 
+                                         "View", xco, yco, xmax-3, 24, "");
+               xco+= xmax;
+               
+               xmax= GetButStringLength("Select");
+               uiDefPulldownBut(block, action_selectmenu, CTX_wm_area(C), 
+                                         "Select", xco, yco, xmax-3, 24, "");
+               xco+= xmax;
+               
+               if ( (saction->mode == SACTCONT_DOPESHEET) ||
+                        ((saction->action) && 
(saction->mode==SACTCONT_ACTION)) ) 
+               {
+                       xmax= GetButStringLength("Channel");
+                       uiDefPulldownBut(block, action_channelmenu, 
CTX_wm_area(C), 
+                                                 "Channel", xco, yco, xmax-3, 
24, "");
                        xco+= xmax;
-                       
-                       xmax= GetButStringLength("Select");
-                       uiDefPulldownBut(block, action_selectmenu, 
CTX_wm_area(C), 
-                                                 "Select", xco, yco, xmax-3, 
24, "");
+               }
+               else if (saction->mode==SACTCONT_GPENCIL) {
+                       xmax= GetButStringLength("Channel");
+                       uiDefPulldownBut(block, action_gplayermenu, 
CTX_wm_area(C), 
+                                                 "Channel", xco, yco, xmax-3, 
24, "");
                        xco+= xmax;
-                       
-                       if ( (saction->mode == SACTCONT_DOPESHEET) ||
-                                ((saction->action) && 
(saction->mode==SACTCONT_ACTION)) ) 
-                       {
-                               xmax= GetButStringLength("Channel");
-                               uiDefPulldownBut(block, action_channelmenu, 
CTX_wm_area(C), 
-                                                         "Channel", xco, yco, 
xmax-3, 24, "");
-                               xco+= xmax;
-                       }
-                       else if (saction->mode==SACTCONT_GPENCIL) {
-                               xmax= GetButStringLength("Channel");
-                               uiDefPulldownBut(block, action_gplayermenu, 
CTX_wm_area(C), 
-                                                         "Channel", xco, yco, 
xmax-3, 24, "");
-                               xco+= xmax;
-                       }
-                       
-                       xmax= GetButStringLength("Marker");
-                       uiDefPulldownBut(block, action_markermenu, 
CTX_wm_area(C), 
-                                                 "Marker", xco, yco, xmax-3, 
24, "");
+               }
+               
+               xmax= GetButStringLength("Marker");
+               uiDefPulldownBut(block, action_markermenu, CTX_wm_area(C), 
+                                         "Marker", xco, yco, xmax-3, 24, "");
+               xco+= xmax;
+               
+               if (saction->mode == SACTCONT_GPENCIL) {
+                       xmax= GetButStringLength("Frame");
+                       uiDefPulldownBut(block, action_framemenu, 
CTX_wm_area(C), 
+                                                 "Frame", xco, yco, xmax-3, 
24, "");
                        xco+= xmax;
-                       
-                       if (saction->mode == SACTCONT_GPENCIL) {
-                               xmax= GetButStringLength("Frame");
-                               uiDefPulldownBut(block, action_framemenu, 
CTX_wm_area(C), 
-                                                         "Frame", xco, yco, 
xmax-3, 24, "");
-                               xco+= xmax;
-                       }
-                       else {
-                               xmax= GetButStringLength("Key");
-                               uiDefPulldownBut(block, action_keymenu, 
CTX_wm_area(C), 
-                                                         "Key", xco, yco, 
xmax-3, 24, "");
-                               xco+= xmax;
-                       }
                }
+               else {
+                       xmax= GetButStringLength("Key");
+                       uiDefPulldownBut(block, action_keymenu, CTX_wm_area(C), 
+                                                 "Key", xco, yco, xmax-3, 24, 
"");
+                       xco+= xmax;
+               }
+       }
 
-               uiBlockSetEmboss(block, UI_EMBOSS);
-               
-               /* MODE SELECTOR */
-               uiDefButC(block, MENU, B_REDR, 
-                               "Editor Mode %t|DopeSheet %x3|Action Editor 
%x0|ShapeKey Editor %x1|Grease Pencil %x2", 
-                               xco,yco,90,YIC, &saction->mode, 0, 1, 0, 0, 
-                               "Editing modes for this editor");
-
-               
-               xco += (90 + 8);
-               
+       uiBlockSetEmboss(block, UI_EMBOSS);
+       
+       /* MODE SELECTOR */
+       uiDefButC(block, MENU, B_REDR, 
+                       "Editor Mode %t|DopeSheet %x3|Action Editor 
%x0|ShapeKey Editor %x1|Grease Pencil %x2", 
+                       xco,yco,90,YIC, &saction->mode, 0, 1, 0, 0, 
+                       "Editing modes for this editor");
+       
+       
+       xco += (90 + 8);
+       
+       if (ac.data) {
                /* MODE-DEPENDENT DRAWING */
                if (saction->mode == SACTCONT_DOPESHEET) {
                        /* FILTERING OPTIONS */


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

Reply via email to