From cd462a88c62fd07fe213f442fc3989c78313a274 Mon Sep 17 00:00:00 2001 From: Phil Race Date: Thu, 26 Feb 2026 20:29:51 +0000 Subject: [PATCH] 8378385: Remove AppContext from AWT Windows implementation classes Reviewed-by: dnguyen, serb --- .../sun/awt/windows/WComponentPeer.java | 4 +-- .../sun/awt/windows/WEmbeddedFrame.java | 5 ++-- .../classes/sun/awt/windows/WInputMethod.java | 7 ++--- .../sun/awt/windows/WMenuItemPeer.java | 4 +-- .../classes/sun/awt/windows/WToolkit.java | 30 ++----------------- .../sun/awt/windows/WTrayIconPeer.java | 4 +-- 6 files changed, 14 insertions(+), 40 deletions(-) diff --git a/src/java.desktop/windows/classes/sun/awt/windows/WComponentPeer.java b/src/java.desktop/windows/classes/sun/awt/windows/WComponentPeer.java index 1b3fb9a85e9..00ad60c8bb3 100644 --- a/src/java.desktop/windows/classes/sun/awt/windows/WComponentPeer.java +++ b/src/java.desktop/windows/classes/sun/awt/windows/WComponentPeer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -902,7 +902,7 @@ public abstract class WComponentPeer extends WObjectPeer */ void postEvent(AWTEvent event) { preprocessPostEvent(event); - WToolkit.postEvent(WToolkit.targetToAppContext(target), event); + WToolkit.postEvent(event); } void preprocessPostEvent(AWTEvent event) {} diff --git a/src/java.desktop/windows/classes/sun/awt/windows/WEmbeddedFrame.java b/src/java.desktop/windows/classes/sun/awt/windows/WEmbeddedFrame.java index 9a74a1c25f7..0bd44d8ca85 100644 --- a/src/java.desktop/windows/classes/sun/awt/windows/WEmbeddedFrame.java +++ b/src/java.desktop/windows/classes/sun/awt/windows/WEmbeddedFrame.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -238,8 +238,7 @@ public final class WEmbeddedFrame extends EmbeddedFrame { peer.emulateActivation(true); } }; - WToolkit.postEvent(WToolkit.targetToAppContext(this), - new InvocationEvent(this, r)); + WToolkit.postEvent(new InvocationEvent(this, r)); } } diff --git a/src/java.desktop/windows/classes/sun/awt/windows/WInputMethod.java b/src/java.desktop/windows/classes/sun/awt/windows/WInputMethod.java index a9237e21ff6..50ad23fabcd 100644 --- a/src/java.desktop/windows/classes/sun/awt/windows/WInputMethod.java +++ b/src/java.desktop/windows/classes/sun/awt/windows/WInputMethod.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -602,7 +602,7 @@ final class WInputMethod extends InputMethodAdapter commitedTextLength, TextHitInfo.leading(caretPos), TextHitInfo.leading(visiblePos)); - WToolkit.postEvent(WToolkit.targetToAppContext(source), event); + WToolkit.postEvent(event); } public void inquireCandidatePosition() @@ -641,8 +641,7 @@ final class WInputMethod extends InputMethodAdapter openCandidateWindow(awtFocussedComponentPeer, x, y); } }; - WToolkit.postEvent(WToolkit.targetToAppContext(source), - new InvocationEvent(source, r)); + WToolkit.postEvent(new InvocationEvent(source, r)); } // java.awt.Toolkit#getNativeContainer() is not available diff --git a/src/java.desktop/windows/classes/sun/awt/windows/WMenuItemPeer.java b/src/java.desktop/windows/classes/sun/awt/windows/WMenuItemPeer.java index 4abb9fa84ae..2594bd38a7d 100644 --- a/src/java.desktop/windows/classes/sun/awt/windows/WMenuItemPeer.java +++ b/src/java.desktop/windows/classes/sun/awt/windows/WMenuItemPeer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -123,7 +123,7 @@ class WMenuItemPeer extends WObjectPeer implements MenuItemPeer { * Post an event. Queue it for execution by the callback thread. */ void postEvent(AWTEvent event) { - WToolkit.postEvent(WToolkit.targetToAppContext(target), event); + WToolkit.postEvent(event); } native void create(WMenuPeer parent); diff --git a/src/java.desktop/windows/classes/sun/awt/windows/WToolkit.java b/src/java.desktop/windows/classes/sun/awt/windows/WToolkit.java index 0fdc4c6005b..4ed3e6b7e68 100644 --- a/src/java.desktop/windows/classes/sun/awt/windows/WToolkit.java +++ b/src/java.desktop/windows/classes/sun/awt/windows/WToolkit.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -123,7 +123,6 @@ import javax.swing.text.JTextComponent; import sun.awt.AWTAccessor; import sun.awt.AWTAutoShutdown; -import sun.awt.AppContext; import sun.awt.DisplayChangedListener; import sun.awt.LightweightFrame; import sun.awt.SunToolkit; @@ -777,20 +776,7 @@ public final class WToolkit extends SunToolkit implements Runnable { ((DisplayChangedListener) lge).displayChanged(); } }; - if (AppContext.getAppContext() != null) { - // Common case, standalone application - EventQueue.invokeLater(runnable); - } else { - if (displayChangeExecutor == null) { - // No synchronization, called on the Toolkit thread only - displayChangeExecutor = Executors.newFixedThreadPool(1, r -> { - Thread t = Executors.defaultThreadFactory().newThread(r); - t.setDaemon(true); - return t; - }); - } - displayChangeExecutor.submit(runnable); - } + EventQueue.invokeLater(runnable); } /** @@ -910,17 +896,7 @@ public final class WToolkit extends SunToolkit implements Runnable { } updateXPStyleEnabled(props.get(XPSTYLE_THEME_ACTIVE)); - - if (AppContext.getAppContext() == null) { - // We cannot post the update to any EventQueue. Listeners will - // be called on EDTs by DesktopPropertyChangeSupport - updateProperties(props); - } else { - // Cannot update on Toolkit thread. - // DesktopPropertyChangeSupport will call listeners on Toolkit - // thread if it has AppContext (standalone mode) - EventQueue.invokeLater(() -> updateProperties(props)); - } + EventQueue.invokeLater(() -> updateProperties(props)); } private synchronized void updateProperties(final Map props) { diff --git a/src/java.desktop/windows/classes/sun/awt/windows/WTrayIconPeer.java b/src/java.desktop/windows/classes/sun/awt/windows/WTrayIconPeer.java index 7cf92292a32..5c04803669d 100644 --- a/src/java.desktop/windows/classes/sun/awt/windows/WTrayIconPeer.java +++ b/src/java.desktop/windows/classes/sun/awt/windows/WTrayIconPeer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -181,7 +181,7 @@ final class WTrayIconPeer extends WObjectPeer implements TrayIconPeer { } void postEvent(AWTEvent event) { - WToolkit.postEvent(WToolkit.targetToAppContext(target), event); + WToolkit.postEvent(event); } native void create();