From ec6bfc44390ab0d301fd33315629fa1e78d7bf41 Mon Sep 17 00:00:00 2001 From: ray Date: Wed, 30 Apr 2003 23:03:52 +0000 Subject: [PATCH] Protect against a wacky failure I witnessed. git-svn-id: https://samskivert.googlecode.com/svn/trunk@1106 6335cc39-0255-0410-8fd6-9bcaacd3b74c --- .../com/samskivert/swing/dnd/DnDManager.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/projects/samskivert/src/java/com/samskivert/swing/dnd/DnDManager.java b/projects/samskivert/src/java/com/samskivert/swing/dnd/DnDManager.java index 81064c26..127fb352 100644 --- a/projects/samskivert/src/java/com/samskivert/swing/dnd/DnDManager.java +++ b/projects/samskivert/src/java/com/samskivert/swing/dnd/DnDManager.java @@ -1,5 +1,5 @@ // -// $Id: DnDManager.java,v 1.13 2002/10/28 19:19:43 ray Exp $ +// $Id: DnDManager.java,v 1.14 2003/04/30 23:03:52 ray Exp $ package com.samskivert.swing.dnd; @@ -9,6 +9,7 @@ import java.awt.Cursor; import java.awt.Dimension; import java.awt.Graphics; import java.awt.GraphicsEnvironment; +import java.awt.IllegalComponentStateException; import java.awt.Image; import java.awt.Point; import java.awt.Rectangle; @@ -373,16 +374,22 @@ public class DnDManager int x = event.getX(); int y = event.getY(); - Point p = event.getComponent().getLocationOnScreen(); - p.translate(x, y); - Rectangle r = getRectOnScreen(_scrollComp); - if (!r.contains(p)) { - r.grow(_scrollDim.width, _scrollDim.height); - if (r.contains(p)) { - _scrollPoint = p; - return; // still autoscrolling + try { + Point p = event.getComponent().getLocationOnScreen(); + p.translate(x, y); + + Rectangle r = getRectOnScreen(_scrollComp); + if (!r.contains(p)) { + r.grow(_scrollDim.width, _scrollDim.height); + if (r.contains(p)) { + _scrollPoint = p; + return; // still autoscrolling + } } + } catch (IllegalComponentStateException icse) { + // the component could no longer be on screen + // don't complain, just stop autoscroll } // stop autoscrolling