[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25990] trunk/blender/source/blender/ editors/interface: Fix [#20029] Text input fields with dropdown list bugs

Matt Ebb matt at mke3.net
Thu Jan 14 10:56:41 CET 2010


Revision: 25990
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25990
Author:   broken
Date:     2010-01-14 10:56:41 +0100 (Thu, 14 Jan 2010)

Log Message:
-----------
Fix [#20029] Text input fields with dropdown list bugs

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface.c
    trunk/blender/source/blender/editors/interface/interface_handlers.c
    trunk/blender/source/blender/editors/interface/interface_widgets.c

Modified: trunk/blender/source/blender/editors/interface/interface.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface.c	2010-01-14 09:01:57 UTC (rev 25989)
+++ trunk/blender/source/blender/editors/interface/interface.c	2010-01-14 09:56:41 UTC (rev 25990)
@@ -1360,7 +1360,7 @@
 
 int ui_get_but_string_max_length(uiBut *but)
 {
-	if(but->type == TEX)
+	if(ELEM(but->type, TEX, SEARCH_MENU))
 		return but->hardmax;
 	else if(but->type == IDPOIN)
 		return sizeof(((ID*)NULL)->name)-2;

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2010-01-14 09:01:57 UTC (rev 25989)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2010-01-14 09:56:41 UTC (rev 25990)
@@ -1083,8 +1083,11 @@
 	/* XXX solve generic */
 	if(but->type==NUM || but->type==NUMSLI)
 		startx += (int)(0.5f*(but->y2 - but->y1));
-	else if(but->type==TEX)
+	else if(ELEM(but->type, TEX, SEARCH_MENU)) {
 		startx += 5;
+		if (but->flag & UI_HAS_ICON)
+			startx += 16;
+	}
 	
 	/* XXX does not take zoom level into account */
 	while((BLF_width(origstr+but->ofs) + startx) > x) {

Modified: trunk/blender/source/blender/editors/interface/interface_widgets.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_widgets.c	2010-01-14 09:01:57 UTC (rev 25989)
+++ trunk/blender/source/blender/editors/interface/interface_widgets.c	2010-01-14 09:56:41 UTC (rev 25990)
@@ -804,6 +804,8 @@
 	int border= (but->flag & UI_BUT_ALIGN_RIGHT)? 8: 10;
 	int okwidth= rect->xmax-rect->xmin - border;
 	
+	if (but->flag & UI_HAS_ICON) okwidth -= 16;
+	
 	/* need to set this first */
 	uiStyleFontSet(fstyle);
 
@@ -984,7 +986,7 @@
 	if (ELEM4(but->type, NUM, NUMABS, NUMSLI, SLI)) {
 		ui_text_label_rightclip(fstyle, but, rect);
 	}
-	else if (but->type == TEX) {	
+	else if (ELEM(but->type, TEX, SEARCH_MENU)) {	
 		ui_text_leftclip(fstyle, but, rect);
 	}
 	else but->ofs= 0;
@@ -1330,8 +1332,9 @@
 
 		VECCOPY(wt->wcol.text, wt->wcol.text_sel);
 		
-		/* swap for selection - show depressed */
-		SWAP(short, wt->wcol.shadetop, wt->wcol.shadedown);
+		if (!(state & UI_TEXTINPUT))
+			/* swap for selection - show depressed */
+			SWAP(short, wt->wcol.shadetop, wt->wcol.shadedown);
 	}
 	else {
 		if(state & UI_BUT_ANIMATED_KEY)





More information about the Bf-blender-cvs mailing list