From: robert k. <ro...@ta...> - 2005-02-11 15:58:35
|
sorry if this is a dup. I sent it from a wrong email acct yesterday. I didn't see this in bug database or archives although I saw some other discussions about cursors- maybe this is related. When I run this script with tcl aqua 8.4.1 on osx 10.2.8 (although I think I've seen this on previous versions of OSX too) I see the following. If you use button to change cursor, it doesn't change until you touch the mouse. However if you change cursor while it is over entry by typing 'watch' into the entry, then it changes immediately. similary if you set radiobutton, then click into console, then move mouse over the entry while leaving focus on console and type the proc name 'flip' in the console, it changes immediately without any user intervention- but only if the cursor is over the entry, not anywhere else. Any idea why this happens and what a workaround would be? using 'update' vs. 'update idle' didn't make any difference. Thanks for any ideas, Robert Karen toplevel .t frame .t.f button .t.f.ok -text OK -command flip radiobutton .t.f.r1 -text watch -variable cursor -value watch radiobutton .t.f.r2 -text normal -variable cursor -value {} pack .t.f.r1 .t.f.r2 .t.f.ok -side top -pady 5 -anchor w pack .t.f -padx 20 -pady 20 entry .t.f.e -width 15 bindtags .t.f.e {.t.f.e Entry myBind . all} bind myBind <KeyPress> { if {![string compare watch [%W get]]} { %W delete 0 end set ::cursor watch flip } } pack .t.f.e -side top -pady 5 proc flip {} { global cursor if {![string compare $cursor watch]} { .t configure -cursor watch; .t.f.e configure -cursor watch } else { .t configure -cursor {}; .t.f.e configure -cursor {} } update idle } |