[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43724] trunk/blender/source/blender/ editors/interface: Fix #29958: Search Menu keeps hiding first character(s) after long input

Sergey Sharybin sergey.vfx at gmail.com
Thu Jan 26 13:48:43 CET 2012


Revision: 43724
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43724
Author:   nazgul
Date:     2012-01-26 12:48:36 +0000 (Thu, 26 Jan 2012)
Log Message:
-----------
Fix #29958: Search Menu keeps hiding first character(s) after long input

- ui_check_but() in ui_textedit_move() is necessary because this function clips
  but->drawstring to fit text entry widget and it confuses cursor movement stuff.
  ui_check_but copies editstring to drawstring, so displaystring would be clipped
  again in correct way.
- If the whole drawstring fits widget, no need to set button's offset.

Modified Paths:
--------------
    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_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2012-01-26 12:44:31 UTC (rev 43723)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2012-01-26 12:48:36 UTC (rev 43724)
@@ -1527,6 +1527,8 @@
 	const int pos_prev= but->pos;
 	const int has_sel= (but->selend - but->selsta) > 0;
 
+	ui_check_but(but);
+
 	/* special case, quit selection and set cursor */
 	if (has_sel && !select) {
 		if (jump == BUTTON_EDIT_JUMP_ALL) {

Modified: trunk/blender/source/blender/editors/interface/interface_widgets.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_widgets.c	2012-01-26 12:44:31 UTC (rev 43723)
+++ trunk/blender/source/blender/editors/interface/interface_widgets.c	2012-01-26 12:48:36 UTC (rev 43724)
@@ -952,6 +952,9 @@
 	if(but->editstr && but->pos >= 0) {
 		if(but->ofs > but->pos)
 			but->ofs= but->pos;
+
+		if(BLF_width(fstyle->uifont_id, but->drawstr) <= okwidth)
+			but->ofs = 0;
 	}
 	else but->ofs= 0;
 	




More information about the Bf-blender-cvs mailing list