mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
tracking EA-38125 - CME: ActionToolbarImpl.updateAllToolbarsImmediately
This commit is contained in:
+12
-2
@@ -55,6 +55,7 @@ import java.awt.event.ComponentAdapter;
|
||||
import java.awt.event.ComponentEvent;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.ArrayList;
|
||||
import java.util.ConcurrentModificationException;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -62,10 +63,17 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.actionSystem.impl.ActionToolbarImpl");
|
||||
|
||||
private static List<ActionToolbarImpl> ourToolbars = new LinkedList<ActionToolbarImpl>();
|
||||
private static Throwable ourLastModification = null;
|
||||
|
||||
public static void updateAllToolbarsImmediately() {
|
||||
for (ActionToolbarImpl toolbar : ourToolbars) {
|
||||
toolbar.updateActionsImmediately();
|
||||
try {
|
||||
ourLastModification = null;
|
||||
for (ActionToolbarImpl toolbar : new ArrayList<ActionToolbarImpl>(ourToolbars)) {
|
||||
toolbar.updateActionsImmediately();
|
||||
}
|
||||
}
|
||||
catch (ConcurrentModificationException e) {
|
||||
LOG.error(ourLastModification == null? e : ourLastModification);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -170,6 +178,7 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
|
||||
@Override
|
||||
public void addNotify() {
|
||||
super.addNotify();
|
||||
ourLastModification = new ConcurrentModificationException();
|
||||
ourToolbars.add(this);
|
||||
myActionManager.addTimerListener(500, myWeakTimerListener);
|
||||
myActionManager.addTransparentTimerListener(500, myWeakTimerListener);
|
||||
@@ -190,6 +199,7 @@ public class ActionToolbarImpl extends JPanel implements ActionToolbar {
|
||||
@Override
|
||||
public void removeNotify() {
|
||||
super.removeNotify();
|
||||
ourLastModification = new ConcurrentModificationException();
|
||||
ourToolbars.remove(this);
|
||||
myActionManager.removeTimerListener(myWeakTimerListener);
|
||||
myActionManager.removeTransparentTimerListener(myWeakTimerListener);
|
||||
|
||||
Reference in New Issue
Block a user