From 5dd3e42476ea4e82619fab10717be23aa7ac5b2e Mon Sep 17 00:00:00 2001 From: Anton Tarasov Date: Mon, 8 Jul 2019 19:03:45 +0300 Subject: [PATCH] Support JBR-1650 propagate custom decoration title bar height to native GitOrigin-RevId: 13ca881ea2023fdc5871c382bb23f4a5a3855348 --- .../src/com/intellij/jdkEx/JdkEx.java | 14 ++++++++++++++ .../customFrameDecorations/header/CustomHeader.kt | 1 + 2 files changed, 15 insertions(+) diff --git a/platform/platform-impl/src/com/intellij/jdkEx/JdkEx.java b/platform/platform-impl/src/com/intellij/jdkEx/JdkEx.java index 6b3a9beda509..2baaf58f8f72 100644 --- a/platform/platform-impl/src/com/intellij/jdkEx/JdkEx.java +++ b/platform/platform-impl/src/com/intellij/jdkEx/JdkEx.java @@ -71,4 +71,18 @@ public class JdkEx { } } } + + public static void setCustomDecorationTitleBarHeight(@NotNull Window window, int height) { + if (SystemInfo.isJetBrainsJvm && SystemInfo.isWindows) { + try { + MethodInvocator invocator = + new MethodInvocator(false, Class.forName("sun.awt.windows.WWindowPeer"), "setCustomDecorationTitleBarHeight", int.class); + if (invocator.isAvailable()) { + invocator.invoke(AWTAccessor.getComponentAccessor().getPeer(window), height); + } + } + catch (ClassNotFoundException ignore) { + } + } + } } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/customFrameDecorations/header/CustomHeader.kt b/platform/platform-impl/src/com/intellij/openapi/wm/impl/customFrameDecorations/header/CustomHeader.kt index 4e775697ef98..3b2ad388bca1 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/customFrameDecorations/header/CustomHeader.kt +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/customFrameDecorations/header/CustomHeader.kt @@ -159,6 +159,7 @@ abstract class CustomHeader(private val window: Window) : JPanel(), Disposable { protected fun updateCustomDecorationHitTestSpots() { val toList = getHitTestSpots().map {it.getRectangleOn(window)}.toList() JdkEx.setCustomDecorationHitTestSpots(window, toList) + JdkEx.setCustomDecorationTitleBarHeight(window, height) } abstract fun getHitTestSpots(): List