mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-13 06:59:44 +07:00
IJPL-156149 Drop support of GLobalMenuLinux
cleanup java code GitOrigin-RevId: 549cfbe58406612d44960f43ff07edcac813719b
This commit is contained in:
committed by
intellij-monorepo-bot
parent
40585d1a25
commit
336265215c
Binary file not shown.
Binary file not shown.
@@ -54,7 +54,6 @@ class LinuxDistributionBuilder(
|
||||
addNativeLauncher(distBinDir, targetPath, arch)
|
||||
copyFileToDir(NativeBinaryDownloader.getRestarter(context, OsFamily.LINUX, arch), distBinDir)
|
||||
copyFileToDir(sourceBinDir.resolve("${arch.dirName}/fsnotifier"), distBinDir)
|
||||
copyFileToDir(sourceBinDir.resolve("${arch.dirName}/libdbm.so"), distBinDir)
|
||||
generateBuildTxt(context, targetPath)
|
||||
copyDistFiles(context, targetPath, OsFamily.LINUX, arch)
|
||||
|
||||
|
||||
@@ -20102,9 +20102,6 @@ a:com.intellij.openapi.wm.impl.InternalDecorator
|
||||
- a:isHeaderVisible():Z
|
||||
- isSplitUnsplitInProgress():Z
|
||||
- a:setHeaderVisible(Z):V
|
||||
com.intellij.openapi.wm.impl.LinuxGlobalMenuEventHandler
|
||||
- com.sun.jna.Callback
|
||||
- a:handleEvent(I,I):V
|
||||
a:com.intellij.openapi.wm.impl.ListenableToolbarComboButton
|
||||
- com.intellij.openapi.wm.impl.ToolbarComboButton
|
||||
- <init>(com.intellij.openapi.wm.impl.ToolbarComboButtonModel):V
|
||||
@@ -22115,18 +22112,6 @@ f:com.intellij.platform.ide.impl.presentationAssistant.PresentationAssistantStat
|
||||
f:com.intellij.platform.ide.impl.presentationAssistant.WinKeyStrokePresentationKt
|
||||
- sf:getWinKeyText(I):java.lang.String
|
||||
- sf:getWinModifiersText(I):java.lang.String
|
||||
f:com.intellij.platform.ide.menu.GlobalMenuLinux
|
||||
- com.intellij.openapi.Disposable
|
||||
- com.intellij.openapi.wm.impl.LinuxGlobalMenuEventHandler
|
||||
- bindNewWindow(java.awt.Window):V
|
||||
- s:create(javax.swing.JFrame):com.intellij.platform.ide.menu.GlobalMenuLinux
|
||||
- dispose():V
|
||||
- handleEvent(I,I):V
|
||||
- s:isAvailable():Z
|
||||
- s:isPresented():Z
|
||||
- setRoots(java.util.List):V
|
||||
- toggle(Z):V
|
||||
- unbindWindow(java.awt.Window):V
|
||||
c:com.intellij.platform.ide.menu.IdeJMenuBar
|
||||
- javax.swing.JMenuBar
|
||||
- add(javax.swing.JMenu):javax.swing.JMenu
|
||||
@@ -22150,8 +22135,6 @@ c:com.intellij.platform.ide.menu.IdeJMenuBar
|
||||
f:com.intellij.platform.ide.menu.IdeMainMenuActionCustomizer
|
||||
- <init>():V
|
||||
- customize(com.intellij.openapi.actionSystem.ex.ActionRuntimeRegistrar,kotlin.coroutines.Continuation):java.lang.Object
|
||||
f:com.intellij.platform.ide.menu.LinuxIdeMenuBarKt
|
||||
- sf:collectGlobalMenu(kotlinx.coroutines.CoroutineScope,java.util.function.Consumer):V
|
||||
com.intellij.platform.impl.toolkit.ClientDesktopPeer
|
||||
- a:browse(java.net.URI):V
|
||||
com.intellij.platform.impl.toolkit.ClientToolkit
|
||||
|
||||
@@ -15,7 +15,6 @@ com/jetbrains/WindowDecorations$CustomTitleBar
|
||||
com/jetbrains/plugin/blockmap/core/BlockMap
|
||||
com/jetbrains/plugin/blockmap/core/Chunk
|
||||
com/jetbrains/plugin/blockmap/core/ChunkMerger
|
||||
com/sun/jna/Callback
|
||||
com/sun/jna/Memory
|
||||
com/sun/jna/Pointer
|
||||
com/sun/jna/Structure
|
||||
|
||||
@@ -8,7 +8,6 @@ import com.intellij.openapi.actionSystem.ToggleAction;
|
||||
import com.intellij.openapi.actionSystem.remoting.ActionRemoteBehaviorSpecification;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.platform.ide.menu.GlobalMenuLinux;
|
||||
import com.intellij.ui.ExperimentalUI;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -31,7 +30,7 @@ public final class ViewMainMenuAction extends ToggleAction implements DumbAware,
|
||||
@Override
|
||||
public void update(@NotNull AnActionEvent e) {
|
||||
super.update(e);
|
||||
boolean makesSense = !ExperimentalUI.isNewUI() && (SystemInfo.isWindows || (SystemInfo.isLinux && !GlobalMenuLinux.isPresented()));
|
||||
boolean makesSense = !ExperimentalUI.isNewUI() && (SystemInfo.isWindows || (SystemInfo.isLinux));
|
||||
e.getPresentation().setEnabledAndVisible(makesSense);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,8 +28,6 @@ import com.intellij.openapi.wm.impl.*
|
||||
import com.intellij.openapi.wm.impl.customFrameDecorations.header.CustomFrameDialogContent
|
||||
import com.intellij.openapi.wm.impl.customFrameDecorations.header.CustomHeader
|
||||
import com.intellij.platform.ide.CoreUiCoroutineScopeHolder
|
||||
import com.intellij.platform.ide.menu.GlobalMenuLinux
|
||||
import com.intellij.platform.ide.menu.LinuxIdeMenuBar.Companion.doBindAppMenuOfParent
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.ui.*
|
||||
import com.intellij.ui.mac.screenmenu.Menu
|
||||
@@ -163,12 +161,6 @@ open class FrameWrapper @JvmOverloads constructor(private val project: Project?,
|
||||
// unwrap the image before setting as frame's icon
|
||||
frame.iconImages = images.map { ImageUtil.toBufferedImage(it) }
|
||||
}
|
||||
|
||||
if (SystemInfoRt.isLinux && frame is JFrame && GlobalMenuLinux.isAvailable()) {
|
||||
WindowManager.getInstance().getFrame(project)?.let { parentFrame ->
|
||||
doBindAppMenuOfParent(frame, parentFrame)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun executeOnDispose(task: () -> Unit) {
|
||||
|
||||
@@ -569,7 +569,6 @@ open class IdeRootPane internal constructor(
|
||||
val visible = SystemInfo.isMacSystemMenu ||
|
||||
isFullScreen ||
|
||||
(!IdeFrameDecorator.isCustomDecorationActive() &&
|
||||
!(SystemInfoRt.isLinux && GlobalMenuLinux.isPresented()) &&
|
||||
UISettings.shadowInstance.showMainMenu &&
|
||||
!hideNativeLinuxTitle &&
|
||||
(!isMenuButtonInToolbar || (ExperimentalUI.isNewUI() && isCompactHeader { computeMainActionGroups() })))
|
||||
@@ -826,12 +825,7 @@ open class IdeRootPane internal constructor(
|
||||
}
|
||||
|
||||
internal fun createMenuBar(coroutineScope: CoroutineScope, frame: JFrame, customMenuGroup: ActionGroup?): IdeJMenuBar {
|
||||
if (SystemInfoRt.isLinux) {
|
||||
return LinuxIdeMenuBar(coroutineScope = coroutineScope, frame = frame, customMenuGroup = customMenuGroup)
|
||||
}
|
||||
else {
|
||||
return IdeJMenuBar(coroutineScope = coroutineScope, frame = frame, customMenuGroup = customMenuGroup)
|
||||
}
|
||||
}
|
||||
|
||||
internal fun getPreferredWindowHeaderHeight(isCompactHeader: Boolean): Int = JBUI.scale(
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.openapi.wm.impl;
|
||||
|
||||
import com.sun.jna.Callback;
|
||||
|
||||
public interface LinuxGlobalMenuEventHandler extends Callback {
|
||||
void handleEvent(int uid, int eventType);
|
||||
}
|
||||
@@ -24,7 +24,6 @@ import com.intellij.openapi.util.NlsSafe
|
||||
import com.intellij.openapi.wm.IdeFocusManager
|
||||
import com.intellij.openapi.wm.impl.IdeFrameImpl
|
||||
import com.intellij.platform.ide.menu.IdeJMenuBar
|
||||
import com.intellij.platform.ide.menu.collectGlobalMenu
|
||||
import com.intellij.platform.ide.menu.createIdeMainMenuActionGroup
|
||||
import com.intellij.ui.ComponentUtil
|
||||
import com.intellij.ui.popup.PopupFactoryImpl
|
||||
@@ -96,9 +95,6 @@ class MainMenuButton(coroutineScope: CoroutineScope) {
|
||||
uninstall()
|
||||
}
|
||||
}
|
||||
collectGlobalMenu(coroutineScope) { globalMenuPresent ->
|
||||
button.isVisible = !globalMenuPresent
|
||||
}
|
||||
}
|
||||
|
||||
private fun initShortcutsChangeConnection() {
|
||||
|
||||
@@ -18,7 +18,6 @@ import com.intellij.openapi.wm.impl.customFrameDecorations.header.titleLabel.Sim
|
||||
import com.intellij.openapi.wm.impl.headertoolbar.MainToolbar
|
||||
import com.intellij.openapi.wm.impl.headertoolbar.computeMainActionGroups
|
||||
import com.intellij.platform.ide.menu.IdeJMenuBar
|
||||
import com.intellij.platform.ide.menu.collectGlobalMenu
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.ui.ScreenUtil
|
||||
import com.intellij.ui.WindowMoveListener
|
||||
@@ -156,11 +155,6 @@ internal class ToolbarFrameHeader(private val coroutineScope: CoroutineScope,
|
||||
}
|
||||
}
|
||||
}
|
||||
collectGlobalMenu(coroutineScope) { globalMenuPresent ->
|
||||
ideMenuBar.isVisible = !globalMenuPresent
|
||||
// Repaint gradient
|
||||
repaint()
|
||||
}
|
||||
}
|
||||
|
||||
override fun updateSize() {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,82 +0,0 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.platform.ide.menu
|
||||
|
||||
import com.intellij.openapi.actionSystem.ActionGroup
|
||||
import com.intellij.openapi.application.EDT
|
||||
import com.intellij.openapi.application.ModalityState
|
||||
import com.intellij.openapi.application.asContextElement
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.util.concurrency.ThreadingAssertions
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.job
|
||||
import kotlinx.coroutines.launch
|
||||
import java.awt.event.WindowAdapter
|
||||
import java.awt.event.WindowEvent
|
||||
import java.util.function.Consumer
|
||||
import javax.swing.JFrame
|
||||
|
||||
internal class LinuxIdeMenuBar(coroutineScope: CoroutineScope, frame: JFrame, customMenuGroup: ActionGroup?)
|
||||
: IdeJMenuBar(coroutineScope, frame, customMenuGroup) {
|
||||
companion object {
|
||||
fun doBindAppMenuOfParent(frame: JFrame, parentFrame: JFrame) {
|
||||
val globalMenu = (parentFrame.jMenuBar as? LinuxIdeMenuBar)?.globalMenu ?: return
|
||||
if (GlobalMenuLinux.isPresented()) {
|
||||
// all children of IdeFrame mustn't show swing-menubar
|
||||
frame.jMenuBar?.isVisible = false
|
||||
}
|
||||
|
||||
frame.addWindowListener(object : WindowAdapter() {
|
||||
override fun windowClosing(e: WindowEvent?) {
|
||||
globalMenu.unbindWindow(frame)
|
||||
}
|
||||
|
||||
override fun windowOpened(e: WindowEvent?) {
|
||||
globalMenu.bindNewWindow(frame)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
private var globalMenu: GlobalMenuLinux? = null
|
||||
|
||||
override val isDarkMenu: Boolean
|
||||
get() = globalMenu != null
|
||||
|
||||
override fun updateGlobalMenuRoots() {
|
||||
super.updateGlobalMenuRoots()
|
||||
|
||||
globalMenu?.setRoots(rootMenuItems)
|
||||
}
|
||||
|
||||
override fun doInstallAppMenuIfNeeded(frame: JFrame) {
|
||||
if (globalMenu != null || !GlobalMenuLinux.isAvailable()) {
|
||||
return
|
||||
}
|
||||
|
||||
val globalMenuLinux = GlobalMenuLinux.create(frame)
|
||||
globalMenu = globalMenuLinux
|
||||
coroutineScope.coroutineContext.job.invokeOnCompletion {
|
||||
Disposer.dispose(globalMenuLinux)
|
||||
}
|
||||
updateMenuActions(forceRebuild = true)
|
||||
}
|
||||
|
||||
override fun onToggleFullScreen(isFullScreen: Boolean) {
|
||||
globalMenu?.toggle(!isFullScreen)
|
||||
}
|
||||
}
|
||||
|
||||
@RequiresEdt
|
||||
fun collectGlobalMenu(scope: CoroutineScope, globalMenuListener: Consumer<Boolean>) {
|
||||
ThreadingAssertions.assertEventDispatchThread()
|
||||
|
||||
if (GlobalMenuLinux.isAvailable()) {
|
||||
scope.launch(Dispatchers.EDT + ModalityState.any().asContextElement()) {
|
||||
GlobalMenuLinux.isPresentedMutable.collect {
|
||||
globalMenuListener.accept(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1437,7 +1437,6 @@
|
||||
|
||||
|
||||
<actionConfigurationCustomizer implementation="com.intellij.platform.ide.menu.IdeMainMenuActionCustomizer"/>
|
||||
<actionConfigurationCustomizer implementation="com.intellij.platform.ide.menu.GlobalMenuLinux$MyActionTuner"/>
|
||||
|
||||
<titleInfoProvider implementation="com.intellij.openapi.wm.impl.simpleTitleParts.ProductTitleInfoProvider"/>
|
||||
<titleInfoProvider implementation="com.intellij.openapi.wm.impl.simpleTitleParts.ProductVersionTitleInfoProvider"/>
|
||||
|
||||
Reference in New Issue
Block a user