From 115f4c84d92535a4232e4e50cb4d386731678853 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Mon, 15 Sep 2014 22:15:41 +0200 Subject: [PATCH] avoid blinking in Search Everywhere --- .../ide/actions/SearchEverywhereAction.java | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java b/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java index b00717330244..d8b424de8b7e 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/SearchEverywhereAction.java @@ -265,6 +265,20 @@ public class SearchEverywhereAction extends AnAction implements CustomComponentA final Dimension size = super.getPreferredSize(); return new Dimension(Math.min(size.width - 2, POPUP_MAX_WIDTH), size.height); } + + @Override + public void clearSelection() { + //avoid blinking + } + + @Override + public Object getSelectedValue() { + try { + return super.getSelectedValue(); + } catch (Exception e) { + return null; + } + } }; myList.setCellRenderer(myRenderer); myList.addMouseListener(new MouseAdapter() { @@ -1195,8 +1209,20 @@ public class SearchEverywhereAction extends AnAction implements CustomComponentA // this line must be called on EDT to avoid context switch at clear().append("text") Don't touch. Ask [kb] myList.getEmptyText().setText("Searching..."); - //noinspection unchecked - myList.setModel(myListModel); + myAlarm.cancelAllRequests(); + if (myList.getModel() instanceof SearchListModel) { + //noinspection unchecked + myAlarm.addRequest(new Runnable() { + @Override + public void run() { + if (!myDone.isRejected()) { + myList.setModel(myListModel); + } + } + }, 100); + } else { + myList.setModel(myListModel); + } } });