Mercurial > hg > release > icedtea6-1.4
changeset 1210:4548cfdc09fe
* patches/icedtea-display-mode-changer.patch: New patch.
* Makefile.am (ICEDTEA_PATCHES): Add new patch.
* HACKING: Document new patch.
author | Mark Wielaard <mark@klomp.org> |
---|---|
date | Sat, 15 Nov 2008 14:07:14 +0100 |
parents | bc2e4f1176b2 |
children | 66a924d864e4 |
files | ChangeLog HACKING Makefile.am patches/icedtea-display-mode-changer.patch |
diffstat | 4 files changed, 109 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Fri Nov 14 10:10:11 2008 -0500 +++ b/ChangeLog Sat Nov 15 14:07:14 2008 +0100 @@ -1,3 +1,9 @@ +2008-11-15 Mark Wielaard <mark@klomp.org> + + * patches/icedtea-display-mode-changer.patch: New patch. + * Makefile.am (ICEDTEA_PATCHES): Add new patch. + * HACKING: Document new patch. + 2008-11-14 Omair Majid <omajid@redhat.com> * pulseaudio/src/java/org/classpath/icedtea/pulseaudio/EventLoop.java
--- a/HACKING Fri Nov 14 10:10:11 2008 -0500 +++ b/HACKING Sat Nov 15 14:07:14 2008 +0100 @@ -67,6 +67,7 @@ * icedtea-cc-interp-no-fer.patch: Report that we cannot force early returns with the C++ interpreter. * icedtea-6761856-freetypescaler.patch: Fix IcedTea bug #227, OpenJDK bug #6761856, swing TextLayout.getBounds() returns shifted bounds. +* icedtea-display-mode-changer.patch: Add extra test class. The following patches are only applied to OpenJDK6 in IcedTea6:
--- a/Makefile.am Fri Nov 14 10:10:11 2008 -0500 +++ b/Makefile.am Sat Nov 15 14:07:14 2008 +0100 @@ -537,7 +537,8 @@ patches/icedtea-linker-libs-order.patch \ patches/icedtea-f2i-overflow.patch \ patches/icedtea-cc-interp-no-fer.patch \ - patches/icedtea-6761856-freetypescaler.patch + patches/icedtea-6761856-freetypescaler.patch \ + patches/icedtea-display-mode-changer.patch if WITH_RHINO ICEDTEA_PATCHES += \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-display-mode-changer.patch Sat Nov 15 14:07:14 2008 +0100 @@ -0,0 +1,100 @@ +6733718: test /java/awt/FullScreen/UninitializedDisplayModeChangeTest/ fails +Reviewed-by: igor + +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ openjdk/jdk/test/java/awt/FullScreen/UninitializedDisplayModeChangeTest/DisplayModeChanger.java Tue Aug 05 09:37:03 2008 -0700 +@@ -0,0 +1,93 @@ ++/* ++ * Copyright 2006-2008 Sun Microsystems, Inc. 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. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++import java.awt.DisplayMode; ++import java.awt.EventQueue; ++import java.awt.Frame; ++import java.awt.GraphicsDevice; ++import java.awt.GraphicsEnvironment; ++import java.lang.reflect.InvocationTargetException; ++ ++/** ++ * Used by the UninitializedDisplayModeChangeTest to change the ++ * display mode. ++ */ ++public class DisplayModeChanger { ++ ++ public static void main(String[] args) ++ throws InterruptedException, InvocationTargetException ++ { ++ final GraphicsDevice gd = ++ GraphicsEnvironment.getLocalGraphicsEnvironment(). ++ getDefaultScreenDevice(); ++ ++ EventQueue.invokeAndWait(new Runnable() { ++ public void run() { ++ Frame f = null; ++ if (gd.isFullScreenSupported()) { ++ try { ++ f = new Frame("DisplayChanger Frame"); ++ gd.setFullScreenWindow(f); ++ if (gd.isDisplayChangeSupported()) { ++ DisplayMode dm = findDisplayMode(gd); ++ if (gd != null) { ++ gd.setDisplayMode(dm); ++ } ++ } ++ try { ++ Thread.sleep(1000); ++ } catch (InterruptedException ex) { ++ ex.printStackTrace(); ++ } ++ gd.setFullScreenWindow(null); ++ } finally { ++ if (f != null) { ++ f.dispose(); ++ } ++ } ++ } ++ } ++ }); ++ } ++ ++ /** ++ * Finds a display mode that is different from the current display ++ * mode and is likely to cause a display change event. ++ */ ++ private static DisplayMode findDisplayMode(GraphicsDevice gd) { ++ DisplayMode dms[] = gd.getDisplayModes(); ++ DisplayMode currentDM = gd.getDisplayMode(); ++ for (DisplayMode dm : dms) { ++ if (!dm.equals(currentDM) && ++ dm.getRefreshRate() == currentDM.getRefreshRate()) ++ { ++ // different from the current dm and refresh rate is the same ++ // means that something else is different => more likely to ++ // cause a DM change event ++ return dm; ++ } ++ } ++ return null; ++ } ++ ++} +