aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tarasov <anton.tarasov@jetbrains.com>2022-03-24 14:42:05 +0300
committerAnton Tarasov <anton.tarasov@jetbrains.com>2022-03-24 14:42:05 +0300
commite59ff4036bd8d7ba7df0f566c58bf1959b09a43c (patch)
tree278cbb0d1ca367ff800d2bc997ff87b1cefeeae3
parent6cc6e90aea97d40c7671f6d0edc534a4fc55ce99 (diff)
downloadJetBrainsRuntime-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.java9
-rw-r--r--src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenuItem.java3
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) {