[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47201] branches/soc-2012-bratwurst/source /blender: If a tooltip has been open recently, don' t hesitate to open another.

Jorge Rodriguez bs.vino at gmail.com
Wed May 30 06:26:37 CEST 2012


Revision: 47201
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47201
Author:   vino
Date:     2012-05-30 04:26:31 +0000 (Wed, 30 May 2012)
Log Message:
-----------
If a tooltip has been open recently, don't hesitate to open another.

Modified Paths:
--------------
    branches/soc-2012-bratwurst/source/blender/editors/interface/interface_handlers.c
    branches/soc-2012-bratwurst/source/blender/editors/interface/interface_regions.c
    branches/soc-2012-bratwurst/source/blender/makesdna/DNA_windowmanager_types.h

Modified: branches/soc-2012-bratwurst/source/blender/editors/interface/interface_handlers.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/interface/interface_handlers.c	2012-05-30 04:17:21 UTC (rev 47200)
+++ branches/soc-2012-bratwurst/source/blender/editors/interface/interface_handlers.c	2012-05-30 04:26:31 UTC (rev 47201)
@@ -83,6 +83,7 @@
 
 /***************** structs and defines ****************/
 
+#define BUTTON_TOOLTIP_RESET        0.200
 #define BUTTON_TOOLTIP_DELAY        0.500
 #define BUTTON_FLASH_DELAY          0.020
 #define MENU_SCROLL_INTERVAL        0.1
@@ -5086,10 +5087,16 @@
 		data->tooltiptimer = NULL;
 	}
 
-	if (U.flag & USER_TOOLTIPS)
-		if (!but->block->tooltipdisabled)
-			if (!wm->drags.first)
-				data->tooltiptimer = WM_event_add_timer(data->wm, data->window, TIMER, BUTTON_TOOLTIP_DELAY);
+	if (U.flag & USER_TOOLTIPS) {
+		if (!but->block->tooltipdisabled) {
+			if (!wm->drags.first) {
+				if (!data->tooltip && PIL_check_seconds_timer() - wm->last_tooltip_close < BUTTON_TOOLTIP_RESET)
+					data->tooltip = ui_tooltip_create(C, data->region, but);
+				else
+					data->tooltiptimer = WM_event_add_timer(data->wm, data->window, TIMER, BUTTON_TOOLTIP_DELAY);
+			}
+		}
+	}
 }
 
 static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState state)

Modified: branches/soc-2012-bratwurst/source/blender/editors/interface/interface_regions.c
===================================================================
--- branches/soc-2012-bratwurst/source/blender/editors/interface/interface_regions.c	2012-05-30 04:17:21 UTC (rev 47200)
+++ branches/soc-2012-bratwurst/source/blender/editors/interface/interface_regions.c	2012-05-30 04:26:31 UTC (rev 47201)
@@ -64,6 +64,8 @@
 #include "BLF_api.h"
 #include "BLF_translation.h"
 
+#include "PIL_time.h"
+
 #include "ED_screen.h"
 
 #include "interface_intern.h"
@@ -688,6 +690,8 @@
 
 void ui_tooltip_free(bContext *C, ARegion *ar)
 {
+	CTX_wm_manager(C)->last_tooltip_close = PIL_check_seconds_timer();
+
 	ui_remove_temporary_region(C, CTX_wm_screen(C), ar);
 }
 

Modified: branches/soc-2012-bratwurst/source/blender/makesdna/DNA_windowmanager_types.h
===================================================================
--- branches/soc-2012-bratwurst/source/blender/makesdna/DNA_windowmanager_types.h	2012-05-30 04:17:21 UTC (rev 47200)
+++ branches/soc-2012-bratwurst/source/blender/makesdna/DNA_windowmanager_types.h	2012-05-30 04:26:31 UTC (rev 47201)
@@ -149,6 +149,7 @@
 
 	ListBase timers;					/* active timers */
 	struct wmTimer *autosavetimer;		/* timer for auto save */
+	double last_tooltip_close;
 } wmWindowManager;
 
 /* wmWindowManager.initialized */




More information about the Bf-blender-cvs mailing list