From 72f2e89e69b5acab8f3031bf9c933b6630385f95 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Sat, 24 May 2014 22:22:47 +0200 Subject: [PATCH 1/3] cleanup --- .../platform-impl/src/com/intellij/ui/EditorTextField.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ui/EditorTextField.java b/platform/platform-impl/src/com/intellij/ui/EditorTextField.java index 78258664b3c5..c16f5f188cdc 100644 --- a/platform/platform-impl/src/com/intellij/ui/EditorTextField.java +++ b/platform/platform-impl/src/com/intellij/ui/EditorTextField.java @@ -205,13 +205,6 @@ public class EditorTextField extends NonOpaquePanel implements DocumentListener, public void setDocument(Document document) { if (myDocument != null) { - /* - final UndoManager undoManager = myProject != null - ? UndoManager.getInstance(myProject) - : UndoManager.getGlobalInstance(); - undoManager.clearUndoRedoQueue(myDocument); - */ - uninstallDocumentListener(true); } From a1d5b1c107047466ac5a723869260352389857e3 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Sat, 24 May 2014 22:37:34 +0200 Subject: [PATCH 2/3] fix border in dbe table editors --- .../laf/darcula/ui/DarculaEditorTextFieldBorder.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaEditorTextFieldBorder.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaEditorTextFieldBorder.java index 799a3f2f7bad..4cb617e5440a 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaEditorTextFieldBorder.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaEditorTextFieldBorder.java @@ -32,7 +32,7 @@ import java.awt.*; public class DarculaEditorTextFieldBorder implements Border { @Override public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) { - if (isComboBoxEditor(c)) { + if (isComboBoxEditor(c) || isCellEditor(c)) { return; } final EditorTextField textField = UIUtil.getParentOfType(EditorTextField.class, c); @@ -65,8 +65,8 @@ public class DarculaEditorTextFieldBorder implements Border { @Override public Insets getBorderInsets(Component c) { - if (isComboBoxEditor(c)) { - return new InsetsUIResource(1,1,1,1); + if (isComboBoxEditor(c) || isCellEditor(c)) { + return new InsetsUIResource(0,0,0,0); } return new InsetsUIResource(6, 7, 6, 7); } @@ -79,4 +79,8 @@ public class DarculaEditorTextFieldBorder implements Border { public static boolean isComboBoxEditor(Component c) { return UIUtil.getParentOfType(JComboBox.class, c) != null; } + + public static boolean isCellEditor(Component c) { + return UIUtil.getParentOfType(JTable.class, c) != null; + } } From b3afb57c96f90e8c966c2fd1e1eca7628cf7e5d8 Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Sun, 25 May 2014 12:25:56 +0400 Subject: [PATCH 3/3] Platform: OS X scrollbars can be disabled for diagnostic purpose --- .../src/com/intellij/ui/components/JBScrollPane.java | 10 ++++++++-- .../com/intellij/util/ui/ButtonlessScrollBarUI.java | 7 ++++++- .../platform-resources-en/src/misc/registry.properties | 2 ++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java b/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java index 1754f711c7af..e0c326ad1edb 100644 --- a/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java +++ b/platform/platform-api/src/com/intellij/ui/components/JBScrollPane.java @@ -122,6 +122,8 @@ public class JBScrollPane extends JScrollPane { } private void transferToLayeredPane(Component old, Component c, String key) { + if (!ButtonlessScrollBarUI.isMacOverlayScrollbarSupported()) return; + JLayeredPane pane = getLayoutPane(); LayoutManager layout = getLayout(); @@ -152,7 +154,9 @@ public class JBScrollPane extends JScrollPane { } private void init(boolean setupCorners) { - add(getLayoutPane()); + if (ButtonlessScrollBarUI.isMacOverlayScrollbarSupported()) { + add(getLayoutPane()); + } setLayout(new ScrollPaneLayout()); if (setupCorners) { @@ -201,7 +205,9 @@ public class JBScrollPane extends JScrollPane { @Override public void layout() { super.layout(); - + + if (!ButtonlessScrollBarUI.isMacOverlayScrollbarSupported()) return; + LayoutManager layout = getLayout(); if (layout instanceof ScrollPaneLayout && myLayeredPane != null) { relayoutScrollbars(this, (ScrollPaneLayout)layout, myLayeredPane); diff --git a/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java b/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java index de8071c1ec50..57f9cfca8a54 100644 --- a/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java +++ b/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java @@ -17,6 +17,7 @@ package com.intellij.util.ui; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.Disposer; +import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.registry.Registry; import com.intellij.ui.Gray; import com.intellij.ui.JBColor; @@ -174,7 +175,11 @@ public class ButtonlessScrollBarUI extends BasicScrollBarUI { } protected boolean isMacOverlayScrollbar() { - return myMacScrollerStyle == NSScrollerHelper.Style.Overlay; + return myMacScrollerStyle == NSScrollerHelper.Style.Overlay && isMacOverlayScrollbarSupported(); + } + + public static boolean isMacOverlayScrollbarSupported() { + return SystemInfo.isMac && !Registry.is("ide.mac.disableMacScrollbars"); } private void updateMacScrollbarStyle() { diff --git a/platform/platform-resources-en/src/misc/registry.properties b/platform/platform-resources-en/src/misc/registry.properties index 6442333b904e..310abbb9db38 100644 --- a/platform/platform-resources-en/src/misc/registry.properties +++ b/platform/platform-resources-en/src/misc/registry.properties @@ -142,6 +142,8 @@ ide.mac.hide.cursor.when.typing=true ide.mac.show.native.help=true ide.mac.useNativeClipboard=false ide.mac.boldEditorTabs=false +ide.mac.disableMacScrollbars=false +ide.mac.disableMacScrollbars.description=Disables OS X overlay scrollbars (effective on restart) ide.perProjectModality=false # suppress inspection "UnusedProperty" ide.perProjectModality.description=New modality approach. All dialogs are DOCUMENT_MODAL expect ide-wide dialogs