diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | macosx/tkMacOSXCursor.c | 13 |
2 files changed, 17 insertions, 4 deletions
@@ -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) { |