--- old/src/java.desktop/windows/classes/sun/awt/windows/WToolkit.java 2020-01-13 11:28:45.000000000 -0800 +++ new/src/java.desktop/windows/classes/sun/awt/windows/WToolkit.java 2020-01-13 11:28:45.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2020, 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 @@ -25,60 +25,125 @@ package sun.awt.windows; -import java.awt.peer.TaskbarPeer; -import java.awt.*; -import java.awt.im.InputMethodHighlight; -import java.awt.im.spi.InputMethodDescriptor; -import java.awt.image.*; -import java.awt.peer.*; +import java.awt.AWTEvent; +import java.awt.AWTException; +import java.awt.Button; +import java.awt.Canvas; +import java.awt.Checkbox; +import java.awt.CheckboxMenuItem; +import java.awt.Choice; +import java.awt.Component; +import java.awt.Cursor; +import java.awt.Desktop; +import java.awt.Dialog; +import java.awt.Dimension; +import java.awt.EventQueue; +import java.awt.FileDialog; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Frame; +import java.awt.GraphicsConfiguration; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.HeadlessException; +import java.awt.Image; +import java.awt.Insets; +import java.awt.JobAttributes; +import java.awt.Label; +import java.awt.List; +import java.awt.Menu; +import java.awt.MenuBar; +import java.awt.MenuItem; +import java.awt.PageAttributes; +import java.awt.Panel; +import java.awt.Point; +import java.awt.PopupMenu; +import java.awt.PrintJob; +import java.awt.RenderingHints; +import java.awt.Robot; +import java.awt.ScrollPane; +import java.awt.Scrollbar; +import java.awt.SystemTray; +import java.awt.Taskbar; +import java.awt.TextArea; +import java.awt.TextComponent; +import java.awt.TextField; +import java.awt.Toolkit; +import java.awt.TrayIcon; +import java.awt.Window; +import java.awt.datatransfer.Clipboard; +import java.awt.dnd.DragGestureEvent; +import java.awt.dnd.DragGestureListener; +import java.awt.dnd.DragGestureRecognizer; +import java.awt.dnd.DragSource; +import java.awt.dnd.InvalidDnDOperationException; +import java.awt.dnd.MouseDragGestureRecognizer; +import java.awt.dnd.peer.DragSourceContextPeer; import java.awt.event.FocusEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; -import java.awt.datatransfer.Clipboard; -import java.awt.TextComponent; -import java.awt.TrayIcon; +import java.awt.im.InputMethodHighlight; +import java.awt.im.spi.InputMethodDescriptor; +import java.awt.image.ColorModel; +import java.awt.peer.ButtonPeer; +import java.awt.peer.CanvasPeer; +import java.awt.peer.CheckboxMenuItemPeer; +import java.awt.peer.CheckboxPeer; +import java.awt.peer.ChoicePeer; +import java.awt.peer.DesktopPeer; +import java.awt.peer.DialogPeer; +import java.awt.peer.FileDialogPeer; +import java.awt.peer.FontPeer; +import java.awt.peer.FramePeer; +import java.awt.peer.KeyboardFocusManagerPeer; +import java.awt.peer.LabelPeer; +import java.awt.peer.ListPeer; +import java.awt.peer.MenuBarPeer; +import java.awt.peer.MenuItemPeer; +import java.awt.peer.MenuPeer; +import java.awt.peer.MouseInfoPeer; +import java.awt.peer.PanelPeer; +import java.awt.peer.PopupMenuPeer; +import java.awt.peer.RobotPeer; +import java.awt.peer.ScrollPanePeer; +import java.awt.peer.ScrollbarPeer; +import java.awt.peer.SystemTrayPeer; +import java.awt.peer.TaskbarPeer; +import java.awt.peer.TextAreaPeer; +import java.awt.peer.TextFieldPeer; +import java.awt.peer.TrayIconPeer; +import java.awt.peer.WindowPeer; import java.beans.PropertyChangeListener; import java.lang.ref.WeakReference; import java.security.AccessController; import java.security.PrivilegedAction; +import java.util.Hashtable; +import java.util.Locale; +import java.util.Map; +import java.util.Properties; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + import javax.swing.text.JTextComponent; import sun.awt.AWTAccessor; -import sun.awt.AppContext; import sun.awt.AWTAutoShutdown; import sun.awt.AWTPermissions; import sun.awt.AppContext; import sun.awt.DisplayChangedListener; import sun.awt.LightweightFrame; import sun.awt.SunToolkit; -import sun.awt.util.ThreadGroupUtils; import sun.awt.Win32GraphicsDevice; import sun.awt.Win32GraphicsEnvironment; import sun.awt.datatransfer.DataTransferer; -import sun.java2d.d3d.D3DRenderQueue; -import sun.java2d.opengl.OGLRenderQueue; - -import sun.print.PrintJob2D; - -import java.awt.dnd.DragSource; -import java.awt.dnd.DragGestureListener; -import java.awt.dnd.DragGestureEvent; -import java.awt.dnd.DragGestureRecognizer; -import java.awt.dnd.MouseDragGestureRecognizer; -import java.awt.dnd.InvalidDnDOperationException; -import java.awt.dnd.peer.DragSourceContextPeer; - -import java.util.Hashtable; -import java.util.Locale; -import java.util.Map; -import java.util.Properties; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - import sun.awt.util.PerformanceLogger; +import sun.awt.util.ThreadGroupUtils; import sun.font.FontManager; import sun.font.FontManagerFactory; import sun.font.SunFontManager; +import sun.java2d.d3d.D3DRenderQueue; +import sun.java2d.opengl.OGLRenderQueue; +import sun.print.PrintJob2D; import sun.util.logging.PlatformLogger; public final class WToolkit extends SunToolkit implements Runnable { @@ -133,23 +198,8 @@ if (log.isLoggable(PlatformLogger.Level.FINE)) { log.fine("Win version: " + getWindowsVersion()); } - - AccessController.doPrivileged( - new PrivilegedAction () - { - @Override - public Void run() { - String browserProp = System.getProperty("browser"); - if (browserProp != null && browserProp.equals("sun.plugin")) { - disableCustomPalette(); - } - return null; - } - }); } - private static native void disableCustomPalette(); - /* * NOTE: The following embedded*() methods are non-public API intended * for internal use only. The methods are unsupported and could go --- old/src/java.desktop/windows/native/libawt/windows/awt_Palette.cpp 2020-01-13 11:28:46.000000000 -0800 +++ new/src/java.desktop/windows/native/libawt/windows/awt_Palette.cpp 2020-01-13 11:28:46.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2020, 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 @@ -30,8 +30,6 @@ #include "awt_CustomPaletteDef.h" #include "Trace.h" -BOOL AwtPalette::m_useCustomPalette = TRUE; - #define ERROR_GRAY (-1) #define NON_GRAY 0 #define LINEAR_STATIC_GRAY 1 @@ -46,8 +44,7 @@ { HPALETTE prevPalette = NULL; if (logicalPalette) { - BOOL background = !(m_useCustomPalette); - prevPalette = ::SelectPalette(hDC, logicalPalette, background); + prevPalette = ::SelectPalette(hDC, logicalPalette, FALSE); } return prevPalette; } @@ -60,8 +57,7 @@ void AwtPalette::Realize(HDC hDC) { if (logicalPalette) { - if (!m_useCustomPalette || - AwtComponent::QueryNewPaletteCalled() || + if (AwtComponent::QueryNewPaletteCalled() || AwtToolkit::GetInstance().HasDisplayChanged()) { // Fix for bug 4178909, workaround for Windows bug. Shouldn't // do a RealizePalette until the first QueryNewPalette message @@ -80,28 +76,6 @@ } /** - * Disable the use of our custom palette. This method is called - * during initialization if we detect that we are running inside - * the plugin; we do not want to clobber our parent application's - * palette with our own in that situation. - */ -void AwtPalette::DisableCustomPalette() -{ - m_useCustomPalette = FALSE; -} - -/** - * Returns whether we are currently using a custom palette. Used - * by AwtWin32GraphicsDevice when creating the colorModel of the - * device. - */ -BOOL AwtPalette::UseCustomPalette() -{ - return m_useCustomPalette; -} - - -/** * Constructor. Initialize the system and logical palettes. * used by this object. */ @@ -153,7 +127,7 @@ return 0; } - hPalOld = ::SelectPalette(hDC, hPal, 1); + hPalOld = ::SelectPalette(hDC, hPal, TRUE); if (hPalOld == 0) { ::DeleteObject(hPal); return 0; @@ -168,7 +142,7 @@ pPalEntries[iEntry].peBlue = GetBValue(rgb); } - ::SelectPalette(hDC, hPalOld, 0 ); + ::SelectPalette(hDC, hPalOld, FALSE); ::DeleteObject(hPal); ::RealizePalette(hDC); --- old/src/java.desktop/windows/native/libawt/windows/awt_Palette.h 2020-01-13 11:28:48.000000000 -0800 +++ new/src/java.desktop/windows/native/libawt/windows/awt_Palette.h 2020-01-13 11:28:47.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2020, 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 @@ -49,10 +49,6 @@ HPALETTE GetPalette() { return logicalPalette; } - static void DisableCustomPalette(); - - static BOOL UseCustomPalette(); - AwtPalette(AwtWin32GraphicsDevice *device); static int FetchPaletteEntries(HDC hDC, PALETTEENTRY* pPalEntries); @@ -66,8 +62,6 @@ unsigned char *GetSystemInverseLUT() { return systemInverseLUT; } private: - static BOOL m_useCustomPalette; - unsigned int logicalEntries[256]; unsigned int systemEntries[256]; PALETTEENTRY systemEntriesWin32[256]; // cached to eliminate --- old/src/java.desktop/windows/native/libawt/windows/awt_Toolkit.cpp 2020-01-13 11:28:49.000000000 -0800 +++ new/src/java.desktop/windows/native/libawt/windows/awt_Toolkit.cpp 2020-01-13 11:28:49.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2020, 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 @@ -2465,17 +2465,6 @@ CATCH_BAD_ALLOC; } - -/* - * Class: sun_awt_windows_Toolkit - * Method: disableCustomPalette - * Signature: ()V - */ -JNIEXPORT void JNICALL -Java_sun_awt_windows_WToolkit_disableCustomPalette(JNIEnv *env, jclass cls) { - AwtPalette::DisableCustomPalette(); -} - /* * Class: sun_awt_windows_WToolkit * Method: embeddedInit --- old/src/java.desktop/windows/native/libawt/windows/awt_Win32GraphicsDevice.cpp 2020-01-13 11:28:50.000000000 -0800 +++ new/src/java.desktop/windows/native/libawt/windows/awt_Win32GraphicsDevice.cpp 2020-01-13 11:28:50.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2020, 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 @@ -405,7 +405,7 @@ vbits[sizeof(vbits)-1] = 0; allvalid = JNI_FALSE; } else { - if (AwtPalette::UseCustomPalette() && !dynamic) { + if (!dynamic) { // If we plan to use our custom palette (i.e., we are // not running inside another app and we are not creating // a dynamic colorModel object), then setup ICM with