summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--macosx/tkMacOSXCursor.c13
2 files changed, 17 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index d55283a..148da7e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-07-14 Jim Ingham <jingham@apple.com>
+
+ * macosx/tkMacOSXCursor.c (TkpSetCursor): The code to not
+ reset the cursor more often than necessary was getting fooled
+ when the current cursor was nulled out when the current cursor
+ gets freed. So in the case where the input cursor was NULL, we
+ have to just always set it. [Bug #894550]
+
2004-07-14 Jeff Hobbs <jeffh@ActiveState.com>
* generic/tkUndo.c (TkUndoSetDepth): correct -maxundo
diff --git a/macosx/tkMacOSXCursor.c b/macosx/tkMacOSXCursor.c
index 8e72897..1db2ff9 100644
--- a/macosx/tkMacOSXCursor.c
+++ b/macosx/tkMacOSXCursor.c
@@ -9,7 +9,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkMacOSXCursor.c,v 1.4 2003/02/11 07:26:18 wolfsuit Exp $
+ * RCS: @(#) $Id: tkMacOSXCursor.c,v 1.4.2.1 2004/07/15 05:24:39 wolfsuit Exp $
*/
#include "tkPort.h"
@@ -431,9 +431,14 @@ TkpSetCursor(
}
if (cursor == None) {
- if (gCurrentCursor == NULL) {
- cursorChanged = 0;
- }
+ /*
+ * This is a little tricky. We can't really tell whether
+ * gCurrentCursor is NULL because it was NULL last time around
+ * or because we just freed the current cursor. So if the input
+ * cursor is NULL, we always need to reset it, we can't trust the
+ * cursorChanged logic.
+ */
+
gCurrentCursor = NULL;
} else {
if (gCurrentCursor == (TkMacOSXCursor *) cursor) {