Revision: 18726 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18726 Author: blendix Date: 2009-01-29 00:56:21 +0100 (Thu, 29 Jan 2009)
Log Message: ----------- 2.5: fix for issue in last commit, menu bounds were no always computed correct. Modified Paths: -------------- branches/blender2.5/blender/source/blender/editors/interface/interface.c branches/blender2.5/blender/source/blender/editors/interface/interface_intern.h branches/blender2.5/blender/source/blender/editors/interface/interface_regions.c Modified: branches/blender2.5/blender/source/blender/editors/interface/interface.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/interface/interface.c 2009-01-28 23:29:27 UTC (rev 18725) +++ branches/blender2.5/blender/source/blender/editors/interface/interface.c 2009-01-28 23:56:21 UTC (rev 18726) @@ -207,11 +207,17 @@ /* ******************* block calc ************************* */ -/* only for pulldowns */ void uiTextBoundsBlock(uiBlock *block, int addval) { + block->textbounds= addval; + block->dotextbounds= 1; +} + +/* only for pulldowns */ +static void ui_text_bounds_block(uiBlock *block) +{ uiBut *bt; - int i = 0, j, x1addval= 0, nextcol; + int i = 0, j, x1addval= 0, nextcol, addval= block->textbounds; bt= block->buttons.first; while(bt) { @@ -505,10 +511,6 @@ } } } - - // XXX not nice .. - if(bounds) - uiTextBoundsBlock(block, 50); } void uiEndBlock(const bContext *C, uiBlock *block) @@ -533,9 +535,12 @@ /* handle pending stuff */ if(block->flag & UI_BLOCK_LOOP) ui_menu_block_set_keymaps(C, block); + if(block->dotextbounds) ui_text_bounds_block(block); /* after keymaps! */ if(block->autofill) ui_autofill(block); if(block->minx==0.0 && block->maxx==0.0) uiBoundsBlock(block, 0); if(block->flag & UI_BUT_ALIGN) uiBlockEndAlign(block); + + block->endblock= 1; } /* ************** BLOCK DRAWING FUNCTION ************* */ @@ -544,6 +549,9 @@ { uiBut *but; + if(!block->endblock) + uiEndBlock(C, block); + /* we set this only once */ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_intern.h =================================================================== --- branches/blender2.5/blender/source/blender/editors/interface/interface_intern.h 2009-01-28 23:29:27 UTC (rev 18725) +++ branches/blender2.5/blender/source/blender/editors/interface/interface_intern.h 2009-01-28 23:56:21 UTC (rev 18726) @@ -214,7 +214,9 @@ int lock; char *lockstr; - float xofs, yofs; // offset to parent button + float xofs, yofs; // offset to parent button + int textbounds, dotextbounds; // for doing delayed + int endblock; // uiEndBlock done? rctf safety; // pulldowns, to detect outside, can differ per case how it is created ListBase saferct; // uiSafetyRct list Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_regions.c =================================================================== --- branches/blender2.5/blender/source/blender/editors/interface/interface_regions.c 2009-01-28 23:29:27 UTC (rev 18725) +++ branches/blender2.5/blender/source/blender/editors/interface/interface_regions.c 2009-01-28 23:56:21 UTC (rev 18726) @@ -651,6 +651,9 @@ block= block_func(C, handle, arg); block->handle= handle; + if(!block->endblock) + uiEndBlock(C, block); + /* if this is being created from a button */ if(but) { if(ELEM(but->type, BLOCK, PULLDOWN)) _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs