Revision: 3365
          http://vexi.svn.sourceforge.net/vexi/?rev=3365&view=rev
Author:   clrg
Date:     2009-01-21 01:35:44 +0000 (Wed, 21 Jan 2009)

Log Message:
-----------
Tooltip handling tweaks

Modified Paths:
--------------
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipable.t
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipmanager.t

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipable.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipable.t  
2009-01-20 03:01:42 UTC (rev 3364)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipable.t  
2009-01-21 01:35:44 UTC (rev 3365)
@@ -11,13 +11,23 @@
         
     </ui:box>
     
-    static.enterWrite = function(v) { 
trapee.surface.tooltip.makeRequest(trapee); cascade = v; }
-    static.leaveWrite = function(v) { 
trapee.surface.tooltip.dropRequest(trapee); cascade = v; }
+    static.enterWrite = function(v) { if (trapee.tooltip) 
trapee.surface.tooltip.makeRequest(trapee); cascade = v; }
+    static.leaveWrite = function(v) { if (trapee.tooltip) 
trapee.surface.tooltip.dropRequest(trapee); cascade = v; }
     
+    /** re-/un-register tooltip if it has changed */
+    static.tooltipUpdate = function(v) {
+        cascade = v;
+        if (trapee.v_active_tooltip) {
+            if (v) trapee.surface.tooltip.makeRequest(trapee);
+            else trapee.surface.tooltip.dropRequest(trapee);
+        }
+    } 
+    
     /** assign the Enter/Leave functions when a tooltip is set */
     static.tooltipWrite = function(v) {
         trapee.Enter ++= static.enterWrite;
         trapee.Leave ++= static.leaveWrite;
+        trapee.tooltip ++= static.tooltipUpdate;
         trapee.tooltip --= callee;
         cascade = v;
     }

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipmanager.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipmanager.t       
2009-01-20 03:01:42 UTC (rev 3364)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipmanager.t       
2009-01-21 01:35:44 UTC (rev 3365)
@@ -68,6 +68,7 @@
         /** clean up on popdown */
         thisbox.popdown ++= function(v) {
             if (!curTipReq) return true;
+            curTipReq.v_active_tooltip = false;
             curTipReq.surface --= surfaceWrite;
             curTipReq.visible --= visibleWrite;
             surface.event.Press1 --= pressWrite;
@@ -76,7 +77,10 @@
         
         /** make v the tooltip requesting display */
         model.makeRequest = function(v) {
+            // clean up previous tooltip
+            if (curTipReq) curTipReq.v_active_tooltip = false;
             // register new tooltip request
+            v.v_active_tooltip = true;
             curTipReq = v;
             newTipReq = true;
             // already showing previous tooltip
@@ -103,8 +107,7 @@
                 popdown = true;
                 curTipReq = null;
                 vexi.thread = popTooltipThread;
-            }
-            else curTipReq = null;
+            } else curTipReq = null;
         }
         
     </ui:box>


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to