diff options
author | Anton Tarasov <anton.tarasov@jetbrains.com> | 2022-03-24 14:42:05 +0300 |
---|---|---|
committer | Anton Tarasov <anton.tarasov@jetbrains.com> | 2022-03-24 14:42:05 +0300 |
commit | e59ff4036bd8d7ba7df0f566c58bf1959b09a43c (patch) | |
tree | 278cbb0d1ca367ff800d2bc997ff87b1cefeeae3 | |
parent | 6cc6e90aea97d40c7671f6d0edc534a4fc55ce99 (diff) | |
download | JetBrainsRuntime-jb11_0_14_1-b2043.18.tar.gz |
JBR-4134 PyCharm is slow and unusable on MacBook Pro with M1jb11_0_14_1-b2043.18
-rw-r--r-- | src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenu.java | 9 | ||||
-rw-r--r-- | src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenuItem.java | 3 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenu.java b/src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenu.java index 4f2fc96ad8a..152a70040a3 100644 --- a/src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenu.java +++ b/src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenu.java @@ -25,6 +25,7 @@ package sun.lwawt.macosx; +import sun.awt.AWTThreading; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; @@ -64,14 +65,14 @@ public class CMenu extends CMenuItem implements MenuPeer { LWCToolkit.targetToPeer(getTarget().getParent()); if (parent instanceof CMenu) { - return parent.executeGet(this::nativeCreateSubMenu); + return AWTThreading.executeWaitToolkit(() -> parent.executeGet(this::nativeCreateSubMenu)); } if (parent instanceof CMenuBar) { MenuBar parentContainer = (MenuBar)getTarget().getParent(); boolean isHelpMenu = parentContainer.getHelpMenu() == getTarget(); int insertionLocation = ((CMenuBar)parent).getNextInsertionIndex(); - return parent.executeGet(ptr -> nativeCreateMenu(ptr, isHelpMenu, - insertionLocation)); + return AWTThreading.executeWaitToolkit(() -> parent.executeGet(ptr -> nativeCreateMenu(ptr, isHelpMenu, + insertionLocation))); } throw new InternalError("Parent must be CMenu or CMenuBar"); } @@ -84,7 +85,7 @@ public class CMenu extends CMenuItem implements MenuPeer { @Override public final void delItem(final int index) { - execute(ptr -> nativeDeleteItem(ptr, index)); + AWTThreading.executeWaitToolkit(() -> execute(ptr -> nativeDeleteItem(ptr, index))); } @Override diff --git a/src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenuItem.java b/src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenuItem.java index 2773744f220..da549919662 100644 --- a/src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenuItem.java +++ b/src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenuItem.java @@ -33,6 +33,7 @@ import java.awt.event.KeyEvent; import java.awt.peer.MenuItemPeer; import java.util.concurrent.atomic.AtomicBoolean; +import sun.awt.AWTThreading; import sun.awt.SunToolkit; import sun.lwawt.LWToolkit; @@ -61,7 +62,7 @@ public class CMenuItem extends CMenuComponent implements MenuItemPeer { @Override long createModel() { CMenuComponent parent = (CMenuComponent)LWToolkit.targetToPeer(getTarget().getParent()); - return parent.executeGet(ptr->nativeCreate(ptr, isSeparator())); + return AWTThreading.executeWaitToolkit(() -> parent.executeGet(ptr->nativeCreate(ptr, isSeparator()))); } @SuppressWarnings("deprecation") public void setLabel(String label, char keyChar, int keyCode, int modifiers) { |