diff options
author | Steve Northover <steve> | 2006-01-13 16:53:36 +0000 |
---|---|---|
committer | Steve Northover <steve> | 2006-01-13 16:53:36 +0000 |
commit | 12e45fb54f284260e5a8be971116e65fb533176e (patch) | |
tree | 9238a4a45d4ac37ae469dab82f8ffb819e6e4c6c | |
parent | 25225198f7900abb357a7dab01d4951e90a13ede (diff) | |
download | eclipse.platform.swt-12e45fb54f284260e5a8be971116e65fb533176e.tar.gz eclipse.platform.swt-12e45fb54f284260e5a8be971116e65fb533176e.tar.xz eclipse.platform.swt-12e45fb54f284260e5a8be971116e65fb533176e.zip |
122428 - Performance on OS X still degrades on 10.4.3
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Display.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Display.java b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Display.java index e8ffab9518..cc54d4e9e4 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Display.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Display.java @@ -2764,6 +2764,7 @@ int mouseProc (int nextHandler, int theEvent, int userData) { } int mouseHoverProc (int id, int handle) { + OS.RemoveEventLoopTimer (id); mouseHoverID = 0; mouseMoved = false; if (currentControl != null && !currentControl.isDisposed ()) { @@ -2959,6 +2960,19 @@ protected void release () { void releaseDisplay () { disposeWindows (); + /* Release Timers */ + if (caretID != 0) OS.RemoveEventLoopTimer (caretID); + if (mouseHoverID != 0) OS.RemoveEventLoopTimer (mouseHoverID); + caretID = mouseHoverID = 0; + if (timerIds != null) { + for (int i=0; i<timerIds.length; i++) { + if (timerIds [i] != 0 && timerIds [i] != -1) { + OS.RemoveEventLoopTimer (timerIds [i]); + } + } + } + timerIds = null; + actionCallback.dispose (); appleEventCallback.dispose (); caretCallback.dispose (); @@ -3847,6 +3861,7 @@ public void timerExec (int milliseconds, Runnable runnable) { } int timerProc (int id, int index) { + OS.RemoveEventLoopTimer (id); if (timerList == null) return 0; if (0 <= index && index < timerList.length) { if (allowTimers) { |