IDEA-247324 ui: fix decorated Windows menu not being updated on explicit request
authorAleksey Pivovarov <AMPivovarov@gmail.com>
Mon, 3 Aug 2020 21:20:37 +0000 (00:20 +0300)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Wed, 12 Aug 2020 18:57:32 +0000 (18:57 +0000)
GitOrigin-RevId: 9a6d87025ef95d735bafe5236c0ec1553c52ba02

platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeMenuBar.java
platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeRootPane.java
platform/platform-impl/src/com/intellij/openapi/wm/impl/customFrameDecorations/header/MainFrameHeader.kt

index 65417fc4c585b2b58d3934fe9bb60b28fa0fdfb4..5916597ba30d0f0e5b57cf61a6c2942fafa6bf51 100644 (file)
@@ -342,11 +342,11 @@ public class IdeMenuBar extends JMenuBar implements IdeEventQueue.EventDispatche
     return component;
   }
 
-  void updateMenuActions() {
+  public void updateMenuActions() {
     updateMenuActions(false);
   }
 
-  void updateMenuActions(boolean forceRebuild) {
+  public void updateMenuActions(boolean forceRebuild) {
     doUpdateMenuActions(forceRebuild, ActionManager.getInstance());
   }
 
index 78688637a509ae54f5c76e1ec94f4e6c22dfb354..2eb86ac00af2ec7a5a5e643bfc2a1839b3715118 100644 (file)
@@ -224,8 +224,13 @@ public class IdeRootPane extends JRootPane implements UISettingsListener {
   }
 
   void updateMainMenuActions() {
-    ((IdeMenuBar)menuBar).updateMenuActions();
+    ((IdeMenuBar)menuBar).updateMenuActions(false);
     menuBar.repaint();
+
+    if (myCustomFrameTitlePane != null) {
+      myCustomFrameTitlePane.updateMenuActions(false);
+      myCustomFrameTitlePane.repaint();
+    }
   }
 
   private static @NotNull JComponent createToolbar() {
index 2efb212ad44603a907a6c5bcb3142b7d32906922..dd19aa414937015a54c364c8ccfb88a8cf00b72b 100644 (file)
@@ -70,6 +70,10 @@ class MainFrameHeader(frame: JFrame, menuBar: IdeMenuBar?) : FrameHeader(frame){
     mySelectedEditorFilePath.project = project
   }
 
+  fun updateMenuActions(forceRebuild: Boolean) {
+    myIdeMenu.updateMenuActions(forceRebuild)
+  }
+
   override fun updateActive() {
     super.updateActive()
     mySelectedEditorFilePath.setActive(myActive)