diff options
author | Joshua Leung <aligorith@gmail.com> | 2009-07-10 05:57:55 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2009-07-10 05:57:55 +0400 |
commit | 0051f1be8ea6e329649d4a476e6c4cb5d1d101ef (patch) | |
tree | b96dd939058d529f88a990876e2ec002ea6a0c8f /source/blender/editors/screen | |
parent | d7a7081e633f458d3c68f6ccff5376c0340fe42e (diff) | |
parent | 9241559ab4c223d30a949f2e06c776642b69715c (diff) |
NLA SoC: Merge from 2.5
21330 to 21469
Diffstat (limited to 'source/blender/editors/screen')
-rw-r--r-- | source/blender/editors/screen/area.c | 22 | ||||
-rw-r--r-- | source/blender/editors/screen/screen_ops.c | 9 |
2 files changed, 26 insertions, 5 deletions
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index dd8efd68604..69af4fbb45d 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -1128,8 +1128,6 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *contex em= (ar->type->minsizex)? 10: 20; } - header= 20; // XXX - triangle= 22; x= 0; y= -style->panelouter; @@ -1150,10 +1148,14 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *contex block= uiBeginBlock(C, ar, pt->idname, UI_EMBOSS); panel= uiBeginPanel(sa, ar, block, pt, &open); + /* bad fixed values */ + header= (pt->flag & PNL_NO_HEADER)? 0: 20; + triangle= 22; + if(vertical) y -= header; - if(pt->draw_header && (open || vertical)) { + if(pt->draw_header && header && (open || vertical)) { /* for enabled buttons */ panel->layout= uiBlockLayout(block, UI_LAYOUT_HORIZONTAL, UI_LAYOUT_HEADER, triangle, header+style->panelspace, header, 1, style); @@ -1185,7 +1187,10 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *contex uiEndBlock(C, block); if(vertical) { - y += yco-style->panelouter; + if(pt->flag & PNL_NO_HEADER) + y += yco; + else + y += yco-style->panelouter; } else { x += w; @@ -1214,13 +1219,20 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *contex if(vertical) { v2d->keepofs |= V2D_LOCKOFS_X; v2d->keepofs &= ~V2D_LOCKOFS_Y; + + // don't jump back when panels close or hide + y= MAX2(-y, -v2d->cur.ymin); } else { v2d->keepofs &= ~V2D_LOCKOFS_X; v2d->keepofs |= V2D_LOCKOFS_Y; + + // don't jump back when panels close or hide + x= MAX2(x, v2d->cur.xmax); + y= -y; } - UI_view2d_totRect_set(v2d, x, -y); + UI_view2d_totRect_set(v2d, x, y); /* set the view */ UI_view2d_view_ortho(C, v2d); diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 80526dbdb6e..3379d728826 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -34,6 +34,7 @@ #include "DNA_armature_types.h" #include "DNA_image_types.h" +#include "DNA_lattice_types.h" #include "DNA_object_types.h" #include "DNA_mesh_types.h" #include "DNA_curve_types.h" @@ -293,6 +294,14 @@ int ED_operator_editfont(bContext *C) return 0; } +int ED_operator_editlattice(bContext *C) +{ + Object *obedit= CTX_data_edit_object(C); + if(obedit && obedit->type==OB_LATTICE) + return NULL != ((Lattice *)obedit->data)->editlatt; + return 0; +} + /* *************************** action zone operator ************************** */ /* operator state vars used: |