From 0ee1f71b81b80bd61811ee3613ee043e06315ca2 Mon Sep 17 00:00:00 2001 From: Semyon Sadetsky Date: Fri, 23 Sep 2016 10:36:32 +0300 Subject: [PATCH] 8161910: [PIT] regression: HW/LW mixing seems broken on Unity Reviewed-by: azvegint --- .../unix/classes/sun/awt/X11/XDecoratedPeer.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/jdk/src/java.desktop/unix/classes/sun/awt/X11/XDecoratedPeer.java b/jdk/src/java.desktop/unix/classes/sun/awt/X11/XDecoratedPeer.java index 66fc0272279..a3f2ae535ca 100644 --- a/jdk/src/java.desktop/unix/classes/sun/awt/X11/XDecoratedPeer.java +++ b/jdk/src/java.desktop/unix/classes/sun/awt/X11/XDecoratedPeer.java @@ -325,7 +325,8 @@ abstract class XDecoratedPeer extends XWindowPeer { if (!isEmbedded() && !isTargetUndecorated()) { lastKnownInsets.put(getClass(), in); } - if (!in.equals(dimensions.getInsets())) { + if (!in.equals(dimensions.getInsets()) || + !dimensions.isClientSizeSet()) { handleCorrectInsets(in); } insets_corrected = true; @@ -374,6 +375,9 @@ abstract class XDecoratedPeer extends XWindowPeer { } else { /* reparented to WM frame, figure out our insets */ setReparented(true); insets_corrected = false; + if (XWM.getWMID() == XWM.UNITY_COMPIZ_WM) { + return; + } // Check if we have insets provided by the WM Insets correctWM = getWMSetInsets(null); @@ -405,7 +409,7 @@ abstract class XDecoratedPeer extends XWindowPeer { } } - if (correctWM != null && XWM.getWMID() != XWM.UNITY_COMPIZ_WM) { + if (correctWM != null) { handleCorrectInsets(correctWM); } }