[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60764] trunk/blender/source/blender/ editors/interface: fix [#37078] Search props don' t react on click at the right end (where 'X' is if field not empty)

Campbell Barton ideasman42 at gmail.com
Tue Oct 15 02:24:53 CEST 2013


Revision: 60764
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60764
Author:   campbellbarton
Date:     2013-10-15 00:24:53 +0000 (Tue, 15 Oct 2013)
Log Message:
-----------
fix [#37078] Search props don't react on click at the right end (where 'X' is if field not empty)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_handlers.c
    trunk/blender/source/blender/editors/interface/interface_intern.h
    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	2013-10-14 23:08:45 UTC (rev 60763)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2013-10-15 00:24:53 UTC (rev 60764)
@@ -2648,7 +2648,9 @@
 static int ui_do_but_SEARCH_UNLINK(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data, const wmEvent *event)
 {
 	/* unlink icon is on right */
-	if (ELEM4(event->type, LEFTMOUSE, EVT_BUT_OPEN, PADENTER, RETKEY) && event->val == KM_PRESS) {
+	if (ELEM4(event->type, LEFTMOUSE, EVT_BUT_OPEN, PADENTER, RETKEY) && event->val == KM_PRESS &&
+	    ui_is_but_search_unlink_visible(but))
+	{
 		ARegion *ar = data->region;
 		rcti rect;
 		int x = event->x, y = event->y;
@@ -5761,6 +5763,13 @@
 	return true;
 }
 
+bool ui_is_but_search_unlink_visible(uiBut *but)
+{
+	BLI_assert(but->type == SEARCH_MENU_UNLINK);
+	return ((but->editstr == NULL) &&
+	        (but->drawstr[0] != '\0'));
+}
+
 uiBut *ui_but_find_mouse_over(ARegion *ar, int x, int y)
 {
 	uiBlock *block;

Modified: trunk/blender/source/blender/editors/interface/interface_intern.h
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_intern.h	2013-10-14 23:08:45 UTC (rev 60763)
+++ trunk/blender/source/blender/editors/interface/interface_intern.h	2013-10-15 00:24:53 UTC (rev 60764)
@@ -402,6 +402,7 @@
 extern bool ui_is_but_rna_valid(uiBut *but);
 extern bool ui_is_but_utf8(uiBut *but);
 extern bool ui_is_but_interactive(uiBut *but);
+extern bool ui_is_but_search_unlink_visible(uiBut *but);
 
 extern int  ui_is_but_push_ex(uiBut *but, double *value);
 extern int  ui_is_but_push(uiBut *but);

Modified: trunk/blender/source/blender/editors/interface/interface_widgets.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_widgets.c	2013-10-14 23:08:45 UTC (rev 60763)
+++ trunk/blender/source/blender/editors/interface/interface_widgets.c	2013-10-15 00:24:53 UTC (rev 60764)
@@ -961,7 +961,7 @@
 
 	if (but->flag & UI_HAS_ICON)
 		okwidth -= UI_DPI_ICON_SIZE;
-	if (but->type == SEARCH_MENU_UNLINK && !but->editstr)
+	if ((but->type == SEARCH_MENU_UNLINK) && ui_is_but_search_unlink_visible(but))
 		okwidth -= BLI_rcti_size_y(rect);
 
 	okwidth = max_ii(okwidth, 0);
@@ -1325,7 +1325,7 @@
 	}
 	
 	/* unlink icon for this button type */
-	if (but->type == SEARCH_MENU_UNLINK && !but->editstr && but->drawstr[0]) {
+	if ((but->type == SEARCH_MENU_UNLINK) && ui_is_but_search_unlink_visible(but)) {
 		rcti temp = *rect;
 
 		temp.xmin = temp.xmax - (BLI_rcti_size_y(rect) * 1.08f);




More information about the Bf-blender-cvs mailing list