[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18726] branches/blender2.5/blender/source /blender/editors/interface: 2.5: fix for issue in last commit, menu bounds were no always
Brecht Van Lommel
brecht at blender.org
Thu Jan 29 00:56:24 CET 2009
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))
More information about the Bf-blender-cvs
mailing list