diff options
author | wolfsuit <wolfsuit> | 2004-07-15 05:24:38 (GMT) |
---|---|---|
committer | wolfsuit <wolfsuit> | 2004-07-15 05:24:38 (GMT) |
commit | e588dc1eeed689236f0c555b83ceeb0ae136dc13 (patch) | |
tree | e54e10353a626396b9f3fbcedbc1df508cd646b7 | |
parent | 49b6fd71ff7a2c98a00a3bbb0b3b1d43d847e4b6 (diff) | |
download | tk-e588dc1eeed689236f0c555b83ceeb0ae136dc13.zip tk-e588dc1eeed689236f0c555b83ceeb0ae136dc13.tar.gz tk-e588dc1eeed689236f0c555b83ceeb0ae136dc13.tar.bz2 |
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]
-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) { |