< prev index next >

src/java.desktop/windows/classes/sun/awt/windows/WDesktopProperties.java

Print this page

        

*** 239,259 **** * Called by WToolkit when Windows settings change-- we (re)load properties and * set new values. */ @SuppressWarnings("unchecked") synchronized Map<String, Object> getProperties() { ! ThemeReader.flush(); // load the changed properties into a new hashmap map = new HashMap<String, Object>(); getWindowsParameters(); map.put(SunToolkit.DESKTOPFONTHINTS, SunToolkit.getDesktopFontHints()); map.put(PROP_NAMES, getKeyNames()); // DnD uses one value for x and y drag diff, but Windows provides // separate ones. For now, just use the x value - rnk map.put("DnD.Autoscroll.cursorHysteresis", map.get("win.drag.x")); return (Map<String, Object>) map.clone(); } /* * This returns the value for the desktop property "awt.font.desktophints" --- 239,270 ---- * Called by WToolkit when Windows settings change-- we (re)load properties and * set new values. */ @SuppressWarnings("unchecked") synchronized Map<String, Object> getProperties() { ! Map<String, Object> prev = map==null?null:new HashMap<>(map); // load the changed properties into a new hashmap map = new HashMap<String, Object>(); getWindowsParameters(); map.put(SunToolkit.DESKTOPFONTHINTS, SunToolkit.getDesktopFontHints()); map.put(PROP_NAMES, getKeyNames()); // DnD uses one value for x and y drag diff, but Windows provides // separate ones. For now, just use the x value - rnk map.put("DnD.Autoscroll.cursorHysteresis", map.get("win.drag.x")); + // if ThemeReader.flush() always called on windowSettingChange, + // for some reason many windowSettingChange event would be generated on + // window resize, and it would decrease rendering performance while + // resizing a window. so only flush the ThemeReader if there are changed + // properties. + if(prev == null || + !prev.keySet().equals(map.keySet()) || + !Arrays.deepEquals(prev.values().toArray(), map.values().toArray())) { + ThemeReader.flush(); + } + return (Map<String, Object>) map.clone(); } /* * This returns the value for the desktop property "awt.font.desktophints"
< prev index next >