From a950a2fd2548574e47f37939dfdb810437a69597 Mon Sep 17 00:00:00 2001 From: Kirill Kalishev Date: Thu, 4 Feb 2010 12:21:53 +0300 Subject: [PATCH] deadlock on creating ui in preload actions thread --- .../intellij/ide/actions/ResizeToolWindowAction.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/actions/ResizeToolWindowAction.java b/platform/platform-impl/src/com/intellij/ide/actions/ResizeToolWindowAction.java index 8967ec9939..6062ff1b4b 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/ResizeToolWindowAction.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/ResizeToolWindowAction.java @@ -35,7 +35,7 @@ public abstract class ResizeToolWindowAction extends AnAction implements DumbAwa private ToolWindow myLastWindow; private ToolWindowManager myLastManager; - protected JLabel myScrollHelper = new JLabel("W"); + protected JLabel myScrollHelper; private ToolWindow myToolWindow; @@ -289,7 +289,7 @@ public abstract class ResizeToolWindowAction extends AnAction implements DumbAwa } public int getNextHorizontalScroll() { - return myScrollHelper.getPreferredSize().width * Registry.intValue("ide.windowSystem.hScrollChars"); + return getReferenceSize().width * Registry.intValue("ide.windowSystem.hScrollChars"); } public boolean isVerticalScrollingNeeded() { @@ -297,7 +297,19 @@ public abstract class ResizeToolWindowAction extends AnAction implements DumbAwa } public int getNextVerticalScroll() { - return myScrollHelper.getPreferredSize().height * Registry.intValue("ide.windowSystem.vScrollChars"); + return getReferenceSize().height * Registry.intValue("ide.windowSystem.vScrollChars"); } } + + private Dimension getReferenceSize() { + if (myScrollHelper == null) { + if (SwingUtilities.isEventDispatchThread()) { + myScrollHelper = new JLabel("W"); + } else { + return new Dimension(1, 1); + } + } + + return myScrollHelper.getPreferredSize(); + } } -- 2.11.4.GIT