Revision: 20130
          http://sourceforge.net/p/jmol/code/20130
Author:   hansonr
Date:     2014-11-25 17:42:54 +0000 (Tue, 25 Nov 2014)
Log Message:
-----------
Jmol.___JmolVersion="14.2.9_2014.11.26"

bug fix: hover OFF disables hover callback, but should not

Modified Paths:
--------------
    branches/v14_2/Jmol/src/org/jmol/viewer/Jmol.properties
    branches/v14_2/Jmol/src/org/jmol/viewer/StatusManager.java
    branches/v14_2/Jmol/src/org/jmol/viewer/Viewer.java

Modified: branches/v14_2/Jmol/src/org/jmol/viewer/Jmol.properties
===================================================================
--- branches/v14_2/Jmol/src/org/jmol/viewer/Jmol.properties     2014-11-25 
17:41:59 UTC (rev 20129)
+++ branches/v14_2/Jmol/src/org/jmol/viewer/Jmol.properties     2014-11-25 
17:42:54 UTC (rev 20130)
@@ -4,8 +4,12 @@
 # THIS IS THE RELEASE BRANCH 
 # BUG FIXES ONLY, PLEASE
 
-Jmol.___JmolVersion="14.2.9_2014.11.24"
+Jmol.___JmolVersion="14.2.9_2014.11.26"
 
+bug fix: hover OFF disables hover callback, but should not
+
+JmolVersion="14.2.9_2014.11.24"
+
 bug fix: reading of JVXL file saved with noFill still does fill
 bug fix: CASTEP DENSITY surface file reader does not do downsampling
 

Modified: branches/v14_2/Jmol/src/org/jmol/viewer/StatusManager.java
===================================================================
--- branches/v14_2/Jmol/src/org/jmol/viewer/StatusManager.java  2014-11-25 
17:41:59 UTC (rev 20129)
+++ branches/v14_2/Jmol/src/org/jmol/viewer/StatusManager.java  2014-11-25 
17:42:54 UTC (rev 20130)
@@ -344,6 +344,10 @@
           new Object[] { sJmol, Integer.valueOf(width), 
Integer.valueOf(height) }); 
   }
 
+  boolean haveHoverCallback() {
+    return (jmolScriptCallbacks.containsKey(CBK.HOVER) || 
notifyEnabled(CBK.HOVER));
+  }
+  
   synchronized void setStatusAtomHovered(int iatom, String strInfo) {
     String sJmol = jmolScriptCallback(CBK.HOVER);
     if (notifyEnabled(CBK.HOVER))

Modified: branches/v14_2/Jmol/src/org/jmol/viewer/Viewer.java
===================================================================
--- branches/v14_2/Jmol/src/org/jmol/viewer/Viewer.java 2014-11-25 17:41:59 UTC 
(rev 20129)
+++ branches/v14_2/Jmol/src/org/jmol/viewer/Viewer.java 2014-11-25 17:42:54 UTC 
(rev 20130)
@@ -4362,12 +4362,28 @@
     shm.loadShape(JC.SHAPE_HOVER);
     setShapeProperty(JC.SHAPE_HOVER, "label", strLabel);
     hoverEnabled = (strLabel != null);
-    if (!hoverEnabled)
+    if (!hoverEnabled && !sm.haveHoverCallback())
       startHoverWatcher(false);
   }
 
+  /*
+   * hoverCallback reports information about the atom being hovered over.
+   * 
+   * jmolSetCallback("hoverCallback", "myHoverCallback") function
+   * myHoverCallback(strInfo, iAtom) {}
+   * 
+   * strInfo == the atom's identity, including x, y, and z coordinates iAtom ==
+   * the index of the atom being hovered over
+   * 
+   * Viewer.setStatusAtomHovered Hover.setProperty("target") Viewer.hoverOff
+   * Viewer.hoverOn
+   */
   void hoverOn(int atomIndex, boolean isLabel) {
-    setStatusAtomHovered(atomIndex, getAtomInfoXYZ(atomIndex, false));
+    g.removeParam("_objecthovered");
+    g.setI("_atomhovered", atomIndex);
+    g.setUserVariable("hovered", 
SV.getVariable(BSUtil.newAndSetBit(atomIndex)));
+    if (sm.haveHoverCallback())
+      sm.setStatusAtomHovered(atomIndex, getAtomInfoXYZ(atomIndex, false));
     if (!hoverEnabled)
       return;
     if (g.modelKitMode) {
@@ -4396,11 +4412,18 @@
   }
 
   public void hoverOnPt(int x, int y, String text, String id, T3 pt) {
-    if (!hoverEnabled)
-      return;
     // from draw for drawhover on
     if (eval != null && isScriptExecuting())
       return;
+    if (id != null && pt != null) {
+      g.setO("_objecthovered", id);
+      g.setI("_atomhovered", -1);
+      g.setUserVariable("hovered", SV.getVariable(pt));
+      if (sm.haveHoverCallback())
+        sm.setStatusObjectHovered(id, text, pt);
+    }
+    if (!hoverEnabled)
+      return;
     shm.loadShape(JC.SHAPE_HOVER);
     setShapeProperty(JC.SHAPE_HOVER, "xy", P3i.new3(x, y, 0));
     setShapeProperty(JC.SHAPE_HOVER, "target", null);
@@ -4408,8 +4431,6 @@
     setShapeProperty(JC.SHAPE_HOVER, "text", text);
     hoverAtomIndex = -1;
     hoverText = text;
-    if (id != null && pt != null)
-      setStatusObjectHovered(id, text, pt);
     refresh(3, "hover on point");
   }
 
@@ -4867,30 +4888,6 @@
   }
 
   /*
-   * hoverCallback reports information about the atom being hovered over.
-   * 
-   * jmolSetCallback("hoverCallback", "myHoverCallback") function
-   * myHoverCallback(strInfo, iAtom) {}
-   * 
-   * strInfo == the atom's identity, including x, y, and z coordinates iAtom ==
-   * the index of the atom being hovered over
-   * 
-   * Viewer.setStatusAtomHovered Hover.setProperty("target") Viewer.hoverOff
-   * Viewer.hoverOn
-   */
-
-  private void setStatusAtomHovered(int atomIndex, String info) {
-    g.setI("_atomhovered", atomIndex);
-    g.setUserVariable("hovered", 
SV.getVariable(BSUtil.newAndSetBit(atomIndex)));
-    sm.setStatusAtomHovered(atomIndex, info);
-  }
-
-  private void setStatusObjectHovered(String id, String info, T3 pt) {
-    g.setO("_objecthovered", id);
-    sm.setStatusObjectHovered(id, info, pt);
-  }
-
-  /*
    * loadStructCallback indicates file load status.
    * 
    * jmolSetCallback("loadStructCallback", "myLoadStructCallback") function

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


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Jmol-commits mailing list
Jmol-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-commits

Reply via email to