@@ -857,31 +857,33 @@ public void run() {
857
857
hookKeyPress ();
858
858
}
859
859
860
- boolean mouseHoverProc () {
860
+ boolean mouseHoverProc (boolean clear ) {
861
861
boolean hoverHooked = false ;
862
- if (hoverTimerID != 0 ) {
862
+ if (hoverTimerID != 0 && clear ) {
863
863
hoverHooked = true ;
864
864
window .clearTimeout (hoverTimerID );
865
865
hoverTimerID = 0 ;
866
866
}
867
867
if (hoverHooked || hooks (SWT .MouseHover )) {
868
868
hoverHooked = true ;
869
- hoverTimerID = window .setTimeout (Clazz .makeFunction (new Runnable () {
870
- public void run () {
871
- if (!isDisposed ()) {
872
- sendEvent (SWT .MouseHover );
869
+ if (hoverTimerID == 0 ) {
870
+ hoverTimerID = window .setTimeout (Clazz .makeFunction (new Runnable () {
871
+ public void run () {
872
+ if (!isDisposed ()) {
873
+ sendEvent (SWT .MouseHover );
874
+ }
875
+ hoverTimerID = 0 ;
873
876
}
874
- hoverTimerID = 0 ;
875
- }
876
- }), 400 );
877
+ }), 400 );
878
+ }
877
879
}
878
880
return hoverHooked ;
879
881
}
880
882
881
883
void hookMouseDown () {
882
884
handle .onmousedown = new RunnableCompatibility () {
883
885
public void run () {
884
- boolean hoverHooked = mouseHoverProc ();
886
+ boolean hoverHooked = mouseHoverProc (true );
885
887
HTMLEventWrapper e = new HTMLEventWrapper (getEvent ());
886
888
if (e .leftButtonHold ) {
887
889
dragStatus = true ;
@@ -895,7 +897,7 @@ public void run() {
895
897
void hookMouseUp () {
896
898
handle .onmouseup = new RunnableCompatibility () {
897
899
public void run () {
898
- boolean hoverHooked = mouseHoverProc ();
900
+ boolean hoverHooked = mouseHoverProc (true );
899
901
dragStatus = false ;
900
902
if (!hoverHooked || hooks (SWT .MouseUp )) {
901
903
HTMLEventWrapper e = new HTMLEventWrapper (getEvent ());
@@ -907,9 +909,20 @@ public void run() {
907
909
void hookMouseMove () {
908
910
handle .onmousemove = new RunnableCompatibility () {
909
911
public void run () {
910
- boolean hoverHooked = mouseHoverProc ();
911
- boolean dragHooked = false ;
912
912
HTMLEventWrapper e = new HTMLEventWrapper (getEvent ());
913
+ Widget widgetThis = Widget .this ;
914
+ /**
915
+ * @j2sNative
916
+ * if (O$.isIE60 || O$.isIE55 || O$.isIE50) {
917
+ * if (e.x == widgetThis.lastMouseMoveX && e.y == widgetThis.lastMouseMoveY) {
918
+ * return true;
919
+ * }
920
+ * widgetThis.lastMouseMoveX = e.x;
921
+ * widgetThis.lastMouseMoveY = e.y;
922
+ * }
923
+ */ { widgetThis .toString (); }
924
+ boolean hoverHooked = mouseHoverProc (false );
925
+ boolean dragHooked = false ;
913
926
if (dragStatus && e .leftButtonHold
914
927
&& hooks (SWT .DragDetect )) {
915
928
dragHooked = true ;
@@ -919,13 +932,14 @@ && hooks(SWT.DragDetect)) {
919
932
if ((!dragHooked && !hoverHooked ) || hooks (SWT .MouseMove )) {
920
933
sendMouseEvent (SWT .MouseMove , ((HTMLEvent ) getEvent ()).button , e .target , e .x , e .y );
921
934
}
935
+ toReturn (true );
922
936
}
923
937
};
924
938
}
925
939
void hookMouseEnter () {
926
940
handle .onmouseover = new RunnableCompatibility () {
927
941
public void run () {
928
- boolean hoverHooked = mouseHoverProc ();
942
+ boolean hoverHooked = mouseHoverProc (true );
929
943
if (!hoverHooked || hooks (SWT .MouseEnter )) {
930
944
HTMLEventWrapper e = new HTMLEventWrapper (getEvent ());
931
945
sendMouseEvent (SWT .MouseEnter , ((HTMLEvent ) getEvent ()).button , e .target , e .x , e .y );
0 commit comments