windows_list: test for -background to avoid setting error in remote master
authorPat Thoyts <patthoyts@users.sourceforge.net>
Sat, 28 Nov 2020 13:01:08 +0000 (13:01 +0000)
committerPat Thoyts <patthoyts@users.sourceforge.net>
Sat, 28 Nov 2020 13:01:08 +0000 (13:01 +0000)
windows_list.tcl

index 800d7bfd8d698f0d2963a78b6b1caca40dd34a9d..092f988893ae555aba6adfa8d45f708e669a7f39 100644 (file)
@@ -75,12 +75,13 @@ widget windows_list {
     }
     method retrieve {target window} {
         set result [$self retrieve_$slot(mode) $target $window]
     }
     method retrieve {target window} {
         set result [$self retrieve_$slot(mode) $target $window]
-        if {[catch {
+        set hasbg [lsearch -exact -index 0 [send $target [list $window configure]] -background]
+        if {$hasbg != -1} {
             set old_bg [send $target [list $window cget -background]]
             send $target [list $window configure -background #ff69b4]
             send $target [list after 200 \
                 [list catch [list $window configure -background $old_bg]]]
             set old_bg [send $target [list $window cget -background]]
             send $target [list $window configure -background #ff69b4]
             send $target [list after 200 \
                 [list catch [list $window configure -background $old_bg]]]
-        }]} {
+        } else {
             # FIXME: for ttk items toggle state active?
             set restorestate [send $target [list $window state active]]
             send $target [list after 200 [list catch [list $window state $restorestate]]]
             # FIXME: for ttk items toggle state active?
             set restorestate [send $target [list $window state active]]
             send $target [list after 200 [list catch [list $window state $restorestate]]]