2.5
authorTon Roosendaal <ton@blender.org>
Thu, 19 Feb 2009 17:13:04 +0000 (17:13 +0000)
committerTon Roosendaal <ton@blender.org>
Thu, 19 Feb 2009 17:13:04 +0000 (17:13 +0000)
Made sliders behave correct in SpaceGraph and SpaceAction.
- no slider draw when all is visible
- sliders update correct when visibility changes.

Still an issue here to tackle; view2d->tot is used incorrect...
it's set on window size now (??), it should be the boundbox of
the entire contents. That allows correct slider draws and ops
like 'view home'.
Will poke Joshua tomorrow. :)

source/blender/editors/interface/view2d.c
source/blender/editors/space_action/action_draw.c
source/blender/editors/space_graph/graph_draw.c
source/blender/editors/space_graph/space_graph.c

index 85766adeef4a1b23641d888b29ea99c30cf4da93..15b345e5992a90623ee1e2e23f5458da5f68bba2 100644 (file)
@@ -731,10 +731,18 @@ void UI_view2d_curRect_reset (View2D *v2d)
 /* Change the size of the maximum viewable area (i.e. 'tot' rect) */
 void UI_view2d_totRect_set (View2D *v2d, int width, int height)
 {
+       int scroll= view2d_scroll_mapped(v2d->scroll);
+       
        /* don't do anything if either value is 0 */
        width= abs(width);
        height= abs(height);
        
+       /* hrumf! */
+       if(scroll & V2D_SCROLL_HORIZONTAL) 
+               width -= V2D_SCROLL_WIDTH;
+       if(scroll & V2D_SCROLL_VERTICAL) 
+               height -= V2D_SCROLL_HEIGHT;
+       
        if (ELEM3(0, v2d, width, height)) {
                printf("Error: View2D totRect set exiting: v2d=%p width=%d height=%d \n", v2d, width, height); // XXX temp debug info
                return;
index 87fdfe4ffdb4aafd7fca2ca051fe40bb1dbb2cbf..75ff73de56eaf0ca7e6c505cf2798b376e231842 100644 (file)
@@ -1037,12 +1037,10 @@ void draw_channel_strips(bAnimContext *ac, SpaceAction *saction, ARegion *ar)
         *        start of list offset, and the second is as a correction for the scrollers.
         */
        height= ((items*ACHANNEL_STEP) + (ACHANNEL_HEIGHT*2));
-       if (height > (v2d->mask.ymax - v2d->mask.ymin)) {
-               /* don't use totrect set, as the width stays the same 
-                * (NOTE: this is ok here, the configuration is pretty straightforward) 
-                */
-               v2d->tot.ymin= (float)(-height);
-       }
+       /* don't use totrect set, as the width stays the same 
+        * (NOTE: this is ok here, the configuration is pretty straightforward) 
+        */
+       v2d->tot.ymin= (float)(-height);
        
        /* first backdrop strips */
        y= (float)(-ACHANNEL_HEIGHT);
index ec8ef17ab4fa8a9164a4c27f178b320e501ddc1e..cfd18af78de580e6fe710da4f8f9d7b9d5935c4f 100644 (file)
@@ -786,7 +786,7 @@ void graph_draw_channel_names(bAnimContext *ac, SpaceIpo *sipo, ARegion *ar)
        }
        
        /* XXX I would call the below line! (ton) */
-       /* UI_view2d_totRect_set(v2d, ar->type->minsizex, height); */
+       UI_view2d_totRect_set(v2d, ar->winx, height);
        
        /* loop through channels, and set up drawing depending on their type  */        
        y= (float)ACHANNEL_FIRST;
index 07a287ca4fcaf43a11b9881f26cbc74f6b0105c8..da18e4d97260eff3fa50afd519b8ef308d38c876 100644 (file)
@@ -482,7 +482,7 @@ void ED_spacetype_ipo(void)
        /* regions: channels */
        art= MEM_callocN(sizeof(ARegionType), "spacetype graphedit region");
        art->regionid = RGN_TYPE_CHANNELS;
-       art->minsizex= 214; /* 200 is the 'standard', but due to scrollers, we want a bit more to fit the lock icons in */
+       art->minsizex= 200+V2D_SCROLL_WIDTH; /* 200 is the 'standard', but due to scrollers, we want a bit more to fit the lock icons in */
        art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES;
        art->listener= graph_region_listener;
        art->init= graph_channel_area_init;