[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59562] trunk/blender/source/blender: Small enhancement to grab-resize of uiLists, suggested by plasmasolutions: do not effectively apply auto-size until we stop grabbing, avoid size of uiLists to switch between rows and maxrows while dragging.

Bastien Montagne montagne29 at wanadoo.fr
Tue Aug 27 20:56:04 CEST 2013


Revision: 59562
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59562
Author:   mont29
Date:     2013-08-27 18:56:04 +0000 (Tue, 27 Aug 2013)
Log Message:
-----------
Small enhancement to grab-resize of uiLists, suggested by plasmasolutions: do not effectively apply auto-size until we stop grabbing, avoid size of uiLists to switch between rows and maxrows while dragging.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_handlers.c
    trunk/blender/source/blender/editors/interface/interface_templates.c
    trunk/blender/source/blender/makesdna/DNA_screen_types.h

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2013-08-27 18:46:18 UTC (rev 59561)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2013-08-27 18:56:04 UTC (rev 59562)
@@ -3424,10 +3424,12 @@
 			data->escapecancel = true;
 			*size = (int)data->origvalue;
 			button_activate_state(C, but, BUTTON_STATE_EXIT);
+			ui_list->flag &= ~UILST_RESIZING;
 			ED_region_tag_redraw(data->region);
 		}
 		else if (event->type == LEFTMOUSE && event->val != KM_PRESS) {
 			button_activate_state(C, but, BUTTON_STATE_EXIT);
+			ui_list->flag &= ~UILST_RESIZING;
 			ED_region_tag_redraw(data->region);
 		}
 		else if (event->type == MOUSEMOVE) {
@@ -6552,6 +6554,7 @@
 
 		/* Again, have to override values set by ui_numedit_begin, because our listbox button also has a rnapoin... */
 		*size = data->origvalue = (double)dyn_data->visual_height;
+		ui_list->flag |= UILST_RESIZING;
 
 		retval = WM_UI_HANDLER_BREAK;
 	}

Modified: trunk/blender/source/blender/editors/interface/interface_templates.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_templates.c	2013-08-27 18:46:18 UTC (rev 59561)
+++ trunk/blender/source/blender/editors/interface/interface_templates.c	2013-08-27 18:56:04 UTC (rev 59562)
@@ -2517,10 +2517,17 @@
 		maxrows = 5;
 	if (columns == 0)
 		columns = 9;
-	if (ui_list->list_grip >= rows)
+
+	if (ui_list->list_grip >= rows) {
 		maxrows = rows = ui_list->list_grip;
-	else
+	}
+	else {
 		ui_list->list_grip = 0;  /* Reset to auto-size mode. */
+		/* Prevent auto-size mode to take effect while grab-resizing! */
+		if (ui_list->flag & UILST_RESIZING) {
+			maxrows = rows;
+		}
+	}
 
 	if (columns > 1) {
 		dyn_data->height = (int)ceil((double)len / (double)columns);

Modified: trunk/blender/source/blender/makesdna/DNA_screen_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_screen_types.h	2013-08-27 18:46:18 UTC (rev 59561)
+++ trunk/blender/source/blender/makesdna/DNA_screen_types.h	2013-08-27 18:56:04 UTC (rev 59562)
@@ -256,6 +256,7 @@
 /* uiList flag */
 enum {
 	UILST_SCROLL_TO_ACTIVE_ITEM   = 1 << 0,          /* Scroll list to make active item visible. */
+	UILST_RESIZING                = 1 << 1,          /* We are currently resizing, deactivate autosize! */
 };
 
 /* regiontype, first two are the default set */




More information about the Bf-blender-cvs mailing list