From 323cb007af6d8a46b66fcffb6e1307e9f9855ce8 Mon Sep 17 00:00:00 2001 From: anass baya Date: Thu, 16 Oct 2025 11:27:57 +0100 Subject: [PATCH 1/3] Backport bdc39818ce7b3c3bad10f4682a2a52fbb696f247 --- src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java | 6 ++++-- test/jdk/ProblemList.txt | 1 - .../BogusFocusableWindowState.java | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java b/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java index f2b7efc978f..4911dea5d97 100644 --- a/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java +++ b/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java @@ -1098,9 +1098,11 @@ public void setVisible(boolean vis) { suppressWmTakeFocus(true); } } - updateFocusability(); - promoteDefaultPosition(); boolean refreshChildsTransientFor = isVisible() != vis; + if (refreshChildsTransientFor) { + updateFocusability(); + } + promoteDefaultPosition(); super.setVisible(vis); if (refreshChildsTransientFor) { for (Window child : ((Window) target).getOwnedWindows()) { diff --git a/test/jdk/ProblemList.txt b/test/jdk/ProblemList.txt index ee2cf9e138e..3bedee0ab05 100644 --- a/test/jdk/ProblemList.txt +++ b/test/jdk/ProblemList.txt @@ -119,7 +119,6 @@ java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java 8081489 generi java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java 6849364 generic-all java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java 6848406 generic-all java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java 6848407 generic-all -java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java 8361521 linux-all java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java 8340374 macosx-all java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java 8022302 generic-all java/awt/Frame/RestoreToOppositeScreen/RestoreToOppositeScreen.java 8286840 linux-all diff --git a/test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java b/test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java index 64621796b4f..efcb9c098f0 100644 --- a/test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java +++ b/test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java @@ -25,7 +25,7 @@ /** * @test - * @bug 8346952 + * @bug 8346952 8361521 * @summary Verifies no exception occurs when triggering updateCG() * for an ownerless window. * @key headful From c36c2ac45db7cda5f695a6f2674036f412db6ca6 Mon Sep 17 00:00:00 2001 From: anass baya Date: Thu, 16 Oct 2025 11:35:59 +0100 Subject: [PATCH 2/3] Revert "Backport bdc39818ce7b3c3bad10f4682a2a52fbb696f247" This reverts commit 323cb007af6d8a46b66fcffb6e1307e9f9855ce8. --- src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java | 6 ++---- test/jdk/ProblemList.txt | 1 + .../BogusFocusableWindowState.java | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java b/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java index 4911dea5d97..f2b7efc978f 100644 --- a/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java +++ b/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java @@ -1098,11 +1098,9 @@ public void setVisible(boolean vis) { suppressWmTakeFocus(true); } } - boolean refreshChildsTransientFor = isVisible() != vis; - if (refreshChildsTransientFor) { - updateFocusability(); - } + updateFocusability(); promoteDefaultPosition(); + boolean refreshChildsTransientFor = isVisible() != vis; super.setVisible(vis); if (refreshChildsTransientFor) { for (Window child : ((Window) target).getOwnedWindows()) { diff --git a/test/jdk/ProblemList.txt b/test/jdk/ProblemList.txt index 3bedee0ab05..ee2cf9e138e 100644 --- a/test/jdk/ProblemList.txt +++ b/test/jdk/ProblemList.txt @@ -119,6 +119,7 @@ java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java 8081489 generi java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java 6849364 generic-all java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java 6848406 generic-all java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java 6848407 generic-all +java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java 8361521 linux-all java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java 8340374 macosx-all java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java 8022302 generic-all java/awt/Frame/RestoreToOppositeScreen/RestoreToOppositeScreen.java 8286840 linux-all diff --git a/test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java b/test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java index efcb9c098f0..64621796b4f 100644 --- a/test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java +++ b/test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java @@ -25,7 +25,7 @@ /** * @test - * @bug 8346952 8361521 + * @bug 8346952 * @summary Verifies no exception occurs when triggering updateCG() * for an ownerless window. * @key headful From 79d1c0efd55ecfb983afe7c1dfcdf52deac77d8d Mon Sep 17 00:00:00 2001 From: anass baya Date: Thu, 16 Oct 2025 11:38:04 +0100 Subject: [PATCH 3/3] Backport bdc39818ce7b3c3bad10f4682a2a52fbb696f247 --- src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java | 6 ++++-- test/jdk/ProblemList.txt | 1 - .../BogusFocusableWindowState.java | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java b/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java index f2b7efc978f..4911dea5d97 100644 --- a/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java +++ b/src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java @@ -1098,9 +1098,11 @@ public void setVisible(boolean vis) { suppressWmTakeFocus(true); } } - updateFocusability(); - promoteDefaultPosition(); boolean refreshChildsTransientFor = isVisible() != vis; + if (refreshChildsTransientFor) { + updateFocusability(); + } + promoteDefaultPosition(); super.setVisible(vis); if (refreshChildsTransientFor) { for (Window child : ((Window) target).getOwnedWindows()) { diff --git a/test/jdk/ProblemList.txt b/test/jdk/ProblemList.txt index ee2cf9e138e..3bedee0ab05 100644 --- a/test/jdk/ProblemList.txt +++ b/test/jdk/ProblemList.txt @@ -119,7 +119,6 @@ java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java 8081489 generi java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java 6849364 generic-all java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java 6848406 generic-all java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java 6848407 generic-all -java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java 8361521 linux-all java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java 8340374 macosx-all java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java 8022302 generic-all java/awt/Frame/RestoreToOppositeScreen/RestoreToOppositeScreen.java 8286840 linux-all diff --git a/test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java b/test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java index 64621796b4f..efcb9c098f0 100644 --- a/test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java +++ b/test/jdk/java/awt/Frame/BogusFocusableWindowState/BogusFocusableWindowState.java @@ -25,7 +25,7 @@ /** * @test - * @bug 8346952 + * @bug 8346952 8361521 * @summary Verifies no exception occurs when triggering updateCG() * for an ownerless window. * @key headful