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

Reply via email to