From 6439e456896b0fd22dcbcdc7f12a5b311c4c5267 Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Fri, 14 Apr 2017 13:32:00 +0300 Subject: [PATCH] IDEA-171426 Disabling "Hide navigation popups on focus loss" prevents resizing of Find class by name dialog --- .../ide/util/gotoByName/ChooseByNamePopup.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNamePopup.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNamePopup.java index 6577b11ae924..bf35a3e6f853 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNamePopup.java +++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/ChooseByNamePopup.java @@ -152,6 +152,13 @@ public class ChooseByNamePopup extends ChooseByNameBase implements ChooseByNameP preferredScrollPaneSize.width = Math.max(myTextFieldPanel.getWidth(), preferredScrollPaneSize.width); + // in 'focus follows mouse' mode, to avoid focus escaping to editor, don't reduce popup size when list size is reduced + if (myDropdownPopup != null && !isCloseByFocusLost()) { + Dimension currentSize = myDropdownPopup.getSize(); + if (preferredScrollPaneSize.width < currentSize.width) preferredScrollPaneSize.width = currentSize.width; + if (preferredScrollPaneSize.height < currentSize.height) preferredScrollPaneSize.height = currentSize.height; + } + Rectangle preferredBounds = new Rectangle(bounds.x, bounds.y, preferredScrollPaneSize.width, preferredScrollPaneSize.height); Rectangle original = new Rectangle(preferredBounds); @@ -190,13 +197,7 @@ public class ChooseByNamePopup extends ChooseByNameBase implements ChooseByNameP } else { myDropdownPopup.setLocation(preferredBounds.getLocation()); - - // in 'focus follows mouse' mode, to avoid focus escaping to editor, don't reduce popup size when list size is reduced - final Dimension currentSize = myDropdownPopup.getSize(); - if (UISettings.getInstance().getHideNavigationOnFocusLoss() || - preferredBounds.width > currentSize.width || preferredBounds.height > currentSize.height) { - myDropdownPopup.setSize(preferredBounds.getSize()); - } + myDropdownPopup.setSize(preferredBounds.getSize()); } }