mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-57472 Floating tool windows should be more like native windows, with maximize/minimize/close buttons
(Patch from Alexander Lobas)
This commit is contained in:
@@ -16,7 +16,6 @@
|
||||
package com.intellij.designer;
|
||||
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.ide.actions.ToggleWindowedModeAction;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.actionSystem.impl.ActionManagerImpl;
|
||||
@@ -416,14 +415,9 @@ public class LightToolWindow extends JPanel {
|
||||
}
|
||||
}
|
||||
|
||||
private class ToggleDockModeAction extends ToggleAction {
|
||||
private class ToggleDockModeAction extends ToggleTypeModeAction {
|
||||
public ToggleDockModeAction() {
|
||||
copyFrom(ActionManager.getInstance().getAction(InternalDecorator.TOGGLE_DOCK_MODE_ACTION_ID));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSelected(AnActionEvent e) {
|
||||
return myManager.getToolWindow().getType() == ToolWindowType.DOCKED;
|
||||
super(ToolWindowType.DOCKED, InternalDecorator.TOGGLE_DOCK_MODE_ACTION_ID);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -440,25 +434,45 @@ public class LightToolWindow extends JPanel {
|
||||
}
|
||||
}
|
||||
|
||||
private class ToggleFloatingModeAction extends ToggleAction {
|
||||
private class ToggleFloatingModeAction extends ToggleTypeModeAction {
|
||||
public ToggleFloatingModeAction() {
|
||||
copyFrom(ActionManager.getInstance().getAction(InternalDecorator.TOGGLE_FLOATING_MODE_ACTION_ID));
|
||||
super(ToolWindowType.FLOATING, InternalDecorator.TOGGLE_FLOATING_MODE_ACTION_ID);
|
||||
}
|
||||
}
|
||||
|
||||
private class ToggleWindowedModeAction extends ToggleTypeModeAction {
|
||||
public ToggleWindowedModeAction() {
|
||||
super(ToolWindowType.WINDOWED, InternalDecorator.TOGGLE_WINDOWED_MODE_ACTION_ID);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(@NotNull AnActionEvent e) {
|
||||
e.getPresentation().setEnabledAndVisible(!SystemInfo.isMac);
|
||||
}
|
||||
}
|
||||
|
||||
private class ToggleTypeModeAction extends ToggleAction {
|
||||
private final ToolWindowType myType;
|
||||
|
||||
public ToggleTypeModeAction(ToolWindowType type, String id) {
|
||||
myType = type;
|
||||
copyFrom(ActionManager.getInstance().getAction(id));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSelected(AnActionEvent e) {
|
||||
return myManager.getToolWindow().getType() == ToolWindowType.FLOATING;
|
||||
return myManager.getToolWindow().getType() == myType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSelected(AnActionEvent e, boolean state) {
|
||||
ToolWindow window = myManager.getToolWindow();
|
||||
ToolWindowType type = window.getType();
|
||||
if (type == ToolWindowType.FLOATING) {
|
||||
if (type == myType) {
|
||||
window.setType(((ToolWindowEx)window).getInternalType(), null);
|
||||
}
|
||||
else {
|
||||
window.setType(ToolWindowType.FLOATING, null);
|
||||
window.setType(myType, null);
|
||||
}
|
||||
myManager.setEditorMode(null);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user