src/share/classes/com/sun/java/swing/plaf/windows/DesktopProperty.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2001, 2009, 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2001, 2014, 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 98,117 **** /** * Updates the UIs of all the known Frames. */ private static void updateAllUIs() { // Check if the current UI is WindowsLookAndfeel and flush the XP style map. // Note: Change the package test if this class is moved to a different package. Class uiClass = UIManager.getLookAndFeel().getClass(); if (uiClass.getPackage().equals(DesktopProperty.class.getPackage())) { XPStyle.invalidateStyle(); } - Frame appFrames[] = Frame.getFrames(); - for (Frame appFrame : appFrames) { - updateWindowUI(appFrame); - } } /** * Updates the UI of the passed in window and all its children. */ --- 98,124 ---- /** * Updates the UIs of all the known Frames. */ private static void updateAllUIs() { + invalidateStyle(); + Frame appFrames[] = Frame.getFrames(); + for (Frame appFrame : appFrames) { + updateWindowUI(appFrame); + } + } + + /** + * Invalidates the current style in WindowsLookAndFeel. + */ + private static void invalidateStyle() { // Check if the current UI is WindowsLookAndfeel and flush the XP style map. // Note: Change the package test if this class is moved to a different package. Class uiClass = UIManager.getLookAndFeel().getClass(); if (uiClass.getPackage().equals(DesktopProperty.class.getPackage())) { XPStyle.invalidateStyle(); } } /** * Updates the UI of the passed in window and all its children. */
*** 205,214 **** --- 212,223 ---- * many desktop properties will change at once. */ protected void updateUI() { if (!isUpdatePending()) { setUpdatePending(true); + // JDK-8039383: invalidate the cached style as soon as possible + invalidateStyle(); Runnable uiUpdater = new Runnable() { public void run() { updateAllUIs(); setUpdatePending(false); }