From ea4fc4f0ac80cec36182bc8033c2b2a5417362e9 Mon Sep 17 00:00:00 2001 From: azvegint Date: Thu, 15 May 2014 20:24:13 +0400 Subject: 8041896: Test closed/java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest fails with java.awt.IllegalComponentStateException Reviewed-by: pchelko, serb --- src/macosx/classes/com/apple/laf/AquaComboBoxPopup.java | 4 ++++ src/macosx/classes/sun/lwawt/LWChoicePeer.java | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src/macosx/classes') diff --git a/src/macosx/classes/com/apple/laf/AquaComboBoxPopup.java b/src/macosx/classes/com/apple/laf/AquaComboBoxPopup.java index 0607f9c36..b393338d0 100644 --- a/src/macosx/classes/com/apple/laf/AquaComboBoxPopup.java +++ b/src/macosx/classes/com/apple/laf/AquaComboBoxPopup.java @@ -120,6 +120,10 @@ class AquaComboBoxPopup extends BasicComboPopup { public void show() { final int startItemCount = comboBox.getItemCount(); + if (startItemCount == 0) { + return; + } + final Rectangle popupBounds = adjustPopupAndGetBounds(); if (popupBounds == null) return; // null means don't show diff --git a/src/macosx/classes/sun/lwawt/LWChoicePeer.java b/src/macosx/classes/sun/lwawt/LWChoicePeer.java index bb360d6d6..27d43b1bf 100644 --- a/src/macosx/classes/sun/lwawt/LWChoicePeer.java +++ b/src/macosx/classes/sun/lwawt/LWChoicePeer.java @@ -171,7 +171,9 @@ final class LWChoicePeer extends LWComponentPeer> SwingUtilities.invokeLater(() -> { JPopupMenu popupMenu = getPopupMenu(); // Need to override the invoker for proper grab handling - if (popupMenu != null && popupMenu.getInvoker() != getTarget()) { + if (popupMenu != null + && popupMenu.isShowing() + && popupMenu.getInvoker() != getTarget()) { // The popup is now visible with correct location // Save it and restore after toggling visibility and changing invoker Point loc = popupMenu.getLocationOnScreen(); -- cgit v1.2.3