From 967de392215e2814b9944876ba95ddd438a2a2bc Mon Sep 17 00:00:00 2001
From: Ivica Ico Bukvic <ico@vt.edu>
Date: Sat, 23 Feb 2013 00:37:16 -0500
Subject: [PATCH] made scrolling algorithm more robust

---
 pd/src/pd.tk | 40 +++++++++++++++++++++-------------------
 1 file changed, 21 insertions(+), 19 deletions(-)

diff --git a/pd/src/pd.tk b/pd/src/pd.tk
index 8da278c59..302caaaa0 100644
--- a/pd/src/pd.tk
+++ b/pd/src/pd.tk
@@ -3493,25 +3493,27 @@ proc pdtk_canvas_getscroll {name} {
 				}
 			}
 			"image" {
-				set imgtags [$name gettags $item]
-				set imgtag [lindex $imgtags 0]
-				if { $imgtag != "" } {
-					set anchor [$name itemcget $imgtag -anchor]
-					set img [$name itemcget $imgtag -image]
-					set imgh [image height $img]
-					set imgw [image width $img]
-					set center [$name coords $item]
-					set coords [list \
-						[expr [lindex $center 0] - [expr $imgw/2]] \
-						[expr [lindex $center 1] - [expr $imgh/2]] \
-						[expr [lindex $center 0] + [expr $imgw/2]] \
-						[expr [lindex $center 1] + [expr $imgh/2]] \
-					]
-					foreach {x y} $coords {
-						if { $x < $x1 } {set x1 $x}
-						if { $x > $x2 } {set x2 $x}
-						if { $y < $y1 } {set y1 $y}
-						if { $y > $y2 } {set y2 $y}
+				catch {
+					set imgtags [$name gettags $item]
+					set imgtag [lindex $imgtags 0]
+					if { $imgtag != "" } {
+						set anchor [$name itemcget $imgtag -anchor]
+						set img [$name itemcget $imgtag -image]
+						set imgh [image height $img]
+						set imgw [image width $img]
+						set center [$name coords $item]
+						set coords [list \
+							[expr [lindex $center 0] - [expr $imgw/2]] \
+							[expr [lindex $center 1] - [expr $imgh/2]] \
+							[expr [lindex $center 0] + [expr $imgw/2]] \
+							[expr [lindex $center 1] + [expr $imgh/2]] \
+						]
+						foreach {x y} $coords {
+							if { $x < $x1 } {set x1 $x}
+							if { $x > $x2 } {set x2 $x}
+							if { $y < $y1 } {set y1 $y}
+							if { $y > $y2 } {set y2 $y}
+						}
 					}
 				}
 			}
-- 
GitLab