aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorazvegint <none@none>2014-05-15 20:24:13 +0400
committerazvegint <none@none>2014-05-15 20:24:13 +0400
commitea4fc4f0ac80cec36182bc8033c2b2a5417362e9 (patch)
treed0629ae6c010aa66374144b4be3f778c94ba947d /src
parentb37115890bb022c3dcd4f098d13c1af88e0f1799 (diff)
8041896: Test closed/java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest fails with java.awt.IllegalComponentStateException
Reviewed-by: pchelko, serb
Diffstat (limited to 'src')
-rw-r--r--src/macosx/classes/com/apple/laf/AquaComboBoxPopup.java4
-rw-r--r--src/macosx/classes/sun/lwawt/LWChoicePeer.java4
2 files changed, 7 insertions, 1 deletions
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<Choice, JComboBox<String>>
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();