Merge jdk7-b55
authorlana
Tue, 14 Apr 2009 04:21:02 -0700
changeset 1094522bb5aa17e0
parent 1093 2cdf54e6e74c
parent 1074 a5746eca3686
child 1095 65095f13b7c4
Merge
src/windows/native/sun/windows/awt_KeyboardFocusManager.h
     1.1 --- a/make/sun/awt/Depend.mak	Tue Apr 14 00:05:07 2009 -0700
     1.2 +++ b/make/sun/awt/Depend.mak	Tue Apr 14 04:21:02 2009 -0700
     1.3 @@ -71,6 +71,7 @@
     1.4  	$(STUBDIR)/Ole2.h \
     1.5  	$(STUBDIR)/Zmouse.h \
     1.6  	$(STUBDIR)/cderr.h \
     1.7 +	$(STUBDIR)/commctrl.h \
     1.8  	$(STUBDIR)/commdlg.h \
     1.9  	$(STUBDIR)/direct.h \
    1.10  	$(STUBDIR)/d3dcom.h \
     2.1 --- a/make/sun/awt/FILES_c_windows.gmk	Tue Apr 14 00:05:07 2009 -0700
     2.2 +++ b/make/sun/awt/FILES_c_windows.gmk	Tue Apr 14 04:21:02 2009 -0700
     2.3 @@ -1,5 +1,5 @@
     2.4  #
     2.5 -# Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
     2.6 +# Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
     2.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     2.8  #
     2.9  # This code is free software; you can redistribute it and/or modify it
    2.10 @@ -104,7 +104,8 @@
    2.11          OGLVertexCache.c \
    2.12          WGLGraphicsConfig.c \
    2.13          WGLSurfaceData.c \
    2.14 -        AccelGlyphCache.c
    2.15 +        AccelGlyphCache.c \
    2.16 +        rect.c
    2.17  
    2.18  FILES_cpp = \
    2.19  	CmdIDList.cpp \
    2.20 @@ -199,5 +200,6 @@
    2.21  	ShellFolder2.cpp \
    2.22  	ThemeReader.cpp \
    2.23  	ComCtl32Util.cpp \
    2.24 +	DllUtil.cpp \
    2.25  	initIDs.cpp \
    2.26  	MouseInfo.cpp
     3.1 --- a/make/sun/awt/FILES_export_unix.gmk	Tue Apr 14 00:05:07 2009 -0700
     3.2 +++ b/make/sun/awt/FILES_export_unix.gmk	Tue Apr 14 04:21:02 2009 -0700
     3.3 @@ -1,5 +1,5 @@
     3.4  #
     3.5 -# Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
     3.6 +# Copyright 2000-2009 Sun Microsystems, Inc.  All Rights Reserved.
     3.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3.8  #
     3.9  # This code is free software; you can redistribute it and/or modify it
    3.10 @@ -107,7 +107,8 @@
    3.11  	sun/java2d/x11/X11Renderer.java \
    3.12  	sun/java2d/x11/X11SurfaceData.java \
    3.13          com/sun/java/swing/plaf/gtk/GTKEngine.java \
    3.14 -        com/sun/java/swing/plaf/gtk/GTKStyle.java
    3.15 +        com/sun/java/swing/plaf/gtk/GTKStyle.java \
    3.16 +        sun/awt/ExtendedKeyCodes.java
    3.17  
    3.18  
    3.19  FILES_export2 = \
     4.1 --- a/make/sun/awt/FILES_export_windows.gmk	Tue Apr 14 00:05:07 2009 -0700
     4.2 +++ b/make/sun/awt/FILES_export_windows.gmk	Tue Apr 14 04:21:02 2009 -0700
     4.3 @@ -1,5 +1,5 @@
     4.4  #
     4.5 -# Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
     4.6 +# Copyright 2000-2009 Sun Microsystems, Inc.  All Rights Reserved.
     4.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4.8  #
     4.9  # This code is free software; you can redistribute it and/or modify it
    4.10 @@ -154,7 +154,7 @@
    4.11          sun/awt/datatransfer/DataTransferer.java \
    4.12  	sun/awt/datatransfer/SunClipboard.java \
    4.13  	sun/awt/dnd/SunDragSourceContextPeer.java \
    4.14 -        sun/awt/windows/WToolkitThreadBlockedHandler.java 
    4.15 +        sun/awt/windows/WToolkitThreadBlockedHandler.java
    4.16  
    4.17  FILES_export3 = \
    4.18          java/awt/CheckboxMenuItem.java \
    4.19 @@ -214,6 +214,7 @@
    4.20  	sun/awt/windows/WBufferStrategy.java \
    4.21  	sun/awt/windows/WTrayIconPeer.java \
    4.22  	sun/awt/image/ImagingLib.java \
    4.23 +	sun/awt/ExtendedKeyCodes.java \
    4.24          sun/java2d/pipe/hw/AccelSurface.java \
    4.25          sun/java2d/pipe/hw/AccelDeviceEventNotifier.java \
    4.26          sun/java2d/pipe/hw/ContextCapabilities.java \
     5.1 --- a/make/sun/awt/Makefile	Tue Apr 14 00:05:07 2009 -0700
     5.2 +++ b/make/sun/awt/Makefile	Tue Apr 14 04:21:02 2009 -0700
     5.3 @@ -1,5 +1,5 @@
     5.4  #
     5.5 -# Copyright 1995-2008 Sun Microsystems, Inc.  All Rights Reserved.
     5.6 +# Copyright 1995-2009 Sun Microsystems, Inc.  All Rights Reserved.
     5.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     5.8  #
     5.9  # This code is free software; you can redistribute it and/or modify it
    5.10 @@ -219,6 +219,7 @@
    5.11  vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/shell
    5.12  vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/medialib
    5.13  vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/debug
    5.14 +vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/utility
    5.15  vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d
    5.16  vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops
    5.17  vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe
     6.1 --- a/make/sun/awt/README	Tue Apr 14 00:05:07 2009 -0700
     6.2 +++ b/make/sun/awt/README	Tue Apr 14 04:21:02 2009 -0700
     6.3 @@ -6,11 +6,9 @@
     6.4  
     6.5  Included in this project is a generated file, make.depend, which lists
     6.6  all interdependencies of the source files.  This file is generated *on
     6.7 -Solaris* with the following commands:
     6.8 +Solaris or Linux* with the following command:
     6.9  
    6.10 -	% sccs edit make.depend
    6.11  	% gnumake -f Depend.mak
    6.12 -	% sccs delget make.depend
    6.13  
    6.14  This step only needs to be run when new files are added to the project,
    6.15  or include statements are changed.
     7.1 --- a/make/sun/awt/make.depend	Tue Apr 14 00:05:07 2009 -0700
     7.2 +++ b/make/sun/awt/make.depend	Tue Apr 14 04:21:02 2009 -0700
     7.3 @@ -1,4 +1,4 @@
     7.4 -$(OBJDIR)/AccelGlyphCache.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
     7.5 +$(OBJDIR)/AccelGlyphCache.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
     7.6  
     7.7  $(OBJDIR)/AlphaMacros.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
     7.8  
     7.9 @@ -14,143 +14,143 @@
    7.10  
    7.11  $(OBJDIR)/AnyShort.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
    7.12  
    7.13 -$(OBJDIR)/awt_AWTEvent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.14 +$(OBJDIR)/awt_AWTEvent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.15  
    7.16 -$(OBJDIR)/awt_BitmapUtil.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.17 +$(OBJDIR)/awt_BitmapUtil.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.18  
    7.19 -$(OBJDIR)/awt_Brush.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.20 +$(OBJDIR)/awt_Brush.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.21  
    7.22 -$(OBJDIR)/awt_Button.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Button.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WButtonPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Button.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.23 +$(OBJDIR)/awt_Button.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Button.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WButtonPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Button.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.24  
    7.25 -$(OBJDIR)/awt_Canvas.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.26 +$(OBJDIR)/awt_Canvas.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.27  
    7.28 -$(OBJDIR)/awt_Checkbox.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Checkbox.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Checkbox.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.29 +$(OBJDIR)/awt_Checkbox.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Checkbox.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Checkbox.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.30  
    7.31 -$(OBJDIR)/awt_Choice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Choice.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WChoicePeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Choice.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.32 +$(OBJDIR)/awt_Choice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Choice.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WChoicePeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Choice.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.33  
    7.34 -$(OBJDIR)/awt_Clipboard.obj::	$(CLASSHDRDIR)/sun_awt_windows_WClipboard.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.35 +$(OBJDIR)/awt_Clipboard.obj::	$(CLASSHDRDIR)/sun_awt_windows_WClipboard.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.36  
    7.37 -$(OBJDIR)/awt_Color.obj::	$(CLASSHDRDIR)/sun_awt_windows_WColor.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Color.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.38 +$(OBJDIR)/awt_Color.obj::	$(CLASSHDRDIR)/sun_awt_windows_WColor.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Color.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.39  
    7.40 -$(OBJDIR)/awt_Component.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Color.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_MouseWheelEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPanelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.41 +$(OBJDIR)/awt_Component.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Color.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_MouseWheelEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPanelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.42  
    7.43 -$(OBJDIR)/awt_Container.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.44 +$(OBJDIR)/awt_Container.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.45  
    7.46 -$(OBJDIR)/awt_Cursor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Cursor.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCustomCursor.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WGlobalCursorManager.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.47 +$(OBJDIR)/awt_Cursor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Cursor.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCustomCursor.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WGlobalCursorManager.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.48  
    7.49 -$(OBJDIR)/awt_DataTransferer.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_datatransfer_DataTransferer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDataTransferer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.50 +$(OBJDIR)/awt_DataTransferer.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_datatransfer_DataTransferer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDataTransferer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.51  
    7.52 -$(OBJDIR)/awt_Debug.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.53 +$(OBJDIR)/awt_Debug.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.54  
    7.55 -$(OBJDIR)/awt_Desktop.obj::	../../../src/share/javavm/export/jni.h ../../../src/windows/javavm/export/jni_md.h
    7.56 +$(OBJDIR)/awt_Desktop.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.57  
    7.58 -$(OBJDIR)/awt_DesktopProperties.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDesktopProperties.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.59 +$(OBJDIR)/awt_DesktopProperties.obj::	$(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_windows_WDesktopProperties.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.60  
    7.61 -$(OBJDIR)/awt_Dialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.62 +$(OBJDIR)/awt_Dialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.63  
    7.64 -$(OBJDIR)/awt_Dimension.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.65 +$(OBJDIR)/awt_Dimension.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.66  
    7.67 -$(OBJDIR)/awt_DnDDS.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_dnd_SunDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.68 +$(OBJDIR)/awt_DnDDS.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_dnd_SunDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.69  
    7.70 -$(OBJDIR)/awt_DnDDT.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDropTargetContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.71 +$(OBJDIR)/awt_DnDDT.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDropTargetContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.72  
    7.73 -$(OBJDIR)/awt_DrawingSurface.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.74 +$(OBJDIR)/awt_DrawingSurface.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.75  
    7.76 -$(OBJDIR)/awt_Event.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.77 +$(OBJDIR)/awt_Event.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.78  
    7.79 -$(OBJDIR)/awt_FileDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.80 +$(OBJDIR)/awt_FileDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.81  
    7.82 -$(OBJDIR)/awt_Font.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDefaultFontCharset.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFontPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.83 +$(OBJDIR)/awt_Font.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDefaultFontCharset.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFontPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.84  
    7.85 -$(OBJDIR)/awt_Frame.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/java_lang_Integer.h $(CLASSHDRDIR)/sun_awt_EmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.86 +$(OBJDIR)/awt_Frame.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/java_lang_Integer.h $(CLASSHDRDIR)/sun_awt_EmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.87  
    7.88 -$(OBJDIR)/awt_GDIObject.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.89 +$(OBJDIR)/awt_GDIObject.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.90  
    7.91 -$(OBJDIR)/awt_IconCursor.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.92 +$(OBJDIR)/awt_IconCursor.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.93  
    7.94  $(OBJDIR)/awt_ImageRep.obj::	$(CLASSHDRDIR)/sun_awt_image_ImageRepresentation.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
    7.95  
    7.96  $(OBJDIR)/awt_ImagingLib.obj::	$(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_image_ConvolveOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
    7.97  
    7.98 -$(OBJDIR)/awt_InputEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
    7.99 +$(OBJDIR)/awt_InputEvent.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.100  
   7.101 -$(OBJDIR)/awt_InputMethod.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethodDescriptor.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.102 +$(OBJDIR)/awt_InputMethod.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethodDescriptor.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.103  
   7.104 -$(OBJDIR)/awt_InputTextInfor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.105 +$(OBJDIR)/awt_InputTextInfor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.106  
   7.107 -$(OBJDIR)/awt_Insets.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.108 +$(OBJDIR)/awt_Insets.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.109  
   7.110 -$(OBJDIR)/awt_KeyboardFocusManager.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.111 +$(OBJDIR)/awt_KeyboardFocusManager.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.112  
   7.113 -$(OBJDIR)/awt_KeyEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.114 +$(OBJDIR)/awt_KeyEvent.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.115  
   7.116 -$(OBJDIR)/awt_Label.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Label.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WLabelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Label.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.117 +$(OBJDIR)/awt_Label.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Label.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WLabelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Label.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.118  
   7.119 -$(OBJDIR)/awt_List.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.120 +$(OBJDIR)/awt_List.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.121  
   7.122 -$(OBJDIR)/awt_Menu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.123 +$(OBJDIR)/awt_MenuBar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.124  
   7.125 -$(OBJDIR)/awt_MenuBar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.126 +$(OBJDIR)/awt_MenuItem.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_CheckboxMenuItem.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.127  
   7.128 -$(OBJDIR)/awt_MenuItem.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_CheckboxMenuItem.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.129 +$(OBJDIR)/awt_Menu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.130  
   7.131  $(OBJDIR)/awt_Mlib.obj::	$(CLASSHDRDIR)/java_awt_image_BufferedImage.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Mlib.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.132  
   7.133 -$(OBJDIR)/awt_MouseEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.134 +$(OBJDIR)/awt_MouseEvent.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.135  
   7.136 -$(OBJDIR)/awt_new.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.137 +$(OBJDIR)/awt_new.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.138  
   7.139 -$(OBJDIR)/awt_Object.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.140 +$(OBJDIR)/awt_Object.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.141  
   7.142 -$(OBJDIR)/awt_Palette.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_CustomPaletteDef.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.143 +$(OBJDIR)/awt_Palette.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_CustomPaletteDef.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.144  
   7.145 -$(OBJDIR)/awt_Panel.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.146 +$(OBJDIR)/awt_Panel.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.147  
   7.148  $(OBJDIR)/awt_parseImage.obj::	$(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
   7.149  
   7.150 -$(OBJDIR)/awt_Pen.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.151 +$(OBJDIR)/awt_Pen.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.152  
   7.153 -$(OBJDIR)/awt_PopupMenu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.154 +$(OBJDIR)/awt_PopupMenu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.155  
   7.156 -$(OBJDIR)/awt_PrintControl.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.157 +$(OBJDIR)/awt_PrintControl.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.158  
   7.159 -$(OBJDIR)/awt_PrintDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialog.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.160 +$(OBJDIR)/awt_PrintDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialog.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.161  
   7.162 -$(OBJDIR)/awt_PrintJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrinterJob.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.163 +$(OBJDIR)/awt_PrintJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrinterJob.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.164  
   7.165 -$(OBJDIR)/awt_Rectangle.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Rectangle.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.166 +$(OBJDIR)/awt_Rectangle.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Rectangle.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.167  
   7.168 -$(OBJDIR)/awt_Robot.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WRobotPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Robot.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.169 +$(OBJDIR)/awt_Robot.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WRobotPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Robot.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.170  
   7.171 -$(OBJDIR)/awt_Scrollbar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.172 +$(OBJDIR)/awt_Scrollbar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.173  
   7.174 -$(OBJDIR)/awt_ScrollPane.obj::	$(CLASSHDRDIR)/java_awt_Adjustable.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_AdjustmentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_ScrollPane.h $(CLASSHDRDIR)/java_awt_ScrollPaneAdjustable.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollPanePeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_ScrollPane.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.175 +$(OBJDIR)/awt_ScrollPane.obj::	$(CLASSHDRDIR)/java_awt_Adjustable.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_AdjustmentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_ScrollPaneAdjustable.h $(CLASSHDRDIR)/java_awt_ScrollPane.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollPanePeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_ScrollPane.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.176  
   7.177 -$(OBJDIR)/awt_TextArea.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextArea.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextAreaPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextArea.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.178 +$(OBJDIR)/awt_TextArea.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextArea.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextAreaPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextArea.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.179  
   7.180 -$(OBJDIR)/awt_TextComponent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.181 +$(OBJDIR)/awt_TextComponent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.182  
   7.183 -$(OBJDIR)/awt_TextField.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_TextField.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextFieldPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_TextField.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.184 +$(OBJDIR)/awt_TextField.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_TextField.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextFieldPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_TextField.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.185  
   7.186 -$(OBJDIR)/awt_Toolkit.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_ComponentPeer.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.187 +$(OBJDIR)/awt_Toolkit.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_ComponentPeer.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/DllUtil.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.188  
   7.189 -$(OBJDIR)/awt_TrayIcon.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_ActionEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TrayIcon.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WTrayIconPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_TrayIcon.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.190 +$(OBJDIR)/awt_TrayIcon.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_ActionEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TrayIcon.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WTrayIconPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_TrayIcon.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.191  
   7.192 -$(OBJDIR)/awt_Win32GraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsConfig.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.193 +$(OBJDIR)/awt_Win32GraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsConfig.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.194  
   7.195 -$(OBJDIR)/awt_Win32GraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsDevice.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.196 +$(OBJDIR)/awt_Win32GraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsDevice.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.197  
   7.198 -$(OBJDIR)/awt_Win32GraphicsEnv.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsEnvironment.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.199 +$(OBJDIR)/awt_Win32GraphicsEnv.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsEnvironment.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/DllUtil.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.200  
   7.201 -$(OBJDIR)/awt_Window.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Container.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_ComponentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.202 +$(OBJDIR)/awt_Window.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Container.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_ComponentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.203 +
   7.204 +$(OBJDIR)/BlitBg.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_BlitBg.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.205  
   7.206  $(OBJDIR)/Blit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_Blit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.207  
   7.208 -$(OBJDIR)/BlitBg.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_BlitBg.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.209 +$(OBJDIR)/BufferedMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedMaskBlit.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.210  
   7.211 -$(OBJDIR)/BufferedMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedMaskBlit.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.212 -
   7.213 -$(OBJDIR)/BufferedRenderPipe.obj::	$(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.214 +$(OBJDIR)/BufferedRenderPipe.obj::	$(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.215  
   7.216  $(OBJDIR)/BufImgSurfaceData.obj::	$(CLASSHDRDIR)/sun_awt_image_BufImgSurfaceData.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/BufImgSurfaceData.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/img_util_md.h
   7.217  
   7.218 @@ -160,62 +160,64 @@
   7.219  
   7.220  $(OBJDIR)/ByteBinary4Bit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByteBinary.h ../../../src/share/native/sun/java2d/loops/ByteBinary4Bit.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.221  
   7.222 -$(OBJDIR)/ByteGray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.223 +$(OBJDIR)/ByteGray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.224  
   7.225 -$(OBJDIR)/ByteIndexed.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.226 +$(OBJDIR)/ByteIndexed.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.227  
   7.228 -$(OBJDIR)/CmdIDList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.229 +$(OBJDIR)/CmdIDList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.230  
   7.231 -$(OBJDIR)/ComCtl32Util.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.232 +$(OBJDIR)/ComCtl32Util.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.233  
   7.234 -$(OBJDIR)/D3DBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.235 +$(OBJDIR)/D3DBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.236  
   7.237 -$(OBJDIR)/D3DBufImgOps.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.238 +$(OBJDIR)/D3DBufImgOps.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.239  
   7.240 -$(OBJDIR)/D3DContext.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DShaders.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.241 +$(OBJDIR)/D3DContext.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DShaders.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.242  
   7.243 -$(OBJDIR)/D3DGlyphCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.244 +$(OBJDIR)/D3DGlyphCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.245  
   7.246 -$(OBJDIR)/D3DGraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DGraphicsDevice.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.247 +$(OBJDIR)/D3DGraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DGraphicsDevice.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.248  
   7.249 -$(OBJDIR)/D3DMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.250 +$(OBJDIR)/D3DMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.251  
   7.252 -$(OBJDIR)/D3DMaskCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.253 +$(OBJDIR)/D3DMaskCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.254  
   7.255 -$(OBJDIR)/D3DMaskFill.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DMaskFill.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.256 +$(OBJDIR)/D3DMaskFill.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DMaskFill.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.257  
   7.258 -$(OBJDIR)/D3DPaints.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.259 +$(OBJDIR)/D3DPaints.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.260  
   7.261 -$(OBJDIR)/D3DPipelineManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBadHardware.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.262 +$(OBJDIR)/D3DPipelineManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBadHardware.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.263  
   7.264 -$(OBJDIR)/D3DRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DRenderer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.265 +$(OBJDIR)/D3DRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DRenderer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.266  
   7.267 -$(OBJDIR)/D3DRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.268 +$(OBJDIR)/D3DRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.269  
   7.270 -$(OBJDIR)/D3DResourceManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.271 +$(OBJDIR)/D3DResourceManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.272  
   7.273 -$(OBJDIR)/D3DSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.274 +$(OBJDIR)/D3DSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.275  
   7.276 -$(OBJDIR)/D3DTextRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.277 +$(OBJDIR)/D3DTextRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.278  
   7.279 -$(OBJDIR)/D3DVertexCacher.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.280 +$(OBJDIR)/D3DVertexCacher.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.281  
   7.282 -$(OBJDIR)/DataBufferNative.obj::	$(CLASSHDRDIR)/sun_awt_image_DataBufferNative.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.283 +$(OBJDIR)/DataBufferNative.obj::	$(CLASSHDRDIR)/sun_awt_image_DataBufferNative.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.284  
   7.285 -$(OBJDIR)/debug_assert.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.286 +$(OBJDIR)/debug_assert.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.287  
   7.288 -$(OBJDIR)/debug_mem.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.289 +$(OBJDIR)/debug_mem.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.290  
   7.291 -$(OBJDIR)/debug_trace.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.292 +$(OBJDIR)/debug_trace.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.293  
   7.294 -$(OBJDIR)/debug_util.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.295 +$(OBJDIR)/debug_util.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.296  
   7.297 -$(OBJDIR)/Devices.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.298 +$(OBJDIR)/Devices.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.299  
   7.300  $(OBJDIR)/Disposer.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
   7.301  
   7.302  $(OBJDIR)/dither.obj::	../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/windows/native/sun/windows/colordata.h
   7.303  
   7.304 +$(OBJDIR)/DllUtil.obj::	../../../src/windows/native/sun/windows/DllUtil.h
   7.305 +
   7.306  $(OBJDIR)/DrawLine.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawLine.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.307  
   7.308  $(OBJDIR)/DrawPath.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_DrawPath.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/DrawPath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.309 @@ -230,27 +232,27 @@
   7.310  
   7.311  $(OBJDIR)/FillSpans.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_FillSpans.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.312  
   7.313 -$(OBJDIR)/FourByteAbgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgr.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.314 +$(OBJDIR)/FourByteAbgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgr.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.315  
   7.316 -$(OBJDIR)/FourByteAbgrPre.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgrPre.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.317 +$(OBJDIR)/FourByteAbgrPre.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgrPre.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.318  
   7.319 -$(OBJDIR)/GDIBlitLoops.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIBlitLoops.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.320 +$(OBJDIR)/GDIBlitLoops.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIBlitLoops.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.321  
   7.322 -$(OBJDIR)/GDIHashtable.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.323 +$(OBJDIR)/GDIHashtable.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.324  
   7.325 -$(OBJDIR)/GDIRenderer.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIRenderer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.326 +$(OBJDIR)/GDIRenderer.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIRenderer.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.327  
   7.328 -$(OBJDIR)/GDIWindowSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIWindowSurfaceData.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.329 +$(OBJDIR)/GDIWindowSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIWindowSurfaceData.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.330  
   7.331  $(OBJDIR)/gifdecoder.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
   7.332  
   7.333  $(OBJDIR)/GraphicsPrimitiveMgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_GraphicsPrimitiveMgr.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.334  
   7.335 -$(OBJDIR)/Hashtable.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.336 +$(OBJDIR)/Hashtable.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.337  
   7.338  $(OBJDIR)/imageInitIDs.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
   7.339  
   7.340 -$(OBJDIR)/img_colors.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.341 +$(OBJDIR)/img_colors.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.342  
   7.343  $(OBJDIR)/img_globals.obj::	$(CLASSHDRDIR)/java_awt_image_DirectColorModel.h $(CLASSHDRDIR)/java_awt_image_IndexColorModel.h $(CLASSHDRDIR)/java_awt_Transparency.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/windows/javavm/export/jni_md.h
   7.344  
   7.345 @@ -260,49 +262,49 @@
   7.346  
   7.347  $(OBJDIR)/initIDs.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
   7.348  
   7.349 -$(OBJDIR)/IntArgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.350 +$(OBJDIR)/IntArgbBm.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.351  
   7.352 -$(OBJDIR)/IntArgbBm.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.353 +$(OBJDIR)/IntArgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.354  
   7.355  $(OBJDIR)/IntArgbPre.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.356  
   7.357 -$(OBJDIR)/IntBgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.358 +$(OBJDIR)/IntBgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/Index8Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.359  
   7.360 -$(OBJDIR)/IntRgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.361 +$(OBJDIR)/IntRgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.362  
   7.363 -$(OBJDIR)/IntRgbx.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/IntRgbx.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.364 +$(OBJDIR)/IntRgbx.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyInt.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/IntRgbx.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.365  
   7.366  $(OBJDIR)/MaskBlit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskBlit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.367  
   7.368  $(OBJDIR)/MaskFill.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskFill.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.369  
   7.370 -$(OBJDIR)/MouseInfo.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.371 +$(OBJDIR)/MouseInfo.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.372  
   7.373 -$(OBJDIR)/ObjectList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.374 +$(OBJDIR)/ObjectList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.375  
   7.376 -$(OBJDIR)/OGLBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.377 +$(OBJDIR)/OGLBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.378  
   7.379 -$(OBJDIR)/OGLBufImgOps.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.380 +$(OBJDIR)/OGLBufImgOps.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.381  
   7.382 -$(OBJDIR)/OGLContext.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.383 +$(OBJDIR)/OGLContext.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.384  
   7.385 -$(OBJDIR)/OGLFuncs.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.386 +$(OBJDIR)/OGLFuncs.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.387  
   7.388 -$(OBJDIR)/OGLMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.389 +$(OBJDIR)/OGLMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.390  
   7.391 -$(OBJDIR)/OGLMaskFill.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLMaskFill.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.392 +$(OBJDIR)/OGLMaskFill.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLMaskFill.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.393  
   7.394 -$(OBJDIR)/OGLPaints.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedPaints.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.395 +$(OBJDIR)/OGLPaints.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedPaints.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.396  
   7.397 -$(OBJDIR)/OGLRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLRenderer.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.398 +$(OBJDIR)/OGLRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLRenderer.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.399  
   7.400 -$(OBJDIR)/OGLRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.401 +$(OBJDIR)/OGLRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLBufImgOps.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLMaskBlit.h ../../../src/share/native/sun/java2d/opengl/OGLMaskFill.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.402  
   7.403 -$(OBJDIR)/OGLSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.404 +$(OBJDIR)/OGLSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.405  
   7.406 -$(OBJDIR)/OGLTextRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.407 +$(OBJDIR)/OGLTextRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLTextRenderer.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.408  
   7.409 -$(OBJDIR)/OGLVertexCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.410 +$(OBJDIR)/OGLVertexCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLPaints.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/opengl/OGLVertexCache.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   7.411  
   7.412  $(OBJDIR)/ProcessPath.obj::	$(CLASSHDRDIR)/java_awt_geom_PathIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/ProcessPath.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.413  
   7.414 @@ -314,36 +316,36 @@
   7.415  
   7.416  $(OBJDIR)/ShapeSpanIterator.obj::	$(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_ShapeSpanIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/pipe/PathConsumer2D.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.417  
   7.418 -$(OBJDIR)/ShellFolder2.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.419 +$(OBJDIR)/ShellFolder2.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.420  
   7.421  $(OBJDIR)/SpanClipRenderer.obj::	$(CLASSHDRDIR)/sun_java2d_pipe_RegionIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_SpanClipRenderer.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
   7.422  
   7.423  $(OBJDIR)/SurfaceData.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
   7.424  
   7.425 -$(OBJDIR)/ThemeReader.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_ThemeReader.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.426 +$(OBJDIR)/ThemeReader.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_ThemeReader.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.427  
   7.428 -$(OBJDIR)/ThreeByteBgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.429 +$(OBJDIR)/ThreeByteBgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.430  
   7.431 -$(OBJDIR)/Trace.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.432 +$(OBJDIR)/Trace.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   7.433  
   7.434  $(OBJDIR)/TransformHelper.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_loops_TransformHelper.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.435  
   7.436 -$(OBJDIR)/Ushort4444Argb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.437 +$(OBJDIR)/Ushort4444Argb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.438  
   7.439 -$(OBJDIR)/Ushort555Rgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.440 +$(OBJDIR)/Ushort555Rgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.441  
   7.442 -$(OBJDIR)/Ushort555Rgbx.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgbx.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.443 +$(OBJDIR)/Ushort555Rgbx.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgbx.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.444  
   7.445 -$(OBJDIR)/Ushort565Rgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.446 +$(OBJDIR)/Ushort565Rgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.447  
   7.448 -$(OBJDIR)/UshortGray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.449 +$(OBJDIR)/UshortGray.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.450  
   7.451 -$(OBJDIR)/UshortIndexed.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/loops/UshortIndexed.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.452 +$(OBJDIR)/UshortIndexed.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/loops/UshortIndexed.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   7.453  
   7.454 -$(OBJDIR)/WGLGraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLGraphicsConfig.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
   7.455 +$(OBJDIR)/WGLGraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLGraphicsConfig.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
   7.456  
   7.457 -$(OBJDIR)/WGLSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
   7.458 +$(OBJDIR)/WGLSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
   7.459  
   7.460 -$(OBJDIR)/WindowsFlags.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.461 +$(OBJDIR)/WindowsFlags.obj::	../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.462  
   7.463 -$(OBJDIR)/WPrinterJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   7.464 +$(OBJDIR)/WPrinterJob.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/classfile_constants.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
     8.1 --- a/make/sun/awt/mapfile-mawt-vers	Tue Apr 14 00:05:07 2009 -0700
     8.2 +++ b/make/sun/awt/mapfile-mawt-vers	Tue Apr 14 04:21:02 2009 -0700
     8.3 @@ -291,6 +291,7 @@
     8.4  		Java_sun_awt_X11GraphicsConfig_createBackBuffer;
     8.5  		Java_sun_awt_X11GraphicsConfig_destroyBackBuffer;
     8.6  		Java_sun_awt_X11GraphicsConfig_swapBuffers;
     8.7 +                Java_sun_awt_X11GraphicsConfig_isTranslucencyCapable;
     8.8  		Java_sun_awt_X11GraphicsDevice_isDBESupported;
     8.9  		Java_sun_awt_X11GraphicsDevice_getDisplay;
    8.10  		Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals;
     9.1 --- a/make/sun/awt/mapfile-vers-linux	Tue Apr 14 00:05:07 2009 -0700
     9.2 +++ b/make/sun/awt/mapfile-vers-linux	Tue Apr 14 04:21:02 2009 -0700
     9.3 @@ -407,6 +407,7 @@
     9.4  		Java_sun_awt_X11GraphicsConfig_getNumColors;
     9.5  		Java_sun_awt_X11GraphicsConfig_getXResolution;
     9.6  		Java_sun_awt_X11GraphicsConfig_getYResolution;
     9.7 +                Java_sun_awt_X11GraphicsConfig_isTranslucencyCapable;
     9.8  		Java_sun_awt_X11GraphicsDevice_isDBESupported;
     9.9  		Java_sun_awt_X11GraphicsDevice_getDisplay;
    9.10  		Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals;
    10.1 --- a/make/sun/xawt/FILES_c_unix.gmk	Tue Apr 14 00:05:07 2009 -0700
    10.2 +++ b/make/sun/xawt/FILES_c_unix.gmk	Tue Apr 14 04:21:02 2009 -0700
    10.3 @@ -78,4 +78,5 @@
    10.4  	awt_Plugin.c \
    10.5  	gtk2_interface.c \
    10.6          swing_GTKEngine.c \
    10.7 -        swing_GTKStyle.c
    10.8 +        swing_GTKStyle.c \
    10.9 +        rect.c
    11.1 --- a/make/sun/xawt/Makefile	Tue Apr 14 00:05:07 2009 -0700
    11.2 +++ b/make/sun/xawt/Makefile	Tue Apr 14 04:21:02 2009 -0700
    11.3 @@ -79,6 +79,7 @@
    11.4  vpath %.c   $(SHARE_SRC)/native/sun/java2d/loops
    11.5  vpath %.c   $(SHARE_SRC)/native/sun/java2d/pipe
    11.6  vpath %.c   $(SHARE_SRC)/native/sun/awt/medialib
    11.7 +vpath %.c   $(SHARE_SRC)/native/sun/awt/utility
    11.8  vpath %.cpp $(SHARE_SRC)/native/sun/image
    11.9  vpath %.c   $(SHARE_SRC)/native/sun/font
   11.10  vpath %.c   $(PLATFORM_SRC)/native/sun/awt/robot_child
   11.11 @@ -274,6 +275,23 @@
   11.12      $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon32.png \
   11.13      $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon48.png
   11.14  
   11.15 +
   11.16 +ICONPATH=$(PLATFORM_SRC)/classes/sun/awt/X11
   11.17 +
   11.18 +ICONS += \
   11.19 +   $(ICONPATH)/security-icon-bw16.png \
   11.20 +   $(ICONPATH)/security-icon-interim16.png \
   11.21 +   $(ICONPATH)/security-icon-yellow16.png \
   11.22 +   $(ICONPATH)/security-icon-bw24.png \
   11.23 +   $(ICONPATH)/security-icon-interim24.png \
   11.24 +   $(ICONPATH)/security-icon-yellow24.png \
   11.25 +   $(ICONPATH)/security-icon-bw32.png \
   11.26 +   $(ICONPATH)/security-icon-interim32.png \
   11.27 +   $(ICONPATH)/security-icon-yellow32.png \
   11.28 +   $(ICONPATH)/security-icon-bw48.png \
   11.29 +   $(ICONPATH)/security-icon-interim48.png \
   11.30 +   $(ICONPATH)/security-icon-yellow48.png
   11.31 +
   11.32  TEMPDIR_CLASSES = $(TEMPDIR)/classes
   11.33  
   11.34  $(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class: ToBin.java
    12.1 --- a/make/sun/xawt/mapfile-vers	Tue Apr 14 00:05:07 2009 -0700
    12.2 +++ b/make/sun/xawt/mapfile-vers	Tue Apr 14 04:21:02 2009 -0700
    12.3 @@ -1,5 +1,5 @@
    12.4  #
    12.5 -# Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
    12.6 +# Copyright 2002-2009 Sun Microsystems, Inc.  All Rights Reserved.
    12.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    12.8  #
    12.9  # This code is free software; you can redistribute it and/or modify it
   12.10 @@ -93,6 +93,9 @@
   12.11          Java_sun_awt_X11_XlibWrapper_XGetWMHints;
   12.12          Java_sun_awt_X11_XlibWrapper_XShapeQueryExtension;
   12.13          Java_sun_awt_X11_XlibWrapper_SetRectangularShape;
   12.14 +        Java_sun_awt_X11_XlibWrapper_SetBitmapShape;
   12.15 +        Java_sun_awt_X11_XlibWrapper_XConfigureWindow;
   12.16 +        Java_sun_awt_X11_XlibWrapper_SetZOrder;
   12.17          Java_sun_awt_X11_XToolkit_initIDs;
   12.18          Java_sun_awt_X11_XWindow_getNativeColor;
   12.19          Java_sun_awt_X11_XWindow_getWMInsets;
   12.20 @@ -217,6 +220,7 @@
   12.21          Java_sun_awt_X11GraphicsConfig_createBackBuffer;
   12.22  	Java_sun_awt_X11GraphicsConfig_destroyBackBuffer;
   12.23  	Java_sun_awt_X11GraphicsConfig_swapBuffers;
   12.24 +	Java_sun_awt_X11GraphicsConfig_isTranslucencyCapable;
   12.25          Java_java_awt_Insets_initIDs;
   12.26          Java_java_awt_KeyboardFocusManager_initIDs;
   12.27          Java_java_awt_Font_initIDs;
   12.28 @@ -289,16 +293,26 @@
   12.29          Java_sun_awt_X11_XlibWrapper_XGetIconSizes;
   12.30          Java_sun_awt_X11_XlibWrapper_XKeycodeToKeysym;
   12.31          Java_sun_awt_X11_XlibWrapper_XKeysymToKeycode;
   12.32 -        Java_sun_awt_X11_XlibWrapper_XQueryKeymap;
   12.33 +	Java_sun_awt_X11_XlibWrapper_XQueryKeymap;
   12.34 +        Java_sun_awt_X11_XlibWrapper_XkbGetEffectiveGroup;
   12.35 +        Java_sun_awt_X11_XlibWrapper_XkbSelectEvents;
   12.36 +        Java_sun_awt_X11_XlibWrapper_XkbSelectEventDetails;
   12.37 +        Java_sun_awt_X11_XlibWrapper_XkbKeycodeToKeysym;
   12.38 +        Java_sun_awt_X11_XlibWrapper_XkbLibraryVersion;
   12.39 +        Java_sun_awt_X11_XlibWrapper_XkbQueryExtension;
   12.40 +        Java_sun_awt_X11_XlibWrapper_XkbGetMap;
   12.41 +        Java_sun_awt_X11_XlibWrapper_XkbGetUpdatedMap;
   12.42 +        Java_sun_awt_X11_XlibWrapper_XkbFreeKeyboard;
   12.43 +        Java_sun_awt_X11_XlibWrapper_XkbTranslateKeyCode;
   12.44          Java_sun_awt_X11_XlibWrapper_XGetModifierMapping;
   12.45 -        Java_sun_awt_X11_XlibWrapper_XFreeModifiermap;        
   12.46 +        Java_sun_awt_X11_XlibWrapper_XFreeModifiermap;
   12.47          Java_sun_awt_X11_XlibWrapper_XChangeActivePointerGrab;
   12.48          Java_sun_awt_X11_XlibWrapper_XNextSecondaryLoopEvent;
   12.49          Java_sun_awt_X11_XlibWrapper_ExitSecondaryLoop;
   12.50          Java_sun_awt_X11_XlibWrapper_XTextPropertyToStringList;
   12.51          Java_sun_awt_X11_XlibWrapper_XGrabServer;
   12.52          Java_sun_awt_X11_XlibWrapper_XUngrabServer;
   12.53 -        Java_sun_awt_X11_XlibWrapper_XPutBackEvent;        
   12.54 +        Java_sun_awt_X11_XlibWrapper_XPutBackEvent;
   12.55          Java_sun_awt_X11_XlibWrapper_XConvertCase;
   12.56          Java_sun_awt_X11_XlibWrapper_XSynchronize;
   12.57          Java_java_awt_FileDialog_initIDs;
    13.1 --- a/src/share/classes/com/sun/awt/AWTUtilities.java	Tue Apr 14 00:05:07 2009 -0700
    13.2 +++ b/src/share/classes/com/sun/awt/AWTUtilities.java	Tue Apr 14 04:21:02 2009 -0700
    13.3 @@ -1,5 +1,5 @@
    13.4  /*
    13.5 - * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
    13.6 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
    13.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    13.8   *
    13.9   * This code is free software; you can redistribute it and/or modify it
   13.10 @@ -26,17 +26,37 @@
   13.11  package com.sun.awt;
   13.12  
   13.13  import java.awt.*;
   13.14 +
   13.15  import sun.awt.AWTAccessor;
   13.16 -
   13.17 +import sun.awt.SunToolkit;
   13.18  
   13.19  /**
   13.20   * A collection of utility methods for AWT.
   13.21   *
   13.22   * The functionality provided by the static methods of the class includes:
   13.23   * <ul>
   13.24 + * <li>Setting shapes on top-level windows
   13.25 + * <li>Setting a constant alpha value for each pixel of a top-level window
   13.26 + * <li>Making a window non-opaque, after that it paints only explicitly
   13.27 + * painted pixels on the screen, with arbitrary alpha values for every pixel.
   13.28   * <li>Setting a 'mixing-cutout' shape for a component.
   13.29   * </ul>
   13.30   * <p>
   13.31 + * A "top-level window" is an instance of the {@code Window} class (or its
   13.32 + * descendant, such as {@code JFrame}).
   13.33 + * <p>
   13.34 + * Some of the mentioned features may not be supported by the native platform.
   13.35 + * To determine whether a particular feature is supported, the user must use
   13.36 + * the {@code isTranslucencySupported()} method of the class passing a desired
   13.37 + * translucency kind (a member of the {@code Translucency} enum) as an
   13.38 + * argument.
   13.39 + * <p>
   13.40 + * The per-pixel alpha feature also requires the user to create her/his
   13.41 + * windows using a translucency-capable graphics configuration.
   13.42 + * The {@code isTranslucencyCapable()} method must
   13.43 + * be used to verify whether any given GraphicsConfiguration supports
   13.44 + * the trasnlcency effects.
   13.45 + * <p>
   13.46   * <b>WARNING</b>: This class is an implementation detail and only meant
   13.47   * for limited use outside of the core platform. This API may change
   13.48   * drastically between update release, and it may even be
   13.49 @@ -50,6 +70,344 @@
   13.50      private AWTUtilities() {
   13.51      }
   13.52  
   13.53 +    /** Kinds of translucency supported by the underlying system.
   13.54 +     *  @see #isTranslucencySupported
   13.55 +     */
   13.56 +    public static enum Translucency {
   13.57 +        /**
   13.58 +         * Represents support in the underlying system for windows each pixel
   13.59 +         * of which is guaranteed to be either completely opaque, with
   13.60 +         * an alpha value of 1.0, or completely transparent, with an alpha
   13.61 +         * value of 0.0.
   13.62 +         */
   13.63 +        PERPIXEL_TRANSPARENT,
   13.64 +
   13.65 +        /**
   13.66 +         * Represents support in the underlying system for windows all of
   13.67 +         * the pixels of which have the same alpha value between or including
   13.68 +         * 0.0 and 1.0.
   13.69 +         */
   13.70 +        TRANSLUCENT,
   13.71 +
   13.72 +        /**
   13.73 +         * Represents support in the underlying system for windows that
   13.74 +         * contain or might contain pixels with arbitrary alpha values
   13.75 +         * between and including 0.0 and 1.0.
   13.76 +         */
   13.77 +        PERPIXEL_TRANSLUCENT;
   13.78 +    }
   13.79 +
   13.80 +
   13.81 +    /**
   13.82 +     * Returns whether the given level of translucency is supported by
   13.83 +     * the underlying system.
   13.84 +     *
   13.85 +     * Note that this method may sometimes return the value
   13.86 +     * indicating that the particular level is supported, but
   13.87 +     * the native windowing system may still not support the
   13.88 +     * given level of translucency (due to the bugs in
   13.89 +     * the windowing system).
   13.90 +     *
   13.91 +     * @param translucencyKind a kind of translucency support
   13.92 +     *                         (either PERPIXEL_TRANSPARENT,
   13.93 +     *                         TRANSLUCENT, or PERPIXEL_TRANSLUCENT)
   13.94 +     * @return whether the given translucency kind is supported
   13.95 +     */
   13.96 +    public static boolean isTranslucencySupported(Translucency translucencyKind) {
   13.97 +        switch (translucencyKind) {
   13.98 +            case PERPIXEL_TRANSPARENT:
   13.99 +                return isWindowShapingSupported();
  13.100 +            case TRANSLUCENT:
  13.101 +                return isWindowOpacitySupported();
  13.102 +            case PERPIXEL_TRANSLUCENT:
  13.103 +                return isWindowTranslucencySupported();
  13.104 +        }
  13.105 +        return false;
  13.106 +    }
  13.107 +
  13.108 +
  13.109 +    /**
  13.110 +     * Returns whether the windowing system supports changing the opacity
  13.111 +     * value of top-level windows.
  13.112 +     * Note that this method may sometimes return true, but the native
  13.113 +     * windowing system may still not support the concept of
  13.114 +     * translucency (due to the bugs in the windowing system).
  13.115 +     */
  13.116 +    private static boolean isWindowOpacitySupported() {
  13.117 +        Toolkit curToolkit = Toolkit.getDefaultToolkit();
  13.118 +        if (!(curToolkit instanceof SunToolkit)) {
  13.119 +            return false;
  13.120 +        }
  13.121 +        return ((SunToolkit)curToolkit).isWindowOpacitySupported();
  13.122 +    }
  13.123 +
  13.124 +    /**
  13.125 +     * Set the opacity of the window. The opacity is at the range [0..1].
  13.126 +     * Note that setting the opacity level of 0 may or may not disable
  13.127 +     * the mouse event handling on this window. This is
  13.128 +     * a platform-dependent behavior.
  13.129 +     *
  13.130 +     * In order for this method to enable the translucency effect,
  13.131 +     * the isTranslucencySupported() method should indicate that the
  13.132 +     * TRANSLUCENT level of translucency is supported.
  13.133 +     *
  13.134 +     * <p>Also note that the window must not be in the full-screen mode
  13.135 +     * when setting the opacity value &lt; 1.0f. Otherwise
  13.136 +     * the IllegalArgumentException is thrown.
  13.137 +     *
  13.138 +     * @param window the window to set the opacity level to
  13.139 +     * @param opacity the opacity level to set to the window
  13.140 +     * @throws NullPointerException if the window argument is null
  13.141 +     * @throws IllegalArgumentException if the opacity is out of
  13.142 +     *                                  the range [0..1]
  13.143 +     * @throws IllegalArgumentException if the window is in full screen mode,
  13.144 +     *                                  and the opacity is less than 1.0f
  13.145 +     * @throws UnsupportedOperationException if the TRANSLUCENT translucency
  13.146 +     *                                       kind is not supported
  13.147 +     */
  13.148 +    public static void setWindowOpacity(Window window, float opacity) {
  13.149 +        if (window == null) {
  13.150 +            throw new NullPointerException(
  13.151 +                    "The window argument should not be null.");
  13.152 +        }
  13.153 +
  13.154 +        AWTAccessor.getWindowAccessor().setOpacity(window, opacity);
  13.155 +    }
  13.156 +
  13.157 +    /**
  13.158 +     * Get the opacity of the window. If the opacity has not
  13.159 +     * yet being set, this method returns 1.0.
  13.160 +     *
  13.161 +     * @param window the window to get the opacity level from
  13.162 +     * @throws NullPointerException if the window argument is null
  13.163 +     */
  13.164 +    public static float getWindowOpacity(Window window) {
  13.165 +        if (window == null) {
  13.166 +            throw new NullPointerException(
  13.167 +                    "The window argument should not be null.");
  13.168 +        }
  13.169 +
  13.170 +        return AWTAccessor.getWindowAccessor().getOpacity(window);
  13.171 +    }
  13.172 +
  13.173 +    /**
  13.174 +     * Returns whether the windowing system supports changing the shape
  13.175 +     * of top-level windows.
  13.176 +     * Note that this method may sometimes return true, but the native
  13.177 +     * windowing system may still not support the concept of
  13.178 +     * shaping (due to the bugs in the windowing system).
  13.179 +     */
  13.180 +    public static boolean isWindowShapingSupported() {
  13.181 +        Toolkit curToolkit = Toolkit.getDefaultToolkit();
  13.182 +        if (!(curToolkit instanceof SunToolkit)) {
  13.183 +            return false;
  13.184 +        }
  13.185 +        return ((SunToolkit)curToolkit).isWindowShapingSupported();
  13.186 +    }
  13.187 +
  13.188 +    /**
  13.189 +     * Returns an object that implements the Shape interface and represents
  13.190 +     * the shape previously set with the call to the setWindowShape() method.
  13.191 +     * If no shape has been set yet, or the shape has been reset to null,
  13.192 +     * this method returns null.
  13.193 +     *
  13.194 +     * @param window the window to get the shape from
  13.195 +     * @return the current shape of the window
  13.196 +     * @throws NullPointerException if the window argument is null
  13.197 +     */
  13.198 +    public static Shape getWindowShape(Window window) {
  13.199 +        if (window == null) {
  13.200 +            throw new NullPointerException(
  13.201 +                    "The window argument should not be null.");
  13.202 +        }
  13.203 +        return AWTAccessor.getWindowAccessor().getShape(window);
  13.204 +    }
  13.205 +
  13.206 +    /**
  13.207 +     * Sets a shape for the given window.
  13.208 +     * If the shape argument is null, this methods restores
  13.209 +     * the default shape making the window rectangular.
  13.210 +     * <p>Note that in order to set a shape, the window must be undecorated.
  13.211 +     * If the window is decorated, this method ignores the {@code shape}
  13.212 +     * argument and resets the shape to null.
  13.213 +     * <p>Also note that the window must not be in the full-screen mode
  13.214 +     * when setting a non-null shape. Otherwise the IllegalArgumentException
  13.215 +     * is thrown.
  13.216 +     * <p>Depending on the platform, the method may return without
  13.217 +     * effecting the shape of the window if the window has a non-null warning
  13.218 +     * string ({@link Window#getWarningString()}). In this case the passed
  13.219 +     * shape object is ignored.
  13.220 +     *
  13.221 +     * @param window the window to set the shape to
  13.222 +     * @param shape the shape to set to the window
  13.223 +     * @throws NullPointerException if the window argument is null
  13.224 +     * @throws IllegalArgumentException if the window is in full screen mode,
  13.225 +     *                                  and the shape is not null
  13.226 +     * @throws UnsupportedOperationException if the PERPIXEL_TRANSPARENT
  13.227 +     *                                       translucency kind is not supported
  13.228 +     */
  13.229 +    public static void setWindowShape(Window window, Shape shape) {
  13.230 +        if (window == null) {
  13.231 +            throw new NullPointerException(
  13.232 +                    "The window argument should not be null.");
  13.233 +        }
  13.234 +        AWTAccessor.getWindowAccessor().setShape(window, shape);
  13.235 +    }
  13.236 +
  13.237 +    private static boolean isWindowTranslucencySupported() {
  13.238 +        /*
  13.239 +         * Per-pixel alpha is supported if all the conditions are TRUE:
  13.240 +         *    1. The toolkit is a sort of SunToolkit
  13.241 +         *    2. The toolkit supports translucency in general
  13.242 +         *        (isWindowTranslucencySupported())
  13.243 +         *    3. There's at least one translucency-capable
  13.244 +         *        GraphicsConfiguration
  13.245 +         */
  13.246 +
  13.247 +        Toolkit curToolkit = Toolkit.getDefaultToolkit();
  13.248 +        if (!(curToolkit instanceof SunToolkit)) {
  13.249 +            return false;
  13.250 +        }
  13.251 +
  13.252 +        if (!((SunToolkit)curToolkit).isWindowTranslucencySupported()) {
  13.253 +            return false;
  13.254 +        }
  13.255 +
  13.256 +        GraphicsEnvironment env =
  13.257 +            GraphicsEnvironment.getLocalGraphicsEnvironment();
  13.258 +
  13.259 +        // If the default GC supports translucency return true.
  13.260 +        // It is important to optimize the verification this way,
  13.261 +        // see CR 6661196 for more details.
  13.262 +        if (isTranslucencyCapable(env.getDefaultScreenDevice()
  13.263 +                    .getDefaultConfiguration()))
  13.264 +        {
  13.265 +            return true;
  13.266 +        }
  13.267 +
  13.268 +        // ... otherwise iterate through all the GCs.
  13.269 +        GraphicsDevice[] devices = env.getScreenDevices();
  13.270 +
  13.271 +        for (int i = 0; i < devices.length; i++) {
  13.272 +            GraphicsConfiguration[] configs = devices[i].getConfigurations();
  13.273 +            for (int j = 0; j < configs.length; j++) {
  13.274 +                if (isTranslucencyCapable(configs[j])) {
  13.275 +                    return true;
  13.276 +                }
  13.277 +            }
  13.278 +        }
  13.279 +
  13.280 +        return false;
  13.281 +    }
  13.282 +
  13.283 +    /**
  13.284 +     * Enables the per-pixel alpha support for the given window.
  13.285 +     * Once the window becomes non-opaque (the isOpaque is set to false),
  13.286 +     * the drawing sub-system is starting to respect the alpha value of each
  13.287 +     * separate pixel. If a pixel gets painted with alpha color component
  13.288 +     * equal to zero, it becomes visually transparent, if the alpha of the
  13.289 +     * pixel is equal to 255, the pixel is fully opaque. Interim values
  13.290 +     * of the alpha color component make the pixel semi-transparent (i.e.
  13.291 +     * translucent).
  13.292 +     * <p>Note that in order for the window to support the per-pixel alpha
  13.293 +     * mode, the window must be created using the GraphicsConfiguration
  13.294 +     * for which the {@link #isTranslucencyCapable}
  13.295 +     * method returns true.
  13.296 +     * <p>Also note that some native systems enable the per-pixel translucency
  13.297 +     * mode for any window created using the translucency-compatible
  13.298 +     * graphics configuration. However, it is highly recommended to always
  13.299 +     * invoke the setWindowOpaque() method for these windows, at least for
  13.300 +     * the sake of cross-platform compatibility reasons.
  13.301 +     * <p>Also note that the window must not be in the full-screen mode
  13.302 +     * when making it non-opaque. Otherwise the IllegalArgumentException
  13.303 +     * is thrown.
  13.304 +     * <p>If the window is a {@code Frame} or a {@code Dialog}, the window must
  13.305 +     * be undecorated prior to enabling the per-pixel translucency effect (see
  13.306 +     * {@link Frame#setUndecorated()} and/or {@link Dialog#setUndecorated()}).
  13.307 +     * If the window becomes decorated through a subsequent call to the
  13.308 +     * corresponding {@code setUndecorated()} method, the per-pixel
  13.309 +     * translucency effect will be disabled and the opaque property reset to
  13.310 +     * {@code true}.
  13.311 +     * <p>Depending on the platform, the method may return without
  13.312 +     * effecting the opaque property of the window if the window has a non-null
  13.313 +     * warning string ({@link Window#getWarningString()}). In this case
  13.314 +     * the passed 'isOpaque' value is ignored.
  13.315 +     *
  13.316 +     * @param window the window to set the shape to
  13.317 +     * @param isOpaque whether the window must be opaque (true),
  13.318 +     *                 or translucent (false)
  13.319 +     * @throws NullPointerException if the window argument is null
  13.320 +     * @throws IllegalArgumentException if the window uses
  13.321 +     *                                  a GraphicsConfiguration for which the
  13.322 +     *                                  {@code isTranslucencyCapable()}
  13.323 +     *                                  method returns false
  13.324 +     * @throws IllegalArgumentException if the window is in full screen mode,
  13.325 +     *                                  and the isOpaque is false
  13.326 +     * @throws IllegalArgumentException if the window is decorated and the
  13.327 +     * isOpaque argument is {@code false}.
  13.328 +     * @throws UnsupportedOperationException if the PERPIXEL_TRANSLUCENT
  13.329 +     *                                       translucency kind is not supported
  13.330 +     */
  13.331 +    public static void setWindowOpaque(Window window, boolean isOpaque) {
  13.332 +        if (window == null) {
  13.333 +            throw new NullPointerException(
  13.334 +                    "The window argument should not be null.");
  13.335 +        }
  13.336 +        if (!isOpaque && !isTranslucencySupported(Translucency.PERPIXEL_TRANSLUCENT)) {
  13.337 +            throw new UnsupportedOperationException(
  13.338 +                    "The PERPIXEL_TRANSLUCENT translucency kind is not supported");
  13.339 +        }
  13.340 +        AWTAccessor.getWindowAccessor().setOpaque(window, isOpaque);
  13.341 +    }
  13.342 +
  13.343 +    /**
  13.344 +     * Returns whether the window is opaque or translucent.
  13.345 +     *
  13.346 +     * @param window the window to set the shape to
  13.347 +     * @return whether the window is currently opaque (true)
  13.348 +     *         or translucent (false)
  13.349 +     * @throws NullPointerException if the window argument is null
  13.350 +     */
  13.351 +    public static boolean isWindowOpaque(Window window) {
  13.352 +        if (window == null) {
  13.353 +            throw new NullPointerException(
  13.354 +                    "The window argument should not be null.");
  13.355 +        }
  13.356 +
  13.357 +        return AWTAccessor.getWindowAccessor().isOpaque(window);
  13.358 +    }
  13.359 +
  13.360 +    /**
  13.361 +     * Verifies whether a given GraphicsConfiguration supports
  13.362 +     * the PERPIXEL_TRANSLUCENT kind of translucency.
  13.363 +     * All windows that are intended to be used with the {@link #setWindowOpaque}
  13.364 +     * method must be created using a GraphicsConfiguration for which this method
  13.365 +     * returns true.
  13.366 +     * <p>Note that some native systems enable the per-pixel translucency
  13.367 +     * mode for any window created using a translucency-capable
  13.368 +     * graphics configuration. However, it is highly recommended to always
  13.369 +     * invoke the setWindowOpaque() method for these windows, at least
  13.370 +     * for the sake of cross-platform compatibility reasons.
  13.371 +     *
  13.372 +     * @param gc GraphicsConfiguration
  13.373 +     * @throws NullPointerException if the gc argument is null
  13.374 +     * @return whether the given GraphicsConfiguration supports
  13.375 +     *         the translucency effects.
  13.376 +     */
  13.377 +    public static boolean isTranslucencyCapable(GraphicsConfiguration gc) {
  13.378 +        if (gc == null) {
  13.379 +            throw new NullPointerException("The gc argument should not be null");
  13.380 +        }
  13.381 +        /*
  13.382 +        return gc.isTranslucencyCapable();
  13.383 +        */
  13.384 +        Toolkit curToolkit = Toolkit.getDefaultToolkit();
  13.385 +        if (!(curToolkit instanceof SunToolkit)) {
  13.386 +            return false;
  13.387 +        }
  13.388 +        return ((SunToolkit)curToolkit).isTranslucencyCapable(gc);
  13.389 +    }
  13.390 +
  13.391      /**
  13.392       * Sets a 'mixing-cutout' shape for the given component.
  13.393       *
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/src/share/classes/com/sun/awt/SecurityWarning.java	Tue Apr 14 04:21:02 2009 -0700
    14.3 @@ -0,0 +1,169 @@
    14.4 +/*
    14.5 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
    14.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    14.7 + *
    14.8 + * This code is free software; you can redistribute it and/or modify it
    14.9 + * under the terms of the GNU General Public License version 2 only, as
   14.10 + * published by the Free Software Foundation.  Sun designates this
   14.11 + * particular file as subject to the "Classpath" exception as provided
   14.12 + * by Sun in the LICENSE file that accompanied this code.
   14.13 + *
   14.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   14.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   14.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14.17 + * version 2 for more details (a copy is included in the LICENSE file that
   14.18 + * accompanied this code).
   14.19 + *
   14.20 + * You should have received a copy of the GNU General Public License version
   14.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   14.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   14.23 + *
   14.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   14.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   14.26 + * have any questions.
   14.27 + */
   14.28 +
   14.29 +package com.sun.awt;
   14.30 +
   14.31 +import java.awt.*;
   14.32 +import java.awt.geom.*;
   14.33 +
   14.34 +import sun.awt.AWTAccessor;
   14.35 +
   14.36 +
   14.37 +/**
   14.38 + * Security Warning control interface.
   14.39 + *
   14.40 + * This class provides a couple of methods that help a developer relocate
   14.41 + * the AWT security warning to an appropriate position relative to the current
   14.42 + * window size. A "top-level window" is an instance of the {@code Window}
   14.43 + * class (or its descendant, such as {@code JFrame}). The security warning
   14.44 + * is applied to all windows created by an untrusted code. All such windows
   14.45 + * have a non-null "warning string" (see {@link Window#getWarningString()}).
   14.46 + * <p>
   14.47 + * <b>WARNING</b>: This class is an implementation detail and only meant
   14.48 + * for limited use outside of the core platform. This API may change
   14.49 + * drastically between update release, and it may even be
   14.50 + * removed or be moved to some other packages or classes.
   14.51 + */
   14.52 +public final class SecurityWarning {
   14.53 +
   14.54 +    /**
   14.55 +     * The SecurityWarning class should not be instantiated
   14.56 +     */
   14.57 +    private SecurityWarning() {
   14.58 +    }
   14.59 +
   14.60 +    /**
   14.61 +     * Gets the size of the security warning.
   14.62 +     *
   14.63 +     * The returned value is not valid until the peer has been created. Before
   14.64 +     * invoking this method a developer must call the {@link Window#pack()},
   14.65 +     * {@link Window#setVisible()}, or some other method that creates the peer.
   14.66 +     *
   14.67 +     * @param window the window to get the security warning size for
   14.68 +     *
   14.69 +     * @throws NullPointerException if the window argument is null
   14.70 +     * @throws IllegalArgumentException if the window is trusted (i.e.
   14.71 +     * the {@code getWarningString()} returns null)
   14.72 +     */
   14.73 +    public static Dimension getSize(Window window) {
   14.74 +        if (window == null) {
   14.75 +            throw new NullPointerException(
   14.76 +                    "The window argument should not be null.");
   14.77 +        }
   14.78 +        if (window.getWarningString() == null) {
   14.79 +            throw new IllegalArgumentException(
   14.80 +                    "The window must have a non-null warning string.");
   14.81 +        }
   14.82 +        // We don't check for a non-null peer since it may be destroyed
   14.83 +        // after assigning a valid value to the security warning size.
   14.84 +
   14.85 +        return AWTAccessor.getWindowAccessor().getSecurityWarningSize(window);
   14.86 +    }
   14.87 +
   14.88 +    /**
   14.89 +     * Sets the position of the security warning.
   14.90 +     * <p>
   14.91 +     * The {@code alignmentX} and {@code alignmentY} arguments specify the
   14.92 +     * origin of the coordinate system used to calculate the position of the
   14.93 +     * security warning. The values must be in the range [0.0f...1.0f].  The
   14.94 +     * {@code 0.0f} value represents the left (top) edge of the rectangular
   14.95 +     * bounds of the window. The {@code 1.0f} value represents the right
   14.96 +     * (bottom) edge of the bounds. Whenever the size of the window changes,
   14.97 +     * the origin of the coordinate system gets relocated accordingly. For
   14.98 +     * convenience a developer may use the {@code Component.*_ALIGNMENT}
   14.99 +     * constants to pass predefined values for these arguments.
  14.100 +     * <p>
  14.101 +     * The {@code point} argument specifies the location of the security
  14.102 +     * warning in the coordinate system described above. If both {@code x} and
  14.103 +     * {@code y} coordinates of the point are equal to zero, the warning will
  14.104 +     * be located right in the origin of the coordinate system. On the other
  14.105 +     * hand, if both {@code alignmentX} and {@code alignmentY} are equal to
  14.106 +     * zero (i.e. the origin of the coordinate system is placed at the top-left
  14.107 +     * corner of the window), then the {@code point} argument represents the
  14.108 +     * absolute location of the security warning relative to the location of
  14.109 +     * the window. The "absolute" in this case means that the position of the
  14.110 +     * security warning is not effected by resizing of the window.
  14.111 +     * <p>
  14.112 +     * Note that the security warning managment code guarantees that:
  14.113 +     * <ul>
  14.114 +     * <li>The security warning cannot be located farther than two pixels from
  14.115 +     * the rectangular bounds of the window (see {@link Window#getBounds}), and
  14.116 +     * <li>The security warning is always visible on the screen.
  14.117 +     * </ul>
  14.118 +     * If either of the conditions is violated, the calculated position of the
  14.119 +     * security warning is adjusted by the system to meet both these
  14.120 +     * conditions.
  14.121 +     * <p>
  14.122 +     * The default position of the security warning is in the upper-right
  14.123 +     * corner of the window, two pixels to the right from the right edge. This
  14.124 +     * corresponds to the following arguments passed to this method:
  14.125 +     * <ul>
  14.126 +     * <li>{@code alignmentX = Component.RIGHT_ALIGNMENT}
  14.127 +     * <li>{@code alignmentY = Component.TOP_ALIGNMENT}
  14.128 +     * <li>{@code point = (2, 0)}
  14.129 +     * </ul>
  14.130 +     *
  14.131 +     * @param window the window to set the position of the security warning for
  14.132 +     * @param alignmentX the horizontal origin of the coordinate system
  14.133 +     * @param alignmentY the vertical origin of the coordinate system
  14.134 +     * @param point the position of the security warning in the specified
  14.135 +     * coordinate system
  14.136 +     *
  14.137 +     * @throws NullPointerException if the window argument is null
  14.138 +     * @throws NullPointerException if the point argument is null
  14.139 +     * @throws IllegalArgumentException if the window is trusted (i.e.
  14.140 +     * the {@code getWarningString()} returns null
  14.141 +     * @throws IllegalArgumentException if the alignmentX or alignmentY
  14.142 +     * arguments are not within the range [0.0f ... 1.0f]
  14.143 +     */
  14.144 +    public static void setPosition(Window window, Point2D point,
  14.145 +            float alignmentX, float alignmentY)
  14.146 +    {
  14.147 +        if (window == null) {
  14.148 +            throw new NullPointerException(
  14.149 +                    "The window argument should not be null.");
  14.150 +        }
  14.151 +        if (window.getWarningString() == null) {
  14.152 +            throw new IllegalArgumentException(
  14.153 +                    "The window must have a non-null warning string.");
  14.154 +        }
  14.155 +        if (point == null) {
  14.156 +            throw new NullPointerException(
  14.157 +                    "The point argument must not be null");
  14.158 +        }
  14.159 +        if (alignmentX < 0.0f || alignmentX > 1.0f) {
  14.160 +            throw new IllegalArgumentException(
  14.161 +                    "alignmentX must be in the range [0.0f ... 1.0f].");
  14.162 +        }
  14.163 +        if (alignmentY < 0.0f || alignmentY > 1.0f) {
  14.164 +            throw new IllegalArgumentException(
  14.165 +                    "alignmentY must be in the range [0.0f ... 1.0f].");
  14.166 +        }
  14.167 +
  14.168 +        AWTAccessor.getWindowAccessor().setSecurityWarningPosition(window,
  14.169 +                point, alignmentX, alignmentY);
  14.170 +    }
  14.171 +}
  14.172 +
    15.1 --- a/src/share/classes/java/awt/AWTKeyStroke.java	Tue Apr 14 00:05:07 2009 -0700
    15.2 +++ b/src/share/classes/java/awt/AWTKeyStroke.java	Tue Apr 14 04:21:02 2009 -0700
    15.3 @@ -1,5 +1,5 @@
    15.4  /*
    15.5 - * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
    15.6 + * Copyright 2000-2009 Sun Microsystems, Inc.  All Rights Reserved.
    15.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    15.8   *
    15.9   * This code is free software; you can redistribute it and/or modify it
   15.10 @@ -329,6 +329,9 @@
   15.11       * <li><code>java.awt.event.KeyEvent.VK_TAB</code>
   15.12       * <li><code>java.awt.event.KeyEvent.VK_SPACE</code>
   15.13       * </ul>
   15.14 +     * Alternatively, the key code may be obtained by calling
   15.15 +     * <code>java.awt.event.KeyEvent.getExtendedKeyCodeForChar</code>.
   15.16 +     *
   15.17       * The modifiers consist of any combination of:<ul>
   15.18       * <li>java.awt.event.InputEvent.SHIFT_DOWN_MASK
   15.19       * <li>java.awt.event.InputEvent.CTRL_DOWN_MASK
    16.1 --- a/src/share/classes/java/awt/Canvas.java	Tue Apr 14 00:05:07 2009 -0700
    16.2 +++ b/src/share/classes/java/awt/Canvas.java	Tue Apr 14 04:21:02 2009 -0700
    16.3 @@ -25,6 +25,7 @@
    16.4  package java.awt;
    16.5  
    16.6  import java.awt.image.BufferStrategy;
    16.7 +import java.awt.peer.CanvasPeer;
    16.8  import javax.accessibility.*;
    16.9  
   16.10  /**
   16.11 @@ -65,7 +66,17 @@
   16.12       */
   16.13      public Canvas(GraphicsConfiguration config) {
   16.14          this();
   16.15 -        graphicsConfig = config;
   16.16 +        setGraphicsConfiguration(config);
   16.17 +    }
   16.18 +
   16.19 +    @Override
   16.20 +    void setGraphicsConfiguration(GraphicsConfiguration gc) {
   16.21 +        CanvasPeer peer = (CanvasPeer)getPeer();
   16.22 +        if (peer != null) {
   16.23 +            gc = peer.getAppropriateGraphicsConfiguration(gc);
   16.24 +        }
   16.25 +
   16.26 +        super.setGraphicsConfiguration(gc);
   16.27      }
   16.28  
   16.29      /**
    17.1 --- a/src/share/classes/java/awt/Component.java	Tue Apr 14 00:05:07 2009 -0700
    17.2 +++ b/src/share/classes/java/awt/Component.java	Tue Apr 14 04:21:02 2009 -0700
    17.3 @@ -1,5 +1,5 @@
    17.4  /*
    17.5 - * Copyright 1995-2008 Sun Microsystems, Inc.  All Rights Reserved.
    17.6 + * Copyright 1995-2009 Sun Microsystems, Inc.  All Rights Reserved.
    17.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    17.8   *
    17.9   * This code is free software; you can redistribute it and/or modify it
   17.10 @@ -300,7 +300,7 @@
   17.11       * @see GraphicsConfiguration
   17.12       * @see #getGraphicsConfiguration
   17.13       */
   17.14 -    transient GraphicsConfiguration graphicsConfig = null;
   17.15 +    private transient GraphicsConfiguration graphicsConfig = null;
   17.16  
   17.17      /**
   17.18       * A reference to a <code>BufferStrategy</code> object
   17.19 @@ -799,8 +799,24 @@
   17.20              }
   17.21      }
   17.22  
   17.23 +    // Whether this Component has had the background erase flag
   17.24 +    // specified via SunToolkit.disableBackgroundErase(). This is
   17.25 +    // needed in order to make this function work on X11 platforms,
   17.26 +    // where currently there is no chance to interpose on the creation
   17.27 +    // of the peer and therefore the call to XSetBackground.
   17.28 +    transient boolean backgroundEraseDisabled;
   17.29 +
   17.30      static {
   17.31          AWTAccessor.setComponentAccessor(new AWTAccessor.ComponentAccessor() {
   17.32 +            public void setBackgroundEraseDisabled(Component comp, boolean disabled) {
   17.33 +                comp.backgroundEraseDisabled = disabled;
   17.34 +            }
   17.35 +            public boolean getBackgroundEraseDisabled(Component comp) {
   17.36 +                return comp.backgroundEraseDisabled;
   17.37 +            }
   17.38 +            public Rectangle getBounds(Component comp) {
   17.39 +                return new Rectangle(comp.x, comp.y, comp.width, comp.height);
   17.40 +            }
   17.41              public void setMixingCutoutShape(Component comp, Shape shape) {
   17.42                  Region region = shape == null ?  null :
   17.43                      Region.getInstance(shape, null);
   17.44 @@ -829,6 +845,22 @@
   17.45                      }
   17.46                  }
   17.47              }
   17.48 +
   17.49 +            public void setGraphicsConfiguration(Component comp,
   17.50 +                    GraphicsConfiguration gc)
   17.51 +            {
   17.52 +                comp.setGraphicsConfiguration(gc);
   17.53 +            }
   17.54 +            public boolean requestFocus(Component comp, CausedFocusEvent.Cause cause) {
   17.55 +                return comp.requestFocus(cause);
   17.56 +            }
   17.57 +            public boolean canBeFocusOwner(Component comp) {
   17.58 +                return comp.canBeFocusOwner();
   17.59 +            }
   17.60 +
   17.61 +            public boolean isVisible_NoClientCode(Component comp) {
   17.62 +                return comp.isVisible_NoClientCode();
   17.63 +            }
   17.64          });
   17.65      }
   17.66  
   17.67 @@ -996,50 +1028,21 @@
   17.68       */
   17.69      public GraphicsConfiguration getGraphicsConfiguration() {
   17.70          synchronized(getTreeLock()) {
   17.71 -            if (graphicsConfig != null) {
   17.72 -                return graphicsConfig;
   17.73 -            } else if (getParent() != null) {
   17.74 -                return getParent().getGraphicsConfiguration();
   17.75 -            } else {
   17.76 -                return null;
   17.77 -            }
   17.78 +            return getGraphicsConfiguration_NoClientCode();
   17.79          }
   17.80      }
   17.81  
   17.82      final GraphicsConfiguration getGraphicsConfiguration_NoClientCode() {
   17.83 -        GraphicsConfiguration graphicsConfig = this.graphicsConfig;
   17.84 -        Container parent = this.parent;
   17.85 -        if (graphicsConfig != null) {
   17.86 -            return graphicsConfig;
   17.87 -        } else if (parent != null) {
   17.88 -            return parent.getGraphicsConfiguration_NoClientCode();
   17.89 -        } else {
   17.90 -            return null;
   17.91 -        }
   17.92 -    }
   17.93 -
   17.94 -    /**
   17.95 -     * Resets this <code>Component</code>'s
   17.96 -     * <code>GraphicsConfiguration</code> back to a default
   17.97 -     * value.  For most componenets, this is <code>null</code>.
   17.98 -     * Called from the Toolkit thread, so NO CLIENT CODE.
   17.99 -     */
  17.100 -    void resetGC() {
  17.101 +        return graphicsConfig;
  17.102 +    }
  17.103 +
  17.104 +    void setGraphicsConfiguration(GraphicsConfiguration gc) {
  17.105          synchronized(getTreeLock()) {
  17.106 -            graphicsConfig = null;
  17.107 -        }
  17.108 -    }
  17.109 -
  17.110 -    /*
  17.111 -     * Not called on Component, but needed for Canvas and Window
  17.112 -     */
  17.113 -    void setGCFromPeer() {
  17.114 -        synchronized(getTreeLock()) {
  17.115 -            if (peer != null) { // can't imagine how this will be false,
  17.116 -                                // but just in case
  17.117 -                graphicsConfig = peer.getGraphicsConfiguration();
  17.118 -            } else {
  17.119 -                graphicsConfig = null;
  17.120 +            graphicsConfig = gc;
  17.121 +
  17.122 +            ComponentPeer peer = getPeer();
  17.123 +            if (peer != null) {
  17.124 +                peer.updateGraphicsData(gc);
  17.125              }
  17.126          }
  17.127      }
  17.128 @@ -6663,23 +6666,7 @@
  17.129  
  17.130  
  17.131              // Update stacking order
  17.132 -            if (parent != null && parent.peer != null) {
  17.133 -                ContainerPeer parentContPeer = (ContainerPeer) parent.peer;
  17.134 -                // if our parent is lightweight and we are not
  17.135 -                // we should call restack on nearest heavyweight
  17.136 -                // container.
  17.137 -                if (parentContPeer instanceof LightweightPeer
  17.138 -                    && ! (peer instanceof LightweightPeer))
  17.139 -                {
  17.140 -                    Container hwParent = getNativeContainer();
  17.141 -                    if (hwParent != null && hwParent.peer != null) {
  17.142 -                        parentContPeer = (ContainerPeer) hwParent.peer;
  17.143 -                    }
  17.144 -                }
  17.145 -                if (parentContPeer.isRestackSupported()) {
  17.146 -                    parentContPeer.restack();
  17.147 -                }
  17.148 -            }
  17.149 +            peer.setZOrder(getHWPeerAboveMe());
  17.150  
  17.151              if (!isAddNotifyComplete) {
  17.152                  mixOnShowing();
  17.153 @@ -7170,8 +7157,8 @@
  17.154          requestFocusHelper(false, true);
  17.155      }
  17.156  
  17.157 -    void requestFocus(CausedFocusEvent.Cause cause) {
  17.158 -        requestFocusHelper(false, true, cause);
  17.159 +    boolean requestFocus(CausedFocusEvent.Cause cause) {
  17.160 +        return requestFocusHelper(false, true, cause);
  17.161      }
  17.162  
  17.163      /**
  17.164 @@ -7456,7 +7443,7 @@
  17.165              // sometimes most recent focus owner may be null, but focus owner is not
  17.166              // e.g. we reset most recent focus owner if user removes focus owner
  17.167              focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
  17.168 -            if (focusOwner != null && getContainingWindow(focusOwner) != window) {
  17.169 +            if (focusOwner != null && focusOwner.getContainingWindow() != window) {
  17.170                  focusOwner = null;
  17.171              }
  17.172          }
  17.173 @@ -8689,30 +8676,8 @@
  17.174       *         null, if component is not a part of window hierarchy
  17.175       */
  17.176      Window getContainingWindow() {
  17.177 -        return getContainingWindow(this);
  17.178 -    }
  17.179 -    /**
  17.180 -     * Returns the <code>Window</code> ancestor of the component <code>comp</code>.
  17.181 -     * @return Window ancestor of the component or component by itself if it is Window;
  17.182 -     *         null, if component is not a part of window hierarchy
  17.183 -     */
  17.184 -    static Window getContainingWindow(Component comp) {
  17.185 -        while (comp != null && !(comp instanceof Window)) {
  17.186 -            comp = comp.getParent();
  17.187 -        }
  17.188 -
  17.189 -        return (Window)comp;
  17.190 -    }
  17.191 -
  17.192 -
  17.193 -
  17.194 -
  17.195 -
  17.196 -
  17.197 -
  17.198 -
  17.199 -
  17.200 -
  17.201 +        return SunToolkit.getContainingWindow(this);
  17.202 +    }
  17.203  
  17.204      /**
  17.205       * Initialize JNI field and method IDs
  17.206 @@ -9575,6 +9540,27 @@
  17.207          return nextAbove < 0 ? -1 : nextAbove;
  17.208      }
  17.209  
  17.210 +    final ComponentPeer getHWPeerAboveMe() {
  17.211 +        checkTreeLock();
  17.212 +
  17.213 +        Container cont = getContainer();
  17.214 +        int indexAbove = getSiblingIndexAbove();
  17.215 +
  17.216 +        while (cont != null) {
  17.217 +            for (int i = indexAbove; i > -1; i--) {
  17.218 +                Component comp = cont.getComponent(i);
  17.219 +                if (comp != null && comp.isDisplayable() && !comp.isLightweight()) {
  17.220 +                    return comp.getPeer();
  17.221 +                }
  17.222 +            }
  17.223 +
  17.224 +            indexAbove = cont.getSiblingIndexAbove();
  17.225 +            cont = cont.getContainer();
  17.226 +        }
  17.227 +
  17.228 +        return null;
  17.229 +    }
  17.230 +
  17.231      final int getSiblingIndexBelow() {
  17.232          checkTreeLock();
  17.233          Container parent = getContainer();
  17.234 @@ -9827,4 +9813,29 @@
  17.235      }
  17.236  
  17.237      // ****************** END OF MIXING CODE ********************************
  17.238 +
  17.239 +    private static boolean doesClassImplement(Class cls, String interfaceName) {
  17.240 +        if (cls == null) return false;
  17.241 +
  17.242 +        for (Class c : cls.getInterfaces()) {
  17.243 +            if (c.getName().equals(interfaceName)) {
  17.244 +                return true;
  17.245 +            }
  17.246 +        }
  17.247 +        return doesClassImplement(cls.getSuperclass(), interfaceName);
  17.248 +    }
  17.249 +
  17.250 +    /**
  17.251 +     * Checks that the given object implements the given interface.
  17.252 +     * @param obj Object to be checked
  17.253 +     * @param interfaceName The name of the interface. Must be fully-qualified interface name.
  17.254 +     * @return true, if this object implements the given interface,
  17.255 +     *         false, otherwise, or if obj or interfaceName is null
  17.256 +     */
  17.257 +    static boolean doesImplement(Object obj, String interfaceName) {
  17.258 +        if (obj == null) return false;
  17.259 +        if (interfaceName == null) return false;
  17.260 +
  17.261 +        return doesClassImplement(obj.getClass(), interfaceName);
  17.262 +    }
  17.263  }
    18.1 --- a/src/share/classes/java/awt/Container.java	Tue Apr 14 00:05:07 2009 -0700
    18.2 +++ b/src/share/classes/java/awt/Container.java	Tue Apr 14 04:21:02 2009 -0700
    18.3 @@ -1,5 +1,5 @@
    18.4  /*
    18.5 - * Copyright 1995-2008 Sun Microsystems, Inc.  All Rights Reserved.
    18.6 + * Copyright 1995-2009 Sun Microsystems, Inc.  All Rights Reserved.
    18.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    18.8   *
    18.9   * This code is free software; you can redistribute it and/or modify it
   18.10 @@ -167,6 +167,9 @@
   18.11      transient int listeningBoundsChildren;
   18.12      transient int descendantsCount;
   18.13  
   18.14 +    /* Non-opaque window support -- see Window.setLayersOpaque */
   18.15 +    transient Color preserveBackgroundColor = null;
   18.16 +
   18.17      /**
   18.18       * JDK 1.1 serialVersionUID
   18.19       */
   18.20 @@ -267,9 +270,13 @@
   18.21  
   18.22      /**
   18.23       * Gets the number of components in this panel.
   18.24 +     * <p>
   18.25 +     * Note: This method should be called under AWT tree lock.
   18.26 +     *
   18.27       * @return    the number of components in this panel.
   18.28       * @see       #getComponent
   18.29       * @since     JDK1.1
   18.30 +     * @see Component#getTreeLock()
   18.31       */
   18.32      public int getComponentCount() {
   18.33          return countComponents();
   18.34 @@ -281,43 +288,65 @@
   18.35       */
   18.36      @Deprecated
   18.37      public int countComponents() {
   18.38 -        synchronized (getTreeLock()) {
   18.39 -            return component.size();
   18.40 -        }
   18.41 +        // This method is not synchronized under AWT tree lock.
   18.42 +        // Instead, the calling code is responsible for the
   18.43 +        // synchronization. See 6784816 for details.
   18.44 +        return component.size();
   18.45      }
   18.46  
   18.47      /**
   18.48       * Gets the nth component in this container.
   18.49 +     * <p>
   18.50 +     * Note: This method should be called under AWT tree lock.
   18.51 +     *
   18.52       * @param      n   the index of the component to get.
   18.53       * @return     the n<sup>th</sup> component in this container.
   18.54       * @exception  ArrayIndexOutOfBoundsException
   18.55       *                 if the n<sup>th</sup> value does not exist.
   18.56 +     * @see Component#getTreeLock()
   18.57       */
   18.58      public Component getComponent(int n) {
   18.59 -        synchronized (getTreeLock()) {
   18.60 -            if ((n < 0) || (n >= component.size())) {
   18.61 -                throw new ArrayIndexOutOfBoundsException("No such child: " + n);
   18.62 -            }
   18.63 +        // This method is not synchronized under AWT tree lock.
   18.64 +        // Instead, the calling code is responsible for the
   18.65 +        // synchronization. See 6784816 for details.
   18.66 +        try {
   18.67              return component.get(n);
   18.68 +        } catch (IndexOutOfBoundsException z) {
   18.69 +            throw new ArrayIndexOutOfBoundsException("No such child: " + n);
   18.70          }
   18.71      }
   18.72  
   18.73      /**
   18.74       * Gets all the components in this container.
   18.75 +     * <p>
   18.76 +     * Note: This method should be called under AWT tree lock.
   18.77 +     *
   18.78       * @return    an array of all the components in this container.
   18.79 +     * @see Component#getTreeLock()
   18.80       */
   18.81      public Component[] getComponents() {
   18.82 +        // This method is not synchronized under AWT tree lock.
   18.83 +        // Instead, the calling code is responsible for the
   18.84 +        // synchronization. See 6784816 for details.
   18.85          return getComponents_NoClientCode();
   18.86      }
   18.87 +
   18.88      // NOTE: This method may be called by privileged threads.
   18.89      //       This functionality is implemented in a package-private method
   18.90      //       to insure that it cannot be overridden by client subclasses.
   18.91      //       DO NOT INVOKE CLIENT CODE ON THIS THREAD!
   18.92      final Component[] getComponents_NoClientCode() {
   18.93 +        return component.toArray(EMPTY_ARRAY);
   18.94 +    }
   18.95 +
   18.96 +    /*
   18.97 +     * Wrapper for getComponents() method with a proper synchronization.
   18.98 +     */
   18.99 +    Component[] getComponentsSync() {
  18.100          synchronized (getTreeLock()) {
  18.101 -            return component.toArray(EMPTY_ARRAY);
  18.102 +            return getComponents();
  18.103          }
  18.104 -    } // getComponents_NoClientCode()
  18.105 +    }
  18.106  
  18.107      /**
  18.108       * Determines the insets of this container, which indicate the size
  18.109 @@ -503,6 +532,9 @@
  18.110              adjustDescendants(-(comp.countHierarchyMembers()));
  18.111  
  18.112              comp.parent = null;
  18.113 +            if (needRemoveNotify) {
  18.114 +                comp.setGraphicsConfiguration(null);
  18.115 +            }
  18.116              component.remove(index);
  18.117  
  18.118              invalidateIfValid();
  18.119 @@ -643,10 +675,7 @@
  18.120              // each HW descendant independently.
  18.121              return !comp.peer.isReparentSupported();
  18.122          } else {
  18.123 -            // if container didn't change we still might need to recreate component's window as
  18.124 -            // changes to zorder should be reflected in native window stacking order and it might
  18.125 -            // not be supported by the platform. This is important only for heavyweight child
  18.126 -            return !((ContainerPeer)(newNativeContainer.peer)).isRestackSupported();
  18.127 +            return false;
  18.128          }
  18.129      }
  18.130  
  18.131 @@ -786,6 +815,7 @@
  18.132                  component.add(index, comp);
  18.133              }
  18.134              comp.parent = this;
  18.135 +            comp.setGraphicsConfiguration(getGraphicsConfiguration());
  18.136  
  18.137              adjustListeningChildren(AWTEvent.HIERARCHY_EVENT_MASK,
  18.138                                      comp.numListening(AWTEvent.HIERARCHY_EVENT_MASK));
  18.139 @@ -802,11 +832,6 @@
  18.140          if (peer != null) {
  18.141              if (comp.peer == null) { // Remove notify was called or it didn't have peer - create new one
  18.142                  comp.addNotify();
  18.143 -                // New created peer creates component on top of the stacking order
  18.144 -                Container newNativeContainer = getHeavyweightContainer();
  18.145 -                if (((ContainerPeer)newNativeContainer.getPeer()).isRestackSupported()) {
  18.146 -                    ((ContainerPeer)newNativeContainer.getPeer()).restack();
  18.147 -                }
  18.148              } else { // Both container and child have peers, it means child peer should be reparented.
  18.149                  // In both cases we need to reparent native widgets.
  18.150                  Container newNativeContainer = getHeavyweightContainer();
  18.151 @@ -815,13 +840,8 @@
  18.152                      // Native container changed - need to reparent native widgets
  18.153                      newNativeContainer.reparentChild(comp);
  18.154                  }
  18.155 -                // If component still has a peer and it is either container or heavyweight
  18.156 -                // and restack is supported we have to restack native windows since order might have changed
  18.157 -                if ((!comp.isLightweight() || (comp instanceof Container))
  18.158 -                    && ((ContainerPeer)newNativeContainer.getPeer()).isRestackSupported())
  18.159 -                {
  18.160 -                    ((ContainerPeer)newNativeContainer.getPeer()).restack();
  18.161 -                }
  18.162 +                comp.peer.setZOrder(comp.getHWPeerAboveMe());
  18.163 +
  18.164                  if (!comp.isLightweight() && isLightweight()) {
  18.165                      // If component is heavyweight and one of the containers is lightweight
  18.166                      // the location of the component should be fixed.
  18.167 @@ -1034,9 +1054,9 @@
  18.168              }
  18.169              checkAddToSelf(comp);
  18.170              checkNotAWindow(comp);
  18.171 -        if (thisGC != null) {
  18.172 -            comp.checkGD(thisGC.getDevice().getIDstring());
  18.173 -        }
  18.174 +            if (thisGC != null) {
  18.175 +                comp.checkGD(thisGC.getDevice().getIDstring());
  18.176 +            }
  18.177  
  18.178              /* Reparent the component and tidy up the tree's state. */
  18.179              if (comp.parent != null) {
  18.180 @@ -1053,6 +1073,7 @@
  18.181                  component.add(index, comp);
  18.182              }
  18.183              comp.parent = this;
  18.184 +            comp.setGraphicsConfiguration(thisGC);
  18.185  
  18.186              adjustListeningChildren(AWTEvent.HIERARCHY_EVENT_MASK,
  18.187                  comp.numListening(AWTEvent.HIERARCHY_EVENT_MASK));
  18.188 @@ -1091,6 +1112,19 @@
  18.189          }
  18.190      }
  18.191  
  18.192 +    @Override
  18.193 +    void setGraphicsConfiguration(GraphicsConfiguration gc) {
  18.194 +        synchronized (getTreeLock()) {
  18.195 +            super.setGraphicsConfiguration(gc);
  18.196 +
  18.197 +            for (Component comp : component) {
  18.198 +                if (comp != null) {
  18.199 +                    comp.setGraphicsConfiguration(gc);
  18.200 +                }
  18.201 +            }
  18.202 +        }
  18.203 +    }
  18.204 +
  18.205      /**
  18.206       * Checks that all Components that this Container contains are on
  18.207       * the same GraphicsDevice as this Container.  If not, throws an
  18.208 @@ -1148,6 +1182,7 @@
  18.209  
  18.210              comp.parent = null;
  18.211              component.remove(index);
  18.212 +            comp.setGraphicsConfiguration(null);
  18.213  
  18.214              invalidateIfValid();
  18.215              if (containerListener != null ||
  18.216 @@ -1224,6 +1259,7 @@
  18.217                      layoutMgr.removeLayoutComponent(comp);
  18.218                  }
  18.219                  comp.parent = null;
  18.220 +                comp.setGraphicsConfiguration(null);
  18.221                  if (containerListener != null ||
  18.222                     (eventMask & AWTEvent.CONTAINER_EVENT_MASK) != 0 ||
  18.223                      Toolkit.enabledOnToolkit(AWTEvent.CONTAINER_EVENT_MASK)) {
  18.224 @@ -1339,7 +1375,7 @@
  18.225      }
  18.226  
  18.227      private int getListenersCount(int id, boolean enabledOnToolkit) {
  18.228 -        assert Thread.holdsLock(getTreeLock());
  18.229 +        checkTreeLock();
  18.230          if (enabledOnToolkit) {
  18.231              return descendantsCount;
  18.232          }
  18.233 @@ -1357,7 +1393,7 @@
  18.234      final int createHierarchyEvents(int id, Component changed,
  18.235          Container changedParent, long changeFlags, boolean enabledOnToolkit)
  18.236      {
  18.237 -        assert Thread.holdsLock(getTreeLock());
  18.238 +        checkTreeLock();
  18.239          int listeners = getListenersCount(id, enabledOnToolkit);
  18.240  
  18.241          for (int count = listeners, i = 0; count > 0; i++) {
  18.242 @@ -1372,7 +1408,7 @@
  18.243      final void createChildHierarchyEvents(int id, long changeFlags,
  18.244          boolean enabledOnToolkit)
  18.245      {
  18.246 -        assert Thread.holdsLock(getTreeLock());
  18.247 +        checkTreeLock();
  18.248          if (component.isEmpty()) {
  18.249              return;
  18.250          }
  18.251 @@ -1507,6 +1543,7 @@
  18.252       * @see #validate
  18.253       */
  18.254      protected void validateTree() {
  18.255 +        checkTreeLock();
  18.256          if (!isValid()) {
  18.257              if (peer instanceof ContainerPeer) {
  18.258                  ((ContainerPeer)peer).beginLayout();
  18.259 @@ -1783,7 +1820,7 @@
  18.260              // super.paint(); -- Don't bother, since it's a NOP.
  18.261  
  18.262              GraphicsCallback.PaintCallback.getInstance().
  18.263 -                runComponents(component.toArray(EMPTY_ARRAY), g, GraphicsCallback.LIGHTWEIGHTS);
  18.264 +                runComponents(getComponentsSync(), g, GraphicsCallback.LIGHTWEIGHTS);
  18.265          }
  18.266      }
  18.267  
  18.268 @@ -1838,7 +1875,7 @@
  18.269              }
  18.270  
  18.271              GraphicsCallback.PrintCallback.getInstance().
  18.272 -                runComponents(component.toArray(EMPTY_ARRAY), g, GraphicsCallback.LIGHTWEIGHTS);
  18.273 +                runComponents(getComponentsSync(), g, GraphicsCallback.LIGHTWEIGHTS);
  18.274          }
  18.275      }
  18.276  
  18.277 @@ -1851,7 +1888,7 @@
  18.278      public void paintComponents(Graphics g) {
  18.279          if (isShowing()) {
  18.280              GraphicsCallback.PaintAllCallback.getInstance().
  18.281 -                runComponents(component.toArray(EMPTY_ARRAY), g, GraphicsCallback.TWO_PASSES);
  18.282 +                runComponents(getComponentsSync(), g, GraphicsCallback.TWO_PASSES);
  18.283          }
  18.284      }
  18.285  
  18.286 @@ -1873,8 +1910,8 @@
  18.287      void paintHeavyweightComponents(Graphics g) {
  18.288          if (isShowing()) {
  18.289              GraphicsCallback.PaintHeavyweightComponentsCallback.getInstance().
  18.290 -                runComponents(component.toArray(EMPTY_ARRAY), g, GraphicsCallback.LIGHTWEIGHTS |
  18.291 -                                            GraphicsCallback.HEAVYWEIGHTS);
  18.292 +                runComponents(getComponentsSync(), g,
  18.293 +                              GraphicsCallback.LIGHTWEIGHTS | GraphicsCallback.HEAVYWEIGHTS);
  18.294          }
  18.295      }
  18.296  
  18.297 @@ -1887,7 +1924,7 @@
  18.298      public void printComponents(Graphics g) {
  18.299          if (isShowing()) {
  18.300              GraphicsCallback.PrintAllCallback.getInstance().
  18.301 -                runComponents(component.toArray(EMPTY_ARRAY), g, GraphicsCallback.TWO_PASSES);
  18.302 +                runComponents(getComponentsSync(), g, GraphicsCallback.TWO_PASSES);
  18.303          }
  18.304      }
  18.305  
  18.306 @@ -1909,8 +1946,8 @@
  18.307      void printHeavyweightComponents(Graphics g) {
  18.308          if (isShowing()) {
  18.309              GraphicsCallback.PrintHeavyweightComponentsCallback.getInstance().
  18.310 -                runComponents(component.toArray(EMPTY_ARRAY), g, GraphicsCallback.LIGHTWEIGHTS |
  18.311 -                                            GraphicsCallback.HEAVYWEIGHTS);
  18.312 +                runComponents(getComponentsSync(), g,
  18.313 +                              GraphicsCallback.LIGHTWEIGHTS | GraphicsCallback.HEAVYWEIGHTS);
  18.314          }
  18.315      }
  18.316  
  18.317 @@ -2460,9 +2497,7 @@
  18.318       * @since 1.2
  18.319       */
  18.320      public Component findComponentAt(int x, int y) {
  18.321 -        synchronized (getTreeLock()) {
  18.322 -            return findComponentAt(x, y, true);
  18.323 -        }
  18.324 +        return findComponentAt(x, y, true);
  18.325      }
  18.326  
  18.327      /**
  18.328 @@ -2475,58 +2510,60 @@
  18.329       * The addition of this feature is temporary, pending the
  18.330       * adoption of new, public API which exports this feature.
  18.331       */
  18.332 -    final Component findComponentAt(int x, int y, boolean ignoreEnabled)
  18.333 -    {
  18.334 -        if (isRecursivelyVisible()){
  18.335 -            return findComponentAtImpl(x, y, ignoreEnabled);
  18.336 +    final Component findComponentAt(int x, int y, boolean ignoreEnabled) {
  18.337 +        synchronized (getTreeLock()) {
  18.338 +            if (isRecursivelyVisible()){
  18.339 +                return findComponentAtImpl(x, y, ignoreEnabled);
  18.340 +            }
  18.341          }
  18.342          return null;
  18.343      }
  18.344  
  18.345      final Component findComponentAtImpl(int x, int y, boolean ignoreEnabled){
  18.346 +        checkTreeLock();
  18.347 +
  18.348          if (!(contains(x, y) && visible && (ignoreEnabled || enabled))) {
  18.349              return null;
  18.350          }
  18.351  
  18.352          // Two passes: see comment in sun.awt.SunGraphicsCallback
  18.353 -        synchronized (getTreeLock()) {
  18.354 -            for (int i = 0; i < component.size(); i++) {
  18.355 -                Component comp = component.get(i);
  18.356 -                if (comp != null &&
  18.357 -                    !(comp.peer instanceof LightweightPeer)) {
  18.358 -                    if (comp instanceof Container) {
  18.359 -                        comp = ((Container)comp).findComponentAtImpl(x - comp.x,
  18.360 -                                                                     y - comp.y,
  18.361 -                                                                     ignoreEnabled);
  18.362 -                    } else {
  18.363 -                        comp = comp.locate(x - comp.x, y - comp.y);
  18.364 -                    }
  18.365 -                    if (comp != null && comp.visible &&
  18.366 -                        (ignoreEnabled || comp.enabled))
  18.367 -                        {
  18.368 -                            return comp;
  18.369 -                        }
  18.370 +        for (int i = 0; i < component.size(); i++) {
  18.371 +            Component comp = component.get(i);
  18.372 +            if (comp != null &&
  18.373 +                !(comp.peer instanceof LightweightPeer)) {
  18.374 +                if (comp instanceof Container) {
  18.375 +                    comp = ((Container)comp).findComponentAtImpl(x - comp.x,
  18.376 +                                                                 y - comp.y,
  18.377 +                                                                 ignoreEnabled);
  18.378 +                } else {
  18.379 +                    comp = comp.locate(x - comp.x, y - comp.y);
  18.380                  }
  18.381 -            }
  18.382 -            for (int i = 0; i < component.size(); i++) {
  18.383 -                Component comp = component.get(i);
  18.384 -                if (comp != null &&
  18.385 -                    comp.peer instanceof LightweightPeer) {
  18.386 -                    if (comp instanceof Container) {
  18.387 -                        comp = ((Container)comp).findComponentAtImpl(x - comp.x,
  18.388 -                                                                     y - comp.y,
  18.389 -                                                                     ignoreEnabled);
  18.390 -                    } else {
  18.391 -                        comp = comp.locate(x - comp.x, y - comp.y);
  18.392 -                    }
  18.393 -                    if (comp != null && comp.visible &&
  18.394 -                        (ignoreEnabled || comp.enabled))
  18.395 -                        {
  18.396 -                            return comp;
  18.397 -                        }
  18.398 +                if (comp != null && comp.visible &&
  18.399 +                    (ignoreEnabled || comp.enabled))
  18.400 +                {
  18.401 +                    return comp;
  18.402                  }
  18.403              }
  18.404          }
  18.405 +        for (int i = 0; i < component.size(); i++) {
  18.406 +            Component comp = component.get(i);
  18.407 +            if (comp != null &&
  18.408 +                comp.peer instanceof LightweightPeer) {
  18.409 +                if (comp instanceof Container) {
  18.410 +                    comp = ((Container)comp).findComponentAtImpl(x - comp.x,
  18.411 +                                                                 y - comp.y,
  18.412 +                                                                 ignoreEnabled);
  18.413 +                } else {
  18.414 +                    comp = comp.locate(x - comp.x, y - comp.y);
  18.415 +                }
  18.416 +                if (comp != null && comp.visible &&
  18.417 +                    (ignoreEnabled || comp.enabled))
  18.418 +                {
  18.419 +                    return comp;
  18.420 +                }
  18.421 +            }
  18.422 +        }
  18.423 +
  18.424          return this;
  18.425      }
  18.426  
  18.427 @@ -2584,13 +2621,6 @@
  18.428              for (int i = 0; i < component.size(); i++) {
  18.429                  component.get(i).addNotify();
  18.430              }
  18.431 -            // Update stacking order if native platform allows
  18.432 -            ContainerPeer cpeer = (ContainerPeer)peer;
  18.433 -            if (cpeer.isRestackSupported()) {
  18.434 -                cpeer.restack();
  18.435 -            }
  18.436 -
  18.437 -
  18.438          }
  18.439      }
  18.440  
  18.441 @@ -3488,7 +3518,7 @@
  18.442      private void writeObject(ObjectOutputStream s) throws IOException {
  18.443          ObjectOutputStream.PutField f = s.putFields();
  18.444          f.put("ncomponents", component.size());
  18.445 -        f.put("component", component.toArray(EMPTY_ARRAY));
  18.446 +        f.put("component", getComponentsSync());
  18.447          f.put("layoutMgr", layoutMgr);
  18.448          f.put("dispatcher", dispatcher);
  18.449          f.put("maxSize", maxSize);
    19.1 --- a/src/share/classes/java/awt/DefaultKeyboardFocusManager.java	Tue Apr 14 00:05:07 2009 -0700
    19.2 +++ b/src/share/classes/java/awt/DefaultKeyboardFocusManager.java	Tue Apr 14 04:21:02 2009 -0700
    19.3 @@ -479,7 +479,7 @@
    19.4                  // that a Component outside of the focused Window receives a
    19.5                  // FOCUS_GAINED event. We synthesize a WINDOW_GAINED_FOCUS
    19.6                  // event in that case.
    19.7 -                final Window newFocusedWindow = Component.getContainingWindow(newFocusOwner);
    19.8 +                final Window newFocusedWindow = SunToolkit.getContainingWindow(newFocusOwner);
    19.9                  final Window currentFocusedWindow = getGlobalFocusedWindow();
   19.10                  if (newFocusedWindow != null &&
   19.11                      newFocusedWindow != currentFocusedWindow)
    20.1 --- a/src/share/classes/java/awt/Dialog.java	Tue Apr 14 00:05:07 2009 -0700
    20.2 +++ b/src/share/classes/java/awt/Dialog.java	Tue Apr 14 04:21:02 2009 -0700
    20.3 @@ -1226,7 +1226,7 @@
    20.4          synchronized (getTreeLock()) {
    20.5              if (keepBlockingEDT) {
    20.6                  keepBlockingEDT = false;
    20.7 -                PeerEvent wakingEvent = new PeerEvent(this, new WakingRunnable(), PeerEvent.PRIORITY_EVENT);
    20.8 +                PeerEvent wakingEvent = new PeerEvent(getToolkit(), new WakingRunnable(), PeerEvent.PRIORITY_EVENT);
    20.9                  AppContext curAppContext = AppContext.getAppContext();
   20.10                  if (showAppContext != curAppContext) {
   20.11                      // Wake up event dispatch thread on which the dialog was
    21.1 --- a/src/share/classes/java/awt/Frame.java	Tue Apr 14 00:05:07 2009 -0700
    21.2 +++ b/src/share/classes/java/awt/Frame.java	Tue Apr 14 04:21:02 2009 -0700
    21.3 @@ -36,6 +36,7 @@
    21.4  import java.io.IOException;
    21.5  import sun.awt.AppContext;
    21.6  import sun.awt.SunToolkit;
    21.7 +import sun.awt.AWTAccessor;
    21.8  import java.lang.ref.WeakReference;
    21.9  import javax.accessibility.*;
   21.10  
   21.11 @@ -738,11 +739,15 @@
   21.12       * @since   1.4
   21.13       * @see java.awt.Window#addWindowStateListener
   21.14       */
   21.15 -    public synchronized void setExtendedState(int state) {
   21.16 +    public void setExtendedState(int state) {
   21.17          if ( !isFrameStateSupported( state ) ) {
   21.18              return;
   21.19          }
   21.20 -        this.state = state;
   21.21 +        synchronized (getObjectLock()) {
   21.22 +            this.state = state;
   21.23 +        }
   21.24 +        // peer.setState must be called outside of object lock
   21.25 +        // synchronization block to avoid possible deadlock
   21.26          FramePeer peer = (FramePeer)this.peer;
   21.27          if (peer != null) {
   21.28              peer.setState(state);
   21.29 @@ -804,12 +809,27 @@
   21.30       * @see     #setExtendedState(int)
   21.31       * @since 1.4
   21.32       */
   21.33 -    public synchronized int getExtendedState() {
   21.34 -        FramePeer peer = (FramePeer)this.peer;
   21.35 -        if (peer != null) {
   21.36 -            state = peer.getState();
   21.37 +    public int getExtendedState() {
   21.38 +        synchronized (getObjectLock()) {
   21.39 +            return state;
   21.40          }
   21.41 -        return state;
   21.42 +    }
   21.43 +
   21.44 +    static {
   21.45 +        AWTAccessor.setFrameAccessor(
   21.46 +            new AWTAccessor.FrameAccessor() {
   21.47 +                public void setExtendedState(Frame frame, int state) {
   21.48 +                    synchronized(frame.getObjectLock()) {
   21.49 +                        frame.state = state;
   21.50 +                    }
   21.51 +                }
   21.52 +                public int getExtendedState(Frame frame) {
   21.53 +                    synchronized(frame.getObjectLock()) {
   21.54 +                        return frame.state;
   21.55 +                    }
   21.56 +                }
   21.57 +            }
   21.58 +        );
   21.59      }
   21.60  
   21.61      /**
   21.62 @@ -967,7 +987,7 @@
   21.63          if (resizable) {
   21.64              str += ",resizable";
   21.65          }
   21.66 -        getExtendedState();     // sync with peer
   21.67 +        int state = getExtendedState();
   21.68          if (state == NORMAL) {
   21.69              str += ",normal";
   21.70          }
    22.1 --- a/src/share/classes/java/awt/GraphicsConfiguration.java	Tue Apr 14 00:05:07 2009 -0700
    22.2 +++ b/src/share/classes/java/awt/GraphicsConfiguration.java	Tue Apr 14 04:21:02 2009 -0700
    22.3 @@ -1,5 +1,5 @@
    22.4  /*
    22.5 - * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
    22.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    22.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    22.8   *
    22.9   * This code is free software; you can redistribute it and/or modify it
   22.10 @@ -434,4 +434,20 @@
   22.11          }
   22.12          return defaultImageCaps;
   22.13      }
   22.14 +
   22.15 +    /**
   22.16 +     * Returns whether this GraphicsConfiguration supports
   22.17 +     * the {@link GraphicsDevice.WindowTranslucency#PERPIXEL_TRANSLUCENT
   22.18 +     * PERPIXEL_TRANSLUCENT} kind of translucency.
   22.19 +     *
   22.20 +     * @param gc GraphicsConfiguration
   22.21 +     * @throws NullPointerException if the gc argument is null
   22.22 +     * @return whether the given GraphicsConfiguration supports
   22.23 +     *         the translucency effects.
   22.24 +     * @see Window#setBackground(Color)
   22.25 +     */
   22.26 +    /*public */boolean isTranslucencyCapable() {
   22.27 +        // Overridden in subclasses
   22.28 +        return false;
   22.29      }
   22.30 +}
    23.1 --- a/src/share/classes/java/awt/GraphicsDevice.java	Tue Apr 14 00:05:07 2009 -0700
    23.2 +++ b/src/share/classes/java/awt/GraphicsDevice.java	Tue Apr 14 04:21:02 2009 -0700
    23.3 @@ -1,5 +1,5 @@
    23.4  /*
    23.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    23.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    23.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    23.8   *
    23.9   * This code is free software; you can redistribute it and/or modify it
   23.10 @@ -27,7 +27,10 @@
   23.11  package java.awt;
   23.12  
   23.13  import java.awt.image.ColorModel;
   23.14 +
   23.15 +import sun.awt.AWTAccessor;
   23.16  import sun.awt.AppContext;
   23.17 +import sun.awt.SunToolkit;
   23.18  
   23.19  /**
   23.20   * The <code>GraphicsDevice</code> class describes the graphics devices
   23.21 @@ -109,6 +112,31 @@
   23.22       */
   23.23      public final static int TYPE_IMAGE_BUFFER           = 2;
   23.24  
   23.25 +    /** Kinds of translucency supported by the underlying system.
   23.26 +     *  @see #isTranslucencySupported
   23.27 +     */
   23.28 +    /*public */static enum WindowTranslucency {
   23.29 +        /**
   23.30 +         * Represents support in the underlying system for windows each pixel
   23.31 +         * of which is guaranteed to be either completely opaque, with
   23.32 +         * an alpha value of 1.0, or completely transparent, with an alpha
   23.33 +         * value of 0.0.
   23.34 +         */
   23.35 +        PERPIXEL_TRANSPARENT,
   23.36 +        /**
   23.37 +         * Represents support in the underlying system for windows all of
   23.38 +         * the pixels of which have the same alpha value between or including
   23.39 +         * 0.0 and 1.0.
   23.40 +         */
   23.41 +        TRANSLUCENT,
   23.42 +        /**
   23.43 +         * Represents support in the underlying system for windows that
   23.44 +         * contain or might contain pixels with arbitrary alpha values
   23.45 +         * between and including 0.0 and 1.0.
   23.46 +         */
   23.47 +        PERPIXEL_TRANSLUCENT;
   23.48 +    }
   23.49 +
   23.50      /**
   23.51       * Returns the type of this <code>GraphicsDevice</code>.
   23.52       * @return the type of this <code>GraphicsDevice</code>, which can
   23.53 @@ -235,6 +263,21 @@
   23.54       * @since 1.4
   23.55       */
   23.56      public void setFullScreenWindow(Window w) {
   23.57 +        if (w != null) {
   23.58 +            //XXX: The actions should be documented in some non-update release.
   23.59 +            /*
   23.60 +            if (w.getShape() != null) {
   23.61 +                w.setShape(w, null);
   23.62 +            }
   23.63 +            if (!w.isOpaque()) {
   23.64 +                w.setOpaque(false);
   23.65 +            }
   23.66 +            if (w.getOpacity() < 1.0f) {
   23.67 +                w.setOpacity(1.0f);
   23.68 +            }
   23.69 +            */
   23.70 +        }
   23.71 +
   23.72          if (fullScreenWindow != null && windowedModeBounds != null) {
   23.73              // if the window went into fs mode before it was realized it may
   23.74              // have (0,0) dimensions
   23.75 @@ -424,4 +467,94 @@
   23.76      public int getAvailableAcceleratedMemory() {
   23.77          return -1;
   23.78      }
   23.79 +
   23.80 +    /**
   23.81 +     * Returns whether the given level of translucency is supported
   23.82 +     * this graphics device.
   23.83 +     *
   23.84 +     * @param translucencyKind a kind of translucency support
   23.85 +     * @return whether the given translucency kind is supported
   23.86 +     */
   23.87 +    /*public */boolean isWindowTranslucencySupported(WindowTranslucency translucencyKind) {
   23.88 +        switch (translucencyKind) {
   23.89 +            case PERPIXEL_TRANSPARENT:
   23.90 +                return isWindowShapingSupported();
   23.91 +            case TRANSLUCENT:
   23.92 +                return isWindowOpacitySupported();
   23.93 +            case PERPIXEL_TRANSLUCENT:
   23.94 +                return isWindowPerpixelTranslucencySupported();
   23.95 +        }
   23.96 +        return false;
   23.97 +    }
   23.98 +
   23.99 +    /**
  23.100 +     * Returns whether the windowing system supports changing the shape
  23.101 +     * of top-level windows.
  23.102 +     * Note that this method may sometimes return true, but the native
  23.103 +     * windowing system may still not support the concept of
  23.104 +     * shaping (due to the bugs in the windowing system).
  23.105 +     */
  23.106 +    static boolean isWindowShapingSupported() {
  23.107 +        Toolkit curToolkit = Toolkit.getDefaultToolkit();
  23.108 +        if (!(curToolkit instanceof SunToolkit)) {
  23.109 +            return false;
  23.110 +        }
  23.111 +        return ((SunToolkit)curToolkit).isWindowShapingSupported();
  23.112 +    }
  23.113 +
  23.114 +    /**
  23.115 +     * Returns whether the windowing system supports changing the opacity
  23.116 +     * value of top-level windows.
  23.117 +     * Note that this method may sometimes return true, but the native
  23.118 +     * windowing system may still not support the concept of
  23.119 +     * translucency (due to the bugs in the windowing system).
  23.120 +     */
  23.121 +    static boolean isWindowOpacitySupported() {
  23.122 +        Toolkit curToolkit = Toolkit.getDefaultToolkit();
  23.123 +        if (!(curToolkit instanceof SunToolkit)) {
  23.124 +            return false;
  23.125 +        }
  23.126 +        return ((SunToolkit)curToolkit).isWindowOpacitySupported();
  23.127 +    }
  23.128 +
  23.129 +    boolean isWindowPerpixelTranslucencySupported() {
  23.130 +        /*
  23.131 +         * Per-pixel alpha is supported if all the conditions are TRUE:
  23.132 +         *    1. The toolkit is a sort of SunToolkit
  23.133 +         *    2. The toolkit supports translucency in general
  23.134 +         *        (isWindowTranslucencySupported())
  23.135 +         *    3. There's at least one translucency-capable
  23.136 +         *        GraphicsConfiguration
  23.137 +         */
  23.138 +        Toolkit curToolkit = Toolkit.getDefaultToolkit();
  23.139 +        if (!(curToolkit instanceof SunToolkit)) {
  23.140 +            return false;
  23.141 +        }
  23.142 +        if (!((SunToolkit)curToolkit).isWindowTranslucencySupported()) {
  23.143 +            return false;
  23.144 +        }
  23.145 +
  23.146 +        // TODO: cache translucency capable GC
  23.147 +        return getTranslucencyCapableGC() != null;
  23.148 +    }
  23.149 +
  23.150 +    GraphicsConfiguration getTranslucencyCapableGC() {
  23.151 +        // If the default GC supports translucency return true.
  23.152 +        // It is important to optimize the verification this way,
  23.153 +        // see CR 6661196 for more details.
  23.154 +        GraphicsConfiguration defaultGC = getDefaultConfiguration();
  23.155 +        if (defaultGC.isTranslucencyCapable()) {
  23.156 +            return defaultGC;
  23.157 +        }
  23.158 +
  23.159 +        // ... otherwise iterate through all the GCs.
  23.160 +        GraphicsConfiguration[] configs = getConfigurations();
  23.161 +        for (int j = 0; j < configs.length; j++) {
  23.162 +            if (configs[j].isTranslucencyCapable()) {
  23.163 +                return configs[j];
  23.164 +            }
  23.165 +        }
  23.166 +
  23.167 +        return null;
  23.168 +    }
  23.169  }
    24.1 --- a/src/share/classes/java/awt/KeyboardFocusManager.java	Tue Apr 14 00:05:07 2009 -0700
    24.2 +++ b/src/share/classes/java/awt/KeyboardFocusManager.java	Tue Apr 14 04:21:02 2009 -0700
    24.3 @@ -61,6 +61,7 @@
    24.4  import sun.awt.SunToolkit;
    24.5  import sun.awt.CausedFocusEvent;
    24.6  import sun.awt.KeyboardFocusManagerPeerProvider;
    24.7 +import sun.awt.AWTAccessor;
    24.8  
    24.9  /**
   24.10   * The KeyboardFocusManager is responsible for managing the active and focused
   24.11 @@ -118,6 +119,32 @@
   24.12          if (!GraphicsEnvironment.isHeadless()) {
   24.13              initIDs();
   24.14          }
   24.15 +        AWTAccessor.setKeyboardFocusManagerAccessor(
   24.16 +            new AWTAccessor.KeyboardFocusManagerAccessor() {
   24.17 +                public int shouldNativelyFocusHeavyweight(Component heavyweight,
   24.18 +                                                   Component descendant,
   24.19 +                                                   boolean temporary,
   24.20 +                                                   boolean focusedWindowChangeAllowed,
   24.21 +                                                   long time,
   24.22 +                                                   CausedFocusEvent.Cause cause)
   24.23 +                {
   24.24 +                    return KeyboardFocusManager.shouldNativelyFocusHeavyweight(
   24.25 +                        heavyweight, descendant, temporary, focusedWindowChangeAllowed, time, cause);
   24.26 +                }
   24.27 +                public boolean processSynchronousLightweightTransfer(Component heavyweight,
   24.28 +                                                              Component descendant,
   24.29 +                                                              boolean temporary,
   24.30 +                                                              boolean focusedWindowChangeAllowed,
   24.31 +                                                              long time)
   24.32 +                {
   24.33 +                    return KeyboardFocusManager.processSynchronousLightweightTransfer(
   24.34 +                        heavyweight, descendant, temporary, focusedWindowChangeAllowed, time);
   24.35 +                }
   24.36 +                public void removeLastFocusRequest(Component heavyweight) {
   24.37 +                    KeyboardFocusManager.removeLastFocusRequest(heavyweight);
   24.38 +                }
   24.39 +            }
   24.40 +        );
   24.41      }
   24.42  
   24.43      transient KeyboardFocusManagerPeer peer;
   24.44 @@ -2208,7 +2235,7 @@
   24.45                                                    boolean temporary, boolean focusedWindowChangeAllowed,
   24.46                                                    long time)
   24.47      {
   24.48 -        Window parentWindow = Component.getContainingWindow(heavyweight);
   24.49 +        Window parentWindow = SunToolkit.getContainingWindow(heavyweight);
   24.50          if (parentWindow == null || !parentWindow.syncLWRequests) {
   24.51              return false;
   24.52          }
   24.53 @@ -2443,79 +2470,7 @@
   24.54              }
   24.55          }
   24.56      }
   24.57 -    static void heavyweightButtonDown(Component heavyweight, long time) {
   24.58 -        heavyweightButtonDown(heavyweight, time, false);
   24.59 -    }
   24.60 -    static void heavyweightButtonDown(Component heavyweight, long time, boolean acceptDuplicates) {
   24.61 -        if (log.isLoggable(Level.FINE)) {
   24.62 -            if (heavyweight == null) {
   24.63 -                log.log(Level.FINE, "Assertion (heavyweight != null) failed");
   24.64 -            }
   24.65 -            if (time == 0) {
   24.66 -                log.log(Level.FINE, "Assertion (time != 0) failed");
   24.67 -            }
   24.68 -        }
   24.69 -        KeyboardFocusManager manager = getCurrentKeyboardFocusManager(SunToolkit.targetToAppContext(heavyweight));
   24.70  
   24.71 -        synchronized (heavyweightRequests) {
   24.72 -            HeavyweightFocusRequest hwFocusRequest = getLastHWRequest();
   24.73 -            Component currentNativeFocusOwner = (hwFocusRequest == null)
   24.74 -                ? manager.getNativeFocusOwner()
   24.75 -                : hwFocusRequest.heavyweight;
   24.76 -
   24.77 -            // Behavior for all use cases:
   24.78 -            // 1. Heavyweight leaf Components (e.g., Button, Checkbox, Choice,
   24.79 -            //    List, TextComponent, Canvas) that respond to button down.
   24.80 -            //
   24.81 -            //    Native platform will generate a FOCUS_GAINED if and only if
   24.82 -            //    the Component is not the focus owner (or, will not be the
   24.83 -            //    focus owner when all outstanding focus requests are
   24.84 -            //    processed).
   24.85 -            //
   24.86 -            // 2. Panel with no descendants.
   24.87 -            //
   24.88 -            //    Same as (1).
   24.89 -            //
   24.90 -            // 3. Panel with at least one heavyweight descendant.
   24.91 -            //
   24.92 -            //    This function should NOT be called for this case!
   24.93 -            //
   24.94 -            // 4. Panel with only lightweight descendants.
   24.95 -            //
   24.96 -            //    Native platform will generate a FOCUS_GAINED if and only if
   24.97 -            //    neither the Panel, nor any of its recursive, lightweight
   24.98 -            //    descendants, is the focus owner. However, we want a
   24.99 -            //    requestFocus() for any lightweight descendant to win out over
  24.100 -            //    the focus request for the Panel. To accomplish this, we
  24.101 -            //    differ from the algorithm for shouldNativelyFocusHeavyweight
  24.102 -            //    as follows:
  24.103 -            //      a. If the requestFocus() for a lightweight descendant has
  24.104 -            //         been fully handled by the time this function is invoked,
  24.105 -            //         then 'hwFocusRequest' will be null and 'heavyweight'
  24.106 -            //         will be the native focus owner. Do *not* synthesize a
  24.107 -            //         focus transfer to the Panel.
  24.108 -            //      b. If the requestFocus() for a lightweight descendant has
  24.109 -            //         been recorded, but not handled, then 'hwFocusRequest'
  24.110 -            //         will be non-null and 'hwFocusRequest.heavyweight' will
  24.111 -            //         equal 'heavyweight'. Do *not* append 'heavyweight' to
  24.112 -            //         hwFocusRequest.lightweightRequests.
  24.113 -            //      c. If the requestFocus() for a lightweight descendant is
  24.114 -            //         yet to be made, then post a new HeavyweightFocusRequest.
  24.115 -            //         If no lightweight descendant ever requests focus, then
  24.116 -            //         the Panel will get focus. If some descendant does, then
  24.117 -            //         the descendant will get focus by either a synthetic
  24.118 -            //         focus transfer, or a lightweightRequests focus transfer.
  24.119 -
  24.120 -            if (acceptDuplicates || heavyweight != currentNativeFocusOwner) {
  24.121 -                getCurrentKeyboardFocusManager
  24.122 -                    (SunToolkit.targetToAppContext(heavyweight)).
  24.123 -                    enqueueKeyEvents(time, heavyweight);
  24.124 -                heavyweightRequests.add
  24.125 -                    (new HeavyweightFocusRequest(heavyweight, heavyweight,
  24.126 -                                                 false, CausedFocusEvent.Cause.MOUSE_EVENT));
  24.127 -            }
  24.128 -        }
  24.129 -    }
  24.130      /**
  24.131       * Returns the Window which will be active after processing this request,
  24.132       * or null if this is a duplicate request. The active Window is useful
  24.133 @@ -2542,7 +2497,7 @@
  24.134                  (HeavyweightFocusRequest.CLEAR_GLOBAL_FOCUS_OWNER);
  24.135  
  24.136              Component activeWindow = ((hwFocusRequest != null)
  24.137 -                ? Component.getContainingWindow(hwFocusRequest.heavyweight)
  24.138 +                ? SunToolkit.getContainingWindow(hwFocusRequest.heavyweight)
  24.139                  : nativeFocusedWindow);
  24.140              while (activeWindow != null &&
  24.141                     !((activeWindow instanceof Frame) ||
  24.142 @@ -3013,8 +2968,8 @@
  24.143      }
  24.144  
  24.145      private static boolean focusedWindowChanged(Component to, Component from) {
  24.146 -        Window wto = Component.getContainingWindow(to);
  24.147 -        Window wfrom = Component.getContainingWindow(from);
  24.148 +        Window wto = SunToolkit.getContainingWindow(to);
  24.149 +        Window wfrom = SunToolkit.getContainingWindow(from);
  24.150          if (wto == null && wfrom == null) {
  24.151              return true;
  24.152          }
  24.153 @@ -3028,8 +2983,8 @@
  24.154      }
  24.155  
  24.156      private static boolean isTemporary(Component to, Component from) {
  24.157 -        Window wto = Component.getContainingWindow(to);
  24.158 -        Window wfrom = Component.getContainingWindow(from);
  24.159 +        Window wto = SunToolkit.getContainingWindow(to);
  24.160 +        Window wfrom = SunToolkit.getContainingWindow(from);
  24.161          if (wto == null && wfrom == null) {
  24.162              return false;
  24.163          }
    25.1 --- a/src/share/classes/java/awt/MenuItem.java	Tue Apr 14 00:05:07 2009 -0700
    25.2 +++ b/src/share/classes/java/awt/MenuItem.java	Tue Apr 14 04:21:02 2009 -0700
    25.3 @@ -1,5 +1,5 @@
    25.4  /*
    25.5 - * Copyright 1995-2008 Sun Microsystems, Inc.  All Rights Reserved.
    25.6 + * Copyright 1995-2009 Sun Microsystems, Inc.  All Rights Reserved.
    25.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    25.8   *
    25.9   * This code is free software; you can redistribute it and/or modify it
   25.10 @@ -398,9 +398,11 @@
   25.11      boolean handleShortcut(KeyEvent e) {
   25.12          MenuShortcut s = new MenuShortcut(e.getKeyCode(),
   25.13                               (e.getModifiers() & InputEvent.SHIFT_MASK) > 0);
   25.14 +        MenuShortcut sE = new MenuShortcut(e.getExtendedKeyCode(),
   25.15 +                             (e.getModifiers() & InputEvent.SHIFT_MASK) > 0);
   25.16          // Fix For 6185151: Menu shortcuts of all menuitems within a menu
   25.17          // should be disabled when the menu itself is disabled
   25.18 -        if (s.equals(shortcut) && isItemEnabled()) {
   25.19 +        if ((s.equals(shortcut) || sE.equals(shortcut)) && isItemEnabled()) {
   25.20              // MenuShortcut match -- issue an event on keydown.
   25.21              if (e.getID() == KeyEvent.KEY_PRESSED) {
   25.22                  doMenuEvent(e.getWhen(), e.getModifiers());
    26.1 --- a/src/share/classes/java/awt/MenuShortcut.java	Tue Apr 14 00:05:07 2009 -0700
    26.2 +++ b/src/share/classes/java/awt/MenuShortcut.java	Tue Apr 14 04:21:02 2009 -0700
    26.3 @@ -1,5 +1,5 @@
    26.4  /*
    26.5 - * Copyright 1996-2003 Sun Microsystems, Inc.  All Rights Reserved.
    26.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
    26.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    26.8   *
    26.9   * This code is free software; you can redistribute it and/or modify it
   26.10 @@ -34,7 +34,21 @@
   26.11   * For example, a menu shortcut for Ctrl-a (assuming that Control is
   26.12   * the accelerator key) would be created with code like the following:
   26.13   * <p>
   26.14 - * MenuShortcut ms = new MenuShortcut(KeyEvent.VK_A, false);
   26.15 + * <code>MenuShortcut ms = new MenuShortcut(KeyEvent.VK_A, false);</code>
   26.16 + * <p> or alternatively
   26.17 + * <p>
   26.18 + * <code>MenuShortcut ms = new MenuShortcut(KeyEvent.getExtendedKeyCodeForChar('A'), false);</code>
   26.19 + * <p>
   26.20 + * Menu shortcuts may also be constructed for a wider set of keycodes
   26.21 + * using the <code>java.awt.event.KeyEvent.getExtendedKeyCodeForChar</code> call.
   26.22 + * For example, a menu shortcut for "Ctrl+cyrillic ef" is created by
   26.23 + * <p>
   26.24 + * <code>MenuShortcut ms = new MenuShortcut(KeyEvent.getExtendedKeyCodeForChar('\u0444'), false);</code>
   26.25 + * <p>
   26.26 + * Note that shortcuts created with a keycode or an extended keycode defined as a constant in <code>KeyEvent</code>
   26.27 + * work regardless of the current keyboard layout. However, a shortcut made of
   26.28 + * an extended keycode not listed in <code>KeyEvent</code>
   26.29 + * only work if the current keyboard layout produces a corresponding letter.
   26.30   * <p>
   26.31   * The accelerator key is platform-dependent and may be obtained
   26.32   * via {@link Toolkit#getMenuShortcutKeyMask}.
    27.1 --- a/src/share/classes/java/awt/Window.java	Tue Apr 14 00:05:07 2009 -0700
    27.2 +++ b/src/share/classes/java/awt/Window.java	Tue Apr 14 04:21:02 2009 -0700
    27.3 @@ -1,5 +1,5 @@
    27.4  /*
    27.5 - * Copyright 1995-2008 Sun Microsystems, Inc.  All Rights Reserved.
    27.6 + * Copyright 1995-2009 Sun Microsystems, Inc.  All Rights Reserved.
    27.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    27.8   *
    27.9   * This code is free software; you can redistribute it and/or modify it
   27.10 @@ -25,8 +25,10 @@
   27.11  package java.awt;
   27.12  
   27.13  import java.awt.event.*;
   27.14 +import java.awt.geom.Point2D;
   27.15  import java.awt.im.InputContext;
   27.16  import java.awt.image.BufferStrategy;
   27.17 +import java.awt.image.BufferedImage;
   27.18  import java.awt.peer.ComponentPeer;
   27.19  import java.awt.peer.WindowPeer;
   27.20  import java.beans.PropertyChangeListener;
   27.21 @@ -49,6 +51,7 @@
   27.22  import java.util.logging.Logger;
   27.23  import java.util.concurrent.atomic.AtomicBoolean;
   27.24  import javax.accessibility.*;
   27.25 +import sun.awt.AWTAccessor;
   27.26  import sun.awt.AppContext;
   27.27  import sun.awt.CausedFocusEvent;
   27.28  import sun.awt.SunToolkit;
   27.29 @@ -291,6 +294,25 @@
   27.30       */
   27.31      transient boolean isInShow = false;
   27.32  
   27.33 +    /*
   27.34 +     * Opacity level of the window
   27.35 +     *
   27.36 +     * @see #setOpacity(float)
   27.37 +     * @see #getOpacity()
   27.38 +     * @since 1.7
   27.39 +     */
   27.40 +    private float opacity = 1.0f;
   27.41 +
   27.42 +    /*
   27.43 +     * The shape assigned to this window. This field is set to null if
   27.44 +     * no shape is set (rectangular window).
   27.45 +     *
   27.46 +     * @see #getShape()
   27.47 +     * @see #setShape(Shape)
   27.48 +     * @since 1.7
   27.49 +     */
   27.50 +    private Shape shape = null;
   27.51 +
   27.52      private static final String base = "win";
   27.53      private static int nameCounter = 0;
   27.54  
   27.55 @@ -305,6 +327,23 @@
   27.56  
   27.57      transient boolean isTrayIconWindow = false;
   27.58  
   27.59 +    /**
   27.60 +     * These fields are initialized in the native peer code
   27.61 +     * or via AWTAccessor's WindowAccessor.
   27.62 +     */
   27.63 +    private transient volatile int securityWarningWidth = 0;
   27.64 +    private transient volatile int securityWarningHeight = 0;
   27.65 +
   27.66 +    /**
   27.67 +     * These fields represent the desired location for the security
   27.68 +     * warning if this window is untrusted.
   27.69 +     * See com.sun.awt.SecurityWarning for more details.
   27.70 +     */
   27.71 +    private transient double securityWarningPointX = 2.0;
   27.72 +    private transient double securityWarningPointY = 0.0;
   27.73 +    private transient float securityWarningAlignmentX = RIGHT_ALIGNMENT;
   27.74 +    private transient float securityWarningAlignmentY = TOP_ALIGNMENT;
   27.75 +
   27.76      static {
   27.77          /* ensure that the necessary native libraries are loaded */
   27.78          Toolkit.loadLibraries();
   27.79 @@ -373,6 +412,18 @@
   27.80          }
   27.81      }
   27.82  
   27.83 +    private GraphicsConfiguration initGC(GraphicsConfiguration gc) {
   27.84 +        GraphicsEnvironment.checkHeadless();
   27.85 +
   27.86 +        if (gc == null) {
   27.87 +            gc = GraphicsEnvironment.getLocalGraphicsEnvironment().
   27.88 +                getDefaultScreenDevice().getDefaultConfiguration();
   27.89 +        }
   27.90 +        setGraphicsConfiguration(gc);
   27.91 +
   27.92 +        return gc;
   27.93 +    }
   27.94 +
   27.95      private void init(GraphicsConfiguration gc) {
   27.96          GraphicsEnvironment.checkHeadless();
   27.97  
   27.98 @@ -384,14 +435,10 @@
   27.99          setWarningString();
  27.100          this.cursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);
  27.101          this.visible = false;
  27.102 -        if (gc == null) {
  27.103 -            this.graphicsConfig =
  27.104 -                GraphicsEnvironment.getLocalGraphicsEnvironment().
  27.105 -             getDefaultScreenDevice().getDefaultConfiguration();
  27.106 -        } else {
  27.107 -            this.graphicsConfig = gc;
  27.108 -        }
  27.109 -        if (graphicsConfig.getDevice().getType() !=
  27.110 +
  27.111 +        gc = initGC(gc);
  27.112 +
  27.113 +        if (gc.getDevice().getType() !=
  27.114              GraphicsDevice.TYPE_RASTER_SCREEN) {
  27.115              throw new IllegalArgumentException("not a screen device");
  27.116          }
  27.117 @@ -399,8 +446,8 @@
  27.118  
  27.119          /* offset the initial location with the original of the screen */
  27.120          /* and any insets                                              */
  27.121 -        Rectangle screenBounds = graphicsConfig.getBounds();
  27.122 -        Insets screenInsets = getToolkit().getScreenInsets(graphicsConfig);
  27.123 +        Rectangle screenBounds = gc.getBounds();
  27.124 +        Insets screenInsets = getToolkit().getScreenInsets(gc);
  27.125          int x = getX() + screenBounds.x + screenInsets.left;
  27.126          int y = getY() + screenBounds.y + screenInsets.top;
  27.127          if (x != this.x || y != this.y) {
  27.128 @@ -2744,7 +2791,7 @@
  27.129          sun.java2d.Disposer.addRecord(anchor, new WindowDisposerRecord(appContext, this));
  27.130  
  27.131          addToWindowList();
  27.132 -
  27.133 +        initGC(null);
  27.134      }
  27.135  
  27.136      private void deserializeResources(ObjectInputStream s)
  27.137 @@ -2849,6 +2896,15 @@
  27.138           if(aot) {
  27.139               setAlwaysOnTop(aot); // since 1.5; subject to permission check
  27.140           }
  27.141 +         shape = (Shape)f.get("shape", null);
  27.142 +         opacity = (Float)f.get("opacity", 1.0f);
  27.143 +
  27.144 +         this.securityWarningWidth = 0;
  27.145 +         this.securityWarningHeight = 0;
  27.146 +         this.securityWarningPointX = 2.0;
  27.147 +         this.securityWarningPointY = 0.0;
  27.148 +         this.securityWarningAlignmentX = RIGHT_ALIGNMENT;
  27.149 +         this.securityWarningAlignmentY = TOP_ALIGNMENT;
  27.150  
  27.151           deserializeResources(s);
  27.152      }
  27.153 @@ -2916,41 +2972,18 @@
  27.154  
  27.155      } // inner class AccessibleAWTWindow
  27.156  
  27.157 -    /**
  27.158 -     * This method returns the GraphicsConfiguration used by this Window.
  27.159 -     * @since 1.3
  27.160 -     */
  27.161 -    public GraphicsConfiguration getGraphicsConfiguration() {
  27.162 -                //NOTE: for multiscreen, this will need to take into account
  27.163 -                //which screen the window is on/mostly on instead of returning the
  27.164 -                //default or constructor argument config.
  27.165 -        synchronized(getTreeLock()) {
  27.166 -            if (graphicsConfig == null  && !GraphicsEnvironment.isHeadless()) {
  27.167 -                graphicsConfig =
  27.168 -                    GraphicsEnvironment. getLocalGraphicsEnvironment().
  27.169 -                    getDefaultScreenDevice().
  27.170 -                    getDefaultConfiguration();
  27.171 -            }
  27.172 -            return graphicsConfig;
  27.173 -            }
  27.174 -    }
  27.175 -
  27.176 -    /**
  27.177 -     * Reset this Window's GraphicsConfiguration to match its peer.
  27.178 -     */
  27.179 -    void resetGC() {
  27.180 -        if (!GraphicsEnvironment.isHeadless()) {
  27.181 -            // use the peer's GC
  27.182 -            setGCFromPeer();
  27.183 -            // if it's still null, use the default
  27.184 -            if (graphicsConfig == null) {
  27.185 -                graphicsConfig = GraphicsEnvironment.
  27.186 +    @Override
  27.187 +    void setGraphicsConfiguration(GraphicsConfiguration gc) {
  27.188 +        if (gc == null) {
  27.189 +            gc = GraphicsEnvironment.
  27.190                      getLocalGraphicsEnvironment().
  27.191                      getDefaultScreenDevice().
  27.192                      getDefaultConfiguration();
  27.193 -            }
  27.194 +        }
  27.195 +        synchronized (getTreeLock()) {
  27.196 +            super.setGraphicsConfiguration(gc);
  27.197              if (log.isLoggable(Level.FINER)) {
  27.198 -                log.finer("+ Window.resetGC(): new GC is \n+ " + graphicsConfig + "\n+ this is " + this);
  27.199 +                log.finer("+ Window.setGraphicsConfiguration(): new GC is \n+ " + getGraphicsConfiguration_NoClientCode() + "\n+ this is " + this);
  27.200              }
  27.201          }
  27.202      }
  27.203 @@ -3010,13 +3043,13 @@
  27.204          // target location
  27.205          int dx = 0, dy = 0;
  27.206          // target GC
  27.207 -        GraphicsConfiguration gc = this.graphicsConfig;
  27.208 +        GraphicsConfiguration gc = getGraphicsConfiguration_NoClientCode();
  27.209          Rectangle gcBounds = gc.getBounds();
  27.210  
  27.211          Dimension windowSize = getSize();
  27.212  
  27.213          // search a top-level of c
  27.214 -        Window componentWindow = Component.getContainingWindow(c);
  27.215 +        Window componentWindow = SunToolkit.getContainingWindow(c);
  27.216          if ((c == null) || (componentWindow == null)) {
  27.217              GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
  27.218              gc = ge.getDefaultScreenDevice().getDefaultConfiguration();
  27.219 @@ -3304,6 +3337,225 @@
  27.220      }
  27.221  
  27.222  
  27.223 +    // ******************** SHAPES & TRANSPARENCY CODE ********************
  27.224 +
  27.225 +    /**
  27.226 +     * JavaDoc
  27.227 +     */
  27.228 +    /*public */float getOpacity() {
  27.229 +        synchronized (getTreeLock()) {
  27.230 +            return opacity;
  27.231 +        }
  27.232 +    }
  27.233 +
  27.234 +    /**
  27.235 +     * JavaDoc
  27.236 +     */
  27.237 +    /*public */void setOpacity(float opacity) {
  27.238 +        synchronized (getTreeLock()) {
  27.239 +            if (opacity < 0.0f || opacity > 1.0f) {
  27.240 +                throw new IllegalArgumentException(
  27.241 +                    "The value of opacity should be in the range [0.0f .. 1.0f].");
  27.242 +            }
  27.243 +            GraphicsConfiguration gc = getGraphicsConfiguration();
  27.244 +            GraphicsDevice gd = gc.getDevice();
  27.245 +            if (!gd.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.TRANSLUCENT)) {
  27.246 +                throw new UnsupportedOperationException(
  27.247 +                        "TRANSLUCENT translucency is not supported.");
  27.248 +            }
  27.249 +            if ((gc.getDevice().getFullScreenWindow() == this) && (opacity < 1.0f)) {
  27.250 +                throw new IllegalArgumentException(
  27.251 +                    "Setting opacity for full-screen window is not supported.");
  27.252 +            }
  27.253 +            this.opacity = opacity;
  27.254 +            WindowPeer peer = (WindowPeer)getPeer();
  27.255 +            if (peer != null) {
  27.256 +                peer.setOpacity(opacity);
  27.257 +            }
  27.258 +        }
  27.259 +    }
  27.260 +
  27.261 +    /**
  27.262 +     * JavaDoc
  27.263 +     */
  27.264 +    /*public */Shape getShape() {
  27.265 +        synchronized (getTreeLock()) {
  27.266 +            return shape;
  27.267 +        }
  27.268 +    }
  27.269 +
  27.270 +    /**
  27.271 +     * JavaDoc
  27.272 +     *
  27.273 +     * @param window the window to set the shape to
  27.274 +     * @param shape the shape to set to the window
  27.275 +     * @throws IllegalArgumentException if the window is in full screen mode,
  27.276 +     *                                  and the shape is not null
  27.277 +     */
  27.278 +    /*public */void setShape(Shape shape) {
  27.279 +        synchronized (getTreeLock()) {
  27.280 +            GraphicsConfiguration gc = getGraphicsConfiguration();
  27.281 +            GraphicsDevice gd = gc.getDevice();
  27.282 +            if (!gd.isWindowTranslucencySupported(
  27.283 +                    GraphicsDevice.WindowTranslucency.PERPIXEL_TRANSPARENT))
  27.284 +            {
  27.285 +                throw new UnsupportedOperationException(
  27.286 +                        "PERPIXEL_TRANSPARENT translucency is not supported.");
  27.287 +            }
  27.288 +            if ((gc.getDevice().getFullScreenWindow() == this) && (shape != null)) {
  27.289 +                throw new IllegalArgumentException(
  27.290 +                    "Setting shape for full-screen window is not supported.");
  27.291 +            }
  27.292 +            this.shape = shape;
  27.293 +            WindowPeer peer = (WindowPeer)getPeer();
  27.294 +            if (peer != null) {
  27.295 +                peer.applyShape(shape == null ? null : Region.getInstance(shape, null));
  27.296 +            }
  27.297 +        }
  27.298 +    }
  27.299 +
  27.300 +    /**
  27.301 +     * JavaDoc
  27.302 +     */
  27.303 +/*
  27.304 +    @Override
  27.305 +    public void setBackground(Color bgColor) {
  27.306 +        int alpha = bgColor.getAlpha();
  27.307 +        if (alpha < 255) { // non-opaque window
  27.308 +            GraphicsConfiguration gc = getGraphicsConfiguration();
  27.309 +            GraphicsDevice gd = gc.getDevice();
  27.310 +            if (gc.getDevice().getFullScreenWindow() == this) {
  27.311 +                throw new IllegalArgumentException(
  27.312 +                    "Making full-screen window non opaque is not supported.");
  27.313 +            }
  27.314 +            if (!gc.isTranslucencyCapable()) {
  27.315 +                GraphicsConfiguration capableGC = gd.getTranslucencyCapableGC();
  27.316 +                if (capableGC == null) {
  27.317 +                    throw new IllegalArgumentException(
  27.318 +                        "PERPIXEL_TRANSLUCENT translucency is not supported");
  27.319 +                }
  27.320 +                // TODO: change GC
  27.321 +            }
  27.322 +            setLayersOpaque(this, false);
  27.323 +        }
  27.324 +
  27.325 +        super.setBackground(bgColor);
  27.326 +
  27.327 +        WindowPeer peer = (WindowPeer)getPeer();
  27.328 +        if (peer != null) {
  27.329 +            peer.setOpaque(alpha == 255);
  27.330 +        }
  27.331 +    }
  27.332 +*/
  27.333 +
  27.334 +    private transient boolean opaque = true;
  27.335 +
  27.336 +    void setOpaque(boolean opaque) {
  27.337 +        synchronized (getTreeLock()) {
  27.338 +            GraphicsConfiguration gc = getGraphicsConfiguration();
  27.339 +            if (!opaque && !com.sun.awt.AWTUtilities.isTranslucencyCapable(gc)) {
  27.340 +            throw new IllegalArgumentException(
  27.341 +                    "The window must use a translucency-compatible graphics configuration");
  27.342 +            }
  27.343 +            if (!com.sun.awt.AWTUtilities.isTranslucencySupported(
  27.344 +                    com.sun.awt.AWTUtilities.Translucency.PERPIXEL_TRANSLUCENT))
  27.345 +            {
  27.346 +                throw new UnsupportedOperationException(
  27.347 +                        "PERPIXEL_TRANSLUCENT translucency is not supported.");
  27.348 +            }
  27.349 +            if ((gc.getDevice().getFullScreenWindow() == this) && !opaque) {
  27.350 +                throw new IllegalArgumentException(
  27.351 +                    "Making full-screen window non opaque is not supported.");
  27.352 +            }
  27.353 +            setLayersOpaque(this, opaque);
  27.354 +            this.opaque = opaque;
  27.355 +            WindowPeer peer = (WindowPeer)getPeer();
  27.356 +            if (peer != null) {
  27.357 +                peer.setOpaque(opaque);
  27.358 +            }
  27.359 +        }
  27.360 +    }
  27.361 +
  27.362 +    private void updateWindow(BufferedImage backBuffer) {
  27.363 +        synchronized (getTreeLock()) {
  27.364 +            WindowPeer peer = (WindowPeer)getPeer();
  27.365 +            if (peer != null) {
  27.366 +                peer.updateWindow(backBuffer);
  27.367 +            }
  27.368 +        }
  27.369 +    }
  27.370 +
  27.371 +    private static final Color TRANSPARENT_BACKGROUND_COLOR = new Color(0, 0, 0, 0);
  27.372 +
  27.373 +    private static void setLayersOpaque(Component component, boolean isOpaque) {
  27.374 +        // Shouldn't use instanceof to avoid loading Swing classes
  27.375 +        //    if it's a pure AWT application.
  27.376 +        if (Component.doesImplement(component, "javax.swing.RootPaneContainer")) {
  27.377 +            javax.swing.RootPaneContainer rpc = (javax.swing.RootPaneContainer)component;
  27.378 +            javax.swing.JRootPane root = rpc.getRootPane();
  27.379 +            javax.swing.JLayeredPane lp = root.getLayeredPane();
  27.380 +            Container c = root.getContentPane();
  27.381 +            javax.swing.JComponent content =
  27.382 +                (c instanceof javax.swing.JComponent) ? (javax.swing.JComponent)c : null;
  27.383 +            javax.swing.JComponent gp =
  27.384 +                (rpc.getGlassPane() instanceof javax.swing.JComponent) ?
  27.385 +                (javax.swing.JComponent)rpc.getGlassPane() : null;
  27.386 +            if (gp != null) {
  27.387 +                gp.setDoubleBuffered(isOpaque);
  27.388 +            }
  27.389 +            lp.setOpaque(isOpaque);
  27.390 +            root.setOpaque(isOpaque);
  27.391 +            root.setDoubleBuffered(isOpaque); //XXX: the "white rect" workaround
  27.392 +            if (content != null) {
  27.393 +                content.setOpaque(isOpaque);
  27.394 +                content.setDoubleBuffered(isOpaque); //XXX: the "white rect" workaround
  27.395 +
  27.396 +                // Iterate down one level to see whether we have a JApplet
  27.397 +                // (which is also a RootPaneContainer) which requires processing
  27.398 +                int numChildren = content.getComponentCount();
  27.399 +                if (numChildren > 0) {
  27.400 +                    Component child = content.getComponent(0);
  27.401 +                    // It's OK to use instanceof here because we've
  27.402 +                    // already loaded the RootPaneContainer class by now
  27.403 +                    if (child instanceof javax.swing.RootPaneContainer) {
  27.404 +                        setLayersOpaque(child, isOpaque);
  27.405 +                    }
  27.406 +                }
  27.407 +            }
  27.408 +        }
  27.409 +
  27.410 +        Color bg = component.getBackground();
  27.411 +        boolean hasTransparentBg = TRANSPARENT_BACKGROUND_COLOR.equals(bg);
  27.412 +
  27.413 +        Container container = null;
  27.414 +        if (component instanceof Container) {
  27.415 +            container = (Container) component;
  27.416 +        }
  27.417 +
  27.418 +        if (isOpaque) {
  27.419 +            if (hasTransparentBg) {
  27.420 +                // Note: we use the SystemColor.window color as the default.
  27.421 +                // This color is used in the WindowPeer implementations to
  27.422 +                // initialize the background color of the window if it is null.
  27.423 +                // (This might not be the right thing to do for other
  27.424 +                // RootPaneContainers we might be invoked with)
  27.425 +                Color newColor = null;
  27.426 +                if (container != null && container.preserveBackgroundColor != null) {
  27.427 +                    newColor = container.preserveBackgroundColor;
  27.428 +                } else {
  27.429 +                    newColor = SystemColor.window;
  27.430 +                }
  27.431 +                component.setBackground(newColor);
  27.432 +            }
  27.433 +        } else {
  27.434 +            if (!hasTransparentBg && container != null) {
  27.435 +                container.preserveBackgroundColor = bg;
  27.436 +            }
  27.437 +            component.setBackground(TRANSPARENT_BACKGROUND_COLOR);
  27.438 +        }
  27.439 +    }
  27.440 +
  27.441 +
  27.442      // ************************** MIXING CODE *******************************
  27.443  
  27.444      // A window has a parent, but it does NOT have a container
  27.445 @@ -3341,6 +3593,87 @@
  27.446  
  27.447      // ****************** END OF MIXING CODE ********************************
  27.448  
  27.449 +    // This method gets the window location/size as reported by the native
  27.450 +    // system since the locally cached values may represent outdated data.
  27.451 +    // NOTE: this method is invoked on the toolkit thread, and therefore
  27.452 +    // is not supposed to become public/user-overridable.
  27.453 +    private Point2D calculateSecurityWarningPosition(double x, double y,
  27.454 +            double w, double h)
  27.455 +    {
  27.456 +        return new Point2D.Double(
  27.457 +                x + w * securityWarningAlignmentX + securityWarningPointX,
  27.458 +                y + h * securityWarningAlignmentY + securityWarningPointY);
  27.459 +    }
  27.460 +
  27.461 +    static {
  27.462 +        AWTAccessor.setWindowAccessor(new AWTAccessor.WindowAccessor() {
  27.463 +            public float getOpacity(Window window) {
  27.464 +                return window.opacity;
  27.465 +            }
  27.466 +            public void setOpacity(Window window, float opacity) {
  27.467 +                window.setOpacity(opacity);
  27.468 +            }
  27.469 +            public Shape getShape(Window window) {
  27.470 +                return window.getShape();
  27.471 +            }
  27.472 +            public void setShape(Window window, Shape shape) {
  27.473 +                window.setShape(shape);
  27.474 +            }
  27.475 +            public boolean isOpaque(Window window) {
  27.476 +                /*
  27.477 +                return window.getBackground().getAlpha() < 255;
  27.478 +                */
  27.479 +                synchronized (window.getTreeLock()) {
  27.480 +                    return window.opaque;
  27.481 +                }
  27.482 +            }
  27.483 +            public void setOpaque(Window window, boolean opaque) {
  27.484 +                /*
  27.485 +                Color bg = window.getBackground();
  27.486 +                window.setBackground(new Color(bg.getRed(), bg.getGreen(), bg.getBlue(),
  27.487 +                                               opaque ? 255 : 0));
  27.488 +                */
  27.489 +                window.setOpaque(opaque);
  27.490 +            }
  27.491 +            public void updateWindow(Window window, BufferedImage backBuffer) {
  27.492 +                window.updateWindow(backBuffer);
  27.493 +            }
  27.494 +
  27.495 +            public Dimension getSecurityWarningSize(Window window) {
  27.496 +                return new Dimension(window.securityWarningWidth,
  27.497 +                        window.securityWarningHeight);
  27.498 +            }
  27.499 +
  27.500 +            public void setSecurityWarningSize(Window window, int width, int height)
  27.501 +            {
  27.502 +                window.securityWarningWidth = width;
  27.503 +                window.securityWarningHeight = height;
  27.504 +            }
  27.505 +
  27.506 +            public void setSecurityWarningPosition(Window window,
  27.507 +                    Point2D point, float alignmentX, float alignmentY)
  27.508 +            {
  27.509 +                window.securityWarningPointX = point.getX();
  27.510 +                window.securityWarningPointY = point.getY();
  27.511 +                window.securityWarningAlignmentX = alignmentX;
  27.512 +                window.securityWarningAlignmentY = alignmentY;
  27.513 +
  27.514 +                synchronized (window.getTreeLock()) {
  27.515 +                    WindowPeer peer = (WindowPeer)window.getPeer();
  27.516 +                    if (peer != null) {
  27.517 +                        peer.repositionSecurityWarning();
  27.518 +                    }
  27.519 +                }
  27.520 +            }
  27.521 +
  27.522 +            public Point2D calculateSecurityWarningPosition(Window window,
  27.523 +                    double x, double y, double w, double h)
  27.524 +            {
  27.525 +                return window.calculateSecurityWarningPosition(x, y, w, h);
  27.526 +            }
  27.527 +        }); // WindowAccessor
  27.528 +    } // static
  27.529 +
  27.530  } // class Window
  27.531  
  27.532  
    28.1 --- a/src/share/classes/java/awt/event/KeyEvent.java	Tue Apr 14 00:05:07 2009 -0700
    28.2 +++ b/src/share/classes/java/awt/event/KeyEvent.java	Tue Apr 14 04:21:02 2009 -0700
    28.3 @@ -1,5 +1,5 @@
    28.4  /*
    28.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
    28.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
    28.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    28.8   *
    28.9   * This code is free software; you can redistribute it and/or modify it
   28.10 @@ -65,15 +65,16 @@
   28.11   * <p>
   28.12   * For key pressed and key released events, the getKeyCode method returns
   28.13   * the event's keyCode.  For key typed events, the getKeyCode method
   28.14 - * always returns VK_UNDEFINED.
   28.15 + * always returns {@code VK_UNDEFINED}. The {@code getExtendedKeyCode} method
   28.16 + * may also be used with many international keyboard layouts.
   28.17   *
   28.18   * <p>
   28.19   * <em>"Key pressed" and "key released" events</em> are lower-level and depend
   28.20   * on the platform and keyboard layout. They are generated whenever a key is
   28.21   * pressed or released, and are the only way to find out about keys that don't
   28.22   * generate character input (e.g., action keys, modifier keys, etc.). The key
   28.23 - * being pressed or released is indicated by the getKeyCode method, which returns
   28.24 - * a virtual key code.
   28.25 + * being pressed or released is indicated by the {@code getKeyCode} and {@code getExtendedKeyCode}
   28.26 + * methods, which return a virtual key code.
   28.27   *
   28.28   * <p>
   28.29   * <em>Virtual key codes</em> are used to report which keyboard key has
   28.30 @@ -111,6 +112,11 @@
   28.31   * platform and keyboard layout. For example, the key that generates VK_Q
   28.32   * when using a U.S. keyboard layout will generate VK_A when using a French
   28.33   * keyboard layout.
   28.34 + * <li>The key that generates {@code VK_Q} when using a U.S. keyboard layout also
   28.35 + * generates a unique code for Russian or Hebrew layout. There is no a
   28.36 + * {@code VK_} constant for these and many other codes in various layouts. These codes
   28.37 + * may be obtained by using {@code getExtendedKeyCode} and are used whenever
   28.38 + * a {@code VK_} constant is used.
   28.39   * <li>Not all characters have a keycode associated with them.  For example,
   28.40   * there is no keycode for the question mark because there is no keyboard
   28.41   * for which it appears on the primary layer.
   28.42 @@ -891,6 +897,12 @@
   28.43       */
   28.44      int keyLocation;
   28.45  
   28.46 +    //set from native code.
   28.47 +    private transient long rawCode = 0;
   28.48 +    private transient long primaryLevelUnicode = 0;
   28.49 +    private transient long scancode = 0; // for MS Windows only
   28.50 +    private transient long extendedKeyCode = 0;
   28.51 +
   28.52      /*
   28.53       * JDK 1.1 serialVersionUID
   28.54       */
   28.55 @@ -1315,6 +1327,9 @@
   28.56              return numpad + "-" + c;
   28.57          }
   28.58  
   28.59 +        if ((keyCode & 0x01000000) != 0) {
   28.60 +            return String.valueOf((char)(keyCode ^ 0x01000000 ));
   28.61 +        }
   28.62          String unknown = Toolkit.getProperty("AWT.unknown", "Unknown");
   28.63          return unknown + " keyCode: 0x" + Integer.toString(keyCode, 16);
   28.64      }
   28.65 @@ -1551,9 +1566,44 @@
   28.66              str.append("KEY_LOCATION_UNKNOWN");
   28.67              break;
   28.68          }
   28.69 +        str.append(",rawCode=").append(rawCode);
   28.70 +        str.append(",primaryLevelUnicode=").append(primaryLevelUnicode);
   28.71 +        str.append(",scancode=").append(scancode);
   28.72 +        str.append(",extendedKeyCode=0x").append(Long.toHexString(extendedKeyCode));
   28.73  
   28.74          return str.toString();
   28.75      }
   28.76 +    /**
   28.77 +     * Returns an extended key code for the event.
   28.78 +     * The extended key code is a unique id assigned to  a key on the keyboard
   28.79 +     * just like {@code keyCode}. However, unlike {@code keyCode}, this value depends on the
   28.80 +     * current keyboard layout. For instance, pressing the left topmost letter key
   28.81 +     * in a common English layout produces the same value as {@code keyCode}, {@code VK_Q}.
   28.82 +     * Pressing the same key in a regular Russian layout gives another code, unique for the
   28.83 +     * letter "Cyrillic I short".
   28.84 +     *
   28.85 +     * @since 1.7
   28.86 +     *
   28.87 +     */
   28.88 +    public  int getExtendedKeyCode() {
   28.89 +        return (int)extendedKeyCode;
   28.90 +    }
   28.91 +    /**
   28.92 +     * Returns an extended key code for a unicode character.
   28.93 +     *
   28.94 +     * @return for a unicode character with a corresponding {@code VK_} constant -- this
   28.95 +     *   {@code VK_} constant; for a character appearing on the primary
   28.96 +     *   level of a known keyboard layout -- a unique integer.
   28.97 +     *   If a character does not appear on the primary level of a known keyboard,
   28.98 +     *   {@code VK_UNDEFINED} is returned.
   28.99 +     *
  28.100 +     * @since 1.7
  28.101 +     *
  28.102 +     */
  28.103 +    public static int getExtendedKeyCodeForChar(int c) {
  28.104 +        // Return a keycode (if any) associated with a character.
  28.105 +        return sun.awt.ExtendedKeyCodes.getExtendedKeyCodeForChar(c);
  28.106 +    }
  28.107  
  28.108      /**
  28.109       * Sets new modifiers by the old ones. The key modifiers
    29.1 --- a/src/share/classes/java/awt/peer/CanvasPeer.java	Tue Apr 14 00:05:07 2009 -0700
    29.2 +++ b/src/share/classes/java/awt/peer/CanvasPeer.java	Tue Apr 14 04:21:02 2009 -0700
    29.3 @@ -25,6 +25,7 @@
    29.4  package java.awt.peer;
    29.5  
    29.6  import java.awt.Canvas;
    29.7 +import java.awt.GraphicsConfiguration;
    29.8  
    29.9  /**
   29.10   * The peer interface for {@link Canvas}.
   29.11 @@ -36,4 +37,13 @@
   29.12   * instances.
   29.13   */
   29.14  public interface CanvasPeer extends ComponentPeer {
   29.15 +    /**
   29.16 +     * Requests a GC that best suits this Canvas. The returned GC may differ
   29.17 +     * from the requested GC passed as the argument to this method. This method
   29.18 +     * must return a non-null value (given the argument is non-null as well).
   29.19 +     *
   29.20 +     * @since 1.7
   29.21 +     */
   29.22 +    GraphicsConfiguration getAppropriateGraphicsConfiguration(
   29.23 +            GraphicsConfiguration gc);
   29.24  }
    30.1 --- a/src/share/classes/java/awt/peer/ComponentPeer.java	Tue Apr 14 00:05:07 2009 -0700
    30.2 +++ b/src/share/classes/java/awt/peer/ComponentPeer.java	Tue Apr 14 04:21:02 2009 -0700
    30.3 @@ -539,4 +539,16 @@
    30.4       */
    30.5      void applyShape(Region shape);
    30.6  
    30.7 +    /**
    30.8 +     * Lowers this component at the bottom of the above HW peer. If the above parameter
    30.9 +     * is null then the method places this component at the top of the Z-order.
   30.10 +     */
   30.11 +    void setZOrder(ComponentPeer above);
   30.12 +
   30.13 +    /**
   30.14 +     * Updates internal data structures related to the component's GC.
   30.15 +     *
   30.16 +     * @since 1.7
   30.17 +     */
   30.18 +    void updateGraphicsData(GraphicsConfiguration gc);
   30.19  }
    31.1 --- a/src/share/classes/java/awt/peer/ContainerPeer.java	Tue Apr 14 00:05:07 2009 -0700
    31.2 +++ b/src/share/classes/java/awt/peer/ContainerPeer.java	Tue Apr 14 04:21:02 2009 -0700
    31.3 @@ -76,21 +76,4 @@
    31.4       * @see Container#validateTree()
    31.5       */
    31.6      void endLayout();
    31.7 -
    31.8 -    /**
    31.9 -     * Restacks native windows - children of this native window - according to
   31.10 -     * Java container order.
   31.11 -     *
   31.12 -     * @since 1.5
   31.13 -     */
   31.14 -    void restack();
   31.15 -
   31.16 -    /**
   31.17 -     * Indicates availability of restacking operation in this container.
   31.18 -     *
   31.19 -     * @return Returns true if restack is supported, false otherwise
   31.20 -     *
   31.21 -     * @since 1.5
   31.22 -     */
   31.23 -    boolean isRestackSupported();
   31.24  }
    32.1 --- a/src/share/classes/java/awt/peer/WindowPeer.java	Tue Apr 14 00:05:07 2009 -0700
    32.2 +++ b/src/share/classes/java/awt/peer/WindowPeer.java	Tue Apr 14 04:21:02 2009 -0700
    32.3 @@ -1,5 +1,5 @@
    32.4  /*
    32.5 - * Copyright 1995-2007 Sun Microsystems, Inc.  All Rights Reserved.
    32.6 + * Copyright 1995-2009 Sun Microsystems, Inc.  All Rights Reserved.
    32.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    32.8   *
    32.9   * This code is free software; you can redistribute it and/or modify it
   32.10 @@ -27,6 +27,8 @@
   32.11  
   32.12  import java.awt.*;
   32.13  
   32.14 +import java.awt.image.BufferedImage;
   32.15 +
   32.16  /**
   32.17   * The peer interface for {@link Window}.
   32.18   *
   32.19 @@ -92,4 +94,31 @@
   32.20       * @see Window#setIconImages(java.util.List)
   32.21       */
   32.22      void updateIconImages();
   32.23 +
   32.24 +    /**
   32.25 +     * Sets the level of opacity for the window.
   32.26 +     *
   32.27 +     * @see Window#setOpacity(float)
   32.28 +     */
   32.29 +    void setOpacity(float opacity);
   32.30 +
   32.31 +    /**
   32.32 +     * Enables the per-pixel alpha support for the window.
   32.33 +     *
   32.34 +     * @see Window#setBackground(Color)
   32.35 +     */
   32.36 +    void setOpaque(boolean isOpaque);
   32.37 +
   32.38 +    /**
   32.39 +     * Updates the native part of non-opaque window using
   32.40 +     * the given image with color+alpha values for each pixel.
   32.41 +     *
   32.42 +     * @see Window#setBackground(Color)
   32.43 +     */
   32.44 +    void updateWindow(BufferedImage backBuffer);
   32.45 +
   32.46 +    /**
   32.47 +     * Instructs the peer to update the position of the security warning.
   32.48 +     */
   32.49 +    void repositionSecurityWarning();
   32.50  }
    33.1 --- a/src/share/classes/javax/swing/AbstractButton.java	Tue Apr 14 00:05:07 2009 -0700
    33.2 +++ b/src/share/classes/javax/swing/AbstractButton.java	Tue Apr 14 04:21:02 2009 -0700
    33.3 @@ -1,5 +1,5 @@
    33.4  /*
    33.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    33.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    33.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    33.8   *
    33.9   * This code is free software; you can redistribute it and/or modify it
   33.10 @@ -1545,6 +1545,9 @@
   33.11       * A mnemonic must correspond to a single key on the keyboard
   33.12       * and should be specified using one of the <code>VK_XXX</code>
   33.13       * keycodes defined in <code>java.awt.event.KeyEvent</code>.
   33.14 +     * These codes and the wider array of codes for international
   33.15 +     * keyboards may be obtained through
   33.16 +     * <code>java.awt.event.KeyEvent.getExtendedKeyCodeForChar</code>.
   33.17       * Mnemonics are case-insensitive, therefore a key event
   33.18       * with the corresponding keycode would cause the button to be
   33.19       * activated whether or not the Shift modifier was pressed.
    34.1 --- a/src/share/classes/javax/swing/Action.java	Tue Apr 14 00:05:07 2009 -0700
    34.2 +++ b/src/share/classes/javax/swing/Action.java	Tue Apr 14 04:21:02 2009 -0700
    34.3 @@ -1,5 +1,5 @@
    34.4  /*
    34.5 - * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
    34.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    34.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    34.8   *
    34.9   * This code is free software; you can redistribute it and/or modify it
   34.10 @@ -272,7 +272,9 @@
   34.11       * one of the <code>KeyEvent</code> key codes.  The value is
   34.12       * commonly used to specify a mnemonic.  For example:
   34.13       * <code>myAction.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_A)</code>
   34.14 -     * sets the mnemonic of <code>myAction</code> to 'a'.
   34.15 +     * sets the mnemonic of <code>myAction</code> to 'a', while
   34.16 +     * <code>myAction.putValue(Action.MNEMONIC_KEY, KeyEvent.getExtendedKeyCodeForChar('\u0444'))</code>
   34.17 +     * sets the mnemonic of <code>myAction</code> to Cyrillic letter "Ef".
   34.18       *
   34.19       * @since 1.3
   34.20       */
    35.1 --- a/src/share/classes/javax/swing/JComponent.java	Tue Apr 14 00:05:07 2009 -0700
    35.2 +++ b/src/share/classes/javax/swing/JComponent.java	Tue Apr 14 04:21:02 2009 -0700
    35.3 @@ -1,5 +1,5 @@
    35.4  /*
    35.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    35.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    35.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    35.8   *
    35.9   * This code is free software; you can redistribute it and/or modify it
   35.10 @@ -2888,7 +2888,10 @@
   35.11            return false;
   35.12        }
   35.13        // Get the KeyStroke
   35.14 +      // There may be two keystrokes associated with a low-level key event;
   35.15 +      // in this case a keystroke made of an extended key code has a priority.
   35.16        KeyStroke ks;
   35.17 +      KeyStroke ksE = null;
   35.18  
   35.19        if (e.getID() == KeyEvent.KEY_TYPED) {
   35.20            ks = KeyStroke.getKeyStroke(e.getKeyChar());
   35.21 @@ -2896,9 +2899,18 @@
   35.22        else {
   35.23            ks = KeyStroke.getKeyStroke(e.getKeyCode(),e.getModifiers(),
   35.24                                      (pressed ? false:true));
   35.25 +          if (e.getKeyCode() != e.getExtendedKeyCode()) {
   35.26 +              ksE = KeyStroke.getKeyStroke(e.getExtendedKeyCode(),e.getModifiers(),
   35.27 +                                    (pressed ? false:true));
   35.28 +          }
   35.29        }
   35.30  
   35.31 -      /* Do we have a key binding for e? */
   35.32 +      // Do we have a key binding for e?
   35.33 +      // If we have a binding by an extended code, use it.
   35.34 +      // If not, check for regular code binding.
   35.35 +      if(ksE != null && processKeyBinding(ksE, e, WHEN_FOCUSED, pressed)) {
   35.36 +          return true;
   35.37 +      }
   35.38        if(processKeyBinding(ks, e, WHEN_FOCUSED, pressed))
   35.39            return true;
   35.40  
   35.41 @@ -2910,6 +2922,9 @@
   35.42        while (parent != null && !(parent instanceof Window) &&
   35.43               !(parent instanceof Applet)) {
   35.44            if(parent instanceof JComponent) {
   35.45 +              if(ksE != null && ((JComponent)parent).processKeyBinding(ksE, e,
   35.46 +                               WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, pressed))
   35.47 +                  return true;
   35.48                if(((JComponent)parent).processKeyBinding(ks, e,
   35.49                                 WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, pressed))
   35.50                    return true;
    36.1 --- a/src/share/classes/javax/swing/JLabel.java	Tue Apr 14 00:05:07 2009 -0700
    36.2 +++ b/src/share/classes/javax/swing/JLabel.java	Tue Apr 14 04:21:02 2009 -0700
    36.3 @@ -1,5 +1,5 @@
    36.4  /*
    36.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    36.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    36.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    36.8   *
    36.9   * This code is free software; you can redistribute it and/or modify it
   36.10 @@ -503,10 +503,10 @@
   36.11       * @see #setDisplayedMnemonic(int)
   36.12       */
   36.13      public void setDisplayedMnemonic(char aChar) {
   36.14 -        int vk = (int) aChar;
   36.15 -        if(vk >= 'a' && vk <='z')
   36.16 -            vk -= ('a' - 'A');
   36.17 -        setDisplayedMnemonic(vk);
   36.18 +        int vk = java.awt.event.KeyEvent.getExtendedKeyCodeForChar(aChar);
   36.19 +        if (vk != java.awt.event.KeyEvent.VK_UNDEFINED) {
   36.20 +            setDisplayedMnemonic(vk);
   36.21 +        }
   36.22      }
   36.23  
   36.24  
    37.1 --- a/src/share/classes/javax/swing/JTabbedPane.java	Tue Apr 14 00:05:07 2009 -0700
    37.2 +++ b/src/share/classes/javax/swing/JTabbedPane.java	Tue Apr 14 04:21:02 2009 -0700
    37.3 @@ -1,5 +1,5 @@
    37.4  /*
    37.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    37.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    37.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    37.8   *
    37.9   * This code is free software; you can redistribute it and/or modify it
   37.10 @@ -1628,7 +1628,9 @@
   37.11       * <p>
   37.12       * A mnemonic must correspond to a single key on the keyboard
   37.13       * and should be specified using one of the <code>VK_XXX</code>
   37.14 -     * keycodes defined in <code>java.awt.event.KeyEvent</code>.
   37.15 +     * keycodes defined in <code>java.awt.event.KeyEvent</code>
   37.16 +     * or one of the extended keycodes obtained through
   37.17 +     * <code>java.awt.event.KeyEvent.getExtendedKeyCodeForChar</code>.
   37.18       * Mnemonics are case-insensitive, therefore a key event
   37.19       * with the corresponding keycode would cause the button to be
   37.20       * activated whether or not the Shift modifier was pressed.
    38.1 --- a/src/share/classes/javax/swing/KeyStroke.java	Tue Apr 14 00:05:07 2009 -0700
    38.2 +++ b/src/share/classes/javax/swing/KeyStroke.java	Tue Apr 14 04:21:02 2009 -0700
    38.3 @@ -1,5 +1,5 @@
    38.4  /*
    38.5 - * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
    38.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    38.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    38.8   *
    38.9   * This code is free software; you can redistribute it and/or modify it
   38.10 @@ -162,6 +162,9 @@
   38.11       * <li>java.awt.event.KeyEvent.VK_TAB
   38.12       * <li>java.awt.event.KeyEvent.VK_SPACE
   38.13       * </ul>
   38.14 +     * Alternatively, the key code may be obtained by calling
   38.15 +     * <code>java.awt.event.KeyEvent.getExtendedKeyCodeForChar</code>.
   38.16 +     *
   38.17       * The modifiers consist of any combination of:<ul>
   38.18       * <li>java.awt.event.InputEvent.SHIFT_DOWN_MASK
   38.19       * <li>java.awt.event.InputEvent.CTRL_DOWN_MASK
   38.20 @@ -210,6 +213,9 @@
   38.21       * <li>java.awt.event.KeyEvent.VK_TAB
   38.22       * <li>java.awt.event.KeyEvent.VK_SPACE
   38.23       * </ul>
   38.24 +     * Alternatively, the key code may be obtained by calling
   38.25 +     * <code>java.awt.event.KeyEvent.getExtendedKeyCodeForChar</code>.
   38.26 +     *
   38.27       * The modifiers consist of any combination of:<ul>
   38.28       * <li>java.awt.event.InputEvent.SHIFT_DOWN_MASK
   38.29       * <li>java.awt.event.InputEvent.CTRL_DOWN_MASK
    39.1 --- a/src/share/classes/javax/swing/KeyboardManager.java	Tue Apr 14 00:05:07 2009 -0700
    39.2 +++ b/src/share/classes/javax/swing/KeyboardManager.java	Tue Apr 14 04:21:02 2009 -0700
    39.3 @@ -1,5 +1,5 @@
    39.4  /*
    39.5 - * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
    39.6 + * Copyright 1998-2009 Sun Microsystems, Inc.  All Rights Reserved.
    39.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    39.8   *
    39.9   * This code is free software; you can redistribute it and/or modify it
   39.10 @@ -212,19 +212,35 @@
   39.11                Thread.dumpStack();
   39.12           }
   39.13  
   39.14 +         // There may be two keystrokes associated with a low-level key event;
   39.15 +         // in this case a keystroke made of an extended key code has a priority.
   39.16           KeyStroke ks;
   39.17 +         KeyStroke ksE = null;
   39.18  
   39.19  
   39.20           if(e.getID() == KeyEvent.KEY_TYPED) {
   39.21                 ks=KeyStroke.getKeyStroke(e.getKeyChar());
   39.22           } else {
   39.23 +               if(e.getKeyCode() != e.getExtendedKeyCode()) {
   39.24 +                   ksE=KeyStroke.getKeyStroke(e.getExtendedKeyCode(), e.getModifiers(), !pressed);
   39.25 +               }
   39.26                 ks=KeyStroke.getKeyStroke(e.getKeyCode(), e.getModifiers(), !pressed);
   39.27           }
   39.28  
   39.29           Hashtable keyMap = containerMap.get(topAncestor);
   39.30           if (keyMap != null) { // this container isn't registered, so bail
   39.31  
   39.32 -             Object tmp = keyMap.get(ks);
   39.33 +             Object tmp = null;
   39.34 +             // extended code has priority
   39.35 +             if( ksE != null ) {
   39.36 +                 tmp = keyMap.get(ksE);
   39.37 +                 if( tmp != null ) {
   39.38 +                     ks = ksE;
   39.39 +                 }
   39.40 +             }
   39.41 +             if( tmp == null ) {
   39.42 +                 tmp = keyMap.get(ks);
   39.43 +             }
   39.44  
   39.45               if (tmp == null) {
   39.46                 // don't do anything
   39.47 @@ -269,7 +285,12 @@
   39.48                   while (iter.hasMoreElements()) {
   39.49                       JMenuBar mb = (JMenuBar)iter.nextElement();
   39.50                       if ( mb.isShowing() && mb.isEnabled() ) { // don't want to give these out
   39.51 -                         fireBinding(mb, ks, e, pressed);
   39.52 +                         if( !(ks.equals(ksE)) ) {
   39.53 +                             fireBinding(mb, ksE, e, pressed);
   39.54 +                         }
   39.55 +                         if(ks.equals(ksE) || !e.isConsumed()) {
   39.56 +                             fireBinding(mb, ks, e, pressed);
   39.57 +                         }
   39.58                           if (e.isConsumed()) {
   39.59                               return true;
   39.60                           }
    40.1 --- a/src/share/classes/javax/swing/RepaintManager.java	Tue Apr 14 00:05:07 2009 -0700
    40.2 +++ b/src/share/classes/javax/swing/RepaintManager.java	Tue Apr 14 04:21:02 2009 -0700
    40.3 @@ -1,5 +1,5 @@
    40.4  /*
    40.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    40.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    40.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    40.8   *
    40.9   * This code is free software; you can redistribute it and/or modify it
   40.10 @@ -34,6 +34,7 @@
   40.11  import java.util.*;
   40.12  import java.applet.*;
   40.13  
   40.14 +import sun.awt.AWTAccessor;
   40.15  import sun.awt.AppContext;
   40.16  import sun.awt.DisplayChangedListener;
   40.17  import sun.awt.SunToolkit;
   40.18 @@ -716,6 +717,44 @@
   40.19          }
   40.20      }
   40.21  
   40.22 +    private Map<Component,Rectangle>
   40.23 +        updateWindows(Map<Component,Rectangle> dirtyComponents)
   40.24 +    {
   40.25 +        Toolkit toolkit = Toolkit.getDefaultToolkit();
   40.26 +        if (!(toolkit instanceof SunToolkit &&
   40.27 +              ((SunToolkit)toolkit).needUpdateWindow()))
   40.28 +        {
   40.29 +            return dirtyComponents;
   40.30 +        }
   40.31 +
   40.32 +        Set<Window> windows = new HashSet<Window>();
   40.33 +        Set<Component> dirtyComps = dirtyComponents.keySet();
   40.34 +        for (Iterator<Component> it = dirtyComps.iterator(); it.hasNext();) {
   40.35 +            Component dirty = it.next();
   40.36 +            Window window = dirty instanceof Window ?
   40.37 +                (Window)dirty :
   40.38 +                SwingUtilities.getWindowAncestor(dirty);
   40.39 +
   40.40 +            if (window != null &&
   40.41 +                !AWTAccessor.getWindowAccessor().isOpaque(window))
   40.42 +            {
   40.43 +                // if this component's toplevel is perpixel translucent, it will
   40.44 +                // be repainted below
   40.45 +                it.remove();
   40.46 +                // add to the set of windows to update (so that we don't update
   40.47 +                // the window many times for each component to be repainted that
   40.48 +                // belongs to this window)
   40.49 +                windows.add(window);
   40.50 +            }
   40.51 +        }
   40.52 +
   40.53 +        for (Window window : windows) {
   40.54 +            AWTAccessor.getWindowAccessor().updateWindow(window, null);
   40.55 +        }
   40.56 +
   40.57 +        return dirtyComponents;
   40.58 +    }
   40.59 +
   40.60      /**
   40.61       * Paint all of the components that have been marked dirty.
   40.62       *
   40.63 @@ -749,6 +788,10 @@
   40.64          int localBoundsW;
   40.65          Enumeration keys;
   40.66  
   40.67 +        // the components belonging to perpixel-translucent windows will be
   40.68 +        // removed from the list
   40.69 +        tmpDirtyComponents = updateWindows(tmpDirtyComponents);
   40.70 +
   40.71          roots = new ArrayList<Component>(count);
   40.72  
   40.73          for (Component dirty : tmpDirtyComponents.keySet()) {
    41.1 --- a/src/share/classes/javax/swing/SwingUtilities.java	Tue Apr 14 00:05:07 2009 -0700
    41.2 +++ b/src/share/classes/javax/swing/SwingUtilities.java	Tue Apr 14 04:21:02 2009 -0700
    41.3 @@ -1,5 +1,5 @@
    41.4  /*
    41.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    41.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    41.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    41.8   *
    41.9   * This code is free software; you can redistribute it and/or modify it
   41.10 @@ -1589,15 +1589,6 @@
   41.11       * processing the key bindings associated with JComponents.
   41.12       */
   41.13      static boolean isValidKeyEventForKeyBindings(KeyEvent e) {
   41.14 -        if (e.getID() == KeyEvent.KEY_TYPED) {
   41.15 -            int mod = e.getModifiers();
   41.16 -            if (((mod & ActionEvent.ALT_MASK) != 0) &&
   41.17 -                ((mod & ActionEvent.CTRL_MASK) == 0)) {
   41.18 -                // filter out typed "alt-?" keys, but not those created
   41.19 -                // with AltGr, and not control characters
   41.20 -                return false;
   41.21 -            }
   41.22 -        }
   41.23          return true;
   41.24      }
   41.25  
    42.1 --- a/src/share/classes/sun/awt/AWTAccessor.java	Tue Apr 14 00:05:07 2009 -0700
    42.2 +++ b/src/share/classes/sun/awt/AWTAccessor.java	Tue Apr 14 04:21:02 2009 -0700
    42.3 @@ -1,5 +1,5 @@
    42.4  /*
    42.5 - * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
    42.6 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
    42.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    42.8   *
    42.9   * This code is free software; you can redistribute it and/or modify it
   42.10 @@ -26,46 +26,229 @@
   42.11  package sun.awt;
   42.12  
   42.13  import java.awt.*;
   42.14 +import java.awt.geom.Point2D;
   42.15 +import java.awt.image.BufferedImage;
   42.16 +
   42.17  import sun.misc.Unsafe;
   42.18  
   42.19 -/** The AWTAccessor utility class.
   42.20 +/**
   42.21 + * The AWTAccessor utility class.
   42.22   * The main purpose of this class is to enable accessing
   42.23   * private and package-private fields of classes from
   42.24   * different classes/packages. See sun.misc.SharedSecretes
   42.25   * for another example.
   42.26   */
   42.27  public final class AWTAccessor {
   42.28 +
   42.29      private static final Unsafe unsafe = Unsafe.getUnsafe();
   42.30  
   42.31 -    /** We don't need any objects of this class.
   42.32 +    /*
   42.33 +     * We don't need any objects of this class.
   42.34       * It's rather a collection of static methods
   42.35       * and interfaces.
   42.36       */
   42.37      private AWTAccessor() {
   42.38      }
   42.39  
   42.40 -    /** An accessor for the java.awt.Component class.
   42.41 +    /*
   42.42 +     * An interface of accessor for the java.awt.Component class.
   42.43       */
   42.44      public interface ComponentAccessor {
   42.45 -        // See 6797587
   42.46 -        // Also see: 6776743, 6768307, and 6768332.
   42.47 -        /**
   42.48 +        /*
   42.49 +         * Sets whether the native background erase for a component
   42.50 +         * has been disabled via SunToolkit.disableBackgroundErase().
   42.51 +         */
   42.52 +        void setBackgroundEraseDisabled(Component comp, boolean disabled);
   42.53 +        /*
   42.54 +         * Indicates whether the native background erase for a
   42.55 +         * component has been disabled via
   42.56 +         * SunToolkit.disableBackgroundErase().
   42.57 +         */
   42.58 +        boolean getBackgroundEraseDisabled(Component comp);
   42.59 +        /*
   42.60 +         *
   42.61 +         * Gets the bounds of this component in the form of a
   42.62 +         * <code>Rectangle</code> object. The bounds specify this
   42.63 +         * component's width, height, and location relative to
   42.64 +         * its parent.
   42.65 +         */
   42.66 +        Rectangle getBounds(Component comp);
   42.67 +        /*
   42.68           * Sets the shape of a lw component to cut out from hw components.
   42.69 +         *
   42.70 +         * See 6797587, 6776743, 6768307, and 6768332 for details
   42.71           */
   42.72          void setMixingCutoutShape(Component comp, Shape shape);
   42.73 +
   42.74 +        /**
   42.75 +         * Sets GraphicsConfiguration value for the component.
   42.76 +         */
   42.77 +        void setGraphicsConfiguration(Component comp, GraphicsConfiguration gc);
   42.78 +        /*
   42.79 +         * Requests focus to the component.
   42.80 +         */
   42.81 +        boolean requestFocus(Component comp, CausedFocusEvent.Cause cause);
   42.82 +        /*
   42.83 +         * Determines if the component can gain focus.
   42.84 +         */
   42.85 +        boolean canBeFocusOwner(Component comp);
   42.86 +
   42.87 +        /**
   42.88 +         * Returns whether the component is visible without invoking
   42.89 +         * any client code.
   42.90 +         */
   42.91 +        boolean isVisible_NoClientCode(Component comp);
   42.92      }
   42.93  
   42.94 -    /* The java.awt.Component class accessor object.
   42.95 +    /*
   42.96 +     * An interface of accessor for java.awt.Window class.
   42.97 +     */
   42.98 +    public interface WindowAccessor {
   42.99 +        /*
  42.100 +         * Get opacity level of the given window.
  42.101 +         */
  42.102 +        float getOpacity(Window window);
  42.103 +        /*
  42.104 +         * Set opacity level to the given window.
  42.105 +         */
  42.106 +        void setOpacity(Window window, float opacity);
  42.107 +        /*
  42.108 +         * Get a shape assigned to the given window.
  42.109 +         */
  42.110 +        Shape getShape(Window window);
  42.111 +        /*
  42.112 +         * Set a shape to the given window.
  42.113 +         */
  42.114 +        void setShape(Window window, Shape shape);
  42.115 +        /*
  42.116 +         * Identify whether the given window is opaque (true)
  42.117 +         *  or translucent (false).
  42.118 +         */
  42.119 +        boolean isOpaque(Window window);
  42.120 +        /*
  42.121 +         * Set the opaque preoperty to the given window.
  42.122 +         */
  42.123 +        void setOpaque(Window window, boolean isOpaque);
  42.124 +        /*
  42.125 +         * Update the image of a non-opaque (translucent) window.
  42.126 +         */
  42.127 +        void updateWindow(Window window, BufferedImage backBuffer);
  42.128 +
  42.129 +        /** Get the size of the security warning.
  42.130 +         */
  42.131 +        Dimension getSecurityWarningSize(Window w);
  42.132 +
  42.133 +        /**
  42.134 +         * Set the size of the security warning.
  42.135 +         */
  42.136 +        void setSecurityWarningSize(Window w, int width, int height);
  42.137 +
  42.138 +        /** Set the position of the security warning.
  42.139 +         */
  42.140 +        void setSecurityWarningPosition(Window w, Point2D point,
  42.141 +                float alignmentX, float alignmentY);
  42.142 +
  42.143 +        /** Request to recalculate the new position of the security warning for
  42.144 +         * the given window size/location as reported by the native system.
  42.145 +         */
  42.146 +        Point2D calculateSecurityWarningPosition(Window window,
  42.147 +                double x, double y, double w, double h);
  42.148 +    }
  42.149 +
  42.150 +    /*
  42.151 +     * An accessor for the AWTEvent class.
  42.152 +     */
  42.153 +    public interface AWTEventAccessor {
  42.154 +        /*
  42.155 +         *
  42.156 +         * Sets the flag on this AWTEvent indicating that it was
  42.157 +         * generated by the system.
  42.158 +         */
  42.159 +        void setSystemGenerated(AWTEvent ev);
  42.160 +        /*
  42.161 +         *
  42.162 +         * Indicates whether this AWTEvent was generated by the system.
  42.163 +         */
  42.164 +        boolean isSystemGenerated(AWTEvent ev);
  42.165 +    }
  42.166 +
  42.167 +    /*
  42.168 +     * An accessor for the java.awt.Frame class.
  42.169 +     */
  42.170 +    public interface FrameAccessor {
  42.171 +        /*
  42.172 +         * Sets the state of this frame.
  42.173 +         */
  42.174 +        void setExtendedState(Frame frame, int state);
  42.175 +        /*
  42.176 +         * Gets the state of this frame.
  42.177 +         */
  42.178 +       int getExtendedState(Frame frame);
  42.179 +    }
  42.180 +
  42.181 +    /*
  42.182 +     * An interface of accessor for the java.awt.KeyboardFocusManager class.
  42.183 +     */
  42.184 +    public interface KeyboardFocusManagerAccessor {
  42.185 +        /*
  42.186 +         * Indicates whether the native implementation should
  42.187 +         * proceed with a pending focus request for the heavyweight.
  42.188 +         */
  42.189 +        int shouldNativelyFocusHeavyweight(Component heavyweight,
  42.190 +                                           Component descendant,
  42.191 +                                           boolean temporary,
  42.192 +                                           boolean focusedWindowChangeAllowed,
  42.193 +                                           long time,
  42.194 +                                           CausedFocusEvent.Cause cause);
  42.195 +        /*
  42.196 +         * Delivers focus for the lightweight descendant of the heavyweight
  42.197 +         * synchronously.
  42.198 +         */
  42.199 +        boolean processSynchronousLightweightTransfer(Component heavyweight,
  42.200 +                                                      Component descendant,
  42.201 +                                                      boolean temporary,
  42.202 +                                                      boolean focusedWindowChangeAllowed,
  42.203 +                                                      long time);
  42.204 +        /*
  42.205 +         * Removes the last focus request for the heavyweight from the queue.
  42.206 +         */
  42.207 +        void removeLastFocusRequest(Component heavyweight);
  42.208 +    }
  42.209 +
  42.210 +    /*
  42.211 +     * The java.awt.Component class accessor object.
  42.212       */
  42.213      private static ComponentAccessor componentAccessor;
  42.214  
  42.215 -    /** Set an accessor object for the java.awt.Component class.
  42.216 +    /*
  42.217 +     * The java.awt.Window class accessor object.
  42.218 +     */
  42.219 +    private static WindowAccessor windowAccessor;
  42.220 +
  42.221 +    /*
  42.222 +     * The java.awt.AWTEvent class accessor object.
  42.223 +     */
  42.224 +    private static AWTEventAccessor awtEventAccessor;
  42.225 +
  42.226 +    /*
  42.227 +     * The java.awt.Frame class accessor object.
  42.228 +     */
  42.229 +    private static FrameAccessor frameAccessor;
  42.230 +
  42.231 +    /*
  42.232 +     * The java.awt.KeyboardFocusManager class accessor object.
  42.233 +     */
  42.234 +    private static KeyboardFocusManagerAccessor kfmAccessor;
  42.235 +
  42.236 +    /*
  42.237 +     * Set an accessor object for the java.awt.Component class.
  42.238       */
  42.239      public static void setComponentAccessor(ComponentAccessor ca) {
  42.240          componentAccessor = ca;
  42.241      }
  42.242  
  42.243 -    /** Retrieve the accessor object for the java.awt.Window class.
  42.244 +    /*
  42.245 +     * Retrieve the accessor object for the java.awt.Window class.
  42.246       */
  42.247      public static ComponentAccessor getComponentAccessor() {
  42.248          if (componentAccessor == null) {
  42.249 @@ -74,4 +257,69 @@
  42.250  
  42.251          return componentAccessor;
  42.252      }
  42.253 +
  42.254 +    /*
  42.255 +     * Set an accessor object for the java.awt.Window class.
  42.256 +     */
  42.257 +    public static void setWindowAccessor(WindowAccessor wa) {
  42.258 +        windowAccessor = wa;
  42.259 +    }
  42.260 +
  42.261 +    /*
  42.262 +     * Retrieve the accessor object for the java.awt.Window class.
  42.263 +     */
  42.264 +    public static WindowAccessor getWindowAccessor() {
  42.265 +        if (windowAccessor == null) {
  42.266 +            unsafe.ensureClassInitialized(Window.class);
  42.267 +        }
  42.268 +        return windowAccessor;
  42.269 +    }
  42.270 +
  42.271 +    /*
  42.272 +     * Set an accessor object for the java.awt.AWTEvent class.
  42.273 +     */
  42.274 +    public static void setAWTEventAccessor(AWTEventAccessor aea) {
  42.275 +        awtEventAccessor = aea;
  42.276 +    }
  42.277 +
  42.278 +    /*
  42.279 +     * Retrieve the accessor object for the java.awt.AWTEvent class.
  42.280 +     */
  42.281 +    public static AWTEventAccessor getAWTEventAccessor() {
  42.282 +        return awtEventAccessor;
  42.283 +    }
  42.284 +
  42.285 +    /*
  42.286 +     * Set an accessor object for the java.awt.Frame class.
  42.287 +     */
  42.288 +    public static void setFrameAccessor(FrameAccessor fa) {
  42.289 +        frameAccessor = fa;
  42.290 +    }
  42.291 +
  42.292 +    /*
  42.293 +     * Retrieve the accessor object for the java.awt.Frame class.
  42.294 +     */
  42.295 +    public static FrameAccessor getFrameAccessor() {
  42.296 +        if (frameAccessor == null) {
  42.297 +            unsafe.ensureClassInitialized(Frame.class);
  42.298 +        }
  42.299 +        return frameAccessor;
  42.300 +    }
  42.301 +
  42.302 +    /*
  42.303 +     * Set an accessor object for the java.awt.KeyboardFocusManager class.
  42.304 +     */
  42.305 +    public static void setKeyboardFocusManagerAccessor(KeyboardFocusManagerAccessor kfma) {
  42.306 +        kfmAccessor = kfma;
  42.307 +    }
  42.308 +
  42.309 +    /*
  42.310 +     * Retrieve the accessor object for the java.awt.KeyboardFocusManager class.
  42.311 +     */
  42.312 +    public static KeyboardFocusManagerAccessor getKeyboardFocusManagerAccessor() {
  42.313 +        if (kfmAccessor == null) {
  42.314 +            unsafe.ensureClassInitialized(KeyboardFocusManager.class);
  42.315 +        }
  42.316 +        return kfmAccessor;
  42.317 +    }
  42.318  }
    43.1 --- a/src/share/classes/sun/awt/ComponentAccessor.java	Tue Apr 14 00:05:07 2009 -0700
    43.2 +++ b/src/share/classes/sun/awt/ComponentAccessor.java	Tue Apr 14 04:21:02 2009 -0700
    43.3 @@ -73,7 +73,6 @@
    43.4      private static Field fieldPacked;
    43.5      private static Field fieldIgnoreRepaint;
    43.6      private static Field fieldPeer;
    43.7 -    private static Method methodResetGC;
    43.8      private static Field fieldVisible;
    43.9      private static Method methodIsEnabledImpl;
   43.10      private static Method methodGetCursorNoClientCode;
   43.11 @@ -124,9 +123,6 @@
   43.12                          fieldPeer = componentClass.getDeclaredField("peer");
   43.13                          fieldPeer.setAccessible(true);
   43.14  
   43.15 -                        methodResetGC = componentClass.getDeclaredMethod("resetGC", (Class[]) null);
   43.16 -                        methodResetGC.setAccessible(true);
   43.17 -
   43.18                          fieldVisible = componentClass.getDeclaredField("visible");
   43.19                          fieldVisible.setAccessible(true);
   43.20  
   43.21 @@ -425,18 +421,6 @@
   43.22          return false;
   43.23      }
   43.24  
   43.25 -    public static void resetGC(Component c) {
   43.26 -        try {
   43.27 -            methodResetGC.invoke(c, (Object[]) null);
   43.28 -        }
   43.29 -        catch (IllegalAccessException e) {
   43.30 -            log.log(Level.FINE, "Unable to access the Component object", e);
   43.31 -        }
   43.32 -        catch (InvocationTargetException e) {
   43.33 -            log.log(Level.FINE, "Unable to invoke on the Component object", e);
   43.34 -        }
   43.35 -    }
   43.36 -
   43.37      public static boolean getVisible(Component c) {
   43.38          try {
   43.39              return fieldVisible.getBoolean(c);
    44.1 --- a/src/share/classes/sun/awt/EmbeddedFrame.java	Tue Apr 14 00:05:07 2009 -0700
    44.2 +++ b/src/share/classes/sun/awt/EmbeddedFrame.java	Tue Apr 14 04:21:02 2009 -0700
    44.3 @@ -1,5 +1,5 @@
    44.4  /*
    44.5 - * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
    44.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
    44.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    44.8   *
    44.9   * This code is free software; you can redistribute it and/or modify it
   44.10 @@ -585,5 +585,14 @@
   44.11          }
   44.12          public void updateMinimumSize() {
   44.13          }
   44.14 -    }
   44.15 +
   44.16 +        public void setOpacity(float opacity) {
   44.17 +        }
   44.18 +        public void setOpaque(boolean isOpaque) {
   44.19 +        }
   44.20 +        public void updateWindow(BufferedImage backBuffer) {
   44.21 +        }
   44.22 +        public void repositionSecurityWarning() {
   44.23 +        }
   44.24 +     }
   44.25  } // class EmbeddedFrame
    45.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    45.2 +++ b/src/share/classes/sun/awt/ExtendedKeyCodes.java	Tue Apr 14 04:21:02 2009 -0700
    45.3 @@ -0,0 +1,670 @@
    45.4 +package sun.awt;
    45.5 +
    45.6 +import java.util.Collections;
    45.7 +import java.util.HashMap;
    45.8 +import java.util.HashSet;
    45.9 +import java.awt.event.KeyEvent;
   45.10 +
   45.11 +public class ExtendedKeyCodes {
   45.12 +    /**
   45.13 +     * ATTN: These are the readonly hashes with load factor == 1;
   45.14 +     * adding a value, please set the inital capacity to exact number of items
   45.15 +     * or higher.
   45.16 +     */
   45.17 +     // Keycodes declared in KeyEvent.java with corresponding Unicode values.
   45.18 +     private final static HashMap<Integer, Integer>  regularKeyCodesMap =
   45.19 +                                          new HashMap<Integer,Integer>(122, 1.0f);
   45.20 +
   45.21 +     // Keycodes derived from Unicode values. Here should be collected codes
   45.22 +     // for characters appearing on the primary layer of at least one
   45.23 +     // known keyboard layout. For instance, sterling sign is on the primary layer
   45.24 +     // of the Mac Italian layout.
   45.25 +     private final static HashSet<Integer> extendedKeyCodesSet =
   45.26 +                                                  new HashSet<Integer>(501, 1.0f);
   45.27 +     final public static int getExtendedKeyCodeForChar( int c ) {
   45.28 +         int rc = KeyEvent.VK_UNDEFINED;
   45.29 +         int uc = Character.toUpperCase( c );
   45.30 +         int lc = Character.toLowerCase( c );
   45.31 +         if (regularKeyCodesMap.containsKey( c )) {
   45.32 +             if(regularKeyCodesMap.containsKey(uc)) {
   45.33 +                 return regularKeyCodesMap.get( uc );
   45.34 +             }
   45.35 +             return regularKeyCodesMap.get( c );
   45.36 +         }
   45.37 +         uc += 0x01000000;
   45.38 +         lc += 0x01000000;
   45.39 +         if (extendedKeyCodesSet.contains( uc )) {
   45.40 +             return uc;
   45.41 +         }else if (extendedKeyCodesSet.contains( lc )) {
   45.42 +             return lc;
   45.43 +         }
   45.44 +         return rc;
   45.45 +     }
   45.46 +     static {
   45.47 +         regularKeyCodesMap.put(0x0a, KeyEvent.VK_ENTER);
   45.48 +         regularKeyCodesMap.put(0x08, KeyEvent.VK_BACK_SPACE);
   45.49 +         regularKeyCodesMap.put(0x09, KeyEvent.VK_TAB);
   45.50 +         regularKeyCodesMap.put(0x1B, KeyEvent.VK_ESCAPE);
   45.51 +         regularKeyCodesMap.put(0x20, KeyEvent.VK_SPACE);
   45.52 +         regularKeyCodesMap.put(0x21, KeyEvent.VK_PAGE_UP);
   45.53 +         regularKeyCodesMap.put(0x22, KeyEvent.VK_PAGE_DOWN);
   45.54 +         regularKeyCodesMap.put(0x23, KeyEvent.VK_END);
   45.55 +         regularKeyCodesMap.put(0x24, KeyEvent.VK_HOME);
   45.56 +         regularKeyCodesMap.put(0x25, KeyEvent.VK_LEFT);
   45.57 +         regularKeyCodesMap.put(0x26, KeyEvent.VK_UP);
   45.58 +         regularKeyCodesMap.put(0x27, KeyEvent.VK_RIGHT);
   45.59 +         regularKeyCodesMap.put(0x28, KeyEvent.VK_DOWN);
   45.60 +         regularKeyCodesMap.put(0x2C, KeyEvent.VK_COMMA);
   45.61 +         regularKeyCodesMap.put(0x2D, KeyEvent.VK_MINUS);
   45.62 +         regularKeyCodesMap.put(0x2E, KeyEvent.VK_PERIOD);
   45.63 +         regularKeyCodesMap.put(0x2F, KeyEvent.VK_SLASH);
   45.64 +         regularKeyCodesMap.put(0x30, KeyEvent.VK_0);
   45.65 +         regularKeyCodesMap.put(0x31, KeyEvent.VK_1);
   45.66 +         regularKeyCodesMap.put(0x32, KeyEvent.VK_2);
   45.67 +         regularKeyCodesMap.put(0x33, KeyEvent.VK_3);
   45.68 +         regularKeyCodesMap.put(0x34, KeyEvent.VK_4);
   45.69 +         regularKeyCodesMap.put(0x35, KeyEvent.VK_5);
   45.70 +         regularKeyCodesMap.put(0x36, KeyEvent.VK_6);
   45.71 +         regularKeyCodesMap.put(0x37, KeyEvent.VK_7);
   45.72 +         regularKeyCodesMap.put(0x38, KeyEvent.VK_8);
   45.73 +         regularKeyCodesMap.put(0x39, KeyEvent.VK_9);
   45.74 +         regularKeyCodesMap.put(0x3B, KeyEvent.VK_SEMICOLON);
   45.75 +         regularKeyCodesMap.put(0x3D, KeyEvent.VK_EQUALS);
   45.76 +         regularKeyCodesMap.put(0x41, KeyEvent.VK_A);
   45.77 +         regularKeyCodesMap.put(0x61, KeyEvent.VK_A);
   45.78 +         regularKeyCodesMap.put(0x42, KeyEvent.VK_B);
   45.79 +         regularKeyCodesMap.put(0x62, KeyEvent.VK_B);
   45.80 +         regularKeyCodesMap.put(0x43, KeyEvent.VK_C);
   45.81 +         regularKeyCodesMap.put(0x63, KeyEvent.VK_C);
   45.82 +         regularKeyCodesMap.put(0x44, KeyEvent.VK_D);
   45.83 +         regularKeyCodesMap.put(0x64, KeyEvent.VK_D);
   45.84 +         regularKeyCodesMap.put(0x45, KeyEvent.VK_E);
   45.85 +         regularKeyCodesMap.put(0x65, KeyEvent.VK_E);
   45.86 +         regularKeyCodesMap.put(0x46, KeyEvent.VK_F);
   45.87 +         regularKeyCodesMap.put(0x66, KeyEvent.VK_F);
   45.88 +         regularKeyCodesMap.put(0x47, KeyEvent.VK_G);
   45.89 +         regularKeyCodesMap.put(0x67, KeyEvent.VK_G);
   45.90 +         regularKeyCodesMap.put(0x48, KeyEvent.VK_H);
   45.91 +         regularKeyCodesMap.put(0x68, KeyEvent.VK_H);
   45.92 +         regularKeyCodesMap.put(0x49, KeyEvent.VK_I);
   45.93 +         regularKeyCodesMap.put(0x69, KeyEvent.VK_I);
   45.94 +         regularKeyCodesMap.put(0x4A, KeyEvent.VK_J);
   45.95 +         regularKeyCodesMap.put(0x6A, KeyEvent.VK_J);
   45.96 +         regularKeyCodesMap.put(0x4B, KeyEvent.VK_K);
   45.97 +         regularKeyCodesMap.put(0x6B, KeyEvent.VK_K);
   45.98 +         regularKeyCodesMap.put(0x4C, KeyEvent.VK_L);
   45.99 +         regularKeyCodesMap.put(0x6C, KeyEvent.VK_L);
  45.100 +         regularKeyCodesMap.put(0x4D, KeyEvent.VK_M);
  45.101 +         regularKeyCodesMap.put(0x6D, KeyEvent.VK_M);
  45.102 +         regularKeyCodesMap.put(0x4E, KeyEvent.VK_N);
  45.103 +         regularKeyCodesMap.put(0x6E, KeyEvent.VK_N);
  45.104 +         regularKeyCodesMap.put(0x4F, KeyEvent.VK_O);
  45.105 +         regularKeyCodesMap.put(0x6F, KeyEvent.VK_O);
  45.106 +         regularKeyCodesMap.put(0x50, KeyEvent.VK_P);
  45.107 +         regularKeyCodesMap.put(0x70, KeyEvent.VK_P);
  45.108 +         regularKeyCodesMap.put(0x51, KeyEvent.VK_Q);
  45.109 +         regularKeyCodesMap.put(0x71, KeyEvent.VK_Q);
  45.110 +         regularKeyCodesMap.put(0x52, KeyEvent.VK_R);
  45.111 +         regularKeyCodesMap.put(0x72, KeyEvent.VK_R);
  45.112 +         regularKeyCodesMap.put(0x53, KeyEvent.VK_S);
  45.113 +         regularKeyCodesMap.put(0x73, KeyEvent.VK_S);
  45.114 +         regularKeyCodesMap.put(0x54, KeyEvent.VK_T);
  45.115 +         regularKeyCodesMap.put(0x74, KeyEvent.VK_T);
  45.116 +         regularKeyCodesMap.put(0x55, KeyEvent.VK_U);
  45.117 +         regularKeyCodesMap.put(0x75, KeyEvent.VK_U);
  45.118 +         regularKeyCodesMap.put(0x56, KeyEvent.VK_V);
  45.119 +         regularKeyCodesMap.put(0x76, KeyEvent.VK_V);
  45.120 +         regularKeyCodesMap.put(0x57, KeyEvent.VK_W);
  45.121 +         regularKeyCodesMap.put(0x77, KeyEvent.VK_W);
  45.122 +         regularKeyCodesMap.put(0x58, KeyEvent.VK_X);
  45.123 +         regularKeyCodesMap.put(0x78, KeyEvent.VK_X);
  45.124 +         regularKeyCodesMap.put(0x59, KeyEvent.VK_Y);
  45.125 +         regularKeyCodesMap.put(0x79, KeyEvent.VK_Y);
  45.126 +         regularKeyCodesMap.put(0x5A, KeyEvent.VK_Z);
  45.127 +         regularKeyCodesMap.put(0x7A, KeyEvent.VK_Z);
  45.128 +         regularKeyCodesMap.put(0x5B, KeyEvent.VK_OPEN_BRACKET);
  45.129 +         regularKeyCodesMap.put(0x5C, KeyEvent.VK_BACK_SLASH);
  45.130 +         regularKeyCodesMap.put(0x5D, KeyEvent.VK_CLOSE_BRACKET);
  45.131 +//         regularKeyCodesMap.put(0x60, KeyEvent.VK_NUMPAD0);
  45.132 +//         regularKeyCodesMap.put(0x61, KeyEvent.VK_NUMPAD1);
  45.133 +//         regularKeyCodesMap.put(0x62, KeyEvent.VK_NUMPAD2);
  45.134 +//         regularKeyCodesMap.put(0x63, KeyEvent.VK_NUMPAD3);
  45.135 +//         regularKeyCodesMap.put(0x64, KeyEvent.VK_NUMPAD4);
  45.136 +//         regularKeyCodesMap.put(0x65, KeyEvent.VK_NUMPAD5);
  45.137 +//         regularKeyCodesMap.put(0x66, KeyEvent.VK_NUMPAD6);
  45.138 +//         regularKeyCodesMap.put(0x67, KeyEvent.VK_NUMPAD7);
  45.139 +//         regularKeyCodesMap.put(0x68, KeyEvent.VK_NUMPAD8);
  45.140 +//         regularKeyCodesMap.put(0x69, KeyEvent.VK_NUMPAD9);
  45.141 +         regularKeyCodesMap.put(0x6A, KeyEvent.VK_MULTIPLY);
  45.142 +         regularKeyCodesMap.put(0x6B, KeyEvent.VK_ADD);
  45.143 +         regularKeyCodesMap.put(0x6C, KeyEvent.VK_SEPARATER);
  45.144 +         regularKeyCodesMap.put(0x6D, KeyEvent.VK_SUBTRACT);
  45.145 +         regularKeyCodesMap.put(0x6E, KeyEvent.VK_DECIMAL);
  45.146 +         regularKeyCodesMap.put(0x6F, KeyEvent.VK_DIVIDE);
  45.147 +         regularKeyCodesMap.put(0x7F, KeyEvent.VK_DELETE);
  45.148 +         regularKeyCodesMap.put(0xC0, KeyEvent.VK_BACK_QUOTE);
  45.149 +         regularKeyCodesMap.put(0xDE, KeyEvent.VK_QUOTE);
  45.150 +         regularKeyCodesMap.put(0x26, KeyEvent.VK_AMPERSAND);
  45.151 +         regularKeyCodesMap.put(0x2A, KeyEvent.VK_ASTERISK);
  45.152 +         regularKeyCodesMap.put(0x22, KeyEvent.VK_QUOTEDBL);
  45.153 +         regularKeyCodesMap.put(0x3C, KeyEvent.VK_LESS);
  45.154 +         regularKeyCodesMap.put(0x3E, KeyEvent.VK_GREATER);
  45.155 +         regularKeyCodesMap.put(0x7B, KeyEvent.VK_BRACELEFT);
  45.156 +         regularKeyCodesMap.put(0x7D, KeyEvent.VK_BRACERIGHT);
  45.157 +         regularKeyCodesMap.put(0x40, KeyEvent.VK_AT);
  45.158 +         regularKeyCodesMap.put(0x3A, KeyEvent.VK_COLON);
  45.159 +         regularKeyCodesMap.put(0x5E, KeyEvent.VK_CIRCUMFLEX);
  45.160 +         regularKeyCodesMap.put(0x24, KeyEvent.VK_DOLLAR);
  45.161 +         regularKeyCodesMap.put(0x20AC, KeyEvent.VK_EURO_SIGN);
  45.162 +         regularKeyCodesMap.put(0x21, KeyEvent.VK_EXCLAMATION_MARK);
  45.163 +         regularKeyCodesMap.put(0xA1, KeyEvent.VK_INVERTED_EXCLAMATION_MARK);
  45.164 +         regularKeyCodesMap.put(0x28, KeyEvent.VK_LEFT_PARENTHESIS);
  45.165 +         regularKeyCodesMap.put(0x23, KeyEvent.VK_NUMBER_SIGN);
  45.166 +         regularKeyCodesMap.put(0x2B, KeyEvent.VK_PLUS);
  45.167 +         regularKeyCodesMap.put(0x29, KeyEvent.VK_RIGHT_PARENTHESIS);
  45.168 +         regularKeyCodesMap.put(0x5F, KeyEvent.VK_UNDERSCORE);
  45.169 +
  45.170 +
  45.171 +         extendedKeyCodesSet.add(0x01000000+0x0060);
  45.172 +         extendedKeyCodesSet.add(0x01000000+0x007C);
  45.173 +         extendedKeyCodesSet.add(0x01000000+0x007E);
  45.174 +         extendedKeyCodesSet.add(0x01000000+0x00A2);
  45.175 +         extendedKeyCodesSet.add(0x01000000+0x00A3);
  45.176 +         extendedKeyCodesSet.add(0x01000000+0x00A5);
  45.177 +         extendedKeyCodesSet.add(0x01000000+0x00A7);
  45.178 +         extendedKeyCodesSet.add(0x01000000+0x00A8);
  45.179 +         extendedKeyCodesSet.add(0x01000000+0x00AB);
  45.180 +         extendedKeyCodesSet.add(0x01000000+0x00B0);
  45.181 +         extendedKeyCodesSet.add(0x01000000+0x00B1);
  45.182 +         extendedKeyCodesSet.add(0x01000000+0x00B2);
  45.183 +         extendedKeyCodesSet.add(0x01000000+0x00B3);
  45.184 +         extendedKeyCodesSet.add(0x01000000+0x00B4);
  45.185 +         extendedKeyCodesSet.add(0x01000000+0x00B5);
  45.186 +         extendedKeyCodesSet.add(0x01000000+0x00B6);
  45.187 +         extendedKeyCodesSet.add(0x01000000+0x00B7);
  45.188 +         extendedKeyCodesSet.add(0x01000000+0x00B9);
  45.189 +         extendedKeyCodesSet.add(0x01000000+0x00BA);
  45.190 +         extendedKeyCodesSet.add(0x01000000+0x00BB);
  45.191 +         extendedKeyCodesSet.add(0x01000000+0x00BC);
  45.192 +         extendedKeyCodesSet.add(0x01000000+0x00BD);
  45.193 +         extendedKeyCodesSet.add(0x01000000+0x00BE);
  45.194 +         extendedKeyCodesSet.add(0x01000000+0x00BF);
  45.195 +         extendedKeyCodesSet.add(0x01000000+0x00C4);
  45.196 +         extendedKeyCodesSet.add(0x01000000+0x00C5);
  45.197 +         extendedKeyCodesSet.add(0x01000000+0x00C6);
  45.198 +         extendedKeyCodesSet.add(0x01000000+0x00C7);
  45.199 +         extendedKeyCodesSet.add(0x01000000+0x00D1);
  45.200 +         extendedKeyCodesSet.add(0x01000000+0x00D6);
  45.201 +         extendedKeyCodesSet.add(0x01000000+0x00D7);
  45.202 +         extendedKeyCodesSet.add(0x01000000+0x00D8);
  45.203 +         extendedKeyCodesSet.add(0x01000000+0x00DF);
  45.204 +         extendedKeyCodesSet.add(0x01000000+0x00E0);
  45.205 +         extendedKeyCodesSet.add(0x01000000+0x00E1);
  45.206 +         extendedKeyCodesSet.add(0x01000000+0x00E2);
  45.207 +         extendedKeyCodesSet.add(0x01000000+0x00E4);
  45.208 +         extendedKeyCodesSet.add(0x01000000+0x00E5);
  45.209 +         extendedKeyCodesSet.add(0x01000000+0x00E6);
  45.210 +         extendedKeyCodesSet.add(0x01000000+0x00E7);
  45.211 +         extendedKeyCodesSet.add(0x01000000+0x00E8);
  45.212 +         extendedKeyCodesSet.add(0x01000000+0x00E9);
  45.213 +         extendedKeyCodesSet.add(0x01000000+0x00EA);
  45.214 +         extendedKeyCodesSet.add(0x01000000+0x00EB);
  45.215 +         extendedKeyCodesSet.add(0x01000000+0x00EC);
  45.216 +         extendedKeyCodesSet.add(0x01000000+0x00ED);
  45.217 +         extendedKeyCodesSet.add(0x01000000+0x00EE);
  45.218 +         extendedKeyCodesSet.add(0x01000000+0x00F0);
  45.219 +         extendedKeyCodesSet.add(0x01000000+0x00F1);
  45.220 +         extendedKeyCodesSet.add(0x01000000+0x00F2);
  45.221 +         extendedKeyCodesSet.add(0x01000000+0x00F3);
  45.222 +         extendedKeyCodesSet.add(0x01000000+0x00F4);
  45.223 +         extendedKeyCodesSet.add(0x01000000+0x00F5);
  45.224 +         extendedKeyCodesSet.add(0x01000000+0x00F6);
  45.225 +         extendedKeyCodesSet.add(0x01000000+0x00F7);
  45.226 +         extendedKeyCodesSet.add(0x01000000+0x00F8);
  45.227 +         extendedKeyCodesSet.add(0x01000000+0x00F9);
  45.228 +         extendedKeyCodesSet.add(0x01000000+0x00FA);
  45.229 +         extendedKeyCodesSet.add(0x01000000+0x00FB);
  45.230 +         extendedKeyCodesSet.add(0x01000000+0x00FC);
  45.231 +         extendedKeyCodesSet.add(0x01000000+0x00FD);
  45.232 +         extendedKeyCodesSet.add(0x01000000+0x00FE);
  45.233 +         extendedKeyCodesSet.add(0x01000000+0x0105);
  45.234 +         extendedKeyCodesSet.add(0x01000000+0x02DB);
  45.235 +         extendedKeyCodesSet.add(0x01000000+0x0142);
  45.236 +         extendedKeyCodesSet.add(0x01000000+0x013E);
  45.237 +         extendedKeyCodesSet.add(0x01000000+0x015B);
  45.238 +         extendedKeyCodesSet.add(0x01000000+0x0161);
  45.239 +         extendedKeyCodesSet.add(0x01000000+0x015F);
  45.240 +         extendedKeyCodesSet.add(0x01000000+0x0165);
  45.241 +         extendedKeyCodesSet.add(0x01000000+0x017E);
  45.242 +         extendedKeyCodesSet.add(0x01000000+0x017C);
  45.243 +         extendedKeyCodesSet.add(0x01000000+0x0103);
  45.244 +         extendedKeyCodesSet.add(0x01000000+0x0107);
  45.245 +         extendedKeyCodesSet.add(0x01000000+0x010D);
  45.246 +         extendedKeyCodesSet.add(0x01000000+0x0119);
  45.247 +         extendedKeyCodesSet.add(0x01000000+0x011B);
  45.248 +         extendedKeyCodesSet.add(0x01000000+0x0111);
  45.249 +         extendedKeyCodesSet.add(0x01000000+0x0148);
  45.250 +         extendedKeyCodesSet.add(0x01000000+0x0151);
  45.251 +         extendedKeyCodesSet.add(0x01000000+0x0171);
  45.252 +         extendedKeyCodesSet.add(0x01000000+0x0159);
  45.253 +         extendedKeyCodesSet.add(0x01000000+0x016F);
  45.254 +         extendedKeyCodesSet.add(0x01000000+0x0163);
  45.255 +         extendedKeyCodesSet.add(0x01000000+0x02D9);
  45.256 +         extendedKeyCodesSet.add(0x01000000+0x0130);
  45.257 +         extendedKeyCodesSet.add(0x01000000+0x0127);
  45.258 +         extendedKeyCodesSet.add(0x01000000+0x0125);
  45.259 +         extendedKeyCodesSet.add(0x01000000+0x0131);
  45.260 +         extendedKeyCodesSet.add(0x01000000+0x011F);
  45.261 +         extendedKeyCodesSet.add(0x01000000+0x0135);
  45.262 +         extendedKeyCodesSet.add(0x01000000+0x010B);
  45.263 +         extendedKeyCodesSet.add(0x01000000+0x0109);
  45.264 +         extendedKeyCodesSet.add(0x01000000+0x0121);
  45.265 +         extendedKeyCodesSet.add(0x01000000+0x011D);
  45.266 +         extendedKeyCodesSet.add(0x01000000+0x016D);
  45.267 +         extendedKeyCodesSet.add(0x01000000+0x015D);
  45.268 +         extendedKeyCodesSet.add(0x01000000+0x0138);
  45.269 +         extendedKeyCodesSet.add(0x01000000+0x0157);
  45.270 +         extendedKeyCodesSet.add(0x01000000+0x013C);
  45.271 +         extendedKeyCodesSet.add(0x01000000+0x0113);
  45.272 +         extendedKeyCodesSet.add(0x01000000+0x0123);
  45.273 +         extendedKeyCodesSet.add(0x01000000+0x0167);
  45.274 +         extendedKeyCodesSet.add(0x01000000+0x014B);
  45.275 +         extendedKeyCodesSet.add(0x01000000+0x0101);
  45.276 +         extendedKeyCodesSet.add(0x01000000+0x012F);
  45.277 +         extendedKeyCodesSet.add(0x01000000+0x0117);
  45.278 +         extendedKeyCodesSet.add(0x01000000+0x012B);
  45.279 +         extendedKeyCodesSet.add(0x01000000+0x0146);
  45.280 +         extendedKeyCodesSet.add(0x01000000+0x014D);
  45.281 +         extendedKeyCodesSet.add(0x01000000+0x0137);
  45.282 +         extendedKeyCodesSet.add(0x01000000+0x0173);
  45.283 +         extendedKeyCodesSet.add(0x01000000+0x016B);
  45.284 +         extendedKeyCodesSet.add(0x01000000+0x0153);
  45.285 +         extendedKeyCodesSet.add(0x01000000+0x30FC);
  45.286 +         extendedKeyCodesSet.add(0x01000000+0x30A2);
  45.287 +         extendedKeyCodesSet.add(0x01000000+0x30A4);
  45.288 +         extendedKeyCodesSet.add(0x01000000+0x30A6);
  45.289 +         extendedKeyCodesSet.add(0x01000000+0x30A8);
  45.290 +         extendedKeyCodesSet.add(0x01000000+0x30AA);
  45.291 +         extendedKeyCodesSet.add(0x01000000+0x30AB);
  45.292 +         extendedKeyCodesSet.add(0x01000000+0x30AD);
  45.293 +         extendedKeyCodesSet.add(0x01000000+0x30AF);
  45.294 +         extendedKeyCodesSet.add(0x01000000+0x30B1);
  45.295 +         extendedKeyCodesSet.add(0x01000000+0x30B3);
  45.296 +         extendedKeyCodesSet.add(0x01000000+0x30B5);
  45.297 +         extendedKeyCodesSet.add(0x01000000+0x30B7);
  45.298 +         extendedKeyCodesSet.add(0x01000000+0x30B9);
  45.299 +         extendedKeyCodesSet.add(0x01000000+0x30BB);
  45.300 +         extendedKeyCodesSet.add(0x01000000+0x30BD);
  45.301 +         extendedKeyCodesSet.add(0x01000000+0x30BF);
  45.302 +         extendedKeyCodesSet.add(0x01000000+0x30C1);
  45.303 +         extendedKeyCodesSet.add(0x01000000+0x30C4);
  45.304 +         extendedKeyCodesSet.add(0x01000000+0x30C6);
  45.305 +         extendedKeyCodesSet.add(0x01000000+0x30C8);
  45.306 +         extendedKeyCodesSet.add(0x01000000+0x30CA);
  45.307 +         extendedKeyCodesSet.add(0x01000000+0x30CB);
  45.308 +         extendedKeyCodesSet.add(0x01000000+0x30CC);
  45.309 +         extendedKeyCodesSet.add(0x01000000+0x30CD);
  45.310 +         extendedKeyCodesSet.add(0x01000000+0x30CE);
  45.311 +         extendedKeyCodesSet.add(0x01000000+0x30CF);
  45.312 +         extendedKeyCodesSet.add(0x01000000+0x30D2);
  45.313 +         extendedKeyCodesSet.add(0x01000000+0x30D5);
  45.314 +         extendedKeyCodesSet.add(0x01000000+0x30D8);
  45.315 +         extendedKeyCodesSet.add(0x01000000+0x30DB);
  45.316 +         extendedKeyCodesSet.add(0x01000000+0x30DE);
  45.317 +         extendedKeyCodesSet.add(0x01000000+0x30DF);
  45.318 +         extendedKeyCodesSet.add(0x01000000+0x30E0);
  45.319 +         extendedKeyCodesSet.add(0x01000000+0x30E1);
  45.320 +         extendedKeyCodesSet.add(0x01000000+0x30E2);
  45.321 +         extendedKeyCodesSet.add(0x01000000+0x30E4);
  45.322 +         extendedKeyCodesSet.add(0x01000000+0x30E6);
  45.323 +         extendedKeyCodesSet.add(0x01000000+0x30E8);
  45.324 +         extendedKeyCodesSet.add(0x01000000+0x30E9);
  45.325 +         extendedKeyCodesSet.add(0x01000000+0x30EA);
  45.326 +         extendedKeyCodesSet.add(0x01000000+0x30EB);
  45.327 +         extendedKeyCodesSet.add(0x01000000+0x30EC);
  45.328 +         extendedKeyCodesSet.add(0x01000000+0x30ED);
  45.329 +         extendedKeyCodesSet.add(0x01000000+0x30EF);
  45.330 +         extendedKeyCodesSet.add(0x01000000+0x30F3);
  45.331 +         extendedKeyCodesSet.add(0x01000000+0x309B);
  45.332 +         extendedKeyCodesSet.add(0x01000000+0x309C);
  45.333 +         extendedKeyCodesSet.add(0x01000000+0x06F0);
  45.334 +         extendedKeyCodesSet.add(0x01000000+0x06F1);
  45.335 +         extendedKeyCodesSet.add(0x01000000+0x06F2);
  45.336 +         extendedKeyCodesSet.add(0x01000000+0x06F3);
  45.337 +         extendedKeyCodesSet.add(0x01000000+0x06F4);
  45.338 +         extendedKeyCodesSet.add(0x01000000+0x06F5);
  45.339 +         extendedKeyCodesSet.add(0x01000000+0x06F6);
  45.340 +         extendedKeyCodesSet.add(0x01000000+0x06F7);
  45.341 +         extendedKeyCodesSet.add(0x01000000+0x06F8);
  45.342 +         extendedKeyCodesSet.add(0x01000000+0x06F9);
  45.343 +         extendedKeyCodesSet.add(0x01000000+0x0670);
  45.344 +         extendedKeyCodesSet.add(0x01000000+0x067E);
  45.345 +         extendedKeyCodesSet.add(0x01000000+0x0686);
  45.346 +         extendedKeyCodesSet.add(0x01000000+0x060C);
  45.347 +         extendedKeyCodesSet.add(0x01000000+0x06D4);
  45.348 +         extendedKeyCodesSet.add(0x01000000+0x0660);
  45.349 +         extendedKeyCodesSet.add(0x01000000+0x0661);
  45.350 +         extendedKeyCodesSet.add(0x01000000+0x0662);
  45.351 +         extendedKeyCodesSet.add(0x01000000+0x0663);
  45.352 +         extendedKeyCodesSet.add(0x01000000+0x0664);
  45.353 +         extendedKeyCodesSet.add(0x01000000+0x0665);
  45.354 +         extendedKeyCodesSet.add(0x01000000+0x0666);
  45.355 +         extendedKeyCodesSet.add(0x01000000+0x0667);
  45.356 +         extendedKeyCodesSet.add(0x01000000+0x0668);
  45.357 +         extendedKeyCodesSet.add(0x01000000+0x0669);
  45.358 +         extendedKeyCodesSet.add(0x01000000+0x061B);
  45.359 +         extendedKeyCodesSet.add(0x01000000+0x0621);
  45.360 +         extendedKeyCodesSet.add(0x01000000+0x0624);
  45.361 +         extendedKeyCodesSet.add(0x01000000+0x0626);
  45.362 +         extendedKeyCodesSet.add(0x01000000+0x0627);
  45.363 +         extendedKeyCodesSet.add(0x01000000+0x0628);
  45.364 +         extendedKeyCodesSet.add(0x01000000+0x0629);
  45.365 +         extendedKeyCodesSet.add(0x01000000+0x062A);
  45.366 +         extendedKeyCodesSet.add(0x01000000+0x062B);
  45.367 +         extendedKeyCodesSet.add(0x01000000+0x062C);
  45.368 +         extendedKeyCodesSet.add(0x01000000+0x062D);
  45.369 +         extendedKeyCodesSet.add(0x01000000+0x062E);
  45.370 +         extendedKeyCodesSet.add(0x01000000+0x062F);
  45.371 +         extendedKeyCodesSet.add(0x01000000+0x0630);
  45.372 +         extendedKeyCodesSet.add(0x01000000+0x0631);
  45.373 +         extendedKeyCodesSet.add(0x01000000+0x0632);
  45.374 +         extendedKeyCodesSet.add(0x01000000+0x0633);
  45.375 +         extendedKeyCodesSet.add(0x01000000+0x0634);
  45.376 +         extendedKeyCodesSet.add(0x01000000+0x0635);
  45.377 +         extendedKeyCodesSet.add(0x01000000+0x0636);
  45.378 +         extendedKeyCodesSet.add(0x01000000+0x0637);
  45.379 +         extendedKeyCodesSet.add(0x01000000+0x0638);
  45.380 +         extendedKeyCodesSet.add(0x01000000+0x0639);
  45.381 +         extendedKeyCodesSet.add(0x01000000+0x063A);
  45.382 +         extendedKeyCodesSet.add(0x01000000+0x0641);
  45.383 +         extendedKeyCodesSet.add(0x01000000+0x0642);
  45.384 +         extendedKeyCodesSet.add(0x01000000+0x0643);
  45.385 +         extendedKeyCodesSet.add(0x01000000+0x0644);
  45.386 +         extendedKeyCodesSet.add(0x01000000+0x0645);
  45.387 +         extendedKeyCodesSet.add(0x01000000+0x0646);
  45.388 +         extendedKeyCodesSet.add(0x01000000+0x0647);
  45.389 +         extendedKeyCodesSet.add(0x01000000+0x0648);
  45.390 +         extendedKeyCodesSet.add(0x01000000+0x0649);
  45.391 +         extendedKeyCodesSet.add(0x01000000+0x064A);
  45.392 +         extendedKeyCodesSet.add(0x01000000+0x064E);
  45.393 +         extendedKeyCodesSet.add(0x01000000+0x064F);
  45.394 +         extendedKeyCodesSet.add(0x01000000+0x0650);
  45.395 +         extendedKeyCodesSet.add(0x01000000+0x0652);
  45.396 +         extendedKeyCodesSet.add(0x01000000+0x0698);
  45.397 +         extendedKeyCodesSet.add(0x01000000+0x06A4);
  45.398 +         extendedKeyCodesSet.add(0x01000000+0x06A9);
  45.399 +         extendedKeyCodesSet.add(0x01000000+0x06AF);
  45.400 +         extendedKeyCodesSet.add(0x01000000+0x06BE);
  45.401 +         extendedKeyCodesSet.add(0x01000000+0x06CC);
  45.402 +         extendedKeyCodesSet.add(0x01000000+0x06CC);
  45.403 +         extendedKeyCodesSet.add(0x01000000+0x06D2);
  45.404 +         extendedKeyCodesSet.add(0x01000000+0x0493);
  45.405 +         extendedKeyCodesSet.add(0x01000000+0x0497);
  45.406 +         extendedKeyCodesSet.add(0x01000000+0x049B);
  45.407 +         extendedKeyCodesSet.add(0x01000000+0x049D);
  45.408 +         extendedKeyCodesSet.add(0x01000000+0x04A3);
  45.409 +         extendedKeyCodesSet.add(0x01000000+0x04AF);
  45.410 +         extendedKeyCodesSet.add(0x01000000+0x04B1);
  45.411 +         extendedKeyCodesSet.add(0x01000000+0x04B3);
  45.412 +         extendedKeyCodesSet.add(0x01000000+0x04B9);
  45.413 +         extendedKeyCodesSet.add(0x01000000+0x04BB);
  45.414 +         extendedKeyCodesSet.add(0x01000000+0x04D9);
  45.415 +         extendedKeyCodesSet.add(0x01000000+0x04E9);
  45.416 +         extendedKeyCodesSet.add(0x01000000+0x0452);
  45.417 +         extendedKeyCodesSet.add(0x01000000+0x0453);
  45.418 +         extendedKeyCodesSet.add(0x01000000+0x0451);
  45.419 +         extendedKeyCodesSet.add(0x01000000+0x0454);
  45.420 +         extendedKeyCodesSet.add(0x01000000+0x0455);
  45.421 +         extendedKeyCodesSet.add(0x01000000+0x0456);
  45.422 +         extendedKeyCodesSet.add(0x01000000+0x0457);
  45.423 +         extendedKeyCodesSet.add(0x01000000+0x0458);
  45.424 +         extendedKeyCodesSet.add(0x01000000+0x0459);
  45.425 +         extendedKeyCodesSet.add(0x01000000+0x045A);
  45.426 +         extendedKeyCodesSet.add(0x01000000+0x045B);
  45.427 +         extendedKeyCodesSet.add(0x01000000+0x045C);
  45.428 +         extendedKeyCodesSet.add(0x01000000+0x0491);
  45.429 +         extendedKeyCodesSet.add(0x01000000+0x045E);
  45.430 +         extendedKeyCodesSet.add(0x01000000+0x045F);
  45.431 +         extendedKeyCodesSet.add(0x01000000+0x2116);
  45.432 +         extendedKeyCodesSet.add(0x01000000+0x044E);
  45.433 +         extendedKeyCodesSet.add(0x01000000+0x0430);
  45.434 +         extendedKeyCodesSet.add(0x01000000+0x0431);
  45.435 +         extendedKeyCodesSet.add(0x01000000+0x0446);
  45.436 +         extendedKeyCodesSet.add(0x01000000+0x0434);
  45.437 +         extendedKeyCodesSet.add(0x01000000+0x0435);
  45.438 +         extendedKeyCodesSet.add(0x01000000+0x0444);
  45.439 +         extendedKeyCodesSet.add(0x01000000+0x0433);
  45.440 +         extendedKeyCodesSet.add(0x01000000+0x0445);
  45.441 +         extendedKeyCodesSet.add(0x01000000+0x0438);
  45.442 +         extendedKeyCodesSet.add(0x01000000+0x0439);
  45.443 +         extendedKeyCodesSet.add(0x01000000+0x043A);
  45.444 +         extendedKeyCodesSet.add(0x01000000+0x043B);
  45.445 +         extendedKeyCodesSet.add(0x01000000+0x043C);
  45.446 +         extendedKeyCodesSet.add(0x01000000+0x043D);
  45.447 +         extendedKeyCodesSet.add(0x01000000+0x043E);
  45.448 +         extendedKeyCodesSet.add(0x01000000+0x043F);
  45.449 +         extendedKeyCodesSet.add(0x01000000+0x044F);
  45.450 +         extendedKeyCodesSet.add(0x01000000+0x0440);
  45.451 +         extendedKeyCodesSet.add(0x01000000+0x0441);
  45.452 +         extendedKeyCodesSet.add(0x01000000+0x0442);
  45.453 +         extendedKeyCodesSet.add(0x01000000+0x0443);
  45.454 +         extendedKeyCodesSet.add(0x01000000+0x0436);
  45.455 +         extendedKeyCodesSet.add(0x01000000+0x0432);
  45.456 +         extendedKeyCodesSet.add(0x01000000+0x044C);
  45.457 +         extendedKeyCodesSet.add(0x01000000+0x044B);
  45.458 +         extendedKeyCodesSet.add(0x01000000+0x0437);
  45.459 +         extendedKeyCodesSet.add(0x01000000+0x0448);
  45.460 +         extendedKeyCodesSet.add(0x01000000+0x044D);
  45.461 +         extendedKeyCodesSet.add(0x01000000+0x0449);
  45.462 +         extendedKeyCodesSet.add(0x01000000+0x0447);
  45.463 +         extendedKeyCodesSet.add(0x01000000+0x044A);
  45.464 +         extendedKeyCodesSet.add(0x01000000+0x2015);
  45.465 +         extendedKeyCodesSet.add(0x01000000+0x03B1);
  45.466 +         extendedKeyCodesSet.add(0x01000000+0x03B2);
  45.467 +         extendedKeyCodesSet.add(0x01000000+0x03B3);
  45.468 +         extendedKeyCodesSet.add(0x01000000+0x03B4);
  45.469 +         extendedKeyCodesSet.add(0x01000000+0x03B5);
  45.470 +         extendedKeyCodesSet.add(0x01000000+0x03B6);
  45.471 +         extendedKeyCodesSet.add(0x01000000+0x03B7);
  45.472 +         extendedKeyCodesSet.add(0x01000000+0x03B8);
  45.473 +         extendedKeyCodesSet.add(0x01000000+0x03B9);
  45.474 +         extendedKeyCodesSet.add(0x01000000+0x03BA);
  45.475 +         extendedKeyCodesSet.add(0x01000000+0x03BB);
  45.476 +         extendedKeyCodesSet.add(0x01000000+0x03BC);
  45.477 +         extendedKeyCodesSet.add(0x01000000+0x03BD);
  45.478 +         extendedKeyCodesSet.add(0x01000000+0x03BE);
  45.479 +         extendedKeyCodesSet.add(0x01000000+0x03BF);
  45.480 +         extendedKeyCodesSet.add(0x01000000+0x03C0);
  45.481 +         extendedKeyCodesSet.add(0x01000000+0x03C1);
  45.482 +         extendedKeyCodesSet.add(0x01000000+0x03C3);
  45.483 +         extendedKeyCodesSet.add(0x01000000+0x03C2);
  45.484 +         extendedKeyCodesSet.add(0x01000000+0x03C4);
  45.485 +         extendedKeyCodesSet.add(0x01000000+0x03C5);
  45.486 +         extendedKeyCodesSet.add(0x01000000+0x03C6);
  45.487 +         extendedKeyCodesSet.add(0x01000000+0x03C7);
  45.488 +         extendedKeyCodesSet.add(0x01000000+0x03C8);
  45.489 +         extendedKeyCodesSet.add(0x01000000+0x03C9);
  45.490 +         extendedKeyCodesSet.add(0x01000000+0x2190);
  45.491 +         extendedKeyCodesSet.add(0x01000000+0x2192);
  45.492 +         extendedKeyCodesSet.add(0x01000000+0x2193);
  45.493 +         extendedKeyCodesSet.add(0x01000000+0x2013);
  45.494 +         extendedKeyCodesSet.add(0x01000000+0x201C);
  45.495 +         extendedKeyCodesSet.add(0x01000000+0x201D);
  45.496 +         extendedKeyCodesSet.add(0x01000000+0x201E);
  45.497 +         extendedKeyCodesSet.add(0x01000000+0x05D0);
  45.498 +         extendedKeyCodesSet.add(0x01000000+0x05D1);
  45.499 +         extendedKeyCodesSet.add(0x01000000+0x05D2);
  45.500 +         extendedKeyCodesSet.add(0x01000000+0x05D3);
  45.501 +         extendedKeyCodesSet.add(0x01000000+0x05D4);
  45.502 +         extendedKeyCodesSet.add(0x01000000+0x05D5);
  45.503 +         extendedKeyCodesSet.add(0x01000000+0x05D6);
  45.504 +         extendedKeyCodesSet.add(0x01000000+0x05D7);
  45.505 +         extendedKeyCodesSet.add(0x01000000+0x05D8);
  45.506 +         extendedKeyCodesSet.add(0x01000000+0x05D9);
  45.507 +         extendedKeyCodesSet.add(0x01000000+0x05DA);
  45.508 +         extendedKeyCodesSet.add(0x01000000+0x05DB);
  45.509 +         extendedKeyCodesSet.add(0x01000000+0x05DC);
  45.510 +         extendedKeyCodesSet.add(0x01000000+0x05DD);
  45.511 +         extendedKeyCodesSet.add(0x01000000+0x05DE);
  45.512 +         extendedKeyCodesSet.add(0x01000000+0x05DF);
  45.513 +         extendedKeyCodesSet.add(0x01000000+0x05E0);
  45.514 +         extendedKeyCodesSet.add(0x01000000+0x05E1);
  45.515 +         extendedKeyCodesSet.add(0x01000000+0x05E2);
  45.516 +         extendedKeyCodesSet.add(0x01000000+0x05E3);
  45.517 +         extendedKeyCodesSet.add(0x01000000+0x05E4);
  45.518 +         extendedKeyCodesSet.add(0x01000000+0x05E5);
  45.519 +         extendedKeyCodesSet.add(0x01000000+0x05E6);
  45.520 +         extendedKeyCodesSet.add(0x01000000+0x05E7);
  45.521 +         extendedKeyCodesSet.add(0x01000000+0x05E8);
  45.522 +         extendedKeyCodesSet.add(0x01000000+0x05E9);
  45.523 +         extendedKeyCodesSet.add(0x01000000+0x05EA);
  45.524 +         extendedKeyCodesSet.add(0x01000000+0x0E01);
  45.525 +         extendedKeyCodesSet.add(0x01000000+0x0E02);
  45.526 +         extendedKeyCodesSet.add(0x01000000+0x0E03);
  45.527 +         extendedKeyCodesSet.add(0x01000000+0x0E04);
  45.528 +         extendedKeyCodesSet.add(0x01000000+0x0E05);
  45.529 +         extendedKeyCodesSet.add(0x01000000+0x0E07);
  45.530 +         extendedKeyCodesSet.add(0x01000000+0x0E08);
  45.531 +         extendedKeyCodesSet.add(0x01000000+0x0E0A);
  45.532 +         extendedKeyCodesSet.add(0x01000000+0x0E0C);
  45.533 +         extendedKeyCodesSet.add(0x01000000+0x0E14);
  45.534 +         extendedKeyCodesSet.add(0x01000000+0x0E15);
  45.535 +         extendedKeyCodesSet.add(0x01000000+0x0E16);
  45.536 +         extendedKeyCodesSet.add(0x01000000+0x0E17);
  45.537 +         extendedKeyCodesSet.add(0x01000000+0x0E19);
  45.538 +         extendedKeyCodesSet.add(0x01000000+0x0E1A);
  45.539 +         extendedKeyCodesSet.add(0x01000000+0x0E1B);
  45.540 +         extendedKeyCodesSet.add(0x01000000+0x0E1C);
  45.541 +         extendedKeyCodesSet.add(0x01000000+0x0E1D);
  45.542 +         extendedKeyCodesSet.add(0x01000000+0x0E1E);
  45.543 +         extendedKeyCodesSet.add(0x01000000+0x0E1F);
  45.544 +         extendedKeyCodesSet.add(0x01000000+0x0E20);
  45.545 +         extendedKeyCodesSet.add(0x01000000+0x0E21);
  45.546 +         extendedKeyCodesSet.add(0x01000000+0x0E22);
  45.547 +         extendedKeyCodesSet.add(0x01000000+0x0E23);
  45.548 +         extendedKeyCodesSet.add(0x01000000+0x0E25);
  45.549 +         extendedKeyCodesSet.add(0x01000000+0x0E27);
  45.550 +         extendedKeyCodesSet.add(0x01000000+0x0E2A);
  45.551 +         extendedKeyCodesSet.add(0x01000000+0x0E2B);
  45.552 +         extendedKeyCodesSet.add(0x01000000+0x0E2D);
  45.553 +         extendedKeyCodesSet.add(0x01000000+0x0E30);
  45.554 +         extendedKeyCodesSet.add(0x01000000+0x0E31);
  45.555 +         extendedKeyCodesSet.add(0x01000000+0x0E32);
  45.556 +         extendedKeyCodesSet.add(0x01000000+0x0E33);
  45.557 +         extendedKeyCodesSet.add(0x01000000+0x0E34);
  45.558 +         extendedKeyCodesSet.add(0x01000000+0x0E35);
  45.559 +         extendedKeyCodesSet.add(0x01000000+0x0E36);
  45.560 +         extendedKeyCodesSet.add(0x01000000+0x0E37);
  45.561 +         extendedKeyCodesSet.add(0x01000000+0x0E38);
  45.562 +         extendedKeyCodesSet.add(0x01000000+0x0E39);
  45.563 +         extendedKeyCodesSet.add(0x01000000+0x0E3F);
  45.564 +         extendedKeyCodesSet.add(0x01000000+0x0E40);
  45.565 +         extendedKeyCodesSet.add(0x01000000+0x0E41);
  45.566 +         extendedKeyCodesSet.add(0x01000000+0x0E43);
  45.567 +         extendedKeyCodesSet.add(0x01000000+0x0E44);
  45.568 +         extendedKeyCodesSet.add(0x01000000+0x0E45);
  45.569 +         extendedKeyCodesSet.add(0x01000000+0x0E46);
  45.570 +         extendedKeyCodesSet.add(0x01000000+0x0E47);
  45.571 +         extendedKeyCodesSet.add(0x01000000+0x0E48);
  45.572 +         extendedKeyCodesSet.add(0x01000000+0x0E49);
  45.573 +         extendedKeyCodesSet.add(0x01000000+0x0E50);
  45.574 +         extendedKeyCodesSet.add(0x01000000+0x0E51);
  45.575 +         extendedKeyCodesSet.add(0x01000000+0x0E52);
  45.576 +         extendedKeyCodesSet.add(0x01000000+0x0E53);
  45.577 +         extendedKeyCodesSet.add(0x01000000+0x0E54);
  45.578 +         extendedKeyCodesSet.add(0x01000000+0x0E55);
  45.579 +         extendedKeyCodesSet.add(0x01000000+0x0E56);
  45.580 +         extendedKeyCodesSet.add(0x01000000+0x0E57);
  45.581 +         extendedKeyCodesSet.add(0x01000000+0x0E58);
  45.582 +         extendedKeyCodesSet.add(0x01000000+0x0E59);
  45.583 +         extendedKeyCodesSet.add(0x01000000+0x0587);
  45.584 +         extendedKeyCodesSet.add(0x01000000+0x0589);
  45.585 +         extendedKeyCodesSet.add(0x01000000+0x0589);
  45.586 +         extendedKeyCodesSet.add(0x01000000+0x055D);
  45.587 +         extendedKeyCodesSet.add(0x01000000+0x055D);
  45.588 +         extendedKeyCodesSet.add(0x01000000+0x055B);
  45.589 +         extendedKeyCodesSet.add(0x01000000+0x055B);
  45.590 +         extendedKeyCodesSet.add(0x01000000+0x055E);
  45.591 +         extendedKeyCodesSet.add(0x01000000+0x055E);
  45.592 +         extendedKeyCodesSet.add(0x01000000+0x0561);
  45.593 +         extendedKeyCodesSet.add(0x01000000+0x0562);
  45.594 +         extendedKeyCodesSet.add(0x01000000+0x0563);
  45.595 +         extendedKeyCodesSet.add(0x01000000+0x0564);
  45.596 +         extendedKeyCodesSet.add(0x01000000+0x0565);
  45.597 +         extendedKeyCodesSet.add(0x01000000+0x0566);
  45.598 +         extendedKeyCodesSet.add(0x01000000+0x0567);
  45.599 +         extendedKeyCodesSet.add(0x01000000+0x0568);
  45.600 +         extendedKeyCodesSet.add(0x01000000+0x0569);
  45.601 +         extendedKeyCodesSet.add(0x01000000+0x056A);
  45.602 +         extendedKeyCodesSet.add(0x01000000+0x056B);
  45.603 +         extendedKeyCodesSet.add(0x01000000+0x056C);
  45.604 +         extendedKeyCodesSet.add(0x01000000+0x056D);
  45.605 +         extendedKeyCodesSet.add(0x01000000+0x056E);
  45.606 +         extendedKeyCodesSet.add(0x01000000+0x056F);
  45.607 +         extendedKeyCodesSet.add(0x01000000+0x0570);
  45.608 +         extendedKeyCodesSet.add(0x01000000+0x0571);
  45.609 +         extendedKeyCodesSet.add(0x01000000+0x0572);
  45.610 +         extendedKeyCodesSet.add(0x01000000+0x0573);
  45.611 +         extendedKeyCodesSet.add(0x01000000+0x0574);
  45.612 +         extendedKeyCodesSet.add(0x01000000+0x0575);
  45.613 +         extendedKeyCodesSet.add(0x01000000+0x0576);
  45.614 +         extendedKeyCodesSet.add(0x01000000+0x0577);
  45.615 +         extendedKeyCodesSet.add(0x01000000+0x0578);
  45.616 +         extendedKeyCodesSet.add(0x01000000+0x0579);
  45.617 +         extendedKeyCodesSet.add(0x01000000+0x057A);
  45.618 +         extendedKeyCodesSet.add(0x01000000+0x057B);
  45.619 +         extendedKeyCodesSet.add(0x01000000+0x057C);
  45.620 +         extendedKeyCodesSet.add(0x01000000+0x057D);
  45.621 +         extendedKeyCodesSet.add(0x01000000+0x057E);
  45.622 +         extendedKeyCodesSet.add(0x01000000+0x057F);
  45.623 +         extendedKeyCodesSet.add(0x01000000+0x0580);
  45.624 +         extendedKeyCodesSet.add(0x01000000+0x0581);
  45.625 +         extendedKeyCodesSet.add(0x01000000+0x0582);
  45.626 +         extendedKeyCodesSet.add(0x01000000+0x0583);
  45.627 +         extendedKeyCodesSet.add(0x01000000+0x0584);
  45.628 +         extendedKeyCodesSet.add(0x01000000+0x0585);
  45.629 +         extendedKeyCodesSet.add(0x01000000+0x0586);
  45.630 +         extendedKeyCodesSet.add(0x01000000+0x10D0);
  45.631 +         extendedKeyCodesSet.add(0x01000000+0x10D1);
  45.632 +         extendedKeyCodesSet.add(0x01000000+0x10D2);
  45.633 +         extendedKeyCodesSet.add(0x01000000+0x10D3);
  45.634 +         extendedKeyCodesSet.add(0x01000000+0x10D4);
  45.635 +         extendedKeyCodesSet.add(0x01000000+0x10D5);
  45.636 +         extendedKeyCodesSet.add(0x01000000+0x10D6);
  45.637 +         extendedKeyCodesSet.add(0x01000000+0x10D7);
  45.638 +         extendedKeyCodesSet.add(0x01000000+0x10D8);
  45.639 +         extendedKeyCodesSet.add(0x01000000+0x10D9);
  45.640 +         extendedKeyCodesSet.add(0x01000000+0x10DA);
  45.641 +         extendedKeyCodesSet.add(0x01000000+0x10DB);
  45.642 +         extendedKeyCodesSet.add(0x01000000+0x10DC);
  45.643 +         extendedKeyCodesSet.add(0x01000000+0x10DD);
  45.644 +         extendedKeyCodesSet.add(0x01000000+0x10DE);
  45.645 +         extendedKeyCodesSet.add(0x01000000+0x10DF);
  45.646 +         extendedKeyCodesSet.add(0x01000000+0x10E0);
  45.647 +         extendedKeyCodesSet.add(0x01000000+0x10E1);
  45.648 +         extendedKeyCodesSet.add(0x01000000+0x10E2);
  45.649 +         extendedKeyCodesSet.add(0x01000000+0x10E3);
  45.650 +         extendedKeyCodesSet.add(0x01000000+0x10E4);
  45.651 +         extendedKeyCodesSet.add(0x01000000+0x10E5);
  45.652 +         extendedKeyCodesSet.add(0x01000000+0x10E6);
  45.653 +         extendedKeyCodesSet.add(0x01000000+0x10E7);
  45.654 +         extendedKeyCodesSet.add(0x01000000+0x10E8);
  45.655 +         extendedKeyCodesSet.add(0x01000000+0x10E9);
  45.656 +         extendedKeyCodesSet.add(0x01000000+0x10EA);
  45.657 +         extendedKeyCodesSet.add(0x01000000+0x10EB);
  45.658 +         extendedKeyCodesSet.add(0x01000000+0x10EC);
  45.659 +         extendedKeyCodesSet.add(0x01000000+0x10ED);
  45.660 +         extendedKeyCodesSet.add(0x01000000+0x10EE);
  45.661 +         extendedKeyCodesSet.add(0x01000000+0x10EF);
  45.662 +         extendedKeyCodesSet.add(0x01000000+0x10F0);
  45.663 +         extendedKeyCodesSet.add(0x01000000+0x01E7);
  45.664 +         extendedKeyCodesSet.add(0x01000000+0x0259);
  45.665 +         extendedKeyCodesSet.add(0x01000000+0x1EB9);
  45.666 +         extendedKeyCodesSet.add(0x01000000+0x1ECB);
  45.667 +         extendedKeyCodesSet.add(0x01000000+0x1ECD);
  45.668 +         extendedKeyCodesSet.add(0x01000000+0x1EE5);
  45.669 +         extendedKeyCodesSet.add(0x01000000+0x01A1);
  45.670 +         extendedKeyCodesSet.add(0x01000000+0x01B0);
  45.671 +         extendedKeyCodesSet.add(0x01000000+0x20AB);
  45.672 +     }
  45.673 +}
    46.1 --- a/src/share/classes/sun/awt/HeadlessToolkit.java	Tue Apr 14 00:05:07 2009 -0700
    46.2 +++ b/src/share/classes/sun/awt/HeadlessToolkit.java	Tue Apr 14 04:21:02 2009 -0700
    46.3 @@ -179,9 +179,9 @@
    46.4          throw new HeadlessException();
    46.5      }
    46.6  
    46.7 -    public  KeyboardFocusManagerPeer createKeyboardFocusManagerPeer(KeyboardFocusManager manager) throws HeadlessException {
    46.8 -        KeyboardFocusManagerPeerImpl peer = new KeyboardFocusManagerPeerImpl(manager);
    46.9 -        return peer;
   46.10 +    public  KeyboardFocusManagerPeer createKeyboardFocusManagerPeer(KeyboardFocusManager manager)
   46.11 +        throws HeadlessException {
   46.12 +        throw new HeadlessException();
   46.13      }
   46.14  
   46.15      public TrayIconPeer createTrayIcon(TrayIcon target)
    47.1 --- a/src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java	Tue Apr 14 00:05:07 2009 -0700
    47.2 +++ b/src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java	Tue Apr 14 04:21:02 2009 -0700
    47.3 @@ -1,5 +1,5 @@
    47.4  /*
    47.5 - * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
    47.6 + * Copyright 2003-2009 Sun Microsystems, Inc.  All Rights Reserved.
    47.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    47.8   *
    47.9   * This code is free software; you can redistribute it and/or modify it
   47.10 @@ -27,47 +27,150 @@
   47.11  import java.awt.Component;
   47.12  import java.awt.KeyboardFocusManager;
   47.13  import java.awt.Window;
   47.14 +import java.awt.Canvas;
   47.15 +import java.awt.Scrollbar;
   47.16 +import java.awt.Panel;
   47.17 +
   47.18 +import java.awt.event.FocusEvent;
   47.19  
   47.20  import java.awt.peer.KeyboardFocusManagerPeer;
   47.21 +import java.awt.peer.ComponentPeer;
   47.22  
   47.23  import java.lang.reflect.InvocationTargetException;
   47.24  import java.lang.reflect.Method;
   47.25  
   47.26 +import java.util.logging.Level;
   47.27 +import java.util.logging.Logger;
   47.28  
   47.29 -public class KeyboardFocusManagerPeerImpl implements KeyboardFocusManagerPeer {
   47.30 -    static native Window getNativeFocusedWindow();
   47.31 -    static native Component getNativeFocusOwner();
   47.32 -    static native void clearNativeGlobalFocusOwner(Window activeWindow);
   47.33 +public abstract class KeyboardFocusManagerPeerImpl implements KeyboardFocusManagerPeer {
   47.34  
   47.35 -    KeyboardFocusManagerPeerImpl(KeyboardFocusManager manager) {
   47.36 +    private static final Logger focusLog = Logger.getLogger("sun.awt.focus.KeyboardFocusManagerPeerImpl");
   47.37 +
   47.38 +    private static AWTAccessor.KeyboardFocusManagerAccessor kfmAccessor =
   47.39 +        AWTAccessor.getKeyboardFocusManagerAccessor();
   47.40 +
   47.41 +    // The constants are copied from java.awt.KeyboardFocusManager
   47.42 +    public static final int SNFH_FAILURE         = 0;
   47.43 +    public static final int SNFH_SUCCESS_HANDLED = 1;
   47.44 +    public static final int SNFH_SUCCESS_PROCEED = 2;
   47.45 +
   47.46 +    protected KeyboardFocusManager manager;
   47.47 +
   47.48 +    public KeyboardFocusManagerPeerImpl(KeyboardFocusManager manager) {
   47.49 +        this.manager = manager;
   47.50      }
   47.51  
   47.52 -    public Window getCurrentFocusedWindow() {
   47.53 -        return getNativeFocusedWindow();
   47.54 +    @Override
   47.55 +    public void clearGlobalFocusOwner(Window activeWindow) {
   47.56 +        if (activeWindow != null) {
   47.57 +            Component focusOwner = activeWindow.getFocusOwner();
   47.58 +            if (focusLog.isLoggable(Level.FINE)) focusLog.fine("Clearing global focus owner " + focusOwner);
   47.59 +            if (focusOwner != null) {
   47.60 +                FocusEvent fl = new CausedFocusEvent(focusOwner, FocusEvent.FOCUS_LOST, false, null,
   47.61 +                                                     CausedFocusEvent.Cause.CLEAR_GLOBAL_FOCUS_OWNER);
   47.62 +                SunToolkit.postPriorityEvent(fl);
   47.63 +            }
   47.64 +        }
   47.65      }
   47.66  
   47.67 -    public void setCurrentFocusOwner(Component comp) {
   47.68 +    /*
   47.69 +     * WARNING: Don't call it on the Toolkit thread.
   47.70 +     *
   47.71 +     * Checks if the component:
   47.72 +     * 1) accepts focus on click (in general)
   47.73 +     * 2) may be a focus owner (in particular)
   47.74 +     */
   47.75 +    public static boolean shouldFocusOnClick(Component component) {
   47.76 +        boolean acceptFocusOnClick = false;
   47.77 +
   47.78 +        // A component is generally allowed to accept focus on click
   47.79 +        // if its peer is focusable. There're some exceptions though.
   47.80 +
   47.81 +
   47.82 +        // CANVAS & SCROLLBAR accept focus on click
   47.83 +        if (component instanceof Canvas ||
   47.84 +            component instanceof Scrollbar)
   47.85 +        {
   47.86 +            acceptFocusOnClick = true;
   47.87 +
   47.88 +        // PANEL, empty only, accepts focus on click
   47.89 +        } else if (component instanceof Panel) {
   47.90 +            acceptFocusOnClick = (((Panel)component).getComponentCount() == 0);
   47.91 +
   47.92 +
   47.93 +        // Other components
   47.94 +        } else {
   47.95 +            ComponentPeer peer = (component != null ? component.getPeer() : null);
   47.96 +            acceptFocusOnClick = (peer != null ? peer.isFocusable() : false);
   47.97 +        }
   47.98 +        return acceptFocusOnClick &&
   47.99 +               AWTAccessor.getComponentAccessor().canBeFocusOwner(component);
  47.100      }
  47.101  
  47.102 -    public Component getCurrentFocusOwner() {
  47.103 -        return getNativeFocusOwner();
  47.104 -    }
  47.105 -    public void clearGlobalFocusOwner(Window activeWindow) {
  47.106 -        clearNativeGlobalFocusOwner(activeWindow);
  47.107 +    /*
  47.108 +     * Posts proper lost/gain focus events to the event queue.
  47.109 +     */
  47.110 +    public static boolean deliverFocus(Component lightweightChild,
  47.111 +                                       Component target,
  47.112 +                                       boolean temporary,
  47.113 +                                       boolean focusedWindowChangeAllowed,
  47.114 +                                       long time,
  47.115 +                                       CausedFocusEvent.Cause cause,
  47.116 +                                       Component currentFocusOwner) // provided by the descendant peers
  47.117 +    {
  47.118 +        if (lightweightChild == null) {
  47.119 +            lightweightChild = (Component)target;
  47.120 +        }
  47.121 +
  47.122 +        Component currentOwner = currentFocusOwner;
  47.123 +        if (currentOwner != null && currentOwner.getPeer() == null) {
  47.124 +            currentOwner = null;
  47.125 +        }
  47.126 +        if (currentOwner != null) {
  47.127 +            FocusEvent fl = new CausedFocusEvent(currentOwner, FocusEvent.FOCUS_LOST,
  47.128 +                                                 false, lightweightChild, cause);
  47.129 +
  47.130 +            if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Posting focus event: " + fl);
  47.131 +            SunToolkit.postPriorityEvent(fl);
  47.132 +        }
  47.133 +
  47.134 +        FocusEvent fg = new CausedFocusEvent(lightweightChild, FocusEvent.FOCUS_GAINED,
  47.135 +                                             false, currentOwner, cause);
  47.136 +
  47.137 +        if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Posting focus event: " + fg);
  47.138 +        SunToolkit.postPriorityEvent(fg);
  47.139 +        return true;
  47.140      }
  47.141  
  47.142 -    static Method m_removeLastFocusRequest = null;
  47.143 +    // WARNING: Don't call it on the Toolkit thread.
  47.144 +    public static boolean requestFocusFor(Component target, CausedFocusEvent.Cause cause) {
  47.145 +        return AWTAccessor.getComponentAccessor().requestFocus(target, cause);
  47.146 +    }
  47.147 +
  47.148 +    // WARNING: Don't call it on the Toolkit thread.
  47.149 +    public static int shouldNativelyFocusHeavyweight(Component heavyweight,
  47.150 +                                                     Component descendant,
  47.151 +                                                     boolean temporary,
  47.152 +                                                     boolean focusedWindowChangeAllowed,
  47.153 +                                                     long time,
  47.154 +                                                     CausedFocusEvent.Cause cause)
  47.155 +    {
  47.156 +        return kfmAccessor.shouldNativelyFocusHeavyweight(
  47.157 +            heavyweight, descendant, temporary, focusedWindowChangeAllowed, time, cause);
  47.158 +    }
  47.159 +
  47.160      public static void removeLastFocusRequest(Component heavyweight) {
  47.161 -        try {
  47.162 -            if (m_removeLastFocusRequest == null) {
  47.163 -                m_removeLastFocusRequest = SunToolkit.getMethod(KeyboardFocusManager.class, "removeLastFocusRequest",
  47.164 -                                                              new Class[] {Component.class});
  47.165 -            }
  47.166 -            m_removeLastFocusRequest.invoke(null, new Object[]{heavyweight});
  47.167 -        } catch (InvocationTargetException ite) {
  47.168 -            ite.printStackTrace();
  47.169 -        } catch (IllegalAccessException ex) {
  47.170 -            ex.printStackTrace();
  47.171 -        }
  47.172 +        kfmAccessor.removeLastFocusRequest(heavyweight);
  47.173 +    }
  47.174 +
  47.175 +    // WARNING: Don't call it on the Toolkit thread.
  47.176 +    public static boolean processSynchronousLightweightTransfer(Component heavyweight,
  47.177 +                                                                Component descendant,
  47.178 +                                                                boolean temporary,
  47.179 +                                                                boolean focusedWindowChangeAllowed,
  47.180 +                                                                long time)
  47.181 +    {
  47.182 +        return kfmAccessor.processSynchronousLightweightTransfer(
  47.183 +            heavyweight, descendant, temporary, focusedWindowChangeAllowed, time);
  47.184      }
  47.185  }
    48.1 --- a/src/share/classes/sun/awt/NullComponentPeer.java	Tue Apr 14 00:05:07 2009 -0700
    48.2 +++ b/src/share/classes/sun/awt/NullComponentPeer.java	Tue Apr 14 04:21:02 2009 -0700
    48.3 @@ -278,19 +278,6 @@
    48.4          throw new UnsupportedOperationException();
    48.5      }
    48.6  
    48.7 -    /**
    48.8 -     * @see java.awt.peer.ContainerPeer#restack
    48.9 -     */
   48.10 -    public void restack() {
   48.11 -        throw new UnsupportedOperationException();
   48.12 -    }
   48.13 -
   48.14 -    /**
   48.15 -     * @see java.awt.peer.ContainerPeer#isRestackSupported
   48.16 -     */
   48.17 -    public boolean isRestackSupported() {
   48.18 -        return false;
   48.19 -    }
   48.20      public void layout() {
   48.21      }
   48.22  
   48.23 @@ -305,4 +292,19 @@
   48.24        */
   48.25      public void applyShape(Region shape) {
   48.26      }
   48.27 +
   48.28 +    /**
   48.29 +     * Lowers this component at the bottom of the above HW peer. If the above parameter
   48.30 +     * is null then the method places this component at the top of the Z-order.
   48.31 +     */
   48.32 +    public void setZOrder(ComponentPeer above) {
   48.33 +    }
   48.34 +
   48.35 +    public void updateGraphicsData(GraphicsConfiguration gc) {}
   48.36 +
   48.37 +    public GraphicsConfiguration getAppropriateGraphicsConfiguration(
   48.38 +                        GraphicsConfiguration gc)
   48.39 +    {
   48.40 +        return gc;
   48.41 +    }
   48.42  }
    49.1 --- a/src/share/classes/sun/awt/SunToolkit.java	Tue Apr 14 00:05:07 2009 -0700
    49.2 +++ b/src/share/classes/sun/awt/SunToolkit.java	Tue Apr 14 04:21:02 2009 -0700
    49.3 @@ -1,5 +1,5 @@
    49.4  /*
    49.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    49.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    49.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    49.8   *
    49.9   * This code is free software; you can redistribute it and/or modify it
   49.10 @@ -32,14 +32,10 @@
   49.11  import java.awt.peer.*;
   49.12  import java.awt.event.WindowEvent;
   49.13  import java.awt.event.KeyEvent;
   49.14 -import java.awt.im.spi.InputMethodDescriptor;
   49.15  import java.awt.image.*;
   49.16 -import java.awt.geom.AffineTransform;
   49.17  import java.awt.TrayIcon;
   49.18  import java.awt.SystemTray;
   49.19 -import java.io.*;
   49.20  import java.net.URL;
   49.21 -import java.net.JarURLConnection;
   49.22  import java.util.*;
   49.23  import java.util.concurrent.TimeUnit;
   49.24  import java.util.concurrent.locks.Condition;
   49.25 @@ -49,7 +45,6 @@
   49.26  import sun.misc.SoftCache;
   49.27  import sun.font.FontDesignMetrics;
   49.28  import sun.awt.im.InputContext;
   49.29 -import sun.awt.im.SimpleInputMethodWindow;
   49.30  import sun.awt.image.*;
   49.31  import sun.security.action.GetPropertyAction;
   49.32  import sun.security.action.GetBooleanAction;
   49.33 @@ -225,10 +220,8 @@
   49.34      public abstract RobotPeer createRobot(Robot target, GraphicsDevice screen)
   49.35          throws AWTException;
   49.36  
   49.37 -    public KeyboardFocusManagerPeer createKeyboardFocusManagerPeer(KeyboardFocusManager manager) throws HeadlessException {
   49.38 -        KeyboardFocusManagerPeerImpl peer = new KeyboardFocusManagerPeerImpl(manager);
   49.39 -        return peer;
   49.40 -    }
   49.41 +    public abstract KeyboardFocusManagerPeer createKeyboardFocusManagerPeer(KeyboardFocusManager manager)
   49.42 +        throws HeadlessException;
   49.43  
   49.44      /**
   49.45       * The AWT lock is typically only used on Unix platforms to synchronize
   49.46 @@ -824,16 +817,31 @@
   49.47      }
   49.48  
   49.49      /**
   49.50 -     * Disables erasing of background on the canvas before painting
   49.51 -     * if this is supported by the current toolkit.
   49.52 -     *
   49.53 -     * @throws IllegalStateException if the canvas is not displayable
   49.54 -     * @see java.awt.Component#isDisplayable
   49.55 +     * Disables erasing of background on the canvas before painting if
   49.56 +     * this is supported by the current toolkit. It is recommended to
   49.57 +     * call this method early, before the Canvas becomes displayable,
   49.58 +     * because some Toolkit implementations do not support changing
   49.59 +     * this property once the Canvas becomes displayable.
   49.60       */
   49.61      public void disableBackgroundErase(Canvas canvas) {
   49.62 -        if (!canvas.isDisplayable()) {
   49.63 -            throw new IllegalStateException("Canvas must have a valid peer");
   49.64 -        }
   49.65 +        disableBackgroundEraseImpl(canvas);
   49.66 +    }
   49.67 +
   49.68 +    /**
   49.69 +     * Disables the native erasing of the background on the given
   49.70 +     * component before painting if this is supported by the current
   49.71 +     * toolkit. This only has an effect for certain components such as
   49.72 +     * Canvas, Panel and Window. It is recommended to call this method
   49.73 +     * early, before the Component becomes displayable, because some
   49.74 +     * Toolkit implementations do not support changing this property
   49.75 +     * once the Component becomes displayable.
   49.76 +     */
   49.77 +    public void disableBackgroundErase(Component component) {
   49.78 +        disableBackgroundEraseImpl(component);
   49.79 +    }
   49.80 +
   49.81 +    private void disableBackgroundEraseImpl(Component component) {
   49.82 +        AWTAccessor.getComponentAccessor().setBackgroundEraseDisabled(component, true);
   49.83      }
   49.84  
   49.85      /**
   49.86 @@ -1972,6 +1980,18 @@
   49.87          AWTAutoShutdown.getInstance().dumpPeers(aLog);
   49.88      }
   49.89  
   49.90 +    /**
   49.91 +     * Returns the <code>Window</code> ancestor of the component <code>comp</code>.
   49.92 +     * @return Window ancestor of the component or component by itself if it is Window;
   49.93 +     *         null, if component is not a part of window hierarchy
   49.94 +     */
   49.95 +    public static Window getContainingWindow(Component comp) {
   49.96 +        while (comp != null && !(comp instanceof Window)) {
   49.97 +            comp = comp.getParent();
   49.98 +        }
   49.99 +        return (Window)comp;
  49.100 +    }
  49.101 +
  49.102      private static Boolean sunAwtDisableMixing = null;
  49.103  
  49.104      /**
  49.105 @@ -1995,6 +2015,73 @@
  49.106      public boolean isNativeGTKAvailable() {
  49.107          return false;
  49.108      }
  49.109 +
  49.110 +    // Cosntant alpha
  49.111 +    public boolean isWindowOpacitySupported() {
  49.112 +        return false;
  49.113 +    }
  49.114 +
  49.115 +    // Shaping
  49.116 +    public boolean isWindowShapingSupported() {
  49.117 +        return false;
  49.118 +    }
  49.119 +
  49.120 +    // Per-pixel alpha
  49.121 +    public boolean isWindowTranslucencySupported() {
  49.122 +        return false;
  49.123 +    }
  49.124 +
  49.125 +    public boolean isTranslucencyCapable(GraphicsConfiguration gc) {
  49.126 +        return false;
  49.127 +    }
  49.128 +
  49.129 +    /**
  49.130 +     * Returns whether or not a containing top level window for the passed
  49.131 +     * component is
  49.132 +     * {@link com.sun.awt.AWTUtilities.Translucency#PERPIXEL_TRANSLUCENT PERPIXEL_TRANSLUCENT}.
  49.133 +     *
  49.134 +     * @param c a Component which toplevel's to check
  49.135 +     * @return {@code true}  if the passed component is not null and has a
  49.136 +     * containing toplevel window which is opaque (so per-pixel translucency
  49.137 +     * is not enabled), {@code false} otherwise
  49.138 +     * @see com.sun.awt.AWTUtilities.Translucency#PERPIXEL_TRANSLUCENT
  49.139 +     * @see com.sun.awt.AWTUtilities#isWindowOpaque(Window)
  49.140 +     */
  49.141 +    public static boolean isContainingTopLevelOpaque(Component c) {
  49.142 +        Window w = getContainingWindow(c);
  49.143 +        // return w != null && (w).isOpaque();
  49.144 +        return w != null && com.sun.awt.AWTUtilities.isWindowOpaque(w);
  49.145 +    }
  49.146 +
  49.147 +    /**
  49.148 +     * Returns whether or not a containing top level window for the passed
  49.149 +     * component is
  49.150 +     * {@link com.sun.awt.AWTUtilities.Translucency#TRANSLUCENT TRANSLUCENT}.
  49.151 +     *
  49.152 +     * @param c a Component which toplevel's to check
  49.153 +     * @return {@code true} if the passed component is not null and has a
  49.154 +     * containing toplevel window which has opacity less than
  49.155 +     * 1.0f (which means that it is translucent), {@code false} otherwise
  49.156 +     * @see com.sun.awt.AWTUtilities.Translucency#TRANSLUCENT
  49.157 +     * @see com.sun.awt.AWTUtilities#getWindowOpacity(Window)
  49.158 +     */
  49.159 +    public static boolean isContainingTopLevelTranslucent(Component c) {
  49.160 +        Window w = getContainingWindow(c);
  49.161 +        // return w != null && (w).getOpacity() < 1.0f;
  49.162 +        return w != null && com.sun.awt.AWTUtilities.getWindowOpacity((Window)w) < 1.0f;
  49.163 +    }
  49.164 +
  49.165 +    /**
  49.166 +     * Returns whether the native system requires using the peer.updateWindow()
  49.167 +     * method to update the contents of a non-opaque window, or if usual
  49.168 +     * painting procedures are sufficient. The default return value covers
  49.169 +     * the X11 systems. On MS Windows this method is overriden in WToolkit
  49.170 +     * to return true.
  49.171 +     */
  49.172 +    public boolean needUpdateWindow() {
  49.173 +        return false;
  49.174 +    }
  49.175 +
  49.176  } // class SunToolkit
  49.177  
  49.178  
    50.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    50.2 +++ b/src/share/native/sun/awt/utility/rect.c	Tue Apr 14 04:21:02 2009 -0700
    50.3 @@ -0,0 +1,102 @@
    50.4 +/*
    50.5 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
    50.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    50.7 + *
    50.8 + * This code is free software; you can redistribute it and/or modify it
    50.9 + * under the terms of the GNU General Public License version 2 only, as
   50.10 + * published by the Free Software Foundation.  Sun designates this
   50.11 + * particular file as subject to the "Classpath" exception as provided
   50.12 + * by Sun in the LICENSE file that accompanied this code.
   50.13 + *
   50.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   50.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   50.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   50.17 + * version 2 for more details (a copy is included in the LICENSE file that
   50.18 + * accompanied this code).
   50.19 + *
   50.20 + * You should have received a copy of the GNU General Public License version
   50.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   50.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   50.23 + *
   50.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   50.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   50.26 + * have any questions.
   50.27 + */
   50.28 +
   50.29 +#include "utility/rect.h"
   50.30 +
   50.31 +#if defined(__cplusplus)
   50.32 +extern "C" {
   50.33 +#endif
   50.34 +
   50.35 +/**
   50.36 + * bitsPerPixel must be 32 for now.
   50.37 + * outBuf must be large enough to conatin all the rectangles.
   50.38 + */
   50.39 +int BitmapToYXBandedRectangles(int bitsPerPixel, int width, int height, unsigned char * buf, RECT_T * outBuf)
   50.40 +{
   50.41 +    //XXX: we might want to reuse the code in the splashscreen library,
   50.42 +    // though we'd have to deal with the ALPHA_THRESHOLD and different
   50.43 +    // image formats in this case.
   50.44 +    int widthBytes = width * bitsPerPixel / 8;
   50.45 +    int alignedWidth = (((widthBytes - 1) / 4) + 1) * 4;
   50.46 +
   50.47 +    RECT_T * out = outBuf;
   50.48 +
   50.49 +    RECT_T *pPrevLine = NULL, *pFirst = out, *pThis = pFirst;
   50.50 +    int i, j, i0;
   50.51 +    int length;
   50.52 +
   50.53 +    for (j = 0; j < height; j++) {
   50.54 +        /* generate data for a scanline */
   50.55 +
   50.56 +        unsigned char *pSrc = (unsigned char *) buf + j * alignedWidth;
   50.57 +        RECT_T *pLine = pThis;
   50.58 +
   50.59 +        i = 0;
   50.60 +
   50.61 +        do {
   50.62 +            // pSrc[0,1,2] == B,G,R; pSrc[3] == Alpha
   50.63 +            while (i < width && !pSrc[3]) {
   50.64 +                pSrc += 4;
   50.65 +                ++i;
   50.66 +            }
   50.67 +            if (i >= width)
   50.68 +                break;
   50.69 +            i0 = i;
   50.70 +            while (i < width && pSrc[3]) {
   50.71 +                pSrc += 4;
   50.72 +                ++i;
   50.73 +            }
   50.74 +            RECT_SET(*pThis, i0, j, i - i0, 1);
   50.75 +            ++pThis;
   50.76 +        } while (i < width);
   50.77 +
   50.78 +        /*  check if the previous scanline is exactly the same, merge if so
   50.79 +            (this is the only optimization we can use for YXBanded rectangles,
   50.80 +            and win32 supports YXBanded only */
   50.81 +
   50.82 +        length = pThis - pLine;
   50.83 +        if (pPrevLine && pLine - pPrevLine == length) {
   50.84 +            for (i = 0; i < length && RECT_EQ_X(pPrevLine[i], pLine[i]); ++i) {
   50.85 +            }
   50.86 +            if (i == pLine - pPrevLine) {
   50.87 +                // do merge
   50.88 +                for (i = 0; i < length; i++) {
   50.89 +                    RECT_INC_HEIGHT(pPrevLine[i]);
   50.90 +                }
   50.91 +                pThis = pLine;
   50.92 +                continue;
   50.93 +            }
   50.94 +        }
   50.95 +        /* or else use the generated scanline */
   50.96 +
   50.97 +        pPrevLine = pLine;
   50.98 +    }
   50.99 +
  50.100 +    return pThis - pFirst;
  50.101 +}
  50.102 +
  50.103 +#if defined(__cplusplus)
  50.104 +}
  50.105 +#endif
    51.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    51.2 +++ b/src/solaris/classes/sun/awt/X11/InfoWindow.java	Tue Apr 14 04:21:02 2009 -0700
    51.3 @@ -0,0 +1,495 @@
    51.4 +/*
    51.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
    51.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    51.7 + *
    51.8 + * This code is free software; you can redistribute it and/or modify it
    51.9 + * under the terms of the GNU General Public License version 2 only, as
   51.10 + * published by the Free Software Foundation.  Sun designates this
   51.11 + * particular file as subject to the "Classpath" exception as provided
   51.12 + * by Sun in the LICENSE file that accompanied this code.
   51.13 + *
   51.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   51.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   51.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   51.17 + * version 2 for more details (a copy is included in the LICENSE file that
   51.18 + * accompanied this code).
   51.19 + *
   51.20 + * You should have received a copy of the GNU General Public License version
   51.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   51.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   51.23 + *
   51.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   51.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   51.26 + * have any questions.
   51.27 + */
   51.28 +
   51.29 +package sun.awt.X11;
   51.30 +
   51.31 +import java.awt.*;
   51.32 +import java.awt.event.*;
   51.33 +import java.awt.peer.TrayIconPeer;
   51.34 +import sun.awt.*;
   51.35 +import java.awt.image.*;
   51.36 +import java.text.BreakIterator;
   51.37 +import java.util.logging.Logger;
   51.38 +import java.util.logging.Level;
   51.39 +import java.util.concurrent.ArrayBlockingQueue;
   51.40 +import java.security.AccessController;
   51.41 +import java.security.PrivilegedAction;
   51.42 +import java.lang.reflect.InvocationTargetException;
   51.43 +
   51.44 +/**
   51.45 + * An utility window class. This is a base class for Tooltip and Balloon.
   51.46 + */
   51.47 +public abstract class InfoWindow extends Window {
   51.48 +    private Container container;
   51.49 +    private Closer closer;
   51.50 +
   51.51 +    protected InfoWindow(Frame parent, Color borderColor) {
   51.52 +        super(parent);
   51.53 +        container = new Container() {
   51.54 +            @Override
   51.55 +            public Insets getInsets() {
   51.56 +                return new Insets(1, 1, 1, 1);
   51.57 +            }
   51.58 +        };
   51.59 +        setLayout(new BorderLayout());
   51.60 +        setBackground(borderColor);
   51.61 +        add(container, BorderLayout.CENTER);
   51.62 +        container.setLayout(new BorderLayout());
   51.63 +
   51.64 +        closer = new Closer();
   51.65 +    }
   51.66 +
   51.67 +    public Component add(Component c) {
   51.68 +        container.add(c, BorderLayout.CENTER);
   51.69 +        return c;
   51.70 +    }
   51.71 +
   51.72 +    protected void setCloser(Runnable action, int time) {
   51.73 +        closer.set(action, time);
   51.74 +    }
   51.75 +
   51.76 +    // Must be executed on EDT.
   51.77 +    protected void show(Point corner, int indent) {
   51.78 +        assert SunToolkit.isDispatchThreadForAppContext(this);
   51.79 +
   51.80 +        pack();
   51.81 +
   51.82 +        Dimension size = getSize();
   51.83 +        // TODO: When 6356322 is fixed we should get screen bounds in
   51.84 +        // this way: eframe.getGraphicsConfiguration().getBounds().
   51.85 +        Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();
   51.86 +
   51.87 +        if (corner.x < scrSize.width/2 && corner.y < scrSize.height/2) { // 1st square
   51.88 +            setLocation(corner.x + indent, corner.y + indent);
   51.89 +
   51.90 +        } else if (corner.x >= scrSize.width/2 && corner.y < scrSize.height/2) { // 2nd square
   51.91 +            setLocation(corner.x - indent - size.width, corner.y + indent);
   51.92 +
   51.93 +        } else if (corner.x < scrSize.width/2 && corner.y >= scrSize.height/2) { // 3rd square
   51.94 +            setLocation(corner.x + indent, corner.y - indent - size.height);
   51.95 +
   51.96 +        } else if (corner.x >= scrSize.width/2 && corner.y >= scrSize.height/2) { // 4th square
   51.97 +            setLocation(corner.x - indent - size.width, corner.y - indent - size.height);
   51.98 +        }
   51.99 +
  51.100 +        super.show();
  51.101 +        closer.schedule();
  51.102 +    }
  51.103 +
  51.104 +    public void hide() {
  51.105 +        closer.close();
  51.106 +    }
  51.107 +
  51.108 +    private class Closer implements Runnable {
  51.109 +        Runnable action;
  51.110 +        int time;
  51.111 +
  51.112 +        public void run() {
  51.113 +            doClose();
  51.114 +        }
  51.115 +
  51.116 +        void set(Runnable action, int time) {
  51.117 +            this.action = action;
  51.118 +            this.time = time;
  51.119 +        }
  51.120 +
  51.121 +        void schedule() {
  51.122 +            XToolkit.schedule(this, time);
  51.123 +        }
  51.124 +
  51.125 +        void close() {
  51.126 +            XToolkit.remove(this);
  51.127 +            doClose();
  51.128 +        }
  51.129 +
  51.130 +        // WARNING: this method may be executed on Toolkit thread.
  51.131 +        private void doClose() {
  51.132 +            SunToolkit.executeOnEventHandlerThread(InfoWindow.this, new Runnable() {
  51.133 +                public void run() {
  51.134 +                    InfoWindow.super.hide();
  51.135 +                    invalidate();
  51.136 +                    if (action != null) {
  51.137 +                        action.run();
  51.138 +                    }
  51.139 +                }
  51.140 +            });
  51.141 +        }
  51.142 +    }
  51.143 +
  51.144 +
  51.145 +    private interface LiveArguments {
  51.146 +        /** Whether the target of the InfoWindow is disposed. */
  51.147 +        boolean isDisposed();
  51.148 +
  51.149 +        /** The bounds of the target of the InfoWindow. */
  51.150 +        Rectangle getBounds();
  51.151 +    }
  51.152 +
  51.153 +    public static class Tooltip extends InfoWindow {
  51.154 +
  51.155 +        public interface LiveArguments extends InfoWindow.LiveArguments {
  51.156 +            /** The tooltip to be displayed. */
  51.157 +            String getTooltipString();
  51.158 +        }
  51.159 +
  51.160 +        private final Object target;
  51.161 +        private final LiveArguments liveArguments;
  51.162 +
  51.163 +        private final Label textLabel = new Label("");
  51.164 +        private final Runnable starter = new Runnable() {
  51.165 +                public void run() {
  51.166 +                    display();
  51.167 +                }};
  51.168 +
  51.169 +        private final static int TOOLTIP_SHOW_TIME = 10000;
  51.170 +        private final static int TOOLTIP_START_DELAY_TIME = 1000;
  51.171 +        private final static int TOOLTIP_MAX_LENGTH = 64;
  51.172 +        private final static int TOOLTIP_MOUSE_CURSOR_INDENT = 5;
  51.173 +        private final static Color TOOLTIP_BACKGROUND_COLOR = new Color(255, 255, 220);
  51.174 +        private final static Font TOOLTIP_TEXT_FONT = XWindow.getDefaultFont();
  51.175 +
  51.176 +        public Tooltip(Frame parent, Object target,
  51.177 +                LiveArguments liveArguments)
  51.178 +        {
  51.179 +            super(parent, Color.black);
  51.180 +
  51.181 +            this.target = target;
  51.182 +            this.liveArguments = liveArguments;
  51.183 +
  51.184 +            XTrayIconPeer.suppressWarningString(this);
  51.185 +
  51.186 +            setCloser(null, TOOLTIP_SHOW_TIME);
  51.187 +            textLabel.setBackground(TOOLTIP_BACKGROUND_COLOR);
  51.188 +            textLabel.setFont(TOOLTIP_TEXT_FONT);
  51.189 +            add(textLabel);
  51.190 +        }
  51.191 +
  51.192 +        /*
  51.193 +         * WARNING: this method is executed on Toolkit thread!
  51.194 +         */
  51.195 +        private void display() {
  51.196 +            String tooltipString = liveArguments.getTooltipString();
  51.197 +            if (tooltipString == null) {
  51.198 +                return;
  51.199 +            } else if (tooltipString.length() >  TOOLTIP_MAX_LENGTH) {
  51.200 +                textLabel.setText(tooltipString.substring(0, TOOLTIP_MAX_LENGTH));
  51.201 +            } else {
  51.202 +                textLabel.setText(tooltipString);
  51.203 +            }
  51.204 +
  51.205 +            // Execute on EDT to avoid deadlock (see 6280857).
  51.206 +            SunToolkit.executeOnEventHandlerThread(target, new Runnable() {
  51.207 +                    public void run() {
  51.208 +                        if (liveArguments.isDisposed()) {
  51.209 +                            return;
  51.210 +                        }
  51.211 +                        Point pointer = (Point)AccessController.doPrivileged(new PrivilegedAction() {
  51.212 +                                public Object run() {
  51.213 +                                    if (!isPointerOverTrayIcon(liveArguments.getBounds())) {
  51.214 +                                        return null;
  51.215 +                                    }
  51.216 +                                    return MouseInfo.getPointerInfo().getLocation();
  51.217 +                                }
  51.218 +                            });
  51.219 +                        if (pointer == null) {
  51.220 +                            return;
  51.221 +                        }
  51.222 +                        show(new Point(pointer.x, pointer.y), TOOLTIP_MOUSE_CURSOR_INDENT);
  51.223 +                    }
  51.224 +                });
  51.225 +        }
  51.226 +
  51.227 +        public void enter() {
  51.228 +            XToolkit.schedule(starter, TOOLTIP_START_DELAY_TIME);
  51.229 +        }
  51.230 +
  51.231 +        public void exit() {
  51.232 +            XToolkit.remove(starter);
  51.233 +            if (isVisible()) {
  51.234 +                hide();
  51.235 +            }
  51.236 +        }
  51.237 +
  51.238 +        private boolean isPointerOverTrayIcon(Rectangle trayRect) {
  51.239 +            Point p = MouseInfo.getPointerInfo().getLocation();
  51.240 +            return !(p.x < trayRect.x || p.x > (trayRect.x + trayRect.width) ||
  51.241 +                     p.y < trayRect.y || p.y > (trayRect.y + trayRect.height));
  51.242 +        }
  51.243 +    }
  51.244 +
  51.245 +    public static class Balloon extends InfoWindow {
  51.246 +
  51.247 +        public interface LiveArguments extends InfoWindow.LiveArguments {
  51.248 +            /** The action to be performed upon clicking the baloon. */
  51.249 +            String getActionCommand();
  51.250 +        }
  51.251 +
  51.252 +        private final LiveArguments liveArguments;
  51.253 +        private final Object target;
  51.254 +
  51.255 +        private final static int BALLOON_SHOW_TIME = 10000;
  51.256 +        private final static int BALLOON_TEXT_MAX_LENGTH = 256;
  51.257 +        private final static int BALLOON_WORD_LINE_MAX_LENGTH = 16;
  51.258 +        private final static int BALLOON_WORD_LINE_MAX_COUNT = 4;
  51.259 +        private final static int BALLOON_ICON_WIDTH = 32;
  51.260 +        private final static int BALLOON_ICON_HEIGHT = 32;
  51.261 +        private final static int BALLOON_TRAY_ICON_INDENT = 0;
  51.262 +        private final static Color BALLOON_CAPTION_BACKGROUND_COLOR = new Color(200, 200 ,255);
  51.263 +        private final static Font BALLOON_CAPTION_FONT = new Font(Font.DIALOG, Font.BOLD, 12);
  51.264 +
  51.265 +        private Panel mainPanel = new Panel();
  51.266 +        private Panel captionPanel = new Panel();
  51.267 +        private Label captionLabel = new Label("");
  51.268 +        private Button closeButton = new Button("X");
  51.269 +        private Panel textPanel = new Panel();
  51.270 +        private XTrayIconPeer.IconCanvas iconCanvas = new XTrayIconPeer.IconCanvas(BALLOON_ICON_WIDTH, BALLOON_ICON_HEIGHT);
  51.271 +        private Label[] lineLabels = new Label[BALLOON_WORD_LINE_MAX_COUNT];
  51.272 +        private ActionPerformer ap = new ActionPerformer();
  51.273 +
  51.274 +        private Image iconImage;
  51.275 +        private Image errorImage;
  51.276 +        private Image warnImage;
  51.277 +        private Image infoImage;
  51.278 +        private boolean gtkImagesLoaded;
  51.279 +
  51.280 +        private Displayer displayer = new Displayer();
  51.281 +
  51.282 +        public Balloon(Frame parent, Object target, LiveArguments liveArguments) {
  51.283 +            super(parent, new Color(90, 80 ,190));
  51.284 +            this.liveArguments = liveArguments;
  51.285 +            this.target = target;
  51.286 +
  51.287 +            XTrayIconPeer.suppressWarningString(this);
  51.288 +
  51.289 +            setCloser(new Runnable() {
  51.290 +                    public void run() {
  51.291 +                        if (textPanel != null) {
  51.292 +                            textPanel.removeAll();
  51.293 +                            textPanel.setSize(0, 0);
  51.294 +                            iconCanvas.setSize(0, 0);
  51.295 +                            XToolkit.awtLock();
  51.296 +                            try {
  51.297 +                                displayer.isDisplayed = false;
  51.298 +                                XToolkit.awtLockNotifyAll();
  51.299 +                            } finally {
  51.300 +                                XToolkit.awtUnlock();
  51.301 +                            }
  51.302 +                        }
  51.303 +                    }
  51.304 +                }, BALLOON_SHOW_TIME);
  51.305 +
  51.306 +            add(mainPanel);
  51.307 +
  51.308 +            captionLabel.setFont(BALLOON_CAPTION_FONT);
  51.309 +            captionLabel.addMouseListener(ap);
  51.310 +
  51.311 +            captionPanel.setLayout(new BorderLayout());
  51.312 +            captionPanel.add(captionLabel, BorderLayout.WEST);
  51.313 +            captionPanel.add(closeButton, BorderLayout.EAST);
  51.314 +            captionPanel.setBackground(BALLOON_CAPTION_BACKGROUND_COLOR);
  51.315 +            captionPanel.addMouseListener(ap);
  51.316 +
  51.317 +            closeButton.addActionListener(new ActionListener() {
  51.318 +                    public void actionPerformed(ActionEvent e) {
  51.319 +                        hide();
  51.320 +                    }
  51.321 +                });
  51.322 +
  51.323 +            mainPanel.setLayout(new BorderLayout());
  51.324 +            mainPanel.setBackground(Color.white);
  51.325 +            mainPanel.add(captionPanel, BorderLayout.NORTH);
  51.326 +            mainPanel.add(iconCanvas, BorderLayout.WEST);
  51.327 +            mainPanel.add(textPanel, BorderLayout.CENTER);
  51.328 +
  51.329 +            iconCanvas.addMouseListener(ap);
  51.330 +
  51.331 +            for (int i = 0; i < BALLOON_WORD_LINE_MAX_COUNT; i++) {
  51.332 +                lineLabels[i] = new Label();
  51.333 +                lineLabels[i].addMouseListener(ap);
  51.334 +                lineLabels[i].setBackground(Color.white);
  51.335 +            }
  51.336 +
  51.337 +            displayer.start();
  51.338 +        }
  51.339 +
  51.340 +        public void display(String caption, String text, String messageType) {
  51.341 +            if (!gtkImagesLoaded) {
  51.342 +                loadGtkImages();
  51.343 +            }
  51.344 +            displayer.display(caption, text, messageType);
  51.345 +        }
  51.346 +
  51.347 +        private void _display(String caption, String text, String messageType) {
  51.348 +            captionLabel.setText(caption);
  51.349 +
  51.350 +            BreakIterator iter = BreakIterator.getWordInstance();
  51.351 +            if (text != null) {
  51.352 +                iter.setText(text);
  51.353 +                int start = iter.first(), end;
  51.354 +                int nLines = 0;
  51.355 +
  51.356 +                do {
  51.357 +                    end = iter.next();
  51.358 +
  51.359 +                    if (end == BreakIterator.DONE ||
  51.360 +                        text.substring(start, end).length() >= 50)
  51.361 +                    {
  51.362 +                        lineLabels[nLines].setText(text.substring(start, end == BreakIterator.DONE ?
  51.363 +                                                                  iter.last() : end));
  51.364 +                        textPanel.add(lineLabels[nLines++]);
  51.365 +                        start = end;
  51.366 +                    }
  51.367 +                    if (nLines == BALLOON_WORD_LINE_MAX_COUNT) {
  51.368 +                        if (end != BreakIterator.DONE) {
  51.369 +                            lineLabels[nLines - 1].setText(
  51.370 +                                new String(lineLabels[nLines - 1].getText() + " ..."));
  51.371 +                        }
  51.372 +                        break;
  51.373 +                    }
  51.374 +                } while (end != BreakIterator.DONE);
  51.375 +
  51.376 +
  51.377 +                textPanel.setLayout(new GridLayout(nLines, 1));
  51.378 +            }
  51.379 +
  51.380 +            if ("ERROR".equals(messageType)) {
  51.381 +                iconImage = errorImage;
  51.382 +            } else if ("WARNING".equals(messageType)) {
  51.383 +                iconImage = warnImage;
  51.384 +            } else if ("INFO".equals(messageType)) {
  51.385 +                iconImage = infoImage;
  51.386 +            } else {
  51.387 +                iconImage = null;
  51.388 +            }
  51.389 +
  51.390 +            if (iconImage != null) {
  51.391 +                Dimension tpSize = textPanel.getSize();
  51.392 +                iconCanvas.setSize(BALLOON_ICON_WIDTH, (BALLOON_ICON_HEIGHT > tpSize.height ?
  51.393 +                                                        BALLOON_ICON_HEIGHT : tpSize.height));
  51.394 +                iconCanvas.validate();
  51.395 +            }
  51.396 +
  51.397 +            SunToolkit.executeOnEventHandlerThread(target, new Runnable() {
  51.398 +                    public void run() {
  51.399 +                        if (liveArguments.isDisposed()) {
  51.400 +                            return;
  51.401 +                        }
  51.402 +                        Point parLoc = getParent().getLocationOnScreen();
  51.403 +                        Dimension parSize = getParent().getSize();
  51.404 +                        show(new Point(parLoc.x + parSize.width/2, parLoc.y + parSize.height/2),
  51.405 +                             BALLOON_TRAY_ICON_INDENT);
  51.406 +                        if (iconImage != null) {
  51.407 +                            iconCanvas.updateImage(iconImage); // call it after the show(..) above
  51.408 +                        }
  51.409 +                    }
  51.410 +                });
  51.411 +        }
  51.412 +
  51.413 +        public void dispose() {
  51.414 +            displayer.interrupt();
  51.415 +            super.dispose();
  51.416 +        }
  51.417 +
  51.418 +        private void loadGtkImages() {
  51.419 +            if (!gtkImagesLoaded) {
  51.420 +                errorImage = (Image)Toolkit.getDefaultToolkit().getDesktopProperty(
  51.421 +                    "gtk.icon.gtk-dialog-error.6.rtl");
  51.422 +                warnImage = (Image)Toolkit.getDefaultToolkit().getDesktopProperty(
  51.423 +                    "gtk.icon.gtk-dialog-warning.6.rtl");
  51.424 +                infoImage = (Image)Toolkit.getDefaultToolkit().getDesktopProperty(
  51.425 +                    "gtk.icon.gtk-dialog-info.6.rtl");
  51.426 +                gtkImagesLoaded = true;
  51.427 +            }
  51.428 +        }
  51.429 +
  51.430 +        private class ActionPerformer extends MouseAdapter {
  51.431 +            public void mouseClicked(MouseEvent e) {
  51.432 +                // hide the balloon by any click
  51.433 +                hide();
  51.434 +                if (e.getButton() == MouseEvent.BUTTON1) {
  51.435 +                    ActionEvent aev = new ActionEvent(target, ActionEvent.ACTION_PERFORMED,
  51.436 +                                                      liveArguments.getActionCommand(),
  51.437 +                                                      e.getWhen(), e.getModifiers());
  51.438 +                    Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(aev);
  51.439 +                }
  51.440 +            }
  51.441 +        }
  51.442 +
  51.443 +        private class Displayer extends Thread {
  51.444 +            final int MAX_CONCURRENT_MSGS = 10;
  51.445 +
  51.446 +            ArrayBlockingQueue<Message> messageQueue = new ArrayBlockingQueue<Message>(MAX_CONCURRENT_MSGS);
  51.447 +            boolean isDisplayed;
  51.448 +
  51.449 +            Displayer() {
  51.450 +                setDaemon(true);
  51.451 +            }
  51.452 +
  51.453 +            public void run() {
  51.454 +                while (true) {
  51.455 +                    Message msg = null;
  51.456 +                    try {
  51.457 +                        msg = (Message)messageQueue.take();
  51.458 +                    } catch (InterruptedException e) {
  51.459 +                        return;
  51.460 +                    }
  51.461 +
  51.462 +                    /*
  51.463 +                     * Wait till the previous message is displayed if any
  51.464 +                     */
  51.465 +                    XToolkit.awtLock();
  51.466 +                    try {
  51.467 +                        while (isDisplayed) {
  51.468 +                            try {
  51.469 +                                XToolkit.awtLockWait();
  51.470 +                            } catch (InterruptedException e) {
  51.471 +                                return;
  51.472 +                            }
  51.473 +                        }
  51.474 +                        isDisplayed = true;
  51.475 +                    } finally {
  51.476 +                        XToolkit.awtUnlock();
  51.477 +                    }
  51.478 +                    _display(msg.caption, msg.text, msg.messageType);
  51.479 +                }
  51.480 +            }
  51.481 +
  51.482 +            void display(String caption, String text, String messageType) {
  51.483 +                messageQueue.offer(new Message(caption, text, messageType));
  51.484 +            }
  51.485 +        }
  51.486 +
  51.487 +        private static class Message {
  51.488 +            String caption, text, messageType;
  51.489 +
  51.490 +            Message(String caption, String text, String messageType) {
  51.491 +                this.caption = caption;
  51.492 +                this.text = text;
  51.493 +                this.messageType = messageType;
  51.494 +            }
  51.495 +        }
  51.496 +    }
  51.497 +}
  51.498 +
    52.1 --- a/src/solaris/classes/sun/awt/X11/XBaseWindow.java	Tue Apr 14 00:05:07 2009 -0700
    52.2 +++ b/src/solaris/classes/sun/awt/X11/XBaseWindow.java	Tue Apr 14 04:21:02 2009 -0700
    52.3 @@ -842,27 +842,35 @@
    52.4                  | XConstants.ButtonMotionMask);
    52.5              final int ownerEvents = 1;
    52.6  
    52.7 -            int ptrGrab = XlibWrapper.XGrabPointer(XToolkit.getDisplay(),
    52.8 -                getContentWindow(), ownerEvents, eventMask, XConstants.GrabModeAsync,
    52.9 -                XConstants.GrabModeAsync, XConstants.None, (XWM.isMotif() ? XToolkit.arrowCursor : XConstants.None),
   52.10 -                XConstants.CurrentTime);
   52.11 -            // Check grab results to be consistent with X server grab
   52.12 -            if (ptrGrab != XConstants.GrabSuccess) {
   52.13 -                XlibWrapper.XUngrabPointer(XToolkit.getDisplay(), XConstants.CurrentTime);
   52.14 -                XAwtState.setGrabWindow(null);
   52.15 -                grabLog.fine("    Grab Failure - mouse");
   52.16 -                return false;
   52.17 -            }
   52.18  
   52.19 -            int keyGrab = XlibWrapper.XGrabKeyboard(XToolkit.getDisplay(),
   52.20 -                getContentWindow(), ownerEvents, XConstants.GrabModeAsync, XConstants.GrabModeAsync,
   52.21 -                XConstants.CurrentTime);
   52.22 -            if (keyGrab != XConstants.GrabSuccess) {
   52.23 -                XlibWrapper.XUngrabPointer(XToolkit.getDisplay(), XConstants.CurrentTime);
   52.24 -                XlibWrapper.XUngrabKeyboard(XToolkit.getDisplay(), XConstants.CurrentTime);
   52.25 -                XAwtState.setGrabWindow(null);
   52.26 -                grabLog.fine("    Grab Failure - keyboard");
   52.27 -                return false;
   52.28 +            //6714678: IDE (Netbeans, Eclipse, JDeveloper) Debugger hangs
   52.29 +            //process on Linux
   52.30 +            //The user must pass the sun.awt.disablegrab property to disable
   52.31 +            //taking grabs. This prevents hanging of the GUI when a breakpoint
   52.32 +            //is hit while a popup window taking the grab is open.
   52.33 +            if (!XToolkit.getSunAwtDisableGrab()) {
   52.34 +                int ptrGrab = XlibWrapper.XGrabPointer(XToolkit.getDisplay(),
   52.35 +                        getContentWindow(), ownerEvents, eventMask, XConstants.GrabModeAsync,
   52.36 +                        XConstants.GrabModeAsync, XConstants.None, (XWM.isMotif() ? XToolkit.arrowCursor : XConstants.None),
   52.37 +                        XConstants.CurrentTime);
   52.38 +                // Check grab results to be consistent with X server grab
   52.39 +                if (ptrGrab != XConstants.GrabSuccess) {
   52.40 +                    XlibWrapper.XUngrabPointer(XToolkit.getDisplay(), XConstants.CurrentTime);
   52.41 +                    XAwtState.setGrabWindow(null);
   52.42 +                    grabLog.fine("    Grab Failure - mouse");
   52.43 +                    return false;
   52.44 +                }
   52.45 +
   52.46 +                int keyGrab = XlibWrapper.XGrabKeyboard(XToolkit.getDisplay(),
   52.47 +                        getContentWindow(), ownerEvents, XConstants.GrabModeAsync, XConstants.GrabModeAsync,
   52.48 +                        XConstants.CurrentTime);
   52.49 +                if (keyGrab != XConstants.GrabSuccess) {
   52.50 +                    XlibWrapper.XUngrabPointer(XToolkit.getDisplay(), XConstants.CurrentTime);
   52.51 +                    XlibWrapper.XUngrabKeyboard(XToolkit.getDisplay(), XConstants.CurrentTime);
   52.52 +                    XAwtState.setGrabWindow(null);
   52.53 +                    grabLog.fine("    Grab Failure - keyboard");
   52.54 +                    return false;
   52.55 +                }
   52.56              }
   52.57              if (prevGrabWindow != null) {
   52.58                  prevGrabWindow.ungrabInputImpl();
   52.59 @@ -882,8 +890,10 @@
   52.60              grabLog.log(Level.FINE, "UnGrab input on {0}", new Object[] {grabWindow});
   52.61              if (grabWindow != null) {
   52.62                  grabWindow.ungrabInputImpl();
   52.63 -                XlibWrapper.XUngrabPointer(XToolkit.getDisplay(), XConstants.CurrentTime);
   52.64 -                XlibWrapper.XUngrabKeyboard(XToolkit.getDisplay(), XConstants.CurrentTime);
   52.65 +                if (!XToolkit.getSunAwtDisableGrab()) {
   52.66 +                    XlibWrapper.XUngrabPointer(XToolkit.getDisplay(), XConstants.CurrentTime);
   52.67 +                    XlibWrapper.XUngrabKeyboard(XToolkit.getDisplay(), XConstants.CurrentTime);
   52.68 +                }
   52.69                  XAwtState.setGrabWindow(null);
   52.70                  // we need to call XFlush() here to force ungrab
   52.71                  // see 6384219 for details
    53.1 --- a/src/solaris/classes/sun/awt/X11/XCanvasPeer.java	Tue Apr 14 00:05:07 2009 -0700
    53.2 +++ b/src/solaris/classes/sun/awt/X11/XCanvasPeer.java	Tue Apr 14 04:21:02 2009 -0700
    53.3 @@ -27,7 +27,6 @@
    53.4  import java.awt.*;
    53.5  import java.awt.peer.*;
    53.6  
    53.7 -import sun.awt.ComponentAccessor;
    53.8  import sun.awt.SunToolkit;
    53.9  
   53.10  import sun.awt.X11GraphicsConfig;
   53.11 @@ -54,60 +53,45 @@
   53.12          }
   53.13      }
   53.14  
   53.15 -    void resetTargetGC(Component target) {
   53.16 -        ComponentAccessor.resetGC(target);
   53.17 +    /* Get a GraphicsConfig with the same visual on the new
   53.18 +     * screen, which should be easy in Xinerama mode.
   53.19 +     */
   53.20 +    public GraphicsConfiguration getAppropriateGraphicsConfiguration(
   53.21 +                                    GraphicsConfiguration gc)
   53.22 +    {
   53.23 +        if (graphicsConfig == null || gc == null) {
   53.24 +            return gc;
   53.25 +        }
   53.26 +        // Opt: Only need to do if we're not using the default GC
   53.27 +
   53.28 +        int screenNum = ((X11GraphicsDevice)gc.getDevice()).getScreen();
   53.29 +
   53.30 +        X11GraphicsConfig parentgc;
   53.31 +        // save vis id of current gc
   53.32 +        int visual = graphicsConfig.getVisual();
   53.33 +
   53.34 +        X11GraphicsDevice newDev = (X11GraphicsDevice) GraphicsEnvironment.
   53.35 +            getLocalGraphicsEnvironment().
   53.36 +            getScreenDevices()[screenNum];
   53.37 +
   53.38 +        for (int i = 0; i < newDev.getNumConfigs(screenNum); i++) {
   53.39 +            if (visual == newDev.getConfigVisualId(i, screenNum)) {
   53.40 +                // use that
   53.41 +                graphicsConfig = (X11GraphicsConfig)newDev.getConfigurations()[i];
   53.42 +                break;
   53.43 +            }
   53.44 +        }
   53.45 +        // just in case...
   53.46 +        if (graphicsConfig == null) {
   53.47 +            graphicsConfig = (X11GraphicsConfig) GraphicsEnvironment.
   53.48 +                getLocalGraphicsEnvironment().
   53.49 +                getScreenDevices()[screenNum].
   53.50 +                getDefaultConfiguration();
   53.51 +        }
   53.52 +
   53.53 +        return graphicsConfig;
   53.54      }
   53.55  
   53.56 -    /*
   53.57 -     * Called when the Window this
   53.58 -     * Canvas is on is moved onto another Xinerama screen.
   53.59 -     *
   53.60 -     * Canvases can be created with a non-defulat GraphicsConfiguration.  The
   53.61 -     * GraphicsConfiguration needs to be changed to one on the new screen,
   53.62 -     * preferably with the same visual ID.
   53.63 -     *
   53.64 -     * Up-called for other windows peer instances (XPanelPeer, XWindowPeer).
   53.65 -     *
   53.66 -     * Should only be called from the event thread.
   53.67 -     */
   53.68 -    public void displayChanged(int screenNum) {
   53.69 -        resetLocalGC(screenNum);
   53.70 -        resetTargetGC(target);
   53.71 -    }
   53.72 -
   53.73 -    /* Set graphicsConfig to a GraphicsConfig with the same visual on the new
   53.74 -     * screen, which should be easy in Xinerama mode.
   53.75 -     *
   53.76 -     * Should only be called from displayChanged(), and therefore only from
   53.77 -     * the event thread.
   53.78 -     */
   53.79 -    void resetLocalGC(int screenNum) {
   53.80 -        // Opt: Only need to do if we're not using the default GC
   53.81 -        if (graphicsConfig != null) {
   53.82 -            X11GraphicsConfig parentgc;
   53.83 -            // save vis id of current gc
   53.84 -            int visual = graphicsConfig.getVisual();
   53.85 -
   53.86 -            X11GraphicsDevice newDev = (X11GraphicsDevice) GraphicsEnvironment.
   53.87 -                getLocalGraphicsEnvironment().
   53.88 -                getScreenDevices()[screenNum];
   53.89 -
   53.90 -            for (int i = 0; i < newDev.getNumConfigs(screenNum); i++) {
   53.91 -                if (visual == newDev.getConfigVisualId(i, screenNum)) {
   53.92 -                    // use that
   53.93 -                    graphicsConfig = (X11GraphicsConfig)newDev.getConfigurations()[i];
   53.94 -                    break;
   53.95 -                }
   53.96 -            }
   53.97 -            // just in case...
   53.98 -            if (graphicsConfig == null) {
   53.99 -                graphicsConfig = (X11GraphicsConfig) GraphicsEnvironment.
  53.100 -                    getLocalGraphicsEnvironment().
  53.101 -                    getScreenDevices()[screenNum].
  53.102 -                    getDefaultConfiguration();
  53.103 -            }
  53.104 -        }
  53.105 -    }
  53.106      protected boolean shouldFocusOnClick() {
  53.107          // Canvas should always be able to be focused by mouse clicks.
  53.108          return true;
    54.1 --- a/src/solaris/classes/sun/awt/X11/XComponentPeer.java	Tue Apr 14 00:05:07 2009 -0700
    54.2 +++ b/src/solaris/classes/sun/awt/X11/XComponentPeer.java	Tue Apr 14 04:21:02 2009 -0700
    54.3 @@ -35,6 +35,7 @@
    54.4  import java.awt.Font;
    54.5  import java.awt.FontMetrics;
    54.6  import java.awt.Graphics;
    54.7 +import java.awt.GraphicsConfiguration;
    54.8  import java.awt.Image;
    54.9  import java.awt.Insets;
   54.10  import java.awt.KeyboardFocusManager;
   54.11 @@ -76,11 +77,6 @@
   54.12  public class XComponentPeer extends XWindow implements ComponentPeer, DropTargetPeer,
   54.13      BackBufferCapsProvider
   54.14  {
   54.15 -    /* FIX ME: these constants copied from java.awt.KeyboardFocusManager */
   54.16 -    static final int SNFH_FAILURE = 0;
   54.17 -    static final int SNFH_SUCCESS_HANDLED = 1;
   54.18 -    static final int SNFH_SUCCESS_PROCEED = 2;
   54.19 -
   54.20      private static final Logger log = Logger.getLogger("sun.awt.X11.XComponentPeer");
   54.21      private static final Logger buffersLog = Logger.getLogger("sun.awt.X11.XComponentPeer.multibuffer");
   54.22      private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XComponentPeer");
   54.23 @@ -166,7 +162,7 @@
   54.24          enableLog.log(Level.FINE, "Initial enable state: {0}", new Object[] {Boolean.valueOf(enabled)});
   54.25  
   54.26          if (target.isVisible()) {
   54.27 -            show();
   54.28 +            setVisible(true);
   54.29          }
   54.30      }
   54.31  
   54.32 @@ -314,113 +310,27 @@
   54.33          return null;
   54.34      }
   54.35  
   54.36 -    /**
   54.37 -     * Returns whether or not this component should be given focus on mouse click.
   54.38 -     * Default implementation return whether or not this peer is "focusable"
   54.39 -     * Descendants might want to override it to extend/restrict conditions at which this
   54.40 -     * component should be focused by click (see MCanvasPeer and MPanelPeer)
   54.41 -     */
   54.42 -    protected boolean shouldFocusOnClick() {
   54.43 -        return isFocusable();
   54.44 -    }
   54.45 -
   54.46 -    /**
   54.47 -     * Checks whether or not this component would be focused by native system if it would be allowed to do so.
   54.48 -     * Currently it checks that it displayable, visible, enabled and focusable.
   54.49 -     */
   54.50 -    static boolean canBeFocusedByClick(Component component) {
   54.51 -        if (component == null) {
   54.52 -            return false;
   54.53 -        } else {
   54.54 -            return component.isDisplayable() && component.isVisible() && component.isEnabled() && component.isFocusable();
   54.55 -        }
   54.56 -    }
   54.57 -
   54.58 -    static Window getContainingWindow(Component comp) {
   54.59 -        while (comp != null && !(comp instanceof Window)) {
   54.60 -            comp = comp.getParent();
   54.61 -        }
   54.62 -
   54.63 -        return (Window)comp;
   54.64 -    }
   54.65 -
   54.66 -    static Method processSynchronousLightweightTransferMethod;
   54.67 -    static boolean processSynchronousLightweightTransfer(Component heavyweight, Component descendant,
   54.68 -                                                  boolean temporary, boolean focusedWindowChangeAllowed,
   54.69 -                                                  long time)
   54.70 +    // TODO: consider moving it to KeyboardFocusManagerPeerImpl
   54.71 +    final public boolean requestFocus(Component lightweightChild, boolean temporary,
   54.72 +                                      boolean focusedWindowChangeAllowed, long time,
   54.73 +                                      CausedFocusEvent.Cause cause)
   54.74      {
   54.75 -        try {
   54.76 -            if (processSynchronousLightweightTransferMethod == null) {
   54.77 -                processSynchronousLightweightTransferMethod =
   54.78 -                    (Method)AccessController.doPrivileged(
   54.79 -                        new PrivilegedExceptionAction() {
   54.80 -                                public Object run() throws IllegalAccessException, NoSuchMethodException
   54.81 -                                {
   54.82 -                                    Method m = KeyboardFocusManager.class.
   54.83 -                                        getDeclaredMethod("processSynchronousLightweightTransfer",
   54.84 -                                                          new Class[] {Component.class, Component.class,
   54.85 -                                                                       Boolean.TYPE, Boolean.TYPE,
   54.86 -                                                                       Long.TYPE});
   54.87 -                                    m.setAccessible(true);
   54.88 -                                    return m;
   54.89 -                                }
   54.90 -                            });
   54.91 -            }
   54.92 -            Object[] params = new Object[] {
   54.93 -                        heavyweight,
   54.94 -                        descendant,
   54.95 -                        Boolean.valueOf(temporary),
   54.96 -                        Boolean.valueOf(focusedWindowChangeAllowed),
   54.97 -                        Long.valueOf(time)
   54.98 -                    };
   54.99 -            return ((Boolean)processSynchronousLightweightTransferMethod.invoke(null, params)).booleanValue();
  54.100 -        } catch (PrivilegedActionException pae) {
  54.101 -            pae.printStackTrace();
  54.102 -            return false;
  54.103 -        } catch (IllegalAccessException iae) {
  54.104 -            iae.printStackTrace();
  54.105 -            return false;
  54.106 -        } catch (IllegalArgumentException iaee) {
  54.107 -            iaee.printStackTrace();
  54.108 -            return false;
  54.109 -        } catch (InvocationTargetException ite) {
  54.110 -            ite.printStackTrace();
  54.111 -            return false;
  54.112 -        }
  54.113 -    }
  54.114 -
  54.115 -    static Method requestFocusWithCause;
  54.116 -
  54.117 -    static void callRequestFocus(Component target, CausedFocusEvent.Cause cause) {
  54.118 -        if (requestFocusWithCause == null) {
  54.119 -            requestFocusWithCause = SunToolkit.getMethod(Component.class, "requestFocus", new Class[] {CausedFocusEvent.Cause.class});
  54.120 -        }
  54.121 -        if (requestFocusWithCause != null) {
  54.122 -            try {
  54.123 -                requestFocusWithCause.invoke(target, new Object[] {cause});
  54.124 -            } catch (Exception e) {
  54.125 -                e.printStackTrace();
  54.126 -            }
  54.127 -        }
  54.128 -    }
  54.129 -
  54.130 -    final public boolean requestFocus(Component lightweightChild, boolean temporary,
  54.131 -                                      boolean focusedWindowChangeAllowed, long time, CausedFocusEvent.Cause cause)
  54.132 -    {
  54.133 -        if (processSynchronousLightweightTransfer(target, lightweightChild, temporary,
  54.134 +        if (XKeyboardFocusManagerPeer.
  54.135 +            processSynchronousLightweightTransfer(target, lightweightChild, temporary,
  54.136                                                    focusedWindowChangeAllowed, time))
  54.137          {
  54.138              return true;
  54.139          }
  54.140  
  54.141 -        int result = XKeyboardFocusManagerPeer
  54.142 -            .shouldNativelyFocusHeavyweight(target, lightweightChild,
  54.143 -                                            temporary, focusedWindowChangeAllowed, time, cause);
  54.144 +        int result = XKeyboardFocusManagerPeer.
  54.145 +            shouldNativelyFocusHeavyweight(target, lightweightChild,
  54.146 +                                           temporary, focusedWindowChangeAllowed,
  54.147 +                                           time, cause);
  54.148  
  54.149          switch (result) {
  54.150 -          case SNFH_FAILURE:
  54.151 +          case XKeyboardFocusManagerPeer.SNFH_FAILURE:
  54.152                return false;
  54.153 -          case SNFH_SUCCESS_PROCEED:
  54.154 +          case XKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
  54.155                // Currently we just generate focus events like we deal with lightweight instead of calling
  54.156                // XSetInputFocus on native window
  54.157                if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Proceeding with request to " +
  54.158 @@ -433,7 +343,7 @@
  54.159                 * focus owner which had focus before WLF. So, we should not add request record for such requests
  54.160                 * but store this component in mostRecent - and return true as before for compatibility.
  54.161                 */
  54.162 -              Window parentWindow = getContainingWindow(target);
  54.163 +              Window parentWindow = SunToolkit.getContainingWindow(target);
  54.164                if (parentWindow == null) {
  54.165                    return rejectFocusRequestHelper("WARNING: Parent window is null");
  54.166                }
  54.167 @@ -454,14 +364,13 @@
  54.168                if (!(res && parentWindow.isFocused())) {
  54.169                    return rejectFocusRequestHelper("Waiting for asynchronous processing of the request");
  54.170                }
  54.171 -
  54.172 -              // NOTE: We simulate heavyweight behavior of Motif - component receives focus right
  54.173 -              // after request, not after event. Normally, we should better listen for event
  54.174 -              // by listeners.
  54.175 -              return XKeyboardFocusManagerPeer.simulateMotifRequestFocus(lightweightChild, target, temporary,
  54.176 -                                                                         focusedWindowChangeAllowed, time, cause);
  54.177 +              return XKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
  54.178 +                                                            (Component)target,
  54.179 +                                                            temporary,
  54.180 +                                                            focusedWindowChangeAllowed,
  54.181 +                                                            time, cause);
  54.182                // Motif compatibility code
  54.183 -          case SNFH_SUCCESS_HANDLED:
  54.184 +          case XKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
  54.185                // Either lightweight or excessive request - all events are generated.
  54.186                return true;
  54.187          }
  54.188 @@ -470,7 +379,7 @@
  54.189  
  54.190      private boolean rejectFocusRequestHelper(String logMsg) {
  54.191          if (focusLog.isLoggable(Level.FINER)) focusLog.finer(logMsg);
  54.192 -        KeyboardFocusManagerPeerImpl.removeLastFocusRequest(target);
  54.193 +        XKeyboardFocusManagerPeer.removeLastFocusRequest(target);
  54.194          return false;
  54.195      }
  54.196  
  54.197 @@ -496,10 +405,6 @@
  54.198          xSetVisible(b);
  54.199      }
  54.200  
  54.201 -    public void show() {
  54.202 -        setVisible(true);
  54.203 -    }
  54.204 -
  54.205      public void hide() {
  54.206          setVisible(false);
  54.207      }
  54.208 @@ -618,8 +523,9 @@
  54.209      void handleJavaMouseEvent(MouseEvent e) {
  54.210          switch (e.getID()) {
  54.211            case MouseEvent.MOUSE_PRESSED:
  54.212 -              if (target == e.getSource() && shouldFocusOnClick()
  54.213 -                  && !target.isFocusOwner() && canBeFocusedByClick(target))
  54.214 +              if (target == e.getSource() &&
  54.215 +                  !target.isFocusOwner() &&
  54.216 +                  XKeyboardFocusManagerPeer.shouldFocusOnClick(target))
  54.217                {
  54.218                    XWindowPeer parentXWindow = getParentTopLevel();
  54.219                    Window parentWindow = ((Window)parentXWindow.getTarget());
  54.220 @@ -633,7 +539,7 @@
  54.221  //                       WindowEvent wfg = new WindowEvent(parentWindow, WindowEvent.WINDOW_GAINED_FOCUS);
  54.222  //                       parentWindow.dispatchEvent(wfg);
  54.223  //                   }
  54.224 -                  callRequestFocus(target, CausedFocusEvent.Cause.MOUSE_EVENT);
  54.225 +                  XKeyboardFocusManagerPeer.requestFocusFor(target, CausedFocusEvent.Cause.MOUSE_EVENT);
  54.226                }
  54.227                break;
  54.228          }
  54.229 @@ -1418,59 +1324,21 @@
  54.230          }
  54.231      }
  54.232  
  54.233 -    public void restack() {
  54.234 -        synchronized(target.getTreeLock()) {
  54.235 -            // Build the list of X windows in the window corresponding to this container
  54.236 -            // This list is already in correct Java stacking order
  54.237 -            Container cont = (Container)target;
  54.238 -            Vector order = new Vector(cont.getComponentCount());
  54.239 -            HashSet set = new HashSet();
  54.240 +    /**
  54.241 +     * Lowers this component at the bottom of the above HW peer. If the above parameter
  54.242 +     * is null then the method places this component at the top of the Z-order.
  54.243 +     */
  54.244 +    public void setZOrder(ComponentPeer above) {
  54.245 +        long aboveWindow = (above != null) ? ((XComponentPeer)above).getWindow() : 0;
  54.246  
  54.247 -            addTree(order, set, cont);
  54.248 -
  54.249 -            XToolkit.awtLock();
  54.250 -            try {
  54.251 -                // Get the current list of X window in X window. Some of the windows
  54.252 -                // might be only native
  54.253 -                XQueryTree qt = new XQueryTree(getContentWindow());
  54.254 -                try {
  54.255 -                    if (qt.execute() != 0) {
  54.256 -                        if (qt.get_nchildren() != 0) {
  54.257 -                            long pchildren = qt.get_children();
  54.258 -                            int j = 0; // index to insert
  54.259 -                            for (int i = 0; i < qt.get_nchildren(); i++) {
  54.260 -                                Long w = Long.valueOf(Native.getLong(pchildren, i));
  54.261 -                                if (!set.contains(w)) {
  54.262 -                                    set.add(w);
  54.263 -                                    order.add(j++, w);
  54.264 -                                }
  54.265 -                            }
  54.266 -                        }
  54.267 -                    }
  54.268 -
  54.269 -                    if (order.size() != 0) {
  54.270 -                        // Create native array of the windows
  54.271 -                        long windows = Native.allocateLongArray(order.size());
  54.272 -                        Native.putLong(windows, order);
  54.273 -
  54.274 -                        // Restack native window according to the new order
  54.275 -                        XlibWrapper.XRestackWindows(XToolkit.getDisplay(), windows, order.size());
  54.276 -
  54.277 -                        XlibWrapper.unsafe.freeMemory(windows);
  54.278 -                    }
  54.279 -                } finally {
  54.280 -                    qt.dispose();
  54.281 -                }
  54.282 -            } finally {
  54.283 -                XToolkit.awtUnlock();
  54.284 -            }
  54.285 +        XToolkit.awtLock();
  54.286 +        try{
  54.287 +            XlibWrapper.SetZOrder(XToolkit.getDisplay(), getWindow(), aboveWindow);
  54.288 +        }finally{
  54.289 +            XToolkit.awtUnlock();
  54.290          }
  54.291      }
  54.292  
  54.293 -    public boolean isRestackSupported() {
  54.294 -        return true;
  54.295 -    }
  54.296 -
  54.297      private void addTree(Collection order, Set set, Container cont) {
  54.298          for (int i = 0; i < cont.getComponentCount(); i++) {
  54.299              Component comp = cont.getComponent(i);
  54.300 @@ -1560,4 +1428,8 @@
  54.301              }
  54.302          }
  54.303      }
  54.304 +
  54.305 +    public void updateGraphicsData(GraphicsConfiguration gc) {
  54.306 +        initGraphicsConfiguration();
  54.307 +    }
  54.308  }
    55.1 --- a/src/solaris/classes/sun/awt/X11/XConstants.java	Tue Apr 14 00:05:07 2009 -0700
    55.2 +++ b/src/solaris/classes/sun/awt/X11/XConstants.java	Tue Apr 14 04:21:02 2009 -0700
    55.3 @@ -1,5 +1,5 @@
    55.4  /*
    55.5 - * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
    55.6 + * Copyright 2003-2009 Sun Microsystems, Inc.  All Rights Reserved.
    55.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    55.8   *
    55.9   * This code is free software; you can redistribute it and/or modify it
   55.10 @@ -684,4 +684,19 @@
   55.11  
   55.12      public static final int LSBFirst = 0 ;
   55.13      public static final int MSBFirst = 1 ;
   55.14 +
   55.15 +    /* XKB support */
   55.16 +    public static final int  XkbUseCoreKbd = 0x0100 ;
   55.17 +    public static final int  XkbNewKeyboardNotify = 0;
   55.18 +    public static final int  XkbMapNotify = 1;
   55.19 +    public static final int  XkbStateNotify = 2;
   55.20 +    public static final long XkbNewKeyboardNotifyMask = (1L << 0);
   55.21 +    public static final long XkbMapNotifyMask = (1L << 1);
   55.22 +    public static final long XkbStateNotifyMask = (1L << 2);
   55.23 +    public static final long XkbGroupStateMask  = (1L << 4);
   55.24 +    public static final long XkbKeyTypesMask = (1L<<0);
   55.25 +    public static final long XkbKeySymsMask = (1L<<1);
   55.26 +    public static final long XkbModifierMapMask = (1L<<2);
   55.27 +    public static final long XkbVirtualModsMask = (1L<<6); //server map
   55.28 +
   55.29  }
    56.1 --- a/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java	Tue Apr 14 00:05:07 2009 -0700
    56.2 +++ b/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java	Tue Apr 14 04:21:02 2009 -0700
    56.3 @@ -383,7 +383,7 @@
    56.4              dimensions.setInsets(getRealInsets());
    56.5              insets_corrected = true;
    56.6  
    56.7 -            if (isMaximized() || isNull(correction)) {
    56.8 +            if (isMaximized()) {
    56.9                  return;
   56.10              }
   56.11  
   56.12 @@ -451,7 +451,7 @@
   56.13  
   56.14      public Insets getInsets() {
   56.15          Insets in = copy(getRealInsets());
   56.16 -        in.top += getMenuBarHeight() + getWarningWindowHeight();
   56.17 +        in.top += getMenuBarHeight();
   56.18          if (insLog.isLoggable(Level.FINEST)) {
   56.19              insLog.log(Level.FINEST, "Get insets returns {0}", new Object[] {in});
   56.20          }
   56.21 @@ -802,6 +802,8 @@
   56.22          }
   56.23          reconfigureContentWindow(newDimensions);
   56.24          updateChildrenSizes();
   56.25 +
   56.26 +        repositionSecurityWarning();
   56.27      }
   56.28  
   56.29      private void checkShellRectSize(Rectangle shellRect) {
    57.1 --- a/src/solaris/classes/sun/awt/X11/XEmbedChildProxyPeer.java	Tue Apr 14 00:05:07 2009 -0700
    57.2 +++ b/src/solaris/classes/sun/awt/X11/XEmbedChildProxyPeer.java	Tue Apr 14 04:21:02 2009 -0700
    57.3 @@ -184,6 +184,7 @@
    57.4              fl = new FocusEvent(currentOwner, FocusEvent.FOCUS_LOST, false, lightweightChild);
    57.5          }
    57.6  
    57.7 +        // TODO: do we need to wrap in sequenced?
    57.8          if (fl != null) {
    57.9              postEvent(XComponentPeer.wrapInSequenced(fl));
   57.10          }
   57.11 @@ -203,9 +204,9 @@
   57.12                                              temporary, false, time, cause);
   57.13  
   57.14          switch (result) {
   57.15 -          case XComponentPeer.SNFH_FAILURE:
   57.16 +          case XKeyboardFocusManagerPeer.SNFH_FAILURE:
   57.17                return false;
   57.18 -          case XComponentPeer.SNFH_SUCCESS_PROCEED:
   57.19 +          case XKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
   57.20                // Currently we just generate focus events like we deal with lightweight instead of calling
   57.21                // XSetInputFocus on native window
   57.22  
   57.23 @@ -235,9 +236,11 @@
   57.24                // NOTE: We simulate heavyweight behavior of Motif - component receives focus right
   57.25                // after request, not after event. Normally, we should better listen for event
   57.26                // by listeners.
   57.27 +
   57.28 +              // TODO: consider replacing with XKeyboardFocusManagerPeer.deliverFocus
   57.29                return simulateMotifRequestFocus(lightweightChild, temporary, focusedWindowChangeAllowed, time);
   57.30                // Motif compatibility code
   57.31 -          case XComponentPeer.SNFH_SUCCESS_HANDLED:
   57.32 +          case XKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
   57.33                // Either lightweight or excessive requiest - all events are generated.
   57.34                return true;
   57.35          }
   57.36 @@ -379,4 +382,9 @@
   57.37  
   57.38      public void applyShape(Region shape) {
   57.39      }
   57.40 +
   57.41 +    public void setZOrder(ComponentPeer above) {
   57.42 +    }
   57.43 +
   57.44 +    public void updateGraphicsData(GraphicsConfiguration gc) {}
   57.45  }
    58.1 --- a/src/solaris/classes/sun/awt/X11/XFileDialogPeer.java	Tue Apr 14 00:05:07 2009 -0700
    58.2 +++ b/src/solaris/classes/sun/awt/X11/XFileDialogPeer.java	Tue Apr 14 04:21:02 2009 -0700
    58.3 @@ -739,7 +739,17 @@
    58.4          this.filter = filter;
    58.5      }
    58.6  
    58.7 -    public void show() {
    58.8 +
    58.9 +    public void dispose() {
   58.10 +        FileDialog fd = (FileDialog)fileDialog;
   58.11 +        if (fd != null) {
   58.12 +            fd.removeAll();
   58.13 +        }
   58.14 +        super.dispose();
   58.15 +    }
   58.16 +
   58.17 +    // 03/02/2005 b5097243 Pressing 'ESC' on a file dlg does not dispose the dlg on Xtoolkit
   58.18 +    public void setVisible(boolean b){
   58.19          if (fileDialog == null) {
   58.20              init((FileDialog)target);
   58.21          }
   58.22 @@ -754,34 +764,20 @@
   58.23              setFile(savedFile);
   58.24          }
   58.25  
   58.26 -        super.show();
   58.27 -        selectionField.requestFocusInWindow();
   58.28 -    }
   58.29 -
   58.30 -    public void dispose() {
   58.31 -        FileDialog fd = (FileDialog)fileDialog;
   58.32 -        if (fd != null) {
   58.33 -            fd.removeAll();
   58.34 -        }
   58.35 -        super.dispose();
   58.36 -    }
   58.37 -
   58.38 -    // 03/02/2005 b5097243 Pressing 'ESC' on a file dlg does not dispose the dlg on Xtoolkit
   58.39 -    public void setVisible(boolean b){
   58.40          super.setVisible(b);
   58.41          if (b == true){
   58.42              // See 6240074 for more information
   58.43              XChoicePeer choicePeer = (XChoicePeer)pathChoice.getPeer();
   58.44              choicePeer.addXChoicePeerListener(this);
   58.45 -
   58.46              KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(this);
   58.47          }else{
   58.48              // See 6240074 for more information
   58.49              XChoicePeer choicePeer = (XChoicePeer)pathChoice.getPeer();
   58.50              choicePeer.removeXChoicePeerListener();
   58.51 -
   58.52              KeyboardFocusManager.getCurrentKeyboardFocusManager().removeKeyEventDispatcher(this);
   58.53          }
   58.54 +
   58.55 +        selectionField.requestFocusInWindow();
   58.56      }
   58.57  
   58.58      /*
    59.1 --- a/src/solaris/classes/sun/awt/X11/XFramePeer.java	Tue Apr 14 00:05:07 2009 -0700
    59.2 +++ b/src/solaris/classes/sun/awt/X11/XFramePeer.java	Tue Apr 14 04:21:02 2009 -0700
    59.3 @@ -36,6 +36,7 @@
    59.4  import java.awt.peer.FramePeer;
    59.5  import java.util.logging.Level;
    59.6  import java.util.logging.Logger;
    59.7 +import sun.awt.AWTAccessor;
    59.8  
    59.9  class XFramePeer extends XDecoratedPeer implements FramePeer {
   59.10      private static Logger log = Logger.getLogger("sun.awt.X11.XFramePeer");
   59.11 @@ -231,13 +232,19 @@
   59.12          }
   59.13      }
   59.14  
   59.15 -    public int getState() { return state; }
   59.16 +    public int getState() {
   59.17 +        synchronized(getStateLock()) {
   59.18 +            return state;
   59.19 +        }
   59.20 +    }
   59.21  
   59.22      public void setState(int newState) {
   59.23 -        if (!isShowing()) {
   59.24 -            stateLog.finer("Frame is not showing");
   59.25 -            state = newState;
   59.26 -            return;
   59.27 +        synchronized(getStateLock()) {
   59.28 +            if (!isShowing()) {
   59.29 +                stateLog.finer("Frame is not showing");
   59.30 +                state = newState;
   59.31 +                return;
   59.32 +            }
   59.33          }
   59.34          changeState(newState);
   59.35      }
   59.36 @@ -296,6 +303,9 @@
   59.37          int old_state = state;
   59.38          state = newState;
   59.39  
   59.40 +        // sync target with peer
   59.41 +        AWTAccessor.getFrameAccessor().setExtendedState((Frame)target, state);
   59.42 +
   59.43          if ((changed & Frame.ICONIFIED) != 0) {
   59.44              if ((state & Frame.ICONIFIED) != 0) {
   59.45                  stateLog.finer("Iconified");
    60.1 --- a/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java	Tue Apr 14 00:05:07 2009 -0700
    60.2 +++ b/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java	Tue Apr 14 04:21:02 2009 -0700
    60.3 @@ -31,6 +31,7 @@
    60.4  import java.awt.event.FocusEvent;
    60.5  
    60.6  import java.awt.peer.KeyboardFocusManagerPeer;
    60.7 +import java.awt.peer.ComponentPeer;
    60.8  
    60.9  import java.lang.reflect.InvocationTargetException;
   60.10  import java.lang.reflect.Method;
   60.11 @@ -40,136 +41,90 @@
   60.12  
   60.13  import sun.awt.CausedFocusEvent;
   60.14  import sun.awt.SunToolkit;
   60.15 +import sun.awt.KeyboardFocusManagerPeerImpl;
   60.16  
   60.17 -public class XKeyboardFocusManagerPeer implements KeyboardFocusManagerPeer {
   60.18 +public class XKeyboardFocusManagerPeer extends KeyboardFocusManagerPeerImpl {
   60.19      private static final Logger focusLog = Logger.getLogger("sun.awt.X11.focus.XKeyboardFocusManagerPeer");
   60.20 -    KeyboardFocusManager manager;
   60.21 -
   60.22 -    XKeyboardFocusManagerPeer(KeyboardFocusManager manager) {
   60.23 -        this.manager = manager;
   60.24 -    }
   60.25  
   60.26      private static Object lock = new Object() {};
   60.27      private static Component currentFocusOwner;
   60.28      private static Window currentFocusedWindow;
   60.29  
   60.30 -    static void setCurrentNativeFocusOwner(Component comp) {
   60.31 -        if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Setting current native focus owner " + comp);
   60.32 -        synchronized(lock) {
   60.33 +    XKeyboardFocusManagerPeer(KeyboardFocusManager manager) {
   60.34 +        super(manager);
   60.35 +    }
   60.36 +
   60.37 +    @Override
   60.38 +    public void setCurrentFocusOwner(Component comp) {
   60.39 +        setCurrentNativeFocusOwner(comp);
   60.40 +    }
   60.41 +
   60.42 +    @Override
   60.43 +    public Component getCurrentFocusOwner() {
   60.44 +        return getCurrentNativeFocusOwner();
   60.45 +    }
   60.46 +
   60.47 +    @Override
   60.48 +    public Window getCurrentFocusedWindow() {
   60.49 +        return getCurrentNativeFocusedWindow();
   60.50 +    }
   60.51 +
   60.52 +    public static void setCurrentNativeFocusOwner(Component comp) {
   60.53 +        synchronized (lock) {
   60.54              currentFocusOwner = comp;
   60.55          }
   60.56      }
   60.57  
   60.58 -    static void setCurrentNativeFocusedWindow(Window win) {
   60.59 -        if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Setting current native focused window " + win);
   60.60 -        synchronized(lock) {
   60.61 -            currentFocusedWindow = win;
   60.62 -        }
   60.63 -    }
   60.64 -
   60.65 -    static Component getCurrentNativeFocusOwner() {
   60.66 +    public static Component getCurrentNativeFocusOwner() {
   60.67          synchronized(lock) {
   60.68              return currentFocusOwner;
   60.69          }
   60.70      }
   60.71  
   60.72 -    static Window getCurrentNativeFocusedWindow() {
   60.73 +    public static void setCurrentNativeFocusedWindow(Window win) {
   60.74 +        if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Setting current native focused window " + win);
   60.75 +        XWindowPeer from = null, to = null;
   60.76 +
   60.77 +        synchronized(lock) {
   60.78 +            if (currentFocusedWindow != null) {
   60.79 +                from = (XWindowPeer)currentFocusedWindow.getPeer();
   60.80 +            }
   60.81 +
   60.82 +            currentFocusedWindow = win;
   60.83 +
   60.84 +            if (currentFocusedWindow != null) {
   60.85 +                to = (XWindowPeer)currentFocusedWindow.getPeer();
   60.86 +            }
   60.87 +        }
   60.88 +
   60.89 +        if (from != null) {
   60.90 +            from.updateSecurityWarningVisibility();
   60.91 +        }
   60.92 +        if (to != null) {
   60.93 +            to.updateSecurityWarningVisibility();
   60.94 +        }
   60.95 +    }
   60.96 +
   60.97 +    public static Window getCurrentNativeFocusedWindow() {
   60.98          synchronized(lock) {
   60.99              return currentFocusedWindow;
  60.100          }
  60.101      }
  60.102  
  60.103 -    public Window getCurrentFocusedWindow() {
  60.104 -        return getCurrentNativeFocusedWindow();
  60.105 -    }
  60.106 -
  60.107 -    public void setCurrentFocusOwner(Component comp) {
  60.108 -        setCurrentNativeFocusOwner(comp);
  60.109 -    }
  60.110 -
  60.111 -    public Component getCurrentFocusOwner() {
  60.112 -        return getCurrentNativeFocusOwner();
  60.113 -    }
  60.114 -
  60.115 -    public void clearGlobalFocusOwner(Window activeWindow) {
  60.116 -         if (activeWindow != null) {
  60.117 -            Component focusOwner = activeWindow.getFocusOwner();
  60.118 -            if (focusLog.isLoggable(Level.FINE)) focusLog.fine("Clearing global focus owner " + focusOwner);
  60.119 -            if (focusOwner != null) {
  60.120 -//                XComponentPeer nativePeer = XComponentPeer.getNativeContainer(focusOwner);
  60.121 -//                if (nativePeer != null) {
  60.122 -                    FocusEvent fl = new CausedFocusEvent(focusOwner, FocusEvent.FOCUS_LOST, false, null,
  60.123 -                                                         CausedFocusEvent.Cause.CLEAR_GLOBAL_FOCUS_OWNER);
  60.124 -                    XWindow.sendEvent(fl);
  60.125 -//                }
  60.126 -            }
  60.127 -        }
  60.128 -   }
  60.129 -
  60.130 -    static boolean simulateMotifRequestFocus(Component lightweightChild, Component target, boolean temporary,
  60.131 -                                      boolean focusedWindowChangeAllowed, long time, CausedFocusEvent.Cause cause)
  60.132 +    // TODO: do something to eliminate this forwarding
  60.133 +    public static boolean deliverFocus(Component lightweightChild,
  60.134 +                                       Component target,
  60.135 +                                       boolean temporary,
  60.136 +                                       boolean focusedWindowChangeAllowed,
  60.137 +                                       long time,
  60.138 +                                       CausedFocusEvent.Cause cause)
  60.139      {
  60.140 -        if (lightweightChild == null) {
  60.141 -            lightweightChild = (Component)target;
  60.142 -        }
  60.143 -        Component currentOwner = XKeyboardFocusManagerPeer.getCurrentNativeFocusOwner();
  60.144 -        if (currentOwner != null && currentOwner.getPeer() == null) {
  60.145 -            currentOwner = null;
  60.146 -        }
  60.147 -        if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Simulating transfer from " + currentOwner + " to " + lightweightChild);
  60.148 -        FocusEvent  fg = new CausedFocusEvent(lightweightChild, FocusEvent.FOCUS_GAINED, false, currentOwner, cause);
  60.149 -        FocusEvent fl = null;
  60.150 -        if (currentOwner != null) {
  60.151 -            fl = new CausedFocusEvent(currentOwner, FocusEvent.FOCUS_LOST, false, lightweightChild, cause);
  60.152 -        }
  60.153 -
  60.154 -        if (fl != null) {
  60.155 -            XWindow.sendEvent(fl);
  60.156 -        }
  60.157 -        XWindow.sendEvent(fg);
  60.158 -        return true;
  60.159 -    }
  60.160 -
  60.161 -    static Method shouldNativelyFocusHeavyweightMethod;
  60.162 -
  60.163 -    static int shouldNativelyFocusHeavyweight(Component heavyweight,
  60.164 -         Component descendant, boolean temporary,
  60.165 -         boolean focusedWindowChangeAllowed, long time, CausedFocusEvent.Cause cause)
  60.166 -    {
  60.167 -        if (shouldNativelyFocusHeavyweightMethod == null) {
  60.168 -            Class[] arg_types =
  60.169 -                new Class[] { Component.class,
  60.170 -                              Component.class,
  60.171 -                              Boolean.TYPE,
  60.172 -                              Boolean.TYPE,
  60.173 -                              Long.TYPE,
  60.174 -                              CausedFocusEvent.Cause.class
  60.175 -            };
  60.176 -
  60.177 -            shouldNativelyFocusHeavyweightMethod =
  60.178 -                SunToolkit.getMethod(KeyboardFocusManager.class,
  60.179 -                                   "shouldNativelyFocusHeavyweight",
  60.180 -                                   arg_types);
  60.181 -        }
  60.182 -        Object[] args = new Object[] { heavyweight,
  60.183 -                                       descendant,
  60.184 -                                       Boolean.valueOf(temporary),
  60.185 -                                       Boolean.valueOf(focusedWindowChangeAllowed),
  60.186 -                                       Long.valueOf(time), cause};
  60.187 -
  60.188 -        int result = XComponentPeer.SNFH_FAILURE;
  60.189 -        if (shouldNativelyFocusHeavyweightMethod != null) {
  60.190 -            try {
  60.191 -                result = ((Integer) shouldNativelyFocusHeavyweightMethod.invoke(null, args)).intValue();
  60.192 -            }
  60.193 -            catch (IllegalAccessException e) {
  60.194 -                assert false;
  60.195 -            }
  60.196 -            catch (InvocationTargetException e) {
  60.197 -                assert false;
  60.198 -            }
  60.199 -        }
  60.200 -
  60.201 -        return result;
  60.202 +        return KeyboardFocusManagerPeerImpl.deliverFocus(lightweightChild,
  60.203 +                                                         target,
  60.204 +                                                         temporary,
  60.205 +                                                         focusedWindowChangeAllowed,
  60.206 +                                                         time,
  60.207 +                                                         cause,
  60.208 +                                                         getCurrentNativeFocusOwner());
  60.209      }
  60.210  }
    61.1 --- a/src/solaris/classes/sun/awt/X11/XKeysym.java	Tue Apr 14 00:05:07 2009 -0700
    61.2 +++ b/src/solaris/classes/sun/awt/X11/XKeysym.java	Tue Apr 14 04:21:02 2009 -0700
    61.3 @@ -1,7 +1,7 @@
    61.4  // This is a generated file: do not edit! Edit keysym2ucs.h if necessary.
    61.5  
    61.6  /*
    61.7 - * Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
    61.8 + * Copyright 2005-2009 Sun Microsystems, Inc.  All Rights Reserved.
    61.9   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   61.10   *
   61.11   * This code is free software; you can redistribute it and/or modify it
   61.12 @@ -89,14 +89,47 @@
   61.13          Character ch = keysym2UCSHash.get(ks);
   61.14          return ch == null ? (char)0 : ch.charValue();
   61.15      }
   61.16 +    static long xkeycode2keysym_noxkb(XKeyEvent ev, int ndx) {
   61.17 +        XToolkit.awtLock();
   61.18 +        try {
   61.19 +            return XlibWrapper.XKeycodeToKeysym(ev.get_display(), ev.get_keycode(), ndx);
   61.20 +        } finally {
   61.21 +            XToolkit.awtUnlock();
   61.22 +        }
   61.23 +    }
   61.24 +    static long xkeycode2keysym_xkb(XKeyEvent ev, int ndx) {
   61.25 +        XToolkit.awtLock();
   61.26 +        try {
   61.27 +            int mods = ev.get_state();
   61.28 +            if ((ndx == 0) && ((mods & XConstants.ShiftMask) != 0)) {
   61.29 +                // I don't know all possible meanings of 'ndx' in case of XKB
   61.30 +                // and don't want to speculate. But this particular case
   61.31 +                // clearly means that caller needs a so called primary keysym.
   61.32 +                mods ^= XConstants.ShiftMask;
   61.33 +            }
   61.34 +            XlibWrapper.XkbTranslateKeyCode(XToolkit.getXKBKbdDesc(), ev.get_keycode(),
   61.35 +                       mods, XlibWrapper.iarg1, XlibWrapper.larg3);
   61.36 +            //XXX unconsumed modifiers?
   61.37 +            return Native.getLong(XlibWrapper.larg3);
   61.38 +        } finally {
   61.39 +            XToolkit.awtUnlock();
   61.40 +        }
   61.41 +    }
   61.42      static long xkeycode2keysym(XKeyEvent ev, int ndx) {
   61.43          XToolkit.awtLock();
   61.44          try {
   61.45 -            return XlibWrapper.XKeycodeToKeysym(ev.get_display(), ev.get_keycode(), ndx );
   61.46 +            if (XToolkit.canUseXKBCalls()) {
   61.47 +                return xkeycode2keysym_xkb(ev, ndx);
   61.48 +            }else{
   61.49 +                return xkeycode2keysym_noxkb(ev, ndx);
   61.50 +            }
   61.51          } finally {
   61.52              XToolkit.awtUnlock();
   61.53          }
   61.54      }
   61.55 +    static long xkeycode2primary_keysym(XKeyEvent ev) {
   61.56 +        return xkeycode2keysym(ev, 0);
   61.57 +    }
   61.58      public static boolean isKPEvent( XKeyEvent ev )
   61.59      {
   61.60          // Xsun without XKB uses keysymarray[2] keysym to determine if it is KP event.
   61.61 @@ -198,6 +231,27 @@
   61.62          Keysym2JavaKeycode jkc = getJavaKeycode( ev );
   61.63          return jkc == null ? java.awt.event.KeyEvent.VK_UNDEFINED : jkc.getJavaKeycode();
   61.64      }
   61.65 +    /**
   61.66 +     * Return an integer java keycode apprx as it was before extending keycodes range.
   61.67 +     * This call would ignore for instance XKB and process whatever is on the bottom
   61.68 +     * of keysym stack. Result will not depend on actual locale, will differ between
   61.69 +     * dual/multiple keyboard setup systems (e.g. English+Russian vs French+Russian)
   61.70 +     * but will be someway compatible with old releases.
   61.71 +     */
   61.72 +    static int getLegacyJavaKeycodeOnly( XKeyEvent ev ) {
   61.73 +        long keysym = XConstants.NoSymbol;
   61.74 +        int ndx = 0;
   61.75 +        if( (ev.get_state() & XToolkit.numLockMask) != 0 &&
   61.76 +             isKPEvent(ev)) {
   61.77 +            keysym = getKeypadKeysym( ev );
   61.78 +        } else {
   61.79 +            // we only need primary-layer keysym to derive a java keycode.
   61.80 +            ndx = 0;
   61.81 +            keysym = xkeycode2keysym_noxkb(ev, ndx);
   61.82 +        }
   61.83 +        Keysym2JavaKeycode jkc = keysym2JavaKeycodeHash.get( keysym );
   61.84 +        return jkc == null ? java.awt.event.KeyEvent.VK_UNDEFINED : jkc.getJavaKeycode();
   61.85 +    }
   61.86      static long javaKeycode2Keysym( int jkey ) {
   61.87          Long ks = javaKeycode2KeysymHash.get( jkey );
   61.88          return  (ks == null ? 0 : ks.longValue());
    62.1 --- a/src/solaris/classes/sun/awt/X11/XNETProtocol.java	Tue Apr 14 00:05:07 2009 -0700
    62.2 +++ b/src/solaris/classes/sun/awt/X11/XNETProtocol.java	Tue Apr 14 04:21:02 2009 -0700
    62.3 @@ -1,5 +1,5 @@
    62.4  /*
    62.5 - * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
    62.6 + * Copyright 2003-2009 Sun Microsystems, Inc.  All Rights Reserved.
    62.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    62.8   *
    62.9   * This code is free software; you can redistribute it and/or modify it
   62.10 @@ -169,6 +169,34 @@
   62.11          return ((layer == LAYER_ALWAYS_ON_TOP) || (layer == LAYER_NORMAL)) && doLayerProtocol();
   62.12      }
   62.13  
   62.14 +    public void requestState(XWindow window, XAtom state, boolean isAdd) {
   62.15 +        XClientMessageEvent req = new XClientMessageEvent();
   62.16 +        try {
   62.17 +            req.set_type((int)XConstants.ClientMessage);
   62.18 +            req.set_window(window.getWindow());
   62.19 +            req.set_message_type(XA_NET_WM_STATE.getAtom());
   62.20 +            req.set_format(32);
   62.21 +            req.set_data(0, isAdd ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE);
   62.22 +            req.set_data(1, state.getAtom());
   62.23 +            // Fix for 6735584: req.data[2] must be set to 0 when only one property is changed
   62.24 +            req.set_data(2, 0);
   62.25 +            log.log(Level.FINE, "Setting _NET_STATE atom {0} on {1} for {2}", new Object[] {state, window, Boolean.valueOf(isAdd)});
   62.26 +            XToolkit.awtLock();
   62.27 +            try {
   62.28 +                XlibWrapper.XSendEvent(XToolkit.getDisplay(),
   62.29 +                        XlibWrapper.RootWindow(XToolkit.getDisplay(), window.getScreenNumber()),
   62.30 +                        false,
   62.31 +                        XConstants.SubstructureRedirectMask | XConstants.SubstructureNotifyMask,
   62.32 +                        req.pData);
   62.33 +            }
   62.34 +            finally {
   62.35 +                XToolkit.awtUnlock();
   62.36 +            }
   62.37 +        } finally {
   62.38 +            req.dispose();
   62.39 +        }
   62.40 +    }
   62.41 +
   62.42      /**
   62.43       * Helper function to set/reset one state in NET_WM_STATE
   62.44       * If window is showing then it uses ClientMessage, otherwise adjusts NET_WM_STATE list
   62.45 @@ -181,31 +209,7 @@
   62.46                  new Object[] {Boolean.valueOf(window.isWithdrawn()), Boolean.valueOf(window.isVisible()),
   62.47                                Boolean.valueOf(window.isMapped()), Boolean.valueOf(window.isShowing())});
   62.48          if (window.isShowing()) {
   62.49 -            XClientMessageEvent req = new XClientMessageEvent();
   62.50 -            try {
   62.51 -                req.set_type((int)XConstants.ClientMessage);
   62.52 -                req.set_window(window.getWindow());
   62.53 -                req.set_message_type(XA_NET_WM_STATE.getAtom());
   62.54 -                req.set_format(32);
   62.55 -                req.set_data(0, (!set) ? _NET_WM_STATE_REMOVE : _NET_WM_STATE_ADD);
   62.56 -                req.set_data(1, state.getAtom());
   62.57 -                // Fix for 6735584: req.data[2] must be set to 0 when only one property is changed
   62.58 -                req.set_data(2, 0);
   62.59 -                log.log(Level.FINE, "Setting _NET_STATE atom {0} on {1} for {2}", new Object[] {state, window, Boolean.valueOf(set)});
   62.60 -                XToolkit.awtLock();
   62.61 -                try {
   62.62 -                    XlibWrapper.XSendEvent(XToolkit.getDisplay(),
   62.63 -                                           XlibWrapper.RootWindow(XToolkit.getDisplay(), window.getScreenNumber()),
   62.64 -                                           false,
   62.65 -                                           XConstants.SubstructureRedirectMask | XConstants.SubstructureNotifyMask,
   62.66 -                                           req.pData);
   62.67 -                }
   62.68 -                finally {
   62.69 -                    XToolkit.awtUnlock();
   62.70 -                }
   62.71 -            } finally {
   62.72 -                req.dispose();
   62.73 -            }
   62.74 +            requestState(window, state, set);
   62.75          } else {
   62.76              XAtomList net_wm_state = window.getNETWMState();
   62.77              log.log(Level.FINE, "Current state on {0} is {1}", new Object[] {window, net_wm_state});
   62.78 @@ -252,6 +256,8 @@
   62.79      XAtom XA_NET_WM_WINDOW_TYPE = XAtom.get("_NET_WM_WINDOW_TYPE");
   62.80      XAtom XA_NET_WM_WINDOW_TYPE_DIALOG = XAtom.get("_NET_WM_WINDOW_TYPE_DIALOG");
   62.81  
   62.82 +    XAtom XA_NET_WM_WINDOW_OPACITY = XAtom.get("_NET_WM_WINDOW_OPACITY");
   62.83 +
   62.84  /* For _NET_WM_STATE ClientMessage requests */
   62.85      final static int _NET_WM_STATE_REMOVE      =0; /* remove/unset property */
   62.86      final static int _NET_WM_STATE_ADD         =1; /* add/set property      */
   62.87 @@ -289,6 +295,12 @@
   62.88          boolean res = active() && checkProtocol(XA_NET_SUPPORTED, XA_NET_WM_STATE_MODAL);
   62.89          return res;
   62.90      }
   62.91 +
   62.92 +    boolean doOpacityProtocol() {
   62.93 +        boolean res = active() && checkProtocol(XA_NET_SUPPORTED, XA_NET_WM_WINDOW_OPACITY);
   62.94 +        return res;
   62.95 +    }
   62.96 +
   62.97      boolean isWMName(String name) {
   62.98          if (!active()) {
   62.99              return false;
    63.1 --- a/src/solaris/classes/sun/awt/X11/XPanelPeer.java	Tue Apr 14 00:05:07 2009 -0700
    63.2 +++ b/src/solaris/classes/sun/awt/X11/XPanelPeer.java	Tue Apr 14 04:21:02 2009 -0700
    63.3 @@ -130,39 +130,6 @@
    63.4          return getInsets();
    63.5      }
    63.6  
    63.7 -    /*
    63.8 -     * This method is called from XWindowPeer.displayChanged, when
    63.9 -     * the window this Panel is on is moved to the new screen, or
   63.10 -     * display mode is changed.
   63.11 -     *
   63.12 -     * The notification is propagated to the child Canvas components.
   63.13 -     * Top-level windows and other Panels are notified too as their
   63.14 -     * peers are subclasses of XCanvasPeer.
   63.15 -     */
   63.16 -    public void displayChanged(int screenNum) {
   63.17 -        super.displayChanged(screenNum);
   63.18 -        displayChanged((Container)target, screenNum);
   63.19 -    }
   63.20 -
   63.21 -    /*
   63.22 -     * Recursively iterates through all the HW and LW children
   63.23 -     * of the container and calls displayChanged() for HW peers.
   63.24 -     * Iteration through children peers only is not enough as the
   63.25 -     * displayChanged notification may not be propagated to HW
   63.26 -     * components inside LW containers, see 4452373 for details.
   63.27 -     */
   63.28 -    private static void displayChanged(Container target, int screenNum) {
   63.29 -        Component children[] = ((Container)target).getComponents();
   63.30 -        for (Component child : children) {
   63.31 -            ComponentPeer cpeer = child.getPeer();
   63.32 -            if (cpeer instanceof XCanvasPeer) {
   63.33 -                ((XCanvasPeer)cpeer).displayChanged(screenNum);
   63.34 -            } else if (child instanceof Container) {
   63.35 -                displayChanged((Container)child, screenNum);
   63.36 -            }
   63.37 -        }
   63.38 -    }
   63.39 -
   63.40      public void dispose() {
   63.41          if (embedder != null) {
   63.42              embedder.deinstall();
    64.1 --- a/src/solaris/classes/sun/awt/X11/XToolkit.java	Tue Apr 14 00:05:07 2009 -0700
    64.2 +++ b/src/solaris/classes/sun/awt/X11/XToolkit.java	Tue Apr 14 04:21:02 2009 -0700
    64.3 @@ -1,5 +1,5 @@
    64.4  /*
    64.5 - * Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
    64.6 + * Copyright 2002-2009 Sun Microsystems, Inc.  All Rights Reserved.
    64.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    64.8   *
    64.9   * This code is free software; you can redistribute it and/or modify it
   64.10 @@ -54,6 +54,7 @@
   64.11  import sun.font.FontManager;
   64.12  import sun.misc.PerformanceLogger;
   64.13  import sun.print.PrintJob2D;
   64.14 +import sun.security.action.GetBooleanAction;
   64.15  
   64.16  public final class XToolkit extends UNIXToolkit implements Runnable {
   64.17      private static Logger log = Logger.getLogger("sun.awt.X11.XToolkit");
   64.18 @@ -291,6 +292,7 @@
   64.19              if (XlibWrapper.XSetLocaleModifiers("") == null) {
   64.20                  log.finer("X locale modifiers are not supported, using default");
   64.21              }
   64.22 +            tryXKB();
   64.23  
   64.24              AwtScreenData defaultScreen = new AwtScreenData(XToolkit.getDefaultScreenData());
   64.25              awt_defaultFg = defaultScreen.get_blackpixel();
   64.26 @@ -313,6 +315,7 @@
   64.27                      if (xs != null) {
   64.28                          ((XAWTXSettings)xs).dispose();
   64.29                      }
   64.30 +                    freeXKB();
   64.31                      if (log.isLoggable(Level.FINE)) {
   64.32                          dumpPeers();
   64.33                      }
   64.34 @@ -591,6 +594,9 @@
   64.35                  if (ev.get_type() != XConstants.NoExpose) {
   64.36                      eventNumber++;
   64.37                  }
   64.38 +                if (awt_UseXKB_Calls && ev.get_type() ==  awt_XKBBaseEventCode) {
   64.39 +                    processXkbChanges(ev);
   64.40 +                }
   64.41  
   64.42                  if (XDropTargetEventProcessor.processEvent(ev) ||
   64.43                      XDragSourceContextPeer.processEvent(ev)) {
   64.44 @@ -2093,8 +2099,12 @@
   64.45  
   64.46      static boolean awt_ServerInquired = false;
   64.47      static boolean awt_IsXsunServer    = false;
   64.48 -    static boolean awt_XKBInquired    = false;
   64.49      static boolean awt_UseXKB         = false;
   64.50 +    static boolean awt_UseXKB_Calls   = false;
   64.51 +    static int     awt_XKBBaseEventCode = 0;
   64.52 +    static int     awt_XKBEffectiveGroup = 0; // so far, I don't use it leaving all calculations
   64.53 +                                              // to XkbTranslateKeyCode
   64.54 +    static long    awt_XKBDescPtr     = 0;
   64.55      /**
   64.56         Try to understand if it is Xsun server.
   64.57         By now (2005) Sun is vendor of Xsun and Xorg servers; we only return true if Xsun is running.
   64.58 @@ -2124,24 +2134,144 @@
   64.59              awtUnlock();
   64.60          }
   64.61      }
   64.62 -    /**
   64.63 -      Query XKEYBOARD extension.
   64.64 -    */
   64.65      static boolean isXKBenabled() {
   64.66          awtLock();
   64.67          try {
   64.68 -            if( awt_XKBInquired ) {
   64.69 -                return awt_UseXKB;
   64.70 -            }
   64.71 -            awt_XKBInquired = true;
   64.72 -            String name = "XKEYBOARD";
   64.73 -            awt_UseXKB = XlibWrapper.XQueryExtension( getDisplay(), name, XlibWrapper.larg1, XlibWrapper.larg2, XlibWrapper.larg3);
   64.74              return awt_UseXKB;
   64.75          } finally {
   64.76              awtUnlock();
   64.77          }
   64.78      }
   64.79  
   64.80 +    /**
   64.81 +      Query XKEYBOARD extension.
   64.82 +      If possible, initialize xkb library.
   64.83 +    */
   64.84 +    static boolean tryXKB() {
   64.85 +        awtLock();
   64.86 +        try {
   64.87 +            String name = "XKEYBOARD";
   64.88 +            // First, if there is extension at all.
   64.89 +            awt_UseXKB = XlibWrapper.XQueryExtension( getDisplay(), name, XlibWrapper.larg1, XlibWrapper.larg2, XlibWrapper.larg3);
   64.90 +            if( awt_UseXKB ) {
   64.91 +                // There is a keyboard extension. Check if a client library is compatible.
   64.92 +                // If not, don't use xkb calls.
   64.93 +                // In this case we still may be Xkb-capable application.
   64.94 +                awt_UseXKB_Calls = XlibWrapper.XkbLibraryVersion( XlibWrapper.larg1, XlibWrapper.larg2);
   64.95 +                if( awt_UseXKB_Calls ) {
   64.96 +                    awt_UseXKB_Calls = XlibWrapper.XkbQueryExtension( getDisplay(),  XlibWrapper.larg1, XlibWrapper.larg2,
   64.97 +                                     XlibWrapper.larg3, XlibWrapper.larg4, XlibWrapper.larg5);
   64.98 +                    if( awt_UseXKB_Calls ) {
   64.99 +                        awt_XKBBaseEventCode = Native.getInt(XlibWrapper.larg2);
  64.100 +                        XlibWrapper.XkbSelectEvents (getDisplay(),
  64.101 +                                         XConstants.XkbUseCoreKbd,
  64.102 +                                         XConstants.XkbNewKeyboardNotifyMask |
  64.103 +                                                 XConstants.XkbMapNotifyMask ,//|
  64.104 +                                                 //XConstants.XkbStateNotifyMask,
  64.105 +                                         XConstants.XkbNewKeyboardNotifyMask |
  64.106 +                                                 XConstants.XkbMapNotifyMask );//|
  64.107 +                                                 //XConstants.XkbStateNotifyMask);
  64.108 +
  64.109 +                        XlibWrapper.XkbSelectEventDetails(getDisplay(), XConstants.XkbUseCoreKbd,
  64.110 +                                                     XConstants.XkbStateNotify,
  64.111 +                                                     XConstants.XkbGroupStateMask,
  64.112 +                                                     XConstants.XkbGroupStateMask);
  64.113 +                                                     //XXX ? XkbGroupLockMask last, XkbAllStateComponentsMask before last?
  64.114 +                        awt_XKBDescPtr = XlibWrapper.XkbGetMap(getDisplay(),
  64.115 +                                                     XConstants.XkbKeyTypesMask    |
  64.116 +                                                     XConstants.XkbKeySymsMask     |
  64.117 +                                                     XConstants.XkbModifierMapMask |
  64.118 +                                                     XConstants.XkbVirtualModsMask,
  64.119 +                                                     XConstants.XkbUseCoreKbd);
  64.120 +                    }
  64.121 +                }
  64.122 +            }
  64.123 +            return awt_UseXKB;
  64.124 +        } finally {
  64.125 +            awtUnlock();
  64.126 +        }
  64.127 +    }
  64.128 +    static boolean canUseXKBCalls() {
  64.129 +        awtLock();
  64.130 +        try {
  64.131 +            return awt_UseXKB_Calls;
  64.132 +        } finally {
  64.133 +            awtUnlock();
  64.134 +        }
  64.135 +    }
  64.136 +    static int getXKBEffectiveGroup() {
  64.137 +        awtLock();
  64.138 +        try {
  64.139 +            return awt_XKBEffectiveGroup;
  64.140 +        } finally {
  64.141 +            awtUnlock();
  64.142 +        }
  64.143 +    }
  64.144 +    static int getXKBBaseEventCode() {
  64.145 +        awtLock();
  64.146 +        try {
  64.147 +            return awt_XKBBaseEventCode;
  64.148 +        } finally {
  64.149 +            awtUnlock();
  64.150 +        }
  64.151 +    }
  64.152 +    static long getXKBKbdDesc() {
  64.153 +        awtLock();
  64.154 +        try {
  64.155 +            return awt_XKBDescPtr;
  64.156 +        } finally {
  64.157 +            awtUnlock();
  64.158 +        }
  64.159 +    }
  64.160 +    void freeXKB() {
  64.161 +        awtLock();
  64.162 +        try {
  64.163 +            if (awt_UseXKB_Calls && awt_XKBDescPtr != 0) {
  64.164 +                XlibWrapper.XkbFreeKeyboard(awt_XKBDescPtr, 0xFF, true);
  64.165 +            }
  64.166 +        } finally {
  64.167 +            awtUnlock();
  64.168 +        }
  64.169 +    }
  64.170 +    private void processXkbChanges(XEvent ev) {
  64.171 +        // mapping change --> refresh kbd map
  64.172 +        // state change --> get a new effective group; do I really need it
  64.173 +        //  or that should be left for XkbTranslateKeyCode?
  64.174 +        XkbEvent xke = new XkbEvent( ev.getPData() );
  64.175 +        int xkb_type = xke.get_any().get_xkb_type();
  64.176 +        switch( xkb_type ) {
  64.177 +            case XConstants.XkbNewKeyboardNotify :
  64.178 +                 if( awt_XKBDescPtr != 0 ) {
  64.179 +                     freeXKB();
  64.180 +                 }
  64.181 +                 awt_XKBDescPtr = XlibWrapper.XkbGetMap(getDisplay(),
  64.182 +                                              XConstants.XkbKeyTypesMask    |
  64.183 +                                              XConstants.XkbKeySymsMask     |
  64.184 +                                              XConstants.XkbModifierMapMask |
  64.185 +                                              XConstants.XkbVirtualModsMask,
  64.186 +                                              XConstants.XkbUseCoreKbd);
  64.187 +                 //System.out.println("XkbNewKeyboard:"+(xke.get_new_kbd()));
  64.188 +                 break;
  64.189 +            case XConstants.XkbMapNotify :
  64.190 +                 //TODO: provide a simple unit test.
  64.191 +                 XlibWrapper.XkbGetUpdatedMap(getDisplay(),
  64.192 +                                              XConstants.XkbKeyTypesMask    |
  64.193 +                                              XConstants.XkbKeySymsMask     |
  64.194 +                                              XConstants.XkbModifierMapMask |
  64.195 +                                              XConstants.XkbVirtualModsMask,
  64.196 +                                              awt_XKBDescPtr);
  64.197 +                 //System.out.println("XkbMap:"+(xke.get_map()));
  64.198 +                 break;
  64.199 +            case XConstants.XkbStateNotify :
  64.200 +                 // May use it later e.g. to obtain an effective group etc.
  64.201 +                 //System.out.println("XkbState:"+(xke.get_state()));
  64.202 +                 break;
  64.203 +            default:
  64.204 +                 //System.out.println("XkbEvent of xkb_type "+xkb_type);
  64.205 +                 break;
  64.206 +        }
  64.207 +    }
  64.208 +
  64.209      private static long eventNumber;
  64.210      public static long getEventNumber() {
  64.211          awtLock();
  64.212 @@ -2273,4 +2403,44 @@
  64.213      public boolean areExtraMouseButtonsEnabled() throws HeadlessException {
  64.214          return areExtraMouseButtonsEnabled;
  64.215      }
  64.216 +
  64.217 +    @Override
  64.218 +    public boolean isWindowOpacitySupported() {
  64.219 +        XNETProtocol net_protocol = XWM.getWM().getNETProtocol();
  64.220 +
  64.221 +        if (net_protocol == null) {
  64.222 +            return false;
  64.223 +        }
  64.224 +
  64.225 +        return net_protocol.doOpacityProtocol();
  64.226 +    }
  64.227 +
  64.228 +    @Override
  64.229 +    public boolean isWindowShapingSupported() {
  64.230 +        return XlibUtil.isShapingSupported();
  64.231 +    }
  64.232 +
  64.233 +    @Override
  64.234 +    public boolean isWindowTranslucencySupported() {
  64.235 +        //NOTE: it may not be supported. The actual check is being performed
  64.236 +        //      at com.sun.awt.AWTUtilities(). In X11 we need to check
  64.237 +        //      whether there's any translucency-capable GC available.
  64.238 +        return true;
  64.239 +    }
  64.240 +
  64.241 +    @Override
  64.242 +    public boolean isTranslucencyCapable(GraphicsConfiguration gc) {
  64.243 +        if (!(gc instanceof X11GraphicsConfig)) {
  64.244 +            return false;
  64.245 +        }
  64.246 +        return ((X11GraphicsConfig)gc).isTranslucencyCapable();
  64.247 +    }
  64.248 +
  64.249 +    /**
  64.250 +     * Returns the value of "sun.awt.disablegrab" property. Default
  64.251 +     * value is {@code false}.
  64.252 +     */
  64.253 +    public static boolean getSunAwtDisableGrab() {
  64.254 +        return AccessController.doPrivileged(new GetBooleanAction("sun.awt.disablegrab"));
  64.255 +    }
  64.256  }
    65.1 --- a/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java	Tue Apr 14 00:05:07 2009 -0700
    65.2 +++ b/src/solaris/classes/sun/awt/X11/XTrayIconPeer.java	Tue Apr 14 04:21:02 2009 -0700
    65.3 @@ -38,15 +38,18 @@
    65.4  import java.security.PrivilegedAction;
    65.5  import java.lang.reflect.InvocationTargetException;
    65.6  
    65.7 -public class XTrayIconPeer implements TrayIconPeer {
    65.8 +public class XTrayIconPeer implements TrayIconPeer,
    65.9 +       InfoWindow.Balloon.LiveArguments,
   65.10 +       InfoWindow.Tooltip.LiveArguments
   65.11 +{
   65.12      private static final Logger ctrLog = Logger.getLogger("sun.awt.X11.XTrayIconPeer.centering");
   65.13  
   65.14      TrayIcon target;
   65.15      TrayIconEventProxy eventProxy;
   65.16      XTrayIconEmbeddedFrame eframe;
   65.17      TrayIconCanvas canvas;
   65.18 -    Balloon balloon;
   65.19 -    Tooltip tooltip;
   65.20 +    InfoWindow.Balloon balloon;
   65.21 +    InfoWindow.Tooltip tooltip;
   65.22      PopupMenu popup;
   65.23      String tooltipString;
   65.24      boolean isTrayIconDisplayed;
   65.25 @@ -255,8 +258,8 @@
   65.26          eframe.setVisible(true);
   65.27          updateImage();
   65.28  
   65.29 -        balloon = new Balloon(this, eframe);
   65.30 -        tooltip = new Tooltip(this, eframe);
   65.31 +        balloon = new InfoWindow.Balloon(eframe, target, this);
   65.32 +        tooltip = new InfoWindow.Tooltip(eframe, target, this);
   65.33  
   65.34          addListeners();
   65.35      }
   65.36 @@ -300,6 +303,10 @@
   65.37          tooltipString = tooltip;
   65.38      }
   65.39  
   65.40 +    public String getTooltipString() {
   65.41 +        return tooltipString;
   65.42 +    }
   65.43 +
   65.44      public void updateImage() {
   65.45          Runnable r = new Runnable() {
   65.46                  public void run() {
   65.47 @@ -385,7 +392,7 @@
   65.48          return eframe.getLocationOnScreen();
   65.49      }
   65.50  
   65.51 -    private Rectangle getBounds() {
   65.52 +    public Rectangle getBounds() {
   65.53          Point loc = getLocationOnScreen();
   65.54          return new Rectangle(loc.x, loc.y, loc.x + TRAY_ICON_WIDTH, loc.y + TRAY_ICON_HEIGHT);
   65.55      }
   65.56 @@ -399,10 +406,14 @@
   65.57          return ((XEmbeddedFramePeer)eframe.getPeer()).getWindow();
   65.58      }
   65.59  
   65.60 -    boolean isDisposed() {
   65.61 +    public boolean isDisposed() {
   65.62          return isDisposed;
   65.63      }
   65.64  
   65.65 +    public String getActionCommand() {
   65.66 +        return target.getActionCommand();
   65.67 +    }
   65.68 +
   65.69      static class TrayIconEventProxy implements MouseListener, MouseMotionListener {
   65.70          XTrayIconPeer xtiPeer;
   65.71  
   65.72 @@ -474,8 +485,8 @@
   65.73      }
   65.74  
   65.75      static boolean isTrayIconStuffWindow(Window w) {
   65.76 -        return (w instanceof Tooltip) ||
   65.77 -               (w instanceof Balloon) ||
   65.78 +        return (w instanceof InfoWindow.Tooltip) ||
   65.79 +               (w instanceof InfoWindow.Balloon) ||
   65.80                 (w instanceof XTrayIconEmbeddedFrame);
   65.81      }
   65.82  
   65.83 @@ -530,7 +541,7 @@
   65.84          }
   65.85      }
   65.86  
   65.87 -    static class IconCanvas extends Canvas {
   65.88 +    public static class IconCanvas extends Canvas {
   65.89          volatile Image image;
   65.90          IconObserver observer;
   65.91          int width, height;
   65.92 @@ -608,429 +619,4 @@
   65.93              }
   65.94          }
   65.95      }
   65.96 -
   65.97 -    // ***************************************
   65.98 -    // Classes for toolitp and balloon windows
   65.99 -    // ***************************************
  65.100 -
  65.101 -    static class Tooltip extends InfoWindow {
  65.102 -        XTrayIconPeer xtiPeer;
  65.103 -        Label textLabel = new Label("");
  65.104 -        Runnable starter = new Runnable() {
  65.105 -                public void run() {
  65.106 -                    display();
  65.107 -                }};
  65.108 -
  65.109 -        final static int TOOLTIP_SHOW_TIME = 10000;
  65.110 -        final static int TOOLTIP_START_DELAY_TIME = 1000;
  65.111 -        final static int TOOLTIP_MAX_LENGTH = 64;
  65.112 -        final static int TOOLTIP_MOUSE_CURSOR_INDENT = 5;
  65.113 -        final static Color TOOLTIP_BACKGROUND_COLOR = new Color(255, 255, 220);
  65.114 -        final static Font TOOLTIP_TEXT_FONT = XWindow.getDefaultFont();
  65.115 -
  65.116 -        Tooltip(XTrayIconPeer xtiPeer, Frame parent) {
  65.117 -            super(parent, Color.black);
  65.118 -            this.xtiPeer = xtiPeer;
  65.119 -
  65.120 -            suppressWarningString(this);
  65.121 -
  65.122 -            setCloser(null, TOOLTIP_SHOW_TIME);
  65.123 -            textLabel.setBackground(TOOLTIP_BACKGROUND_COLOR);
  65.124 -            textLabel.setFont(TOOLTIP_TEXT_FONT);
  65.125 -            add(textLabel);
  65.126 -        }
  65.127 -
  65.128 -        /*
  65.129 -         * WARNING: this method is executed on Toolkit thread!
  65.130 -         */
  65.131 -        void display() {
  65.132 -            String tip = xtiPeer.tooltipString;
  65.133 -            if (tip == null) {
  65.134 -                return;
  65.135 -            } else if (tip.length() >  TOOLTIP_MAX_LENGTH) {
  65.136 -                textLabel.setText(tip.substring(0, TOOLTIP_MAX_LENGTH));
  65.137 -            } else {
  65.138 -                textLabel.setText(tip);
  65.139 -            }
  65.140 -
  65.141 -            // Execute on EDT to avoid deadlock (see 6280857).
  65.142 -            SunToolkit.executeOnEventHandlerThread(xtiPeer.target, new Runnable() {
  65.143 -                    public void run() {
  65.144 -                        if (xtiPeer.isDisposed()) {
  65.145 -                            return;
  65.146 -                        }
  65.147 -                        Point pointer = (Point)AccessController.doPrivileged(new PrivilegedAction() {
  65.148 -                                public Object run() {
  65.149 -                                    if (!isPointerOverTrayIcon(xtiPeer.getBounds())) {
  65.150 -                                        return null;
  65.151 -                                    }
  65.152 -                                    return MouseInfo.getPointerInfo().getLocation();
  65.153 -                                }
  65.154 -                            });
  65.155 -                        if (pointer == null) {
  65.156 -                            return;
  65.157 -                        }
  65.158 -                        show(new Point(pointer.x, pointer.y), TOOLTIP_MOUSE_CURSOR_INDENT);
  65.159 -                    }
  65.160 -                });
  65.161 -        }
  65.162 -
  65.163 -        void enter() {
  65.164 -            XToolkit.schedule(starter, TOOLTIP_START_DELAY_TIME);
  65.165 -        }
  65.166 -
  65.167 -        void exit() {
  65.168 -            XToolkit.remove(starter);
  65.169 -            if (isVisible()) {
  65.170 -                hide();
  65.171 -            }
  65.172 -        }
  65.173 -
  65.174 -        boolean isPointerOverTrayIcon(Rectangle trayRect) {
  65.175 -            Point p = MouseInfo.getPointerInfo().getLocation();
  65.176 -            return !(p.x < trayRect.x || p.x > (trayRect.x + trayRect.width) ||
  65.177 -                     p.y < trayRect.y || p.y > (trayRect.y + trayRect.height));
  65.178 -        }
  65.179 -    }
  65.180 -
  65.181 -    static class Balloon extends InfoWindow {
  65.182 -        final static int BALLOON_SHOW_TIME = 10000;
  65.183 -        final static int BALLOON_TEXT_MAX_LENGTH = 256;
  65.184 -        final static int BALLOON_WORD_LINE_MAX_LENGTH = 16;
  65.185 -        final static int BALLOON_WORD_LINE_MAX_COUNT = 4;
  65.186 -        final static int BALLOON_ICON_WIDTH = 32;
  65.187 -        final static int BALLOON_ICON_HEIGHT = 32;
  65.188 -        final static int BALLOON_TRAY_ICON_INDENT = 0;
  65.189 -        final static Color BALLOON_CAPTION_BACKGROUND_COLOR = new Color(200, 200 ,255);
  65.190 -        final static Font BALLOON_CAPTION_FONT = new Font(Font.DIALOG, Font.BOLD, 12);
  65.191 -
  65.192 -        XTrayIconPeer xtiPeer;
  65.193 -        Panel mainPanel = new Panel();
  65.194 -        Panel captionPanel = new Panel();
  65.195 -        Label captionLabel = new Label("");
  65.196 -        Button closeButton = new Button("X");
  65.197 -        Panel textPanel = new Panel();
  65.198 -        IconCanvas iconCanvas = new IconCanvas(BALLOON_ICON_WIDTH, BALLOON_ICON_HEIGHT);
  65.199 -        Label[] lineLabels = new Label[BALLOON_WORD_LINE_MAX_COUNT];
  65.200 -        ActionPerformer ap = new ActionPerformer();
  65.201 -
  65.202 -        Image iconImage;
  65.203 -        Image errorImage;
  65.204 -        Image warnImage;
  65.205 -        Image infoImage;
  65.206 -        boolean gtkImagesLoaded;
  65.207 -
  65.208 -        Displayer displayer = new Displayer();
  65.209 -
  65.210 -        Balloon(final XTrayIconPeer xtiPeer, Frame parent) {
  65.211 -            super(parent, new Color(90, 80 ,190));
  65.212 -            this.xtiPeer = xtiPeer;
  65.213 -
  65.214 -            suppressWarningString(this);
  65.215 -
  65.216 -            setCloser(new Runnable() {
  65.217 -                    public void run() {
  65.218 -                        if (textPanel != null) {
  65.219 -                            textPanel.removeAll();
  65.220 -                            textPanel.setSize(0, 0);
  65.221 -                            iconCanvas.setSize(0, 0);
  65.222 -                            XToolkit.awtLock();
  65.223 -                            try {
  65.224 -                                displayer.isDisplayed = false;
  65.225 -                                XToolkit.awtLockNotifyAll();
  65.226 -                            } finally {
  65.227 -                                XToolkit.awtUnlock();
  65.228 -                            }
  65.229 -                        }
  65.230 -                    }
  65.231 -                }, BALLOON_SHOW_TIME);
  65.232 -
  65.233 -            add(mainPanel);
  65.234 -
  65.235 -            captionLabel.setFont(BALLOON_CAPTION_FONT);
  65.236 -            captionLabel.addMouseListener(ap);
  65.237 -
  65.238 -            captionPanel.setLayout(new BorderLayout());
  65.239 -            captionPanel.add(captionLabel, BorderLayout.WEST);
  65.240 -            captionPanel.add(closeButton, BorderLayout.EAST);
  65.241 -            captionPanel.setBackground(BALLOON_CAPTION_BACKGROUND_COLOR);
  65.242 -            captionPanel.addMouseListener(ap);
  65.243 -
  65.244 -            closeButton.addActionListener(new ActionListener() {
  65.245 -                    public void actionPerformed(ActionEvent e) {
  65.246 -                        hide();
  65.247 -                    }
  65.248 -                });
  65.249 -
  65.250 -            mainPanel.setLayout(new BorderLayout());
  65.251 -            mainPanel.setBackground(Color.white);
  65.252 -            mainPanel.add(captionPanel, BorderLayout.NORTH);
  65.253 -            mainPanel.add(iconCanvas, BorderLayout.WEST);
  65.254 -            mainPanel.add(textPanel, BorderLayout.CENTER);
  65.255 -
  65.256 -            iconCanvas.addMouseListener(ap);
  65.257 -
  65.258 -            for (int i = 0; i < BALLOON_WORD_LINE_MAX_COUNT; i++) {
  65.259 -                lineLabels[i] = new Label();
  65.260 -                lineLabels[i].addMouseListener(ap);
  65.261 -                lineLabels[i].setBackground(Color.white);
  65.262 -            }
  65.263 -
  65.264 -            displayer.start();
  65.265 -        }
  65.266 -
  65.267 -        void display(String caption, String text, String messageType) {
  65.268 -            if (!gtkImagesLoaded) {
  65.269 -                loadGtkImages();
  65.270 -            }
  65.271 -            displayer.display(caption, text, messageType);
  65.272 -        }
  65.273 -
  65.274 -        private void _display(String caption, String text, String messageType) {
  65.275 -            captionLabel.setText(caption);
  65.276 -
  65.277 -            BreakIterator iter = BreakIterator.getWordInstance();
  65.278 -            if (text != null) {
  65.279 -                iter.setText(text);
  65.280 -                int start = iter.first(), end;
  65.281 -                int nLines = 0;
  65.282 -
  65.283 -                do {
  65.284 -                    end = iter.next();
  65.285 -
  65.286 -                    if (end == BreakIterator.DONE ||
  65.287 -                        text.substring(start, end).length() >= 50)
  65.288 -                    {
  65.289 -                        lineLabels[nLines].setText(text.substring(start, end == BreakIterator.DONE ?
  65.290 -                                                                  iter.last() : end));
  65.291 -                        textPanel.add(lineLabels[nLines++]);
  65.292 -                        start = end;
  65.293 -                    }
  65.294 -                    if (nLines == BALLOON_WORD_LINE_MAX_COUNT) {
  65.295 -                        if (end != BreakIterator.DONE) {
  65.296 -                            lineLabels[nLines - 1].setText(
  65.297 -                                new String(lineLabels[nLines - 1].getText() + " ..."));
  65.298 -                        }
  65.299 -                        break;
  65.300 -                    }
  65.301 -                } while (end != BreakIterator.DONE);
  65.302 -
  65.303 -
  65.304 -                textPanel.setLayout(new GridLayout(nLines, 1));
  65.305 -            }
  65.306 -
  65.307 -            if ("ERROR".equals(messageType)) {
  65.308 -                iconImage = errorImage;
  65.309 -            } else if ("WARNING".equals(messageType)) {
  65.310 -                iconImage = warnImage;
  65.311 -            } else if ("INFO".equals(messageType)) {
  65.312 -                iconImage = infoImage;
  65.313 -            } else {
  65.314 -                iconImage = null;
  65.315 -            }
  65.316 -
  65.317 -            if (iconImage != null) {
  65.318 -                Dimension tpSize = textPanel.getSize();
  65.319 -                iconCanvas.setSize(BALLOON_ICON_WIDTH, (BALLOON_ICON_HEIGHT > tpSize.height ?
  65.320 -                                                        BALLOON_ICON_HEIGHT : tpSize.height));
  65.321 -                iconCanvas.validate();
  65.322 -            }
  65.323 -
  65.324 -            SunToolkit.executeOnEventHandlerThread(xtiPeer.target, new Runnable() {
  65.325 -                    public void run() {
  65.326 -                        if (xtiPeer.isDisposed()) {
  65.327 -                            return;
  65.328 -                        }
  65.329 -                        Point parLoc = getParent().getLocationOnScreen();
  65.330 -                        Dimension parSize = getParent().getSize();
  65.331 -                        show(new Point(parLoc.x + parSize.width/2, parLoc.y + parSize.height/2),
  65.332 -                             BALLOON_TRAY_ICON_INDENT);
  65.333 -                        if (iconImage != null) {
  65.334 -                            iconCanvas.updateImage(iconImage); // call it after the show(..) above
  65.335 -                        }
  65.336 -                    }
  65.337 -                });
  65.338 -        }
  65.339 -
  65.340 -        public void dispose() {
  65.341 -            displayer.interrupt();
  65.342 -            super.dispose();
  65.343 -        }
  65.344 -
  65.345 -        void loadGtkImages() {
  65.346 -            if (!gtkImagesLoaded) {
  65.347 -                errorImage = (Image)Toolkit.getDefaultToolkit().getDesktopProperty(
  65.348 -                    "gtk.icon.gtk-dialog-error.6.rtl");
  65.349 -                warnImage = (Image)Toolkit.getDefaultToolkit().getDesktopProperty(
  65.350 -                    "gtk.icon.gtk-dialog-warning.6.rtl");
  65.351 -                infoImage = (Image)Toolkit.getDefaultToolkit().getDesktopProperty(
  65.352 -                    "gtk.icon.gtk-dialog-info.6.rtl");
  65.353 -                gtkImagesLoaded = true;
  65.354 -            }
  65.355 -        }
  65.356 -
  65.357 -        class ActionPerformer extends MouseAdapter {
  65.358 -            public void mouseClicked(MouseEvent e) {
  65.359 -                // hide the balloon by any click
  65.360 -                hide();
  65.361 -                if (e.getButton() == MouseEvent.BUTTON1) {
  65.362 -                    ActionEvent aev = new ActionEvent(xtiPeer.target, ActionEvent.ACTION_PERFORMED,
  65.363 -                                                      xtiPeer.target.getActionCommand(),
  65.364 -                                                      e.getWhen(), e.getModifiers());
  65.365 -                    Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(aev);
  65.366 -                }
  65.367 -            }
  65.368 -        }
  65.369 -
  65.370 -        class Displayer extends Thread {
  65.371 -            final int MAX_CONCURRENT_MSGS = 10;
  65.372 -
  65.373 -            ArrayBlockingQueue<Message> messageQueue = new ArrayBlockingQueue<Message>(MAX_CONCURRENT_MSGS);
  65.374 -            boolean isDisplayed;
  65.375 -
  65.376 -            Displayer() {
  65.377 -                setDaemon(true);
  65.378 -            }
  65.379 -
  65.380 -            public void run() {
  65.381 -                while (true) {
  65.382 -                    Message msg = null;
  65.383 -                    try {
  65.384 -                        msg = (Message)messageQueue.take();
  65.385 -                    } catch (InterruptedException e) {
  65.386 -                        return;
  65.387 -                    }
  65.388 -
  65.389 -                    /*
  65.390 -                     * Wait till the previous message is displayed if any
  65.391 -                     */
  65.392 -                    XToolkit.awtLock();
  65.393 -                    try {
  65.394 -                        while (isDisplayed) {
  65.395 -                            try {
  65.396 -                                XToolkit.awtLockWait();
  65.397 -                            } catch (InterruptedException e) {
  65.398 -                                return;
  65.399 -                            }
  65.400 -                        }
  65.401 -                        isDisplayed = true;
  65.402 -                    } finally {
  65.403 -                        XToolkit.awtUnlock();
  65.404 -                    }
  65.405 -                    _display(msg.caption, msg.text, msg.messageType);
  65.406 -                }
  65.407 -            }
  65.408 -
  65.409 -            void display(String caption, String text, String messageType) {
  65.410 -                messageQueue.offer(new Message(caption, text, messageType));
  65.411 -            }
  65.412 -        }
  65.413 -
  65.414 -        class Message {
  65.415 -            String caption, text, messageType;
  65.416 -
  65.417 -            Message(String caption, String text, String messageType) {
  65.418 -                this.caption = caption;
  65.419 -                this.text = text;
  65.420 -                this.messageType = messageType;
  65.421 -            }
  65.422 -        }
  65.423 -    }
  65.424 -
  65.425 -    static class InfoWindow extends Window {
  65.426 -        Container container;
  65.427 -        Closer closer;
  65.428 -
  65.429 -        InfoWindow(Frame parent, Color borderColor) {
  65.430 -            super(parent);
  65.431 -            container = new Container() {
  65.432 -                    public Insets getInsets() {
  65.433 -                        return new Insets(1, 1, 1, 1);
  65.434 -                    }
  65.435 -                };
  65.436 -            setLayout(new BorderLayout());
  65.437 -            setBackground(borderColor);
  65.438 -            add(container, BorderLayout.CENTER);
  65.439 -            container.setLayout(new BorderLayout());
  65.440 -
  65.441 -            closer = new Closer();
  65.442 -        }
  65.443 -
  65.444 -        public Component add(Component c) {
  65.445 -            container.add(c, BorderLayout.CENTER);
  65.446 -            return c;
  65.447 -        }
  65.448 -
  65.449 -        void setCloser(Runnable action, int time) {
  65.450 -            closer.set(action, time);
  65.451 -        }
  65.452 -
  65.453 -        // Must be executed on EDT.
  65.454 -        protected void show(Point corner, int indent) {
  65.455 -            assert SunToolkit.isDispatchThreadForAppContext(InfoWindow.this);
  65.456 -
  65.457 -            pack();
  65.458 -
  65.459 -            Dimension size = getSize();
  65.460 -            // TODO: When 6356322 is fixed we should get screen bounds in
  65.461 -            // this way: eframe.getGraphicsConfiguration().getBounds().
  65.462 -            Dimension scrSize = Toolkit.getDefaultToolkit().getScreenSize();
  65.463 -
  65.464 -            if (corner.x < scrSize.width/2 && corner.y < scrSize.height/2) { // 1st square
  65.465 -                setLocation(corner.x + indent, corner.y + indent);
  65.466 -
  65.467 -            } else if (corner.x >= scrSize.width/2 && corner.y < scrSize.height/2) { // 2nd square
  65.468 -                setLocation(corner.x - indent - size.width, corner.y + indent);
  65.469 -
  65.470 -            } else if (corner.x < scrSize.width/2 && corner.y >= scrSize.height/2) { // 3rd square
  65.471 -                setLocation(corner.x + indent, corner.y - indent - size.height);
  65.472 -
  65.473 -            } else if (corner.x >= scrSize.width/2 && corner.y >= scrSize.height/2) { // 4th square
  65.474 -                setLocation(corner.x - indent - size.width, corner.y - indent - size.height);
  65.475 -            }
  65.476 -
  65.477 -            InfoWindow.super.show();
  65.478 -            InfoWindow.this.closer.schedule();
  65.479 -        }
  65.480 -
  65.481 -        public void hide() {
  65.482 -            closer.close();
  65.483 -        }
  65.484 -
  65.485 -        class Closer implements Runnable {
  65.486 -            Runnable action;
  65.487 -            int time;
  65.488 -
  65.489 -            public void run() {
  65.490 -                doClose();
  65.491 -            }
  65.492 -
  65.493 -            void set(Runnable action, int time) {
  65.494 -                this.action = action;
  65.495 -                this.time = time;
  65.496 -            }
  65.497 -
  65.498 -            void schedule() {
  65.499 -                XToolkit.schedule(this, time);
  65.500 -            }
  65.501 -
  65.502 -            void close() {
  65.503 -                XToolkit.remove(this);
  65.504 -                doClose();
  65.505 -            }
  65.506 -
  65.507 -            // WARNING: this method may be executed on Toolkit thread.
  65.508 -            private void doClose() {
  65.509 -                SunToolkit.executeOnEventHandlerThread(InfoWindow.this, new Runnable() {
  65.510 -                        public void run() {
  65.511 -                            InfoWindow.super.hide();
  65.512 -                            invalidate();
  65.513 -                            if (action != null) {
  65.514 -                                action.run();
  65.515 -                            }
  65.516 -                        }
  65.517 -                    });
  65.518 -            }
  65.519 -        }
  65.520 -    }
  65.521  }
    66.1 --- a/src/solaris/classes/sun/awt/X11/XWM.java	Tue Apr 14 00:05:07 2009 -0700
    66.2 +++ b/src/solaris/classes/sun/awt/X11/XWM.java	Tue Apr 14 04:21:02 2009 -0700
    66.3 @@ -896,7 +896,7 @@
    66.4      /*
    66.5       * Set MWM decorations.  Set MWM functions depending on resizability.
    66.6       */
    66.7 -    static void setMotifDecor(XWindowPeer window, boolean resizable, int decorations, int functions) {
    66.8 +    static void setMotifDecor(XWindow window, boolean resizable, int decorations, int functions) {
    66.9          /* Apparently some WMs don't implement MWM_*_ALL semantic correctly */
   66.10          if ((decorations & MWMConstants.MWM_DECOR_ALL) != 0
   66.11              && (decorations != MWMConstants.MWM_DECOR_ALL))
    67.1 --- a/src/solaris/classes/sun/awt/X11/XWarningWindow.java	Tue Apr 14 00:05:07 2009 -0700
    67.2 +++ b/src/solaris/classes/sun/awt/X11/XWarningWindow.java	Tue Apr 14 04:21:02 2009 -0700
    67.3 @@ -25,16 +25,194 @@
    67.4  package sun.awt.X11;
    67.5  
    67.6  import java.awt.*;
    67.7 +import java.awt.event.*;
    67.8 +import java.awt.geom.Point2D;
    67.9 +import java.lang.ref.WeakReference;
   67.10 +import sun.java2d.SunGraphics2D;
   67.11 +import sun.java2d.pipe.Region;
   67.12 +import sun.awt.AWTAccessor;
   67.13 +import sun.awt.SunToolkit;
   67.14  
   67.15  class XWarningWindow extends XWindow {
   67.16 -    final static int defaultHeight = 27;
   67.17 +    private final static int showingDelay = 330;
   67.18 +    private final static int hidingDelay = 2000;
   67.19  
   67.20 -    Window ownerWindow;
   67.21 -    XWarningWindow(Window ownerWindow, long parentWindow) {
   67.22 -        super(ownerWindow, parentWindow);
   67.23 +    private final Window ownerWindow;
   67.24 +    private WeakReference<XWindowPeer> ownerPeer;
   67.25 +
   67.26 +    public final Window getOwnerWindow() {
   67.27 +        return ownerWindow;
   67.28 +    }
   67.29 +    private long parentWindow;
   67.30 +
   67.31 +    private final static String OWNER = "OWNER";
   67.32 +
   67.33 +    private static XIconInfo[][] icons;
   67.34 +
   67.35 +    private InfoWindow.Tooltip tooltip;
   67.36 +
   67.37 +    private static synchronized XIconInfo getSecurityIconInfo(int size, int num) {
   67.38 +        if (icons == null) {
   67.39 +            icons = new XIconInfo[4][3];
   67.40 +            if (XlibWrapper.dataModel == 32) {
   67.41 +                icons[0][0] = new XIconInfo(XAWTIcon32_security_icon_bw16_png.security_icon_bw16_png);
   67.42 +                icons[0][1] = new XIconInfo(XAWTIcon32_security_icon_interim16_png.security_icon_interim16_png);
   67.43 +                icons[0][2] = new XIconInfo(XAWTIcon32_security_icon_yellow16_png.security_icon_yellow16_png);
   67.44 +                icons[1][0] = new XIconInfo(XAWTIcon32_security_icon_bw24_png.security_icon_bw24_png);
   67.45 +                icons[1][1] = new XIconInfo(XAWTIcon32_security_icon_interim24_png.security_icon_interim24_png);
   67.46 +                icons[1][2] = new XIconInfo(XAWTIcon32_security_icon_yellow24_png.security_icon_yellow24_png);
   67.47 +                icons[2][0] = new XIconInfo(XAWTIcon32_security_icon_bw32_png.security_icon_bw32_png);
   67.48 +                icons[2][1] = new XIconInfo(XAWTIcon32_security_icon_interim32_png.security_icon_interim32_png);
   67.49 +                icons[2][2] = new XIconInfo(XAWTIcon32_security_icon_yellow32_png.security_icon_yellow32_png);
   67.50 +                icons[3][0] = new XIconInfo(XAWTIcon32_security_icon_bw48_png.security_icon_bw48_png);
   67.51 +                icons[3][1] = new XIconInfo(XAWTIcon32_security_icon_interim48_png.security_icon_interim48_png);
   67.52 +                icons[3][2] = new XIconInfo(XAWTIcon32_security_icon_yellow48_png.security_icon_yellow48_png);
   67.53 +            } else {
   67.54 +                icons[0][0] = new XIconInfo(XAWTIcon64_security_icon_bw16_png.security_icon_bw16_png);
   67.55 +                icons[0][1] = new XIconInfo(XAWTIcon64_security_icon_interim16_png.security_icon_interim16_png);
   67.56 +                icons[0][2] = new XIconInfo(XAWTIcon64_security_icon_yellow16_png.security_icon_yellow16_png);
   67.57 +                icons[1][0] = new XIconInfo(XAWTIcon64_security_icon_bw24_png.security_icon_bw24_png);
   67.58 +                icons[1][1] = new XIconInfo(XAWTIcon64_security_icon_interim24_png.security_icon_interim24_png);
   67.59 +                icons[1][2] = new XIconInfo(XAWTIcon64_security_icon_yellow24_png.security_icon_yellow24_png);
   67.60 +                icons[2][0] = new XIconInfo(XAWTIcon64_security_icon_bw32_png.security_icon_bw32_png);
   67.61 +                icons[2][1] = new XIconInfo(XAWTIcon64_security_icon_interim32_png.security_icon_interim32_png);
   67.62 +                icons[2][2] = new XIconInfo(XAWTIcon64_security_icon_yellow32_png.security_icon_yellow32_png);
   67.63 +                icons[3][0] = new XIconInfo(XAWTIcon64_security_icon_bw48_png.security_icon_bw48_png);
   67.64 +                icons[3][1] = new XIconInfo(XAWTIcon64_security_icon_interim48_png.security_icon_interim48_png);
   67.65 +                icons[3][2] = new XIconInfo(XAWTIcon64_security_icon_yellow48_png.security_icon_yellow48_png);
   67.66 +            }
   67.67 +        }
   67.68 +        final int sizeIndex = size % icons.length;
   67.69 +        return icons[sizeIndex][num % icons[sizeIndex].length];
   67.70 +    }
   67.71 +
   67.72 +    private volatile int currentIcon = 0;
   67.73 +
   67.74 +    /* -1 - uninitialized yet
   67.75 +     * 0 - 16x16
   67.76 +     * 1 - 24x24
   67.77 +     * 2 - 32x32
   67.78 +     * 3 - 48x48
   67.79 +     */
   67.80 +    private volatile int currentSize = -1;
   67.81 +
   67.82 +    /** Indicates whether the shape of the window must be updated
   67.83 +     */
   67.84 +    private volatile boolean sizeUpdated = true;
   67.85 +
   67.86 +    private synchronized boolean updateIconSize() {
   67.87 +        int newSize = currentSize;
   67.88 +
   67.89 +        if (ownerWindow != null) {
   67.90 +            Insets insets = ownerWindow.getInsets();
   67.91 +            int max = Math.max(insets.top, Math.max(insets.bottom,
   67.92 +                        Math.max(insets.left, insets.right)));
   67.93 +            if (max < 24) {
   67.94 +                newSize = 0;
   67.95 +            } else if (max < 32) {
   67.96 +                newSize = 1;
   67.97 +            } else if (max < 48) {
   67.98 +                newSize = 2;
   67.99 +            } else {
  67.100 +                newSize = 3;
  67.101 +            }
  67.102 +        }
  67.103 +        if (newSize != currentSize) {
  67.104 +            currentSize = newSize;
  67.105 +            sizeUpdated = true;
  67.106 +        }
  67.107 +        return sizeUpdated;
  67.108 +    }
  67.109 +
  67.110 +    private synchronized XIconInfo getSecurityIconInfo() {
  67.111 +        updateIconSize();
  67.112 +        return getSecurityIconInfo(currentSize, currentIcon);
  67.113 +    }
  67.114 +
  67.115 +    XWarningWindow(final Window ownerWindow, long parentWindow, XWindowPeer ownerPeer) {
  67.116 +        super(new XCreateWindowParams(new Object[] {
  67.117 +                        TARGET, ownerWindow,
  67.118 +                        OWNER, Long.valueOf(parentWindow)
  67.119 +        }));
  67.120          this.ownerWindow = ownerWindow;
  67.121 -        xSetVisible(true);
  67.122 -        toFront();
  67.123 +        this.parentWindow = parentWindow;
  67.124 +        this.tooltip = new InfoWindow.Tooltip(null, getTarget(),
  67.125 +                new InfoWindow.Tooltip.LiveArguments() {
  67.126 +                    public boolean isDisposed() {
  67.127 +                        return XWarningWindow.this.isDisposed();
  67.128 +                    }
  67.129 +                    public Rectangle getBounds() {
  67.130 +                        return XWarningWindow.this.getBounds();
  67.131 +                    }
  67.132 +                    public String getTooltipString() {
  67.133 +                        return XWarningWindow.this.ownerWindow.getWarningString();
  67.134 +                    }
  67.135 +                });
  67.136 +        this.ownerPeer = new WeakReference<XWindowPeer>(ownerPeer);
  67.137 +    }
  67.138 +
  67.139 +    private void requestNoTaskbar() {
  67.140 +        XNETProtocol netProtocol = XWM.getWM().getNETProtocol();
  67.141 +        if (netProtocol != null) {
  67.142 +            netProtocol.requestState(this, netProtocol.XA_NET_WM_STATE_SKIP_TASKBAR, true);
  67.143 +        }
  67.144 +    }
  67.145 +
  67.146 +    @Override
  67.147 +    void postInit(XCreateWindowParams params) {
  67.148 +        super.postInit(params);
  67.149 +        XToolkit.awtLock();
  67.150 +        try {
  67.151 +            XWM.setMotifDecor(this, false, 0, 0);
  67.152 +            XWM.setOLDecor(this, false, 0);
  67.153 +
  67.154 +            long parentWindow = ((Long)params.get(OWNER)).longValue();
  67.155 +            XlibWrapper.XSetTransientFor(XToolkit.getDisplay(),
  67.156 +                    getWindow(), parentWindow);
  67.157 +
  67.158 +            XWMHints hints = getWMHints();
  67.159 +            hints.set_flags(hints.get_flags() | (int)XUtilConstants.InputHint | (int)XUtilConstants.StateHint);
  67.160 +            hints.set_input(false);
  67.161 +            hints.set_initial_state(XUtilConstants.NormalState);
  67.162 +            XlibWrapper.XSetWMHints(XToolkit.getDisplay(), getWindow(), hints.pData);
  67.163 +
  67.164 +            initWMProtocols();
  67.165 +            requestNoTaskbar();
  67.166 +        } finally {
  67.167 +            XToolkit.awtUnlock();
  67.168 +        }
  67.169 +    }
  67.170 +
  67.171 +    private void updateWarningWindowBounds() {
  67.172 +        XWindowPeer peer = ownerPeer.get();
  67.173 +        if (peer != null) {
  67.174 +            synchronized (this) {
  67.175 +                if (updateIconSize()) {
  67.176 +                    XIconInfo ico = getSecurityIconInfo();
  67.177 +                    XToolkit.awtLock();
  67.178 +                    try {
  67.179 +                        XlibWrapper.SetBitmapShape(XToolkit.getDisplay(), getWindow(),
  67.180 +                                ico.getWidth(), ico.getHeight(), ico.getIntData());
  67.181 +                    } finally {
  67.182 +                        XToolkit.awtUnlock();
  67.183 +                    }
  67.184 +                    sizeUpdated = false;
  67.185 +                    AWTAccessor.getWindowAccessor().setSecurityWarningSize(
  67.186 +                            ownerWindow, ico.getWidth(), ico.getHeight());
  67.187 +                }
  67.188 +            }
  67.189 +            peer.repositionSecurityWarning();
  67.190 +        }
  67.191 +    }
  67.192 +
  67.193 +    /**
  67.194 +     * @param x,y,w,h coordinates of the untrusted window
  67.195 +     */
  67.196 +    public void reposition(int x, int y, int w, int h) {
  67.197 +        Point2D point = AWTAccessor.getWindowAccessor().
  67.198 +            calculateSecurityWarningPosition(ownerWindow,
  67.199 +                x, y, w, h);
  67.200 +        reshape((int)point.getX(), (int)point.getY(), getWidth(), getHeight());
  67.201      }
  67.202  
  67.203      protected String getWMName() {
  67.204 @@ -49,33 +227,19 @@
  67.205                                   getFont());
  67.206      }
  67.207      void paint(Graphics g, int x, int y, int width, int height) {
  67.208 -        String warningString = getWarningString();
  67.209 -        Rectangle bounds = getBounds();
  67.210 -        bounds.x = 0;
  67.211 -        bounds.y = 0;
  67.212 -        Rectangle updateRect = new Rectangle(x, y, width, height);
  67.213 -        if (updateRect.intersects(bounds)) {
  67.214 -            Rectangle updateArea = updateRect.intersection(bounds);
  67.215 -            g.setClip(updateArea);
  67.216 -            g.setColor(getBackground());
  67.217 -            g.fillRect(updateArea.x, updateArea.y, updateArea.width, updateArea.height);
  67.218 -            g.setColor(getColor());
  67.219 -            g.setFont(getFont());
  67.220 -            FontMetrics fm = g.getFontMetrics();
  67.221 -            int warningWidth = fm.stringWidth(warningString);
  67.222 -            int w_x = (bounds.width - warningWidth)/2;
  67.223 -            int w_y = (bounds.height + fm.getMaxAscent() - fm.getMaxDescent())/2;
  67.224 -            g.drawString(warningString, w_x, w_y);
  67.225 -            g.drawLine(bounds.x, bounds.y+bounds.height-1, bounds.x+bounds.width-1, bounds.y+bounds.height-1);
  67.226 -        }
  67.227 +        g.drawImage(getSecurityIconInfo().getImage(), 0, 0, null);
  67.228      }
  67.229  
  67.230      String getWarningString() {
  67.231          return ownerWindow.getWarningString();
  67.232      }
  67.233  
  67.234 +    int getWidth() {
  67.235 +        return getSecurityIconInfo().getWidth();
  67.236 +    }
  67.237 +
  67.238      int getHeight() {
  67.239 -        return defaultHeight; // should implement depending on Font
  67.240 +        return getSecurityIconInfo().getHeight();
  67.241      }
  67.242  
  67.243      Color getBackground() {
  67.244 @@ -97,6 +261,7 @@
  67.245          }
  67.246      }
  67.247  
  67.248 +    @Override
  67.249      public void handleExposeEvent(XEvent xev) {
  67.250          super.handleExposeEvent(xev);
  67.251  
  67.252 @@ -105,18 +270,156 @@
  67.253          final int y = xe.get_y();
  67.254          final int width = xe.get_width();
  67.255          final int height = xe.get_height();
  67.256 -        EventQueue.invokeLater(new Runnable() {
  67.257 -            public void run() {
  67.258 -                Graphics g = getGraphics();
  67.259 -                try {
  67.260 -                    paint(g, x, y, width, height);
  67.261 -                } finally {
  67.262 -                    g.dispose();
  67.263 -                }
  67.264 -            }
  67.265 -        });
  67.266 +        SunToolkit.executeOnEventHandlerThread(target,
  67.267 +                new Runnable() {
  67.268 +                    public void run() {
  67.269 +                        Graphics g = getGraphics();
  67.270 +                        try {
  67.271 +                            paint(g, x, y, width, height);
  67.272 +                        } finally {
  67.273 +                            g.dispose();
  67.274 +                        }
  67.275 +                    }
  67.276 +                });
  67.277      }
  67.278 +
  67.279 +    @Override
  67.280      protected boolean isEventDisabled(XEvent e) {
  67.281          return true;
  67.282      }
  67.283 +
  67.284 +    /** Send a synthetic UnmapNotify in order to withdraw the window.
  67.285 +     */
  67.286 +    private void withdraw() {
  67.287 +        XEvent req = new XEvent();
  67.288 +        try {
  67.289 +            long root;
  67.290 +            XToolkit.awtLock();
  67.291 +            try {
  67.292 +                root = XlibWrapper.RootWindow(XToolkit.getDisplay(), getScreenNumber());
  67.293 +            }
  67.294 +            finally {
  67.295 +                XToolkit.awtUnlock();
  67.296 +            }
  67.297 +
  67.298 +            req.set_type(XConstants.UnmapNotify);
  67.299 +
  67.300 +            XUnmapEvent umev = req.get_xunmap();
  67.301 +
  67.302 +            umev.set_event(root);
  67.303 +            umev.set_window(getWindow());
  67.304 +            umev.set_from_configure(false);
  67.305 +
  67.306 +            XToolkit.awtLock();
  67.307 +            try {
  67.308 +                XlibWrapper.XSendEvent(XToolkit.getDisplay(),
  67.309 +                        root,
  67.310 +                        false,
  67.311 +                        XConstants.SubstructureRedirectMask | XConstants.SubstructureNotifyMask,
  67.312 +                        req.pData);
  67.313 +            }
  67.314 +            finally {
  67.315 +                XToolkit.awtUnlock();
  67.316 +            }
  67.317 +        } finally {
  67.318 +            req.dispose();
  67.319 +        }
  67.320 +    }
  67.321 +
  67.322 +    @Override
  67.323 +    protected void stateChanged(long time, int oldState, int newState) {
  67.324 +        if (newState == XUtilConstants.IconicState) {
  67.325 +            super.xSetVisible(false);
  67.326 +            withdraw();
  67.327 +        }
  67.328 +    }
  67.329 +
  67.330 +    @Override
  67.331 +    protected void setMouseAbove(boolean above) {
  67.332 +        super.setMouseAbove(above);
  67.333 +        XWindowPeer p = ownerPeer.get();
  67.334 +        if (p != null) {
  67.335 +            p.updateSecurityWarningVisibility();
  67.336 +        }
  67.337 +    }
  67.338 +
  67.339 +    @Override
  67.340 +    protected void enterNotify(long window) {
  67.341 +        super.enterNotify(window);
  67.342 +        if (window == getWindow()) {
  67.343 +            tooltip.enter();
  67.344 +        }
  67.345 +    }
  67.346 +
  67.347 +    @Override
  67.348 +    protected void leaveNotify(long window) {
  67.349 +        super.leaveNotify(window);
  67.350 +        if (window == getWindow()) {
  67.351 +            tooltip.exit();
  67.352 +        }
  67.353 +    }
  67.354 +
  67.355 +    @Override
  67.356 +    public void xSetVisible(boolean visible) {
  67.357 +        super.xSetVisible(visible);
  67.358 +
  67.359 +        // The _NET_WM_STATE_SKIP_TASKBAR got reset upon hiding/showing,
  67.360 +        // so we request it every time whenever we change the visibility.
  67.361 +        requestNoTaskbar();
  67.362 +    }
  67.363 +
  67.364 +    private final Runnable hidingTask = new Runnable() {
  67.365 +        public void run() {
  67.366 +            xSetVisible(false);
  67.367 +        }
  67.368 +    };
  67.369 +
  67.370 +    private final Runnable showingTask = new Runnable() {
  67.371 +        public void run() {
  67.372 +            new Thread() {
  67.373 +                public void run() {
  67.374 +                    if (!isVisible()) {
  67.375 +                        xSetVisible(true);
  67.376 +                        updateWarningWindowBounds();
  67.377 +                    }
  67.378 +                    repaint();
  67.379 +                    if (currentIcon > 0) {
  67.380 +                        currentIcon--;
  67.381 +                        XToolkit.schedule(showingTask, showingDelay);
  67.382 +                    }
  67.383 +                }}.start();
  67.384 +        }
  67.385 +    };
  67.386 +
  67.387 +    public void setSecurityWarningVisible(boolean visible) {
  67.388 +        setSecurityWarningVisible(visible, true);
  67.389 +    }
  67.390 +
  67.391 +    public void setSecurityWarningVisible(boolean visible, boolean doSchedule) {
  67.392 +        if (visible) {
  67.393 +            XToolkit.remove(hidingTask);
  67.394 +            XToolkit.remove(showingTask);
  67.395 +            if (isVisible()) {
  67.396 +                currentIcon = 0;
  67.397 +            } else {
  67.398 +                currentIcon = 3;
  67.399 +            }
  67.400 +            if (doSchedule) {
  67.401 +                XToolkit.schedule(showingTask, 1);
  67.402 +            } else {
  67.403 +                showingTask.run();
  67.404 +            }
  67.405 +        } else {
  67.406 +            XToolkit.remove(showingTask);
  67.407 +            XToolkit.remove(hidingTask);
  67.408 +            if (!isVisible()) {
  67.409 +                return;
  67.410 +            }
  67.411 +            if (doSchedule) {
  67.412 +                XToolkit.schedule(hidingTask, hidingDelay);
  67.413 +            } else {
  67.414 +                hidingTask.run();
  67.415 +            }
  67.416 +        }
  67.417 +    }
  67.418  }
    68.1 --- a/src/solaris/classes/sun/awt/X11/XWindow.java	Tue Apr 14 00:05:07 2009 -0700
    68.2 +++ b/src/solaris/classes/sun/awt/X11/XWindow.java	Tue Apr 14 04:21:02 2009 -0700
    68.3 @@ -1,5 +1,5 @@
    68.4  /*
    68.5 - * Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
    68.6 + * Copyright 2002-2009 Sun Microsystems, Inc.  All Rights Reserved.
    68.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    68.8   *
    68.9   * This code is free software; you can redistribute it and/or modify it
   68.10 @@ -68,6 +68,15 @@
   68.11      int oldWidth = -1;
   68.12      int oldHeight = -1;
   68.13  
   68.14 +    protected PropMwmHints mwm_hints;
   68.15 +    protected static XAtom wm_protocols;
   68.16 +    protected static XAtom wm_delete_window;
   68.17 +    protected static XAtom wm_take_focus;
   68.18 +
   68.19 +    private boolean stateChanged; // Indicates whether the value on savedState is valid
   68.20 +    private int savedState; // Holds last known state of the top-level window
   68.21 +
   68.22 +    XWindowAttributesData winAttr;
   68.23  
   68.24      protected X11GraphicsConfig graphicsConfig;
   68.25      protected AwtGraphicsConfigData graphicsConfigData;
   68.26 @@ -119,6 +128,9 @@
   68.27      private native static void initIDs();
   68.28  
   68.29      private static Field isPostedField;
   68.30 +    private static Field rawCodeField;
   68.31 +    private static Field primaryLevelUnicodeField;
   68.32 +    private static Field extendedKeyCodeField;
   68.33      static {
   68.34          initIDs();
   68.35      }
   68.36 @@ -218,6 +230,20 @@
   68.37          }
   68.38  
   68.39          params.putIfNull(BACKING_STORE, XToolkit.getBackingStoreType());
   68.40 +
   68.41 +        XToolkit.awtLock();
   68.42 +        try {
   68.43 +            if (wm_protocols == null) {
   68.44 +                wm_protocols = XAtom.get("WM_PROTOCOLS");
   68.45 +                wm_delete_window = XAtom.get("WM_DELETE_WINDOW");
   68.46 +                wm_take_focus = XAtom.get("WM_TAKE_FOCUS");
   68.47 +            }
   68.48 +        }
   68.49 +        finally {
   68.50 +            XToolkit.awtUnlock();
   68.51 +        }
   68.52 +        winAttr = new XWindowAttributesData();
   68.53 +        savedState = XUtilConstants.WithdrawnState;
   68.54      }
   68.55  
   68.56      void postInit(XCreateWindowParams params) {
   68.57 @@ -832,12 +858,42 @@
   68.58      public native boolean x11inputMethodLookupString(long event, long [] keysymArray);
   68.59      native boolean haveCurrentX11InputMethodInstance();
   68.60  
   68.61 +    private boolean mouseAboveMe;
   68.62 +
   68.63 +    public boolean isMouseAbove() {
   68.64 +        synchronized (getStateLock()) {
   68.65 +            return mouseAboveMe;
   68.66 +        }
   68.67 +    }
   68.68 +    protected void setMouseAbove(boolean above) {
   68.69 +        synchronized (getStateLock()) {
   68.70 +            mouseAboveMe = above;
   68.71 +        }
   68.72 +    }
   68.73 +
   68.74 +    protected void enterNotify(long window) {
   68.75 +        if (window == getWindow()) {
   68.76 +            setMouseAbove(true);
   68.77 +        }
   68.78 +    }
   68.79 +    protected void leaveNotify(long window) {
   68.80 +        if (window == getWindow()) {
   68.81 +            setMouseAbove(false);
   68.82 +        }
   68.83 +    }
   68.84 +
   68.85      public void handleXCrossingEvent(XEvent xev) {
   68.86          super.handleXCrossingEvent(xev);
   68.87          XCrossingEvent xce = xev.get_xcrossing();
   68.88  
   68.89          if (eventLog.isLoggable(Level.FINEST)) eventLog.finest(xce.toString());
   68.90  
   68.91 +        if (xce.get_type() == XConstants.EnterNotify) {
   68.92 +            enterNotify(xce.get_window());
   68.93 +        } else { // LeaveNotify:
   68.94 +            leaveNotify(xce.get_window());
   68.95 +        }
   68.96 +
   68.97          // Skip event If it was caused by a grab
   68.98          // This is needed because on displays with focus-follows-mouse on MousePress X system generates
   68.99          // two XCrossing events with mode != NormalNotify. First of them notifies that the mouse has left
  68.100 @@ -984,7 +1040,7 @@
  68.101         Parameter is a keysym basically from keysymdef.h
  68.102         XXX: how about vendor keys? Is there some with Unicode value and not in the list?
  68.103      */
  68.104 -    char keysymToUnicode( long keysym, int state ) {
  68.105 +    int keysymToUnicode( long keysym, int state ) {
  68.106          return XKeysym.convertKeysym( keysym, state );
  68.107      }
  68.108      int keyEventType2Id( int xEventType ) {
  68.109 @@ -994,6 +1050,13 @@
  68.110      static private long xkeycodeToKeysym(XKeyEvent ev) {
  68.111          return XKeysym.getKeysym( ev );
  68.112      }
  68.113 +    private long xkeycodeToPrimaryKeysym(XKeyEvent ev) {
  68.114 +        return XKeysym.xkeycode2primary_keysym( ev );
  68.115 +    }
  68.116 +    static private int primaryUnicode2JavaKeycode(int uni) {
  68.117 +        return (uni > 0? sun.awt.ExtendedKeyCodes.getExtendedKeyCodeForChar(uni) : 0);
  68.118 +        //return (uni > 0? uni + 0x01000000 : 0);
  68.119 +    }
  68.120      void logIncomingKeyEvent(XKeyEvent ev) {
  68.121          keyEventLog.fine("--XWindow.java:handleKeyEvent:"+ev);
  68.122          dumpKeysymArray(ev);
  68.123 @@ -1012,7 +1075,7 @@
  68.124      // un-final it if you need to override it in a subclass.
  68.125      final void handleKeyPress(XKeyEvent ev) {
  68.126          long keysym[] = new long[2];
  68.127 -        char unicodeKey = 0;
  68.128 +        int unicodeKey = 0;
  68.129          keysym[0] = XConstants.NoSymbol;
  68.130  
  68.131          if (keyEventLog.isLoggable(Level.FINE)) {
  68.132 @@ -1057,19 +1120,36 @@
  68.133          if( jkc == null ) {
  68.134              jkc = new XKeysym.Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDEFINED, java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN);
  68.135          }
  68.136 +
  68.137 +        // Take the first keysym from a keysym array associated with the XKeyevent
  68.138 +        // and convert it to Unicode. Then, even if a Java keycode for the keystroke
  68.139 +        // is undefined, we still have a guess of what has been engraved on a keytop.
  68.140 +        int unicodeFromPrimaryKeysym = keysymToUnicode( xkeycodeToPrimaryKeysym(ev) ,0);
  68.141 +
  68.142          if (keyEventLog.isLoggable(Level.FINE)) {
  68.143              keyEventLog.fine(">>>Fire Event:"+
  68.144                 (ev.get_type() == XConstants.KeyPress ? "KEY_PRESSED; " : "KEY_RELEASED; ")+
  68.145                 "jkeycode:decimal="+jkc.getJavaKeycode()+
  68.146 -               ", hex=0x"+Integer.toHexString(jkc.getJavaKeycode())+"; "
  68.147 +               ", hex=0x"+Integer.toHexString(jkc.getJavaKeycode())+"; "+
  68.148 +               " legacy jkeycode: decimal="+XKeysym.getLegacyJavaKeycodeOnly(ev)+
  68.149 +               ", hex=0x"+Integer.toHexString(XKeysym.getLegacyJavaKeycodeOnly(ev))+"; "
  68.150              );
  68.151          }
  68.152 +
  68.153 +        int jkeyToReturn = XKeysym.getLegacyJavaKeycodeOnly(ev); // someway backward compatible
  68.154 +        int jkeyExtended = jkc.getJavaKeycode() == java.awt.event.KeyEvent.VK_UNDEFINED ?
  68.155 +                           primaryUnicode2JavaKeycode( unicodeFromPrimaryKeysym ) :
  68.156 +                             jkc.getJavaKeycode();
  68.157          postKeyEvent( java.awt.event.KeyEvent.KEY_PRESSED,
  68.158                            ev.get_time(),
  68.159 -                          jkc.getJavaKeycode(),
  68.160 +                          jkeyToReturn,
  68.161                            (unicodeKey == 0 ? java.awt.event.KeyEvent.CHAR_UNDEFINED : unicodeKey),
  68.162                            jkc.getKeyLocation(),
  68.163 -                          ev.get_state(),ev.getPData(), XKeyEvent.getSize());
  68.164 +                          ev.get_state(),ev.getPData(), XKeyEvent.getSize(), (long)(ev.get_keycode()),
  68.165 +                          unicodeFromPrimaryKeysym,
  68.166 +                          jkeyExtended);
  68.167 +
  68.168 +
  68.169          if( unicodeKey > 0 ) {
  68.170                  keyEventLog.fine("fire _TYPED on "+unicodeKey);
  68.171                  postKeyEvent( java.awt.event.KeyEvent.KEY_TYPED,
  68.172 @@ -1077,7 +1157,10 @@
  68.173                                java.awt.event.KeyEvent.VK_UNDEFINED,
  68.174                                unicodeKey,
  68.175                                java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN,
  68.176 -                              ev.get_state(),ev.getPData(), XKeyEvent.getSize());
  68.177 +                              ev.get_state(),ev.getPData(), XKeyEvent.getSize(), (long)0,
  68.178 +                              unicodeFromPrimaryKeysym,
  68.179 +                              java.awt.event.KeyEvent.VK_UNDEFINED);
  68.180 +
  68.181          }
  68.182  
  68.183  
  68.184 @@ -1095,7 +1178,7 @@
  68.185      // un-private it if you need to call it from elsewhere
  68.186      private void handleKeyRelease(XKeyEvent ev) {
  68.187          long keysym[] = new long[2];
  68.188 -        char unicodeKey = 0;
  68.189 +        int unicodeKey = 0;
  68.190          keysym[0] = XConstants.NoSymbol;
  68.191  
  68.192          if (keyEventLog.isLoggable(Level.FINE)) {
  68.193 @@ -1113,7 +1196,9 @@
  68.194              keyEventLog.fine(">>>Fire Event:"+
  68.195                 (ev.get_type() == XConstants.KeyPress ? "KEY_PRESSED; " : "KEY_RELEASED; ")+
  68.196                 "jkeycode:decimal="+jkc.getJavaKeycode()+
  68.197 -               ", hex=0x"+Integer.toHexString(jkc.getJavaKeycode())+"; "
  68.198 +               ", hex=0x"+Integer.toHexString(jkc.getJavaKeycode())+"; "+
  68.199 +               " legacy jkeycode: decimal="+XKeysym.getLegacyJavaKeycodeOnly(ev)+
  68.200 +               ", hex=0x"+Integer.toHexString(XKeysym.getLegacyJavaKeycodeOnly(ev))+"; "
  68.201              );
  68.202          }
  68.203          // We obtain keysym from IM and derive unicodeKey from it for KeyPress only.
  68.204 @@ -1124,13 +1209,74 @@
  68.205          // That's why we use the same procedure as if there was no IM instance: do-it-yourself unicode.
  68.206          unicodeKey = keysymToUnicode( xkeycodeToKeysym(ev), ev.get_state() );
  68.207  
  68.208 +        // Take a first keysym from a keysym array associated with the XKeyevent
  68.209 +        // and convert it to Unicode. Then, even if Java keycode for the keystroke
  68.210 +        // is undefined, we still will have a guess of what was engraved on a keytop.
  68.211 +        int unicodeFromPrimaryKeysym = keysymToUnicode( xkeycodeToPrimaryKeysym(ev) ,0);
  68.212 +
  68.213 +        int jkeyToReturn = XKeysym.getLegacyJavaKeycodeOnly(ev); // someway backward compatible
  68.214 +        int jkeyExtended = jkc.getJavaKeycode() == java.awt.event.KeyEvent.VK_UNDEFINED ?
  68.215 +                           primaryUnicode2JavaKeycode( unicodeFromPrimaryKeysym ) :
  68.216 +                             jkc.getJavaKeycode();
  68.217          postKeyEvent(  java.awt.event.KeyEvent.KEY_RELEASED,
  68.218                            ev.get_time(),
  68.219 -                          jkc.getJavaKeycode(),
  68.220 +                          jkeyToReturn,
  68.221                            (unicodeKey == 0 ? java.awt.event.KeyEvent.CHAR_UNDEFINED : unicodeKey),
  68.222                            jkc.getKeyLocation(),
  68.223 -                          ev.get_state(),ev.getPData(), XKeyEvent.getSize());
  68.224 +                          ev.get_state(),ev.getPData(), XKeyEvent.getSize(), (long)(ev.get_keycode()),
  68.225 +                          unicodeFromPrimaryKeysym,
  68.226 +                          jkeyExtended);
  68.227  
  68.228 +
  68.229 +    }
  68.230 +
  68.231 +    /*
  68.232 +     * XmNiconic and Map/UnmapNotify (that XmNiconic relies on) are
  68.233 +     * unreliable, since mapping changes can happen for a virtual desktop
  68.234 +     * switch or MacOS style shading that became quite popular under X as
  68.235 +     * well.  Yes, it probably should not be this way, as it violates
  68.236 +     * ICCCM, but reality is that quite a lot of window managers abuse
  68.237 +     * mapping state.
  68.238 +     */
  68.239 +    int getWMState() {
  68.240 +        if (stateChanged) {
  68.241 +            stateChanged = false;
  68.242 +            WindowPropertyGetter getter =
  68.243 +                new WindowPropertyGetter(window, XWM.XA_WM_STATE, 0, 1, false,
  68.244 +                                         XWM.XA_WM_STATE);
  68.245 +            try {
  68.246 +                int status = getter.execute();
  68.247 +                if (status != XConstants.Success || getter.getData() == 0) {
  68.248 +                    return savedState = XUtilConstants.WithdrawnState;
  68.249 +                }
  68.250 +
  68.251 +                if (getter.getActualType() != XWM.XA_WM_STATE.getAtom() && getter.getActualFormat() != 32) {
  68.252 +                    return savedState = XUtilConstants.WithdrawnState;
  68.253 +                }
  68.254 +                savedState = (int)Native.getCard32(getter.getData());
  68.255 +            } finally {
  68.256 +                getter.dispose();
  68.257 +            }
  68.258 +        }
  68.259 +        return savedState;
  68.260 +    }
  68.261 +
  68.262 +    /**
  68.263 +     * Override this methods to get notifications when top-level window state changes. The state is
  68.264 +     * meant in terms of ICCCM: WithdrawnState, IconicState, NormalState
  68.265 +     */
  68.266 +    protected void stateChanged(long time, int oldState, int newState) {
  68.267 +    }
  68.268 +
  68.269 +    @Override
  68.270 +    public void handlePropertyNotify(XEvent xev) {
  68.271 +        super.handlePropertyNotify(xev);
  68.272 +        XPropertyEvent ev = xev.get_xproperty();
  68.273 +        if (ev.get_atom() == XWM.XA_WM_STATE.getAtom()) {
  68.274 +            // State has changed, invalidate saved value
  68.275 +            stateChanged = true;
  68.276 +            stateChanged(ev.get_time(), savedState, getWMState());
  68.277 +        }
  68.278      }
  68.279  
  68.280      public void reshape(Rectangle bounds) {
  68.281 @@ -1277,20 +1423,77 @@
  68.282          }
  68.283      }
  68.284  
  68.285 -    public void postKeyEvent(int id, long when, int keyCode, char keyChar,
  68.286 -        int keyLocation, int state, long event, int eventSize)
  68.287 +    public void postKeyEvent(int id, long when, int keyCode, int keyChar,
  68.288 +        int keyLocation, int state, long event, int eventSize, long rawCode,
  68.289 +        int unicodeFromPrimaryKeysym, int extendedKeyCode)
  68.290 +
  68.291      {
  68.292          long jWhen = XToolkit.nowMillisUTC_offset(when);
  68.293          int modifiers = getModifiers(state, 0, keyCode);
  68.294 +        if (rawCodeField == null) {
  68.295 +            rawCodeField = XToolkit.getField(KeyEvent.class, "rawCode");
  68.296 +        }
  68.297 +        if (primaryLevelUnicodeField == null) {
  68.298 +            primaryLevelUnicodeField = XToolkit.getField(KeyEvent.class, "primaryLevelUnicode");
  68.299 +        }
  68.300 +        if (extendedKeyCodeField == null) {
  68.301 +            extendedKeyCodeField = XToolkit.getField(KeyEvent.class, "extendedKeyCode");
  68.302 +        }
  68.303 +
  68.304          KeyEvent ke = new KeyEvent((Component)getEventSource(), id, jWhen,
  68.305 -                                   modifiers, keyCode, keyChar, keyLocation);
  68.306 +                                   modifiers, keyCode, (char)keyChar, keyLocation);
  68.307          if (event != 0) {
  68.308              byte[] data = Native.toBytes(event, eventSize);
  68.309              setBData(ke, data);
  68.310          }
  68.311 +        try {
  68.312 +            rawCodeField.set(ke, rawCode);
  68.313 +            primaryLevelUnicodeField.set(ke, (long)unicodeFromPrimaryKeysym);
  68.314 +            extendedKeyCodeField.set(ke, (long)extendedKeyCode);
  68.315 +        } catch (IllegalArgumentException e) {
  68.316 +            assert(false);
  68.317 +        } catch (IllegalAccessException e) {
  68.318 +            assert(false);
  68.319 +        }
  68.320          postEventToEventQueue(ke);
  68.321      }
  68.322  
  68.323      static native int getAWTKeyCodeForKeySym(int keysym);
  68.324      static native int getKeySymForAWTKeyCode(int keycode);
  68.325 +
  68.326 +    /* These two methods are actually applicable to toplevel windows only.
  68.327 +     * However, the functionality is required by both the XWindowPeer and
  68.328 +     * XWarningWindow, both of which have the XWindow as a common ancestor.
  68.329 +     * See XWM.setMotifDecor() for details.
  68.330 +     */
  68.331 +    public PropMwmHints getMWMHints() {
  68.332 +        if (mwm_hints == null) {
  68.333 +            mwm_hints = new PropMwmHints();
  68.334 +            if (!XWM.XA_MWM_HINTS.getAtomData(getWindow(), mwm_hints.pData, MWMConstants.PROP_MWM_HINTS_ELEMENTS)) {
  68.335 +                mwm_hints.zero();
  68.336 +            }
  68.337 +        }
  68.338 +        return mwm_hints;
  68.339 +    }
  68.340 +
  68.341 +    public void setMWMHints(PropMwmHints hints) {
  68.342 +        mwm_hints = hints;
  68.343 +        if (hints != null) {
  68.344 +            XWM.XA_MWM_HINTS.setAtomData(getWindow(), mwm_hints.pData, MWMConstants.PROP_MWM_HINTS_ELEMENTS);
  68.345 +        }
  68.346 +    }
  68.347 +
  68.348 +    protected final void initWMProtocols() {
  68.349 +        wm_protocols.setAtomListProperty(this, getWMProtocols());
  68.350 +    }
  68.351 +
  68.352 +    /**
  68.353 +     * Returns list of protocols which should be installed on this window.
  68.354 +     * Descendants can override this method to add class-specific protocols
  68.355 +     */
  68.356 +    protected XAtomList getWMProtocols() {
  68.357 +        // No protocols on simple window
  68.358 +        return new XAtomList();
  68.359 +    }
  68.360 +
  68.361  }
    69.1 --- a/src/solaris/classes/sun/awt/X11/XWindowPeer.java	Tue Apr 14 00:05:07 2009 -0700
    69.2 +++ b/src/solaris/classes/sun/awt/X11/XWindowPeer.java	Tue Apr 14 04:21:02 2009 -0700
    69.3 @@ -1,5 +1,5 @@
    69.4  /*
    69.5 - * Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
    69.6 + * Copyright 2002-2009 Sun Microsystems, Inc.  All Rights Reserved.
    69.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    69.8   *
    69.9   * This code is free software; you can redistribute it and/or modify it
   69.10 @@ -30,6 +30,8 @@
   69.11  import java.awt.event.FocusEvent;
   69.12  import java.awt.event.WindowEvent;
   69.13  
   69.14 +import java.awt.image.BufferedImage;
   69.15 +
   69.16  import java.awt.peer.ComponentPeer;
   69.17  import java.awt.peer.WindowPeer;
   69.18  
   69.19 @@ -42,13 +44,17 @@
   69.20  import java.util.logging.Level;
   69.21  import java.util.logging.Logger;
   69.22  
   69.23 +import sun.awt.AWTAccessor;
   69.24  import sun.awt.ComponentAccessor;
   69.25  import sun.awt.WindowAccessor;
   69.26 +import sun.awt.AWTAccessor;
   69.27  import sun.awt.DisplayChangedListener;
   69.28  import sun.awt.SunToolkit;
   69.29  import sun.awt.X11GraphicsDevice;
   69.30  import sun.awt.X11GraphicsEnvironment;
   69.31  
   69.32 +import sun.java2d.pipe.Region;
   69.33 +
   69.34  class XWindowPeer extends XPanelPeer implements WindowPeer,
   69.35                                                  DisplayChangedListener {
   69.36  
   69.37 @@ -61,16 +67,11 @@
   69.38      // should be synchronized on awtLock
   69.39      private static Set<XWindowPeer> windows = new HashSet<XWindowPeer>();
   69.40  
   69.41 -    static XAtom wm_protocols;
   69.42 -    static XAtom wm_delete_window;
   69.43 -    static XAtom wm_take_focus;
   69.44  
   69.45 -    XWindowAttributesData winAttr;
   69.46      private boolean cachedFocusableWindow;
   69.47      XWarningWindow warningWindow;
   69.48  
   69.49      private boolean alwaysOnTop;
   69.50 -    PropMwmHints mwm_hints;
   69.51      private boolean locationByPlatform;
   69.52  
   69.53      Dialog modalBlocker;
   69.54 @@ -87,8 +88,6 @@
   69.55      private boolean grab = false; // Whether to do a grab during showing
   69.56  
   69.57      private boolean isMapped = false; // Is this window mapped or not
   69.58 -    private boolean stateChanged; // Indicates whether the value on savedState is valid
   69.59 -    private int savedState; // Holds last known state of the top-level window
   69.60      private boolean mustControlStackPosition = false; // Am override-redirect not on top
   69.61      private XEventDispatcher rootPropertyEventDispatcher = null;
   69.62  
   69.63 @@ -135,25 +134,18 @@
   69.64          super.preInit(params);
   69.65          params.putIfNull(BIT_GRAVITY, Integer.valueOf(XConstants.NorthWestGravity));
   69.66  
   69.67 -        savedState = XUtilConstants.WithdrawnState;
   69.68 +        long eventMask = 0;
   69.69 +        if (params.containsKey(EVENT_MASK)) {
   69.70 +            eventMask = ((Long)params.get(EVENT_MASK));
   69.71 +        }
   69.72 +        eventMask |= XConstants.VisibilityChangeMask;
   69.73 +        params.put(EVENT_MASK, eventMask);
   69.74 +
   69.75          XA_NET_WM_STATE = XAtom.get("_NET_WM_STATE");
   69.76  
   69.77 -        winAttr = new XWindowAttributesData();
   69.78  
   69.79          params.put(OVERRIDE_REDIRECT, Boolean.valueOf(isOverrideRedirect()));
   69.80  
   69.81 -        SunToolkit.awtLock();
   69.82 -        try {
   69.83 -            windows.add(this);
   69.84 -            if (wm_protocols == null) {
   69.85 -                wm_protocols = XAtom.get("WM_PROTOCOLS");
   69.86 -                wm_delete_window = XAtom.get("WM_DELETE_WINDOW");
   69.87 -                wm_take_focus = XAtom.get("WM_TAKE_FOCUS");
   69.88 -            }
   69.89 -        }
   69.90 -        finally {
   69.91 -            SunToolkit.awtUnlock();
   69.92 -        }
   69.93          cachedFocusableWindow = isFocusableWindow();
   69.94  
   69.95          Font f = target.getFont();
   69.96 @@ -186,20 +178,6 @@
   69.97          params.put(BOUNDS, constrainBounds(bounds.x, bounds.y, bounds.width, bounds.height));
   69.98      }
   69.99  
  69.100 -    private void initWMProtocols() {
  69.101 -        wm_protocols.setAtomListProperty(this, getWMProtocols());
  69.102 -    }
  69.103 -
  69.104 -    /**
  69.105 -     * Returns list of protocols which should be installed on this window.
  69.106 -     * Descendants can override this method to add class-specific protocols
  69.107 -     */
  69.108 -    protected XAtomList getWMProtocols() {
  69.109 -        // No protocols on simple window
  69.110 -        return new XAtomList();
  69.111 -    }
  69.112 -
  69.113 -
  69.114      protected String getWMName() {
  69.115          String name = target.getName();
  69.116          if (name == null || name.trim().equals("")) {
  69.117 @@ -253,13 +231,17 @@
  69.118              // accessSystemTray permission allows to display TrayIcon, TrayIcon tooltip
  69.119              // and TrayIcon balloon windows without a warning window.
  69.120              if (!WindowAccessor.isTrayIconWindow((Window)target)) {
  69.121 -                warningWindow = new XWarningWindow((Window)target, getWindow());
  69.122 +                warningWindow = new XWarningWindow((Window)target, getWindow(), this);
  69.123              }
  69.124          }
  69.125  
  69.126          setSaveUnder(true);
  69.127  
  69.128          updateIconImages();
  69.129 +
  69.130 +        updateShape();
  69.131 +        updateOpacity();
  69.132 +        // no need in updateOpaque() as it is no-op
  69.133      }
  69.134  
  69.135      public void updateIconImages() {
  69.136 @@ -417,6 +399,22 @@
  69.137          return defaultIconInfo;
  69.138      }
  69.139  
  69.140 +    private void updateShape() {
  69.141 +        // Shape shape = ((Window)target).getShape();
  69.142 +        Shape shape = AWTAccessor.getWindowAccessor().getShape((Window)target);
  69.143 +        if (shape != null) {
  69.144 +            applyShape(Region.getInstance(shape, null));
  69.145 +        }
  69.146 +    }
  69.147 +
  69.148 +    private void updateOpacity() {
  69.149 +        // float opacity = ((Window)target).getOpacity();
  69.150 +        float opacity = AWTAccessor.getWindowAccessor().getOpacity((Window)target);
  69.151 +        if (opacity < 1.0f) {
  69.152 +            setOpacity(opacity);
  69.153 +        }
  69.154 +    }
  69.155 +
  69.156      public void updateMinimumSize() {
  69.157          //This function only saves minimumSize value in XWindowPeer
  69.158          //Setting WMSizeHints is implemented in XDecoratedPeer
  69.159 @@ -513,10 +511,15 @@
  69.160              }
  69.161  
  69.162  
  69.163 -            if (!bounds.getSize().equals(oldBounds.getSize())) {
  69.164 +            boolean isResized = !bounds.getSize().equals(oldBounds.getSize());
  69.165 +            boolean isMoved = !bounds.getLocation().equals(oldBounds.getLocation());
  69.166 +            if (isMoved || isResized) {
  69.167 +                repositionSecurityWarning();
  69.168 +            }
  69.169 +            if (isResized) {
  69.170                  postEventToEventQueue(new ComponentEvent(getEventSource(), ComponentEvent.COMPONENT_RESIZED));
  69.171              }
  69.172 -            if (!bounds.getLocation().equals(oldBounds.getLocation())) {
  69.173 +            if (isMoved) {
  69.174                  postEventToEventQueue(new ComponentEvent(getEventSource(), ComponentEvent.COMPONENT_MOVED));
  69.175              }
  69.176          } finally {
  69.177 @@ -539,7 +542,7 @@
  69.178      }
  69.179  
  69.180      public Insets getInsets() {
  69.181 -        return new Insets(getWarningWindowHeight(), 0, 0, 0);
  69.182 +        return new Insets(0, 0, 0, 0);
  69.183      }
  69.184  
  69.185      // NOTE: This method may be called by privileged threads.
  69.186 @@ -686,6 +689,7 @@
  69.187          int curScreenNum = ((X11GraphicsDevice)getGraphicsConfiguration().getDevice()).getScreen();
  69.188          int newScreenNum = 0;
  69.189          GraphicsDevice gds[] = XToolkit.localEnv.getScreenDevices();
  69.190 +        GraphicsConfiguration newGC = null;
  69.191          Rectangle screenBounds;
  69.192  
  69.193          for (int i = 0; i < gds.length; i++) {
  69.194 @@ -701,11 +705,13 @@
  69.195                  if (intAmt == area) {
  69.196                      // Completely on this screen - done!
  69.197                      newScreenNum = i;
  69.198 +                    newGC = gds[i].getDefaultConfiguration();
  69.199                      break;
  69.200                  }
  69.201                  if (intAmt > largestAmt) {
  69.202                      largestAmt = intAmt;
  69.203                      newScreenNum = i;
  69.204 +                    newGC = gds[i].getDefaultConfiguration();
  69.205                  }
  69.206              }
  69.207          }
  69.208 @@ -713,28 +719,20 @@
  69.209              if (log.isLoggable(Level.FINEST)) {
  69.210                  log.finest("XWindowPeer: Moved to a new screen");
  69.211              }
  69.212 -            draggedToNewScreen(newScreenNum);
  69.213 +            executeDisplayChangedOnEDT(newGC);
  69.214          }
  69.215      }
  69.216  
  69.217 -    /* Xinerama
  69.218 -     * called to update our GC when dragged onto another screen
  69.219 -     */
  69.220 -    public void draggedToNewScreen(int screenNum) {
  69.221 -        executeDisplayChangedOnEDT(screenNum);
  69.222 -    }
  69.223 -
  69.224      /**
  69.225       * Helper method that executes the displayChanged(screen) method on
  69.226       * the event dispatch thread.  This method is used in the Xinerama case
  69.227       * and after display mode change events.
  69.228       */
  69.229 -    private void executeDisplayChangedOnEDT(final int screenNum) {
  69.230 +    private void executeDisplayChangedOnEDT(final GraphicsConfiguration gc) {
  69.231          Runnable dc = new Runnable() {
  69.232              public void run() {
  69.233 -                // Updates this window's GC and notifies all the children.
  69.234 -                // See XPanelPeer/XCanvasPeer.displayChanged(int) for details.
  69.235 -                displayChanged(screenNum);
  69.236 +                AWTAccessor.getComponentAccessor().
  69.237 +                    setGraphicsConfiguration((Component)target, gc);
  69.238              }
  69.239          };
  69.240          SunToolkit.executeOnEventHandlerThread((Component)target, dc);
  69.241 @@ -745,9 +743,7 @@
  69.242       * X11GraphicsDevice when the display mode has been changed.
  69.243       */
  69.244      public void displayChanged() {
  69.245 -        GraphicsConfiguration gc = getGraphicsConfiguration();
  69.246 -        int curScreenNum = ((X11GraphicsDevice)gc.getDevice()).getScreen();
  69.247 -        executeDisplayChangedOnEDT(curScreenNum);
  69.248 +        executeDisplayChangedOnEDT(getGraphicsConfiguration());
  69.249      }
  69.250  
  69.251      /**
  69.252 @@ -761,6 +757,7 @@
  69.253       * Overridden to check if we need to update our GraphicsDevice/Config
  69.254       * Added for 4934052.
  69.255       */
  69.256 +    @Override
  69.257      public void handleConfigureNotifyEvent(XEvent xev) {
  69.258          // TODO: We create an XConfigureEvent every time we override
  69.259          // handleConfigureNotify() - too many!
  69.260 @@ -774,8 +771,7 @@
  69.261          // there could be a race condition in which a ComponentListener could
  69.262          // see the old screen.
  69.263          super.handleConfigureNotifyEvent(xev);
  69.264 -        // for 5085647: no applet warning window visible
  69.265 -        updateChildrenSizes();
  69.266 +        repositionSecurityWarning();
  69.267      }
  69.268  
  69.269      final void requestXFocus(long time) {
  69.270 @@ -1053,6 +1049,9 @@
  69.271          }
  69.272          updateFocusability();
  69.273          promoteDefaultPosition();
  69.274 +        if (!vis && warningWindow != null) {
  69.275 +            warningWindow.setSecurityWarningVisible(false, false);
  69.276 +        }
  69.277          super.setVisible(vis);
  69.278          if (!vis && !isWithdrawn()) {
  69.279              // ICCCM, 4.1.4. Changing Window State:
  69.280 @@ -1082,6 +1081,7 @@
  69.281          if (isOverrideRedirect() && vis) {
  69.282              updateChildrenSizes();
  69.283          }
  69.284 +        repositionSecurityWarning();
  69.285      }
  69.286  
  69.287      protected void suppressWmTakeFocus(boolean doSuppress) {
  69.288 @@ -1099,21 +1099,64 @@
  69.289          return 0;
  69.290      }
  69.291  
  69.292 -    // The height of area used to display Applet's warning about securit
  69.293 -    int getWarningWindowHeight() {
  69.294 +    // Called when shell changes its size and requires children windows
  69.295 +    // to update their sizes appropriately
  69.296 +    void updateChildrenSizes() {
  69.297 +    }
  69.298 +
  69.299 +    public void repositionSecurityWarning() {
  69.300 +        // NOTE: On KWin if the window/border snapping option is enabled,
  69.301 +        // the Java window may be swinging while it's being moved.
  69.302 +        // This doesn't make the application unusable though looks quite ugly.
  69.303 +        // Probobly we need to find some hint to assign to our Security
  69.304 +        // Warning window in order to exclude it from the snapping option.
  69.305 +        // We are not currently aware of existance of such a property.
  69.306          if (warningWindow != null) {
  69.307 -            return warningWindow.getHeight();
  69.308 -        } else {
  69.309 -            return 0;
  69.310 +            // We can't use the coordinates stored in the XBaseWindow since
  69.311 +            // they are zeros for decorated frames.
  69.312 +            int x = ComponentAccessor.getX(target);
  69.313 +            int y = ComponentAccessor.getY(target);
  69.314 +            int width = ComponentAccessor.getWidth(target);
  69.315 +            int height = ComponentAccessor.getHeight(target);
  69.316 +            warningWindow.reposition(x, y, width, height);
  69.317          }
  69.318      }
  69.319  
  69.320 -    // Called when shell changes its size and requires children windows
  69.321 -    // to update their sizes appropriately
  69.322 -    void updateChildrenSizes() {
  69.323 -        if (warningWindow != null) {
  69.324 -            warningWindow.reshape(0, getMenuBarHeight(), getSize().width, warningWindow.getHeight());
  69.325 +    @Override
  69.326 +    protected void setMouseAbove(boolean above) {
  69.327 +        super.setMouseAbove(above);
  69.328 +        updateSecurityWarningVisibility();
  69.329 +    }
  69.330 +
  69.331 +    public void updateSecurityWarningVisibility() {
  69.332 +        if (warningWindow == null) {
  69.333 +            return;
  69.334          }
  69.335 +
  69.336 +        boolean show = false;
  69.337 +
  69.338 +        int state = getWMState();
  69.339 +
  69.340 +        if (!isVisible()) {
  69.341 +            return; // The warning window should already be hidden.
  69.342 +        }
  69.343 +
  69.344 +        // getWMState() always returns 0 (Withdrawn) for simple windows. Hence
  69.345 +        // we ignore the state for such windows.
  69.346 +        if (isVisible() && (state == XUtilConstants.NormalState || isSimpleWindow())) {
  69.347 +            if (XKeyboardFocusManagerPeer.getCurrentNativeFocusedWindow() ==
  69.348 +                    getTarget())
  69.349 +            {
  69.350 +                show = true;
  69.351 +            }
  69.352 +
  69.353 +            if (isMouseAbove() || warningWindow.isMouseAbove())
  69.354 +            {
  69.355 +                show = true;
  69.356 +            }
  69.357 +        }
  69.358 +
  69.359 +        warningWindow.setSecurityWarningVisible(show);
  69.360      }
  69.361  
  69.362      boolean isOverrideRedirect() {
  69.363 @@ -1165,16 +1208,7 @@
  69.364  //         if (ve.get_state() == XlibWrapper.VisibilityUnobscured) {
  69.365  //             // raiseInputMethodWindow
  69.366  //         }
  69.367 -    }
  69.368 -
  69.369 -    public void handlePropertyNotify(XEvent xev) {
  69.370 -        super.handlePropertyNotify(xev);
  69.371 -        XPropertyEvent ev = xev.get_xproperty();
  69.372 -        if (ev.get_atom() == XWM.XA_WM_STATE.getAtom()) {
  69.373 -            // State has changed, invalidate saved value
  69.374 -            stateChanged = true;
  69.375 -            stateChanged(ev.get_time(), savedState, getWMState());
  69.376 -        }
  69.377 +        repositionSecurityWarning();
  69.378      }
  69.379  
  69.380      void handleRootPropertyNotify(XEvent xev) {
  69.381 @@ -1275,6 +1309,7 @@
  69.382       * Override this methods to get notifications when top-level window state changes. The state is
  69.383       * meant in terms of ICCCM: WithdrawnState, IconicState, NormalState
  69.384       */
  69.385 +    @Override
  69.386      protected void stateChanged(long time, int oldState, int newState) {
  69.387          // Fix for 6401700, 6412803
  69.388          // If this window is modal blocked, it is put into the transient_for
  69.389 @@ -1288,38 +1323,8 @@
  69.390          for (ToplevelStateListener topLevelListenerTmp : toplevelStateListeners) {
  69.391              topLevelListenerTmp.stateChangedICCCM(oldState, newState);
  69.392          }
  69.393 -    }
  69.394  
  69.395 -
  69.396 -    /*
  69.397 -     * XmNiconic and Map/UnmapNotify (that XmNiconic relies on) are
  69.398 -     * unreliable, since mapping changes can happen for a virtual desktop
  69.399 -     * switch or MacOS style shading that became quite popular under X as
  69.400 -     * well.  Yes, it probably should not be this way, as it violates
  69.401 -     * ICCCM, but reality is that quite a lot of window managers abuse
  69.402 -     * mapping state.
  69.403 -     */
  69.404 -    int getWMState() {
  69.405 -        if (stateChanged) {
  69.406 -            stateChanged = false;
  69.407 -            WindowPropertyGetter getter =
  69.408 -                new WindowPropertyGetter(window, XWM.XA_WM_STATE, 0, 1, false,
  69.409 -                                         XWM.XA_WM_STATE);
  69.410 -            try {
  69.411 -                int status = getter.execute();
  69.412 -                if (status != XConstants.Success || getter.getData() == 0) {
  69.413 -                    return savedState = XUtilConstants.WithdrawnState;
  69.414 -                }
  69.415 -
  69.416 -                if (getter.getActualType() != XWM.XA_WM_STATE.getAtom() && getter.getActualFormat() != 32) {
  69.417 -                    return savedState = XUtilConstants.WithdrawnState;
  69.418 -                }
  69.419 -                savedState = (int)Native.getCard32(getter.getData());
  69.420 -            } finally {
  69.421 -                getter.dispose();
  69.422 -            }
  69.423 -        }
  69.424 -        return savedState;
  69.425 +        updateSecurityWarningVisibility();
  69.426      }
  69.427  
  69.428      boolean isWithdrawn() {
  69.429 @@ -2064,4 +2069,44 @@
  69.430          }
  69.431          super.handleButtonPressRelease(xev);
  69.432      }
  69.433 +
  69.434 +    public void print(Graphics g) {
  69.435 +        // We assume we print the whole frame,
  69.436 +        // so we expect no clip was set previously
  69.437 +        Shape shape = AWTAccessor.getWindowAccessor().getShape((Window)target);
  69.438 +        if (shape != null) {
  69.439 +            g.setClip(shape);
  69.440 +        }
  69.441 +        super.print(g);
  69.442 +    }
  69.443 +
  69.444 +    @Override
  69.445 +    public void setOpacity(float opacity) {
  69.446 +        final long maxOpacity = 0xffffffffl;
  69.447 +        long iOpacity = (long)(opacity * maxOpacity);
  69.448 +        if (iOpacity < 0) {
  69.449 +            iOpacity = 0;
  69.450 +        }
  69.451 +        if (iOpacity > maxOpacity) {
  69.452 +            iOpacity = maxOpacity;
  69.453 +        }
  69.454 +
  69.455 +        XAtom netWmWindowOpacityAtom = XAtom.get("_NET_WM_WINDOW_OPACITY");
  69.456 +
  69.457 +        if (iOpacity == maxOpacity) {
  69.458 +            netWmWindowOpacityAtom.DeleteProperty(getWindow());
  69.459 +        } else {
  69.460 +            netWmWindowOpacityAtom.setCard32Property(getWindow(), iOpacity);
  69.461 +        }
  69.462 +    }
  69.463 +
  69.464 +    @Override
  69.465 +    public void setOpaque(boolean isOpaque) {
  69.466 +        // no-op
  69.467 +    }
  69.468 +
  69.469 +    @Override
  69.470 +    public void updateWindow(BufferedImage backBuffer) {
  69.471 +        // no-op
  69.472 +    }
  69.473  }
    70.1 --- a/src/solaris/classes/sun/awt/X11/XlibWrapper.java	Tue Apr 14 00:05:07 2009 -0700
    70.2 +++ b/src/solaris/classes/sun/awt/X11/XlibWrapper.java	Tue Apr 14 04:21:02 2009 -0700
    70.3 @@ -1,5 +1,5 @@
    70.4  /*
    70.5 - * Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
    70.6 + * Copyright 2002-2009 Sun Microsystems, Inc.  All Rights Reserved.
    70.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    70.8   *
    70.9   * This code is free software; you can redistribute it and/or modify it
   70.10 @@ -156,6 +156,8 @@
   70.11  
   70.12      static native void XLowerWindow(long display, long window);
   70.13      static native void XRestackWindows(long display, long windows, int length);
   70.14 +    static native void XConfigureWindow(long display, long window,
   70.15 +            long value_mask, long values);
   70.16      static native void XSetInputFocus(long display, long window);
   70.17      static native void XSetInputFocus2(long display, long window, long time);
   70.18      static native long XGetInputFocus(long display);
   70.19 @@ -490,6 +492,21 @@
   70.20  
   70.21      static native int XKeysymToKeycode(long display, long keysym);
   70.22  
   70.23 +    // xkb-related
   70.24 +    static native int XkbGetEffectiveGroup(long display);
   70.25 +    static native long XkbKeycodeToKeysym(long display, int keycode, int group, int level);
   70.26 +    static native void XkbSelectEvents(long display, long device, long bits_to_change, long values_for_bits);
   70.27 +    static native void XkbSelectEventDetails(long display, long device, long event_type,
   70.28 +                                              long bits_to_change, long values_for_bits);
   70.29 +    static native boolean XkbQueryExtension(long display, long opcode_rtrn, long event_rtrn,
   70.30 +              long error_rtrn, long major_in_out, long minor_in_out);
   70.31 +    static native boolean XkbLibraryVersion(long lib_major_in_out, long lib_minor_in_out);
   70.32 +    static native long XkbGetMap(long display, long which, long device_spec);
   70.33 +    static native long XkbGetUpdatedMap(long display, long which, long xkb);
   70.34 +    static native void XkbFreeKeyboard(long xkb, long which, boolean free_all);
   70.35 +    static native boolean XkbTranslateKeyCode(long xkb, int keycode, long mods, long mods_rtrn, long keysym_rtrn);
   70.36 +
   70.37 +
   70.38      static native void XConvertCase(long keysym,
   70.39                                      long keysym_lowercase,
   70.40                                      long keysym_uppercase);
   70.41 @@ -533,6 +550,13 @@
   70.42      static native void SetRectangularShape(long display, long window,
   70.43              int lox, int loy, int hix, int hiy,
   70.44              sun.java2d.pipe.Region region);
   70.45 +    /** Each int in the bitmap array is one pixel with a 32-bit color:
   70.46 +     *  R, G, B, and Alpha.
   70.47 +     */
   70.48 +    static native void SetBitmapShape(long display, long window,
   70.49 +             int width, int height, int[] bitmap);
   70.50 +
   70.51 +    static native void SetZOrder(long display, long window, long above);
   70.52  
   70.53  /* Global memory area used for X lib parameter passing */
   70.54  
   70.55 @@ -608,6 +632,15 @@
   70.56          }
   70.57          return buf.toString();
   70.58      }
   70.59 +    static String getEventToString( int type ) {
   70.60 +        if( (type >= 0) && (type < eventToString.length)) {
   70.61 +            return eventToString[type];
   70.62 +        }else if( type == XToolkit.getXKBBaseEventCode() ) {
   70.63 +            //XXX TODO various xkb types
   70.64 +            return "XkbEvent";
   70.65 +        }
   70.66 +        return eventToString[0];
   70.67 +    }
   70.68  
   70.69      private static boolean getBuildInternal() {
   70.70          String javaVersion = XToolkit.getSystemProperty("java.version");
    71.1 --- a/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java	Tue Apr 14 00:05:07 2009 -0700
    71.2 +++ b/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java	Tue Apr 14 04:21:02 2009 -0700
    71.3 @@ -1,5 +1,5 @@
    71.4  /*
    71.5 - * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
    71.6 + * Copyright 2003-2009 Sun Microsystems, Inc.  All Rights Reserved.
    71.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    71.8   *
    71.9   * This code is free software; you can redistribute it and/or modify it
   71.10 @@ -859,14 +859,14 @@
   71.11                      pw.println("\n\tlong pData;");
   71.12                      pw.println("\n\tpublic long getPData() { return pData; }");
   71.13  
   71.14 -                    pw.println("\n\n\t" + stp.getJavaClassName() + "(long addr) {");
   71.15 +                    pw.println("\n\n\tpublic " + stp.getJavaClassName() + "(long addr) {");
   71.16                      if (generateLog) {
   71.17                          pw.println("\t\tlog.finest(\"Creating\");");
   71.18                      }
   71.19                      pw.println("\t\tpData=addr;");
   71.20                      pw.println("\t\tshould_free_memory = false;");
   71.21                      pw.println("\t}");
   71.22 -                    pw.println("\n\n\t" + stp.getJavaClassName() + "() {");
   71.23 +                    pw.println("\n\n\tpublic " + stp.getJavaClassName() + "() {");
   71.24                      if (generateLog) {
   71.25                          pw.println("\t\tlog.finest(\"Creating\");");
   71.26                      }
   71.27 @@ -1138,6 +1138,7 @@
   71.28              pw.println("/* This file is an automatically generated file, please do not edit this file, modify the XlibParser.java file instead !*/\n" );
   71.29              pw.println("#include <X11/Xlib.h>\n#include <X11/Xutil.h>\n#include <X11/Xos.h>\n#include <X11/Xatom.h>\n#include <stdio.h>\n");
   71.30              pw.println("#include <X11/extensions/Xdbe.h>");
   71.31 +            pw.println("#include <X11/XKBlib.h>");
   71.32              pw.println("#include \"awt_p.h\"");
   71.33              pw.println("#include \"color.h\"");
   71.34              pw.println("#include \"colordata.h\"");
    72.1 --- a/src/solaris/classes/sun/awt/X11/generator/sizes.64-solaris-i386	Tue Apr 14 00:05:07 2009 -0700
    72.2 +++ b/src/solaris/classes/sun/awt/X11/generator/sizes.64-solaris-i386	Tue Apr 14 04:21:02 2009 -0700
    72.3 @@ -16,10 +16,38 @@
    72.4  XIMStringConversionCallbackStruct.factor	10
    72.5  XIMStringConversionCallbackStruct.text	16
    72.6  XIMStringConversionCallbackStruct	24
    72.7 +XkbNewKeyboardNotifyEvent.type	0
    72.8 +XkbNewKeyboardNotifyEvent.serial	8
    72.9 +XkbNewKeyboardNotifyEvent.send_event	16
   72.10 +XkbNewKeyboardNotifyEvent.display	24
   72.11 +XkbNewKeyboardNotifyEvent.time	32
   72.12 +XkbNewKeyboardNotifyEvent.xkb_type	40
   72.13 +XkbNewKeyboardNotifyEvent.device	44
   72.14 +XkbNewKeyboardNotifyEvent.old_device	48
   72.15 +XkbNewKeyboardNotifyEvent.min_key_code	52
   72.16 +XkbNewKeyboardNotifyEvent.max_key_code	56
   72.17 +XkbNewKeyboardNotifyEvent.old_min_key_code	60
   72.18 +XkbNewKeyboardNotifyEvent.old_max_key_code	64
   72.19 +XkbNewKeyboardNotifyEvent.changed	68
   72.20 +XkbNewKeyboardNotifyEvent.req_major	72
   72.21 +XkbNewKeyboardNotifyEvent.req_minor	73
   72.22 +XkbNewKeyboardNotifyEvent	80
   72.23  XTimeCoord.time	0
   72.24  XTimeCoord.x	8
   72.25  XTimeCoord.y	10
   72.26  XTimeCoord	16
   72.27 +XkbCompatMapNotifyEvent.type	0
   72.28 +XkbCompatMapNotifyEvent.serial	8
   72.29 +XkbCompatMapNotifyEvent.send_event	16
   72.30 +XkbCompatMapNotifyEvent.display	24
   72.31 +XkbCompatMapNotifyEvent.time	32
   72.32 +XkbCompatMapNotifyEvent.xkb_type	40
   72.33 +XkbCompatMapNotifyEvent.device	44
   72.34 +XkbCompatMapNotifyEvent.changed_groups	48
   72.35 +XkbCompatMapNotifyEvent.first_si	52
   72.36 +XkbCompatMapNotifyEvent.num_si	56
   72.37 +XkbCompatMapNotifyEvent.num_total_si	60
   72.38 +XkbCompatMapNotifyEvent	64
   72.39  XIMStatusDrawCallbackStruct.type	0
   72.40  XIMStatusDrawCallbackStruct.data	8
   72.41  XIMStatusDrawCallbackStruct	16
   72.42 @@ -289,6 +317,22 @@
   72.43  XVisualInfo.colormap_size	56
   72.44  XVisualInfo.bits_per_rgb	60
   72.45  XVisualInfo	64
   72.46 +XkbControlsNotifyEvent.type	0
   72.47 +XkbControlsNotifyEvent.serial	8
   72.48 +XkbControlsNotifyEvent.send_event	16
   72.49 +XkbControlsNotifyEvent.display	24
   72.50 +XkbControlsNotifyEvent.time	32
   72.51 +XkbControlsNotifyEvent.xkb_type	40
   72.52 +XkbControlsNotifyEvent.device	44
   72.53 +XkbControlsNotifyEvent.changed_ctrls	48
   72.54 +XkbControlsNotifyEvent.enabled_ctrls	52
   72.55 +XkbControlsNotifyEvent.enabled_ctrl_changes	56
   72.56 +XkbControlsNotifyEvent.num_groups	60
   72.57 +XkbControlsNotifyEvent.keycode	64
   72.58 +XkbControlsNotifyEvent.event_type	65
   72.59 +XkbControlsNotifyEvent.req_major	66
   72.60 +XkbControlsNotifyEvent.req_minor	67
   72.61 +XkbControlsNotifyEvent	72
   72.62  PropMwmHints.flags	0
   72.63  PropMwmHints.functions	8
   72.64  PropMwmHints.decorations	16
   72.65 @@ -310,8 +354,26 @@
   72.66  XAnyEvent.display	24
   72.67  XAnyEvent.window	32
   72.68  XAnyEvent	40
   72.69 +XkbIndicatorNotifyEvent.type	0
   72.70 +XkbIndicatorNotifyEvent.serial	8
   72.71 +XkbIndicatorNotifyEvent.send_event	16
   72.72 +XkbIndicatorNotifyEvent.display	24
   72.73 +XkbIndicatorNotifyEvent.time	32
   72.74 +XkbIndicatorNotifyEvent.xkb_type	40
   72.75 +XkbIndicatorNotifyEvent.device	44
   72.76 +XkbIndicatorNotifyEvent.changed	48
   72.77 +XkbIndicatorNotifyEvent.state	52
   72.78 +XkbIndicatorNotifyEvent	56
   72.79  XIMPreeditStateNotifyCallbackStruct.state	0
   72.80  XIMPreeditStateNotifyCallbackStruct	8
   72.81 +XkbAnyEvent.type	0
   72.82 +XkbAnyEvent.serial	8
   72.83 +XkbAnyEvent.send_event	16
   72.84 +XkbAnyEvent.display	24
   72.85 +XkbAnyEvent.time	32
   72.86 +XkbAnyEvent.xkb_type	40
   72.87 +XkbAnyEvent.device	44
   72.88 +XkbAnyEvent	48
   72.89  XMotionEvent.type	0
   72.90  XMotionEvent.serial	8
   72.91  XMotionEvent.send_event	16
   72.92 @@ -334,6 +396,23 @@
   72.93  XIMStyles.count_styles	0
   72.94  XIMStyles.supported_styles	8
   72.95  XIMStyles	16
   72.96 +XkbExtensionDeviceNotifyEvent.type	0
   72.97 +XkbExtensionDeviceNotifyEvent.serial	8
   72.98 +XkbExtensionDeviceNotifyEvent.send_event	16
   72.99 +XkbExtensionDeviceNotifyEvent.display	24
  72.100 +XkbExtensionDeviceNotifyEvent.time	32
  72.101 +XkbExtensionDeviceNotifyEvent.xkb_type	40
  72.102 +XkbExtensionDeviceNotifyEvent.device	44
  72.103 +XkbExtensionDeviceNotifyEvent.reason	48
  72.104 +XkbExtensionDeviceNotifyEvent.supported	52
  72.105 +XkbExtensionDeviceNotifyEvent.unsupported	56
  72.106 +XkbExtensionDeviceNotifyEvent.first_btn	60
  72.107 +XkbExtensionDeviceNotifyEvent.num_btns	64
  72.108 +XkbExtensionDeviceNotifyEvent.leds_defined	68
  72.109 +XkbExtensionDeviceNotifyEvent.led_state	72
  72.110 +XkbExtensionDeviceNotifyEvent.led_class	76
  72.111 +XkbExtensionDeviceNotifyEvent.led_id	80
  72.112 +XkbExtensionDeviceNotifyEvent	88
  72.113  XwcTextItem.chars	0
  72.114  XwcTextItem.nchars	8
  72.115  XwcTextItem.delta	12
  72.116 @@ -419,6 +498,20 @@
  72.117  XKeyEvent.keycode	84
  72.118  XKeyEvent.same_screen	88
  72.119  XKeyEvent	96
  72.120 +XkbActionMessageEvent.type	0
  72.121 +XkbActionMessageEvent.serial	8
  72.122 +XkbActionMessageEvent.send_event	16
  72.123 +XkbActionMessageEvent.display	24
  72.124 +XkbActionMessageEvent.time	32
  72.125 +XkbActionMessageEvent.xkb_type	40
  72.126 +XkbActionMessageEvent.device	44
  72.127 +XkbActionMessageEvent.keycode	48
  72.128 +XkbActionMessageEvent.press	52
  72.129 +XkbActionMessageEvent.key_event_follows	56
  72.130 +XkbActionMessageEvent.group	60
  72.131 +XkbActionMessageEvent.mods	64
  72.132 +XkbActionMessageEvent.message	68
  72.133 +XkbActionMessageEvent	80
  72.134  XdbeSwapInfo.swap_window	0
  72.135  XdbeSwapInfo.swap_action	8
  72.136  XdbeSwapInfo	16
  72.137 @@ -458,6 +551,18 @@
  72.138  XOMOrientation.num_orientation	0
  72.139  XOMOrientation.orientation	8
  72.140  XOMOrientation	16
  72.141 +XkbAccessXNotifyEvent.type	0
  72.142 +XkbAccessXNotifyEvent.serial	8
  72.143 +XkbAccessXNotifyEvent.send_event	16
  72.144 +XkbAccessXNotifyEvent.display	24
  72.145 +XkbAccessXNotifyEvent.time	32
  72.146 +XkbAccessXNotifyEvent.xkb_type	40
  72.147 +XkbAccessXNotifyEvent.device	44
  72.148 +XkbAccessXNotifyEvent.detail	48
  72.149 +XkbAccessXNotifyEvent.keycode	52
  72.150 +XkbAccessXNotifyEvent.sk_delay	56
  72.151 +XkbAccessXNotifyEvent.debounce_delay	60
  72.152 +XkbAccessXNotifyEvent	64
  72.153  XWindowAttributes.x	0
  72.154  XWindowAttributes.y	4
  72.155  XWindowAttributes.width	8
  72.156 @@ -528,6 +633,33 @@
  72.157  awtImageData.clrdata	16
  72.158  awtImageData.convert	48
  72.159  awtImageData	560
  72.160 +XkbStateNotifyEvent.type	0
  72.161 +XkbStateNotifyEvent.serial	8
  72.162 +XkbStateNotifyEvent.send_event	16
  72.163 +XkbStateNotifyEvent.display	24
  72.164 +XkbStateNotifyEvent.time	32
  72.165 +XkbStateNotifyEvent.xkb_type	40
  72.166 +XkbStateNotifyEvent.device	44
  72.167 +XkbStateNotifyEvent.changed	48
  72.168 +XkbStateNotifyEvent.group	52
  72.169 +XkbStateNotifyEvent.base_group	56
  72.170 +XkbStateNotifyEvent.latched_group	60
  72.171 +XkbStateNotifyEvent.locked_group	64
  72.172 +XkbStateNotifyEvent.mods	68
  72.173 +XkbStateNotifyEvent.base_mods	72
  72.174 +XkbStateNotifyEvent.latched_mods	76
  72.175 +XkbStateNotifyEvent.locked_mods	80
  72.176 +XkbStateNotifyEvent.compat_state	84
  72.177 +XkbStateNotifyEvent.grab_mods	88
  72.178 +XkbStateNotifyEvent.compat_grab_mods	89
  72.179 +XkbStateNotifyEvent.lookup_mods	90
  72.180 +XkbStateNotifyEvent.compat_lookup_mods	91
  72.181 +XkbStateNotifyEvent.ptr_buttons	92
  72.182 +XkbStateNotifyEvent.keycode	96
  72.183 +XkbStateNotifyEvent.event_type	97
  72.184 +XkbStateNotifyEvent.req_major	98
  72.185 +XkbStateNotifyEvent.req_minor	99
  72.186 +XkbStateNotifyEvent	104
  72.187  XExposeEvent.type	0
  72.188  XExposeEvent.serial	8
  72.189  XExposeEvent.send_event	16
  72.190 @@ -539,6 +671,33 @@
  72.191  XExposeEvent.height	52
  72.192  XExposeEvent.count	56
  72.193  XExposeEvent	64
  72.194 +XkbMapNotifyEvent.type	0
  72.195 +XkbMapNotifyEvent.serial	8
  72.196 +XkbMapNotifyEvent.send_event	16
  72.197 +XkbMapNotifyEvent.display	24
  72.198 +XkbMapNotifyEvent.time	32
  72.199 +XkbMapNotifyEvent.xkb_type	40
  72.200 +XkbMapNotifyEvent.device	44
  72.201 +XkbMapNotifyEvent.changed	48
  72.202 +XkbMapNotifyEvent.flags	52
  72.203 +XkbMapNotifyEvent.first_type	56
  72.204 +XkbMapNotifyEvent.num_types	60
  72.205 +XkbMapNotifyEvent.min_key_code	64
  72.206 +XkbMapNotifyEvent.max_key_code	65
  72.207 +XkbMapNotifyEvent.first_key_sym	66
  72.208 +XkbMapNotifyEvent.first_key_act	67
  72.209 +XkbMapNotifyEvent.first_key_behavior	68
  72.210 +XkbMapNotifyEvent.first_key_explicit	69
  72.211 +XkbMapNotifyEvent.first_modmap_key	70
  72.212 +XkbMapNotifyEvent.first_vmodmap_key	71
  72.213 +XkbMapNotifyEvent.num_key_syms	72
  72.214 +XkbMapNotifyEvent.num_key_acts	76
  72.215 +XkbMapNotifyEvent.num_key_behaviors	80
  72.216 +XkbMapNotifyEvent.num_key_explicit	84
  72.217 +XkbMapNotifyEvent.num_modmap_keys	88
  72.218 +XkbMapNotifyEvent.num_vmodmap_keys	92
  72.219 +XkbMapNotifyEvent.vmods	96
  72.220 +XkbMapNotifyEvent	104
  72.221  XGCValues.function	0
  72.222  XGCValues.plane_mask	8
  72.223  XGCValues.foreground	16
  72.224 @@ -583,6 +742,22 @@
  72.225  XMapEvent.window	40
  72.226  XMapEvent.override_redirect	48
  72.227  XMapEvent	56
  72.228 +XkbBellNotifyEvent.type	0
  72.229 +XkbBellNotifyEvent.serial	8
  72.230 +XkbBellNotifyEvent.send_event	16
  72.231 +XkbBellNotifyEvent.display	24
  72.232 +XkbBellNotifyEvent.time	32
  72.233 +XkbBellNotifyEvent.xkb_type	40
  72.234 +XkbBellNotifyEvent.device	44
  72.235 +XkbBellNotifyEvent.percent	48
  72.236 +XkbBellNotifyEvent.pitch	52
  72.237 +XkbBellNotifyEvent.duration	56
  72.238 +XkbBellNotifyEvent.bell_class	60
  72.239 +XkbBellNotifyEvent.bell_id	64
  72.240 +XkbBellNotifyEvent.name	72
  72.241 +XkbBellNotifyEvent.window	80
  72.242 +XkbBellNotifyEvent.event_only	88
  72.243 +XkbBellNotifyEvent	96
  72.244  XIMStringConversionText.length	0
  72.245  XIMStringConversionText.feedback	8
  72.246  XIMStringConversionText.encoding_is_wchar	16
  72.247 @@ -596,6 +771,21 @@
  72.248  XKeyboardState.global_auto_repeat	24
  72.249  XKeyboardState.auto_repeats	28
  72.250  XKeyboardState	64
  72.251 +XkbEvent.type	0
  72.252 +XkbEvent.any	0
  72.253 +XkbEvent.new_kbd	0
  72.254 +XkbEvent.map	0
  72.255 +XkbEvent.state	0
  72.256 +XkbEvent.ctrls	0
  72.257 +XkbEvent.indicators	0
  72.258 +XkbEvent.names	0
  72.259 +XkbEvent.compat	0
  72.260 +XkbEvent.bell	0
  72.261 +XkbEvent.message	0
  72.262 +XkbEvent.accessx	0
  72.263 +XkbEvent.device	0
  72.264 +XkbEvent.core	0
  72.265 +XkbEvent	192
  72.266  XPoint.x	0
  72.267  XPoint.y	2
  72.268  XPoint	4
  72.269 @@ -633,6 +823,26 @@
  72.270  XRectangle.width	4
  72.271  XRectangle.height	6
  72.272  XRectangle	8
  72.273 +XkbNamesNotifyEvent.type	0
  72.274 +XkbNamesNotifyEvent.serial	8
  72.275 +XkbNamesNotifyEvent.send_event	16
  72.276 +XkbNamesNotifyEvent.display	24
  72.277 +XkbNamesNotifyEvent.time	32
  72.278 +XkbNamesNotifyEvent.xkb_type	40
  72.279 +XkbNamesNotifyEvent.device	44
  72.280 +XkbNamesNotifyEvent.changed	48
  72.281 +XkbNamesNotifyEvent.first_type	52
  72.282 +XkbNamesNotifyEvent.num_types	56
  72.283 +XkbNamesNotifyEvent.first_lvl	60
  72.284 +XkbNamesNotifyEvent.num_lvls	64
  72.285 +XkbNamesNotifyEvent.num_aliases	68
  72.286 +XkbNamesNotifyEvent.num_radio_groups	72
  72.287 +XkbNamesNotifyEvent.changed_vmods	76
  72.288 +XkbNamesNotifyEvent.changed_groups	80
  72.289 +XkbNamesNotifyEvent.changed_indicators	84
  72.290 +XkbNamesNotifyEvent.first_key	88
  72.291 +XkbNamesNotifyEvent.num_keys	92
  72.292 +XkbNamesNotifyEvent	96
  72.293  XCreateWindowEvent.type	0
  72.294  XCreateWindowEvent.serial	8
  72.295  XCreateWindowEvent.send_event	16
  72.296 @@ -774,7 +984,8 @@
  72.297  AwtGraphicsConfigData.pixelStride	136
  72.298  AwtGraphicsConfigData.color_data	144
  72.299  AwtGraphicsConfigData.glxInfo	152
  72.300 -AwtGraphicsConfigData	160
  72.301 +AwtGraphicsConfigData.isTranslucencySupported	160
  72.302 +AwtGraphicsConfigData	168
  72.303  XColor.pixel	0
  72.304  XColor.red	8
  72.305  XColor.green	10
    73.1 --- a/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt	Tue Apr 14 00:05:07 2009 -0700
    73.2 +++ b/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt	Tue Apr 14 04:21:02 2009 -0700
    73.3 @@ -119,7 +119,7 @@
    73.4      length	short
    73.5      feedback	pointer
    73.6      encoding_is_wchar	Bool
    73.7 -    string      pointer 
    73.8 +    string      pointer
    73.9  XKeymapEvent
   73.10      type	int
   73.11      serial	long
   73.12 @@ -574,7 +574,7 @@
   73.13      f.get_pixel pointer
   73.14      f.put_pixel pointer
   73.15      f.sub_image pointer
   73.16 -    f.add_pixel pointer    
   73.17 +    f.add_pixel pointer
   73.18  XIMValuesList
   73.19      count_values	short
   73.20      supported_values	pointer
   73.21 @@ -728,7 +728,7 @@
   73.22      awt_icmLUT pointer int
   73.23      awt_icmLUT2Colors pointer byte
   73.24      img_grays pointer byte
   73.25 -    img_clr_tbl pointer byte 
   73.26 +    img_clr_tbl pointer byte
   73.27      img_oda_red pointer byte
   73.28      img_oda_green pointer byte
   73.29      img_oda_blue pointer byte
   73.30 @@ -750,6 +750,7 @@
   73.31      pixelStride int
   73.32      color_data pointer ColorData
   73.33      glxInfo pointer
   73.34 +    isTranslucencySupported int
   73.35  
   73.36  AwtScreenData
   73.37      numConfigs int
   73.38 @@ -797,3 +798,227 @@
   73.39     xerror struct XErrorEvent
   73.40     xkeymap struct XKeymapEvent
   73.41     pad array long 24
   73.42 +
   73.43 +XkbAnyEvent
   73.44 +    type  int
   73.45 +    serial  ulong
   73.46 +    send_event  Bool
   73.47 +    display  long
   73.48 +    time  ulong
   73.49 +    xkb_type  int
   73.50 +    device  int
   73.51 +
   73.52 +XkbNewKeyboardNotifyEvent
   73.53 +    type  int
   73.54 +    serial  ulong
   73.55 +    send_event  Bool
   73.56 +    display  long
   73.57 +    time  ulong
   73.58 +    xkb_type  int
   73.59 +    device  int
   73.60 +    old_device  int
   73.61 +    min_key_code  int
   73.62 +    max_key_code  int
   73.63 +    old_min_key_code  int
   73.64 +    old_max_key_code  int
   73.65 +    changed  int
   73.66 +    req_major  byte
   73.67 +    req_minor  byte
   73.68 +
   73.69 +XkbMapNotifyEvent
   73.70 +    type  int
   73.71 +    serial  ulong
   73.72 +    send_event  Bool
   73.73 +    display  long
   73.74 +    time  ulong
   73.75 +    xkb_type  int
   73.76 +    device  int
   73.77 +    changed  int
   73.78 +    flags  int
   73.79 +    first_type  int
   73.80 +    num_types  int
   73.81 +    min_key_code  int
   73.82 +    max_key_code  int
   73.83 +    first_key_sym  int
   73.84 +    first_key_act  int
   73.85 +    first_key_behavior  int
   73.86 +    first_key_explicit  int
   73.87 +    first_modmap_key  int
   73.88 +    first_vmodmap_key  int
   73.89 +    num_key_syms  int
   73.90 +    num_key_acts  int
   73.91 +    num_key_behaviors  int
   73.92 +    num_key_explicit  int
   73.93 +    num_modmap_keys  int
   73.94 +    num_vmodmap_keys  int
   73.95 +    vmods  int
   73.96 +
   73.97 +XkbStateNotifyEvent
   73.98 +    type  int
   73.99 +    serial  ulong
  73.100 +    send_event  Bool
  73.101 +    display  long
  73.102 +    time  ulong
  73.103 +    xkb_type  int
  73.104 +    device  int
  73.105 +    changed  int
  73.106 +    group  int
  73.107 +    base_group  int
  73.108 +    latched_group  int
  73.109 +    locked_group  int
  73.110 +    mods  int
  73.111 +    base_mods  int
  73.112 +    latched_mods  int
  73.113 +    locked_mods  int
  73.114 +    compat_state  int
  73.115 +    grab_mods  byte
  73.116 +    compat_grab_mods  byte
  73.117 +    lookup_mods  byte
  73.118 +    compat_lookup_mods  byte
  73.119 +    ptr_buttons  int
  73.120 +    keycode  int
  73.121 +    event_type  byte
  73.122 +    req_major  byte
  73.123 +    req_minor  byte
  73.124 +
  73.125 +XkbControlsNotifyEvent
  73.126 +    type  int
  73.127 +    serial  ulong
  73.128 +    send_event  Bool
  73.129 +    display  long
  73.130 +    time  ulong
  73.131 +    xkb_type  int
  73.132 +    device  int
  73.133 +    changed_ctrls  int
  73.134 +    enabled_ctrls  int
  73.135 +    enabled_ctrl_changes  int
  73.136 +    num_groups  int
  73.137 +    keycode  int
  73.138 +    event_type  byte
  73.139 +    req_major  byte
  73.140 +    req_minor  byte
  73.141 +
  73.142 +XkbIndicatorNotifyEvent
  73.143 +    type  int
  73.144 +    serial  ulong
  73.145 +    send_event  Bool
  73.146 +    display  long
  73.147 +    time  ulong
  73.148 +    xkb_type  int
  73.149 +    device  int
  73.150 +    changed  int
  73.151 +    state  int
  73.152 +
  73.153 +XkbNamesNotifyEvent
  73.154 +    type  int
  73.155 +    serial  ulong
  73.156 +    send_event  Bool
  73.157 +    display  long
  73.158 +    time  ulong
  73.159 +    xkb_type  int
  73.160 +    device  int
  73.161 +    changed  int
  73.162 +    first_type  int
  73.163 +    num_types  int
  73.164 +    first_lvl  int
  73.165 +    num_lvls  int
  73.166 +    num_aliases  int
  73.167 +    num_radio_groups  int
  73.168 +    changed_vmods  int
  73.169 +    changed_groups  int
  73.170 +    changed_indicators  int
  73.171 +    first_key  int
  73.172 +    num_keys  int
  73.173 +
  73.174 +
  73.175 +XkbCompatMapNotifyEvent
  73.176 +    type  int
  73.177 +    serial  ulong
  73.178 +    send_event  Bool
  73.179 +    display  long
  73.180 +    time  ulong
  73.181 +    xkb_type  int
  73.182 +    device  int
  73.183 +    changed_groups  int
  73.184 +    first_si  int
  73.185 +    num_si  int
  73.186 +    num_total_si  int
  73.187 +
  73.188 +XkbBellNotifyEvent
  73.189 +    type  int
  73.190 +    serial  ulong
  73.191 +    send_event  Bool
  73.192 +    display  long
  73.193 +    time  ulong
  73.194 +    xkb_type  int
  73.195 +    device  int
  73.196 +    percent  int
  73.197 +    pitch  int
  73.198 +    duration  int
  73.199 +    bell_class  int
  73.200 +    bell_id  int
  73.201 +    name  Atom
  73.202 +    window  long
  73.203 +    event_only  Bool
  73.204 +
  73.205 +XkbActionMessageEvent
  73.206 +    type  int
  73.207 +    serial  ulong
  73.208 +    send_event  Bool
  73.209 +    display  long
  73.210 +    time  ulong
  73.211 +    xkb_type  int
  73.212 +    device  int
  73.213 +    keycode  int
  73.214 +    press  Bool
  73.215 +    key_event_follows  Bool
  73.216 +    group  int
  73.217 +    mods  int
  73.218 +    message array byte 7 //XkbActionMessageLength+1
  73.219 +
  73.220 +XkbAccessXNotifyEvent
  73.221 +    type  int
  73.222 +    serial  ulong
  73.223 +    send_event  Bool
  73.224 +    display  long
  73.225 +    time  ulong
  73.226 +    xkb_type  int
  73.227 +    device  int
  73.228 +    detail  int
  73.229 +    keycode  int
  73.230 +    sk_delay  int
  73.231 +    debounce_delay  int
  73.232 +
  73.233 +XkbExtensionDeviceNotifyEvent
  73.234 +    type  int
  73.235 +    serial  ulong
  73.236 +    send_event  Bool
  73.237 +    display  long
  73.238 +    time  ulong
  73.239 +    xkb_type  int
  73.240 +    device  int
  73.241 +    reason  int
  73.242 +    supported  int
  73.243 +    unsupported  int
  73.244 +    first_btn  int
  73.245 +    num_btns  int
  73.246 +    leds_defined  int
  73.247 +    led_state  int
  73.248 +    led_class  int
  73.249 +    led_id  int
  73.250 +
  73.251 +XkbEvent
  73.252 +    type  int
  73.253 +    any  struct XkbAnyEvent
  73.254 +    new_kbd  struct XkbNewKeyboardNotifyEvent
  73.255 +    map  struct XkbMapNotifyEvent
  73.256 +    state  struct XkbStateNotifyEvent
  73.257 +    ctrls  struct XkbControlsNotifyEvent
  73.258 +    indicators  struct XkbIndicatorNotifyEvent
  73.259 +    names  struct XkbNamesNotifyEvent
  73.260 +    compat  struct XkbCompatMapNotifyEvent
  73.261 +    bell  struct XkbBellNotifyEvent
  73.262 +    message  struct XkbActionMessageEvent
  73.263 +    accessx  struct XkbAccessXNotifyEvent
  73.264 +    device  struct XkbExtensionDeviceNotifyEvent
  73.265 +    core  struct XEvent
    74.1 --- a/src/solaris/classes/sun/awt/X11/keysym2ucs.h	Tue Apr 14 00:05:07 2009 -0700
    74.2 +++ b/src/solaris/classes/sun/awt/X11/keysym2ucs.h	Tue Apr 14 04:21:02 2009 -0700
    74.3 @@ -1,5 +1,5 @@
    74.4  /*
    74.5 - * Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
    74.6 + * Copyright 2005-2009 Sun Microsystems, Inc.  All Rights Reserved.
    74.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    74.8   *
    74.9   * This code is free software; you can redistribute it and/or modify it
   74.10 @@ -39,7 +39,7 @@
   74.11   */
   74.12  
   74.13  tojava /*
   74.14 -tojava  * Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
   74.15 +tojava  * Copyright 2005-2009 Sun Microsystems, Inc.  All Rights Reserved.
   74.16  tojava  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   74.17  tojava  *
   74.18  tojava  * This code is free software; you can redistribute it and/or modify it
   74.19 @@ -127,14 +127,47 @@
   74.20  tojava         Character ch = keysym2UCSHash.get(ks);
   74.21  tojava         return ch == null ? (char)0 : ch.charValue();
   74.22  tojava     }
   74.23 +tojava     static long xkeycode2keysym_noxkb(XKeyEvent ev, int ndx) {
   74.24 +tojava         XToolkit.awtLock();
   74.25 +tojava         try {
   74.26 +tojava             return XlibWrapper.XKeycodeToKeysym(ev.get_display(), ev.get_keycode(), ndx);
   74.27 +tojava         } finally {
   74.28 +tojava             XToolkit.awtUnlock();
   74.29 +tojava         }
   74.30 +tojava     }
   74.31 +tojava     static long xkeycode2keysym_xkb(XKeyEvent ev, int ndx) {
   74.32 +tojava         XToolkit.awtLock();
   74.33 +tojava         try {
   74.34 +tojava             int mods = ev.get_state();
   74.35 +tojava             if ((ndx == 0) && ((mods & XConstants.ShiftMask) != 0)) {
   74.36 +tojava                 // I don't know all possible meanings of 'ndx' in case of XKB
   74.37 +tojava                 // and don't want to speculate. But this particular case
   74.38 +tojava                 // clearly means that caller needs a so called primary keysym.
   74.39 +tojava                 mods ^= XConstants.ShiftMask;
   74.40 +tojava             }
   74.41 +tojava             XlibWrapper.XkbTranslateKeyCode(XToolkit.getXKBKbdDesc(), ev.get_keycode(),
   74.42 +tojava                        mods, XlibWrapper.iarg1, XlibWrapper.larg3);
   74.43 +tojava             //XXX unconsumed modifiers?
   74.44 +tojava             return Native.getLong(XlibWrapper.larg3);
   74.45 +tojava         } finally {
   74.46 +tojava             XToolkit.awtUnlock();
   74.47 +tojava         }
   74.48 +tojava     }
   74.49  tojava     static long xkeycode2keysym(XKeyEvent ev, int ndx) {
   74.50  tojava         XToolkit.awtLock();
   74.51  tojava         try {
   74.52 -tojava             return XlibWrapper.XKeycodeToKeysym(ev.get_display(), ev.get_keycode(), ndx );
   74.53 +tojava             if (XToolkit.canUseXKBCalls()) {
   74.54 +tojava                 return xkeycode2keysym_xkb(ev, ndx);
   74.55 +tojava             }else{
   74.56 +tojava                 return xkeycode2keysym_noxkb(ev, ndx);
   74.57 +tojava             }
   74.58  tojava         } finally {
   74.59  tojava             XToolkit.awtUnlock();
   74.60  tojava         }
   74.61  tojava     }
   74.62 +tojava     static long xkeycode2primary_keysym(XKeyEvent ev) {
   74.63 +tojava         return xkeycode2keysym(ev, 0);
   74.64 +tojava     }
   74.65  tojava     public static boolean isKPEvent( XKeyEvent ev )
   74.66  tojava     {
   74.67  tojava         // Xsun without XKB uses keysymarray[2] keysym to determine if it is KP event.
   74.68 @@ -236,6 +269,27 @@
   74.69  tojava         Keysym2JavaKeycode jkc = getJavaKeycode( ev );
   74.70  tojava         return jkc == null ? java.awt.event.KeyEvent.VK_UNDEFINED : jkc.getJavaKeycode();
   74.71  tojava     }
   74.72 +tojava     /**
   74.73 +tojava      * Return an integer java keycode apprx as it was before extending keycodes range.
   74.74 +tojava      * This call would ignore for instance XKB and process whatever is on the bottom
   74.75 +tojava      * of keysym stack. Result will not depend on actual locale, will differ between
   74.76 +tojava      * dual/multiple keyboard setup systems (e.g. English+Russian vs French+Russian)
   74.77 +tojava      * but will be someway compatible with old releases.
   74.78 +tojava      */
   74.79 +tojava     static int getLegacyJavaKeycodeOnly( XKeyEvent ev ) {
   74.80 +tojava         long keysym = XConstants.NoSymbol;
   74.81 +tojava         int ndx = 0;
   74.82 +tojava         if( (ev.get_state() & XToolkit.numLockMask) != 0 &&
   74.83 +tojava              isKPEvent(ev)) {
   74.84 +tojava             keysym = getKeypadKeysym( ev );
   74.85 +tojava         } else {
   74.86 +tojava             // we only need primary-layer keysym to derive a java keycode.
   74.87 +tojava             ndx = 0;
   74.88 +tojava             keysym = xkeycode2keysym_noxkb(ev, ndx);
   74.89 +tojava         }
   74.90 +tojava         Keysym2JavaKeycode jkc = keysym2JavaKeycodeHash.get( keysym );
   74.91 +tojava         return jkc == null ? java.awt.event.KeyEvent.VK_UNDEFINED : jkc.getJavaKeycode();
   74.92 +tojava     }
   74.93  tojava     static long javaKeycode2Keysym( int jkey ) {
   74.94  tojava         Long ks = javaKeycode2KeysymHash.get( jkey );
   74.95  tojava         return  (ks == null ? 0 : ks.longValue());
    75.1 Binary file src/solaris/classes/sun/awt/X11/security-icon-bw16.png has changed
    76.1 Binary file src/solaris/classes/sun/awt/X11/security-icon-bw24.png has changed
    77.1 Binary file src/solaris/classes/sun/awt/X11/security-icon-bw32.png has changed
    78.1 Binary file src/solaris/classes/sun/awt/X11/security-icon-bw48.png has changed
    79.1 Binary file src/solaris/classes/sun/awt/X11/security-icon-interim16.png has changed
    80.1 Binary file src/solaris/classes/sun/awt/X11/security-icon-interim24.png has changed
    81.1 Binary file src/solaris/classes/sun/awt/X11/security-icon-interim32.png has changed
    82.1 Binary file src/solaris/classes/sun/awt/X11/security-icon-interim48.png has changed
    83.1 Binary file src/solaris/classes/sun/awt/X11/security-icon-yellow16.png has changed
    84.1 Binary file src/solaris/classes/sun/awt/X11/security-icon-yellow24.png has changed
    85.1 Binary file src/solaris/classes/sun/awt/X11/security-icon-yellow32.png has changed
    86.1 Binary file src/solaris/classes/sun/awt/X11/security-icon-yellow48.png has changed
    87.1 --- a/src/solaris/classes/sun/awt/X11GraphicsConfig.java	Tue Apr 14 00:05:07 2009 -0700
    87.2 +++ b/src/solaris/classes/sun/awt/X11GraphicsConfig.java	Tue Apr 14 04:21:02 2009 -0700
    87.3 @@ -1,5 +1,5 @@
    87.4  /*
    87.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    87.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    87.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    87.8   *
    87.9   * This code is free software; you can redistribute it and/or modify it
   87.10 @@ -450,4 +450,13 @@
   87.11              return 0x00; // UNDEFINED
   87.12          }
   87.13      }
   87.14 +
   87.15 +    /*
   87.16 +    @Override
   87.17 +    */
   87.18 +    public boolean isTranslucencyCapable() {
   87.19 +        return isTranslucencyCapable(getAData());
   87.20 +    }
   87.21 +
   87.22 +    private native boolean isTranslucencyCapable(long x11ConfigData);
   87.23  }
    88.1 --- a/src/solaris/classes/sun/awt/motif/MToolkit.java	Tue Apr 14 00:05:07 2009 -0700
    88.2 +++ b/src/solaris/classes/sun/awt/motif/MToolkit.java	Tue Apr 14 04:21:02 2009 -0700
    88.3 @@ -336,6 +336,10 @@
    88.4          return null;
    88.5      }
    88.6  
    88.7 +    public KeyboardFocusManagerPeer createKeyboardFocusManagerPeer(KeyboardFocusManager manager) {
    88.8 +        return null;
    88.9 +    }
   88.10 +
   88.11      //public MEmbeddedFramePeer createEmbeddedFrame(MEmbeddedFrame target)
   88.12      //{
   88.13          //MEmbeddedFramePeer peer = new MEmbeddedFramePeer(target);
    89.1 --- a/src/solaris/native/sun/awt/awt_Component.h	Tue Apr 14 00:05:07 2009 -0700
    89.2 +++ b/src/solaris/native/sun/awt/awt_Component.h	Tue Apr 14 04:21:02 2009 -0700
    89.3 @@ -41,7 +41,6 @@
    89.4      jfieldID appContext;
    89.5      jmethodID getParent;
    89.6      jmethodID getLocationOnScreen;
    89.7 -    jmethodID resetGCMID;
    89.8  };
    89.9  
   89.10  /* field and method IDs for Container */
   89.11 @@ -65,7 +64,3 @@
   89.12  extern void processTree(Widget from, Widget to, Boolean action);
   89.13  #endif // HEADLESS
   89.14  
   89.15 -/* fieldIDs for Canvas fields that may be accessed from C */
   89.16 -struct CanvasIDs {
   89.17 -    jmethodID setGCFromPeerMID;
   89.18 -};
    90.1 --- a/src/solaris/native/sun/awt/awt_GraphicsEnv.c	Tue Apr 14 00:05:07 2009 -0700
    90.2 +++ b/src/solaris/native/sun/awt/awt_GraphicsEnv.c	Tue Apr 14 04:21:02 2009 -0700
    90.3 @@ -1,5 +1,5 @@
    90.4  /*
    90.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    90.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    90.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    90.8   *
    90.9   * This code is free software; you can redistribute it and/or modify it
   90.10 @@ -354,6 +354,48 @@
   90.11      return NULL;
   90.12  }
   90.13  
   90.14 +/* Note: until we include the <X11/extensions/Xrender.h> explicitly
   90.15 + * we have to define a couple of things ourselves.
   90.16 + */
   90.17 +typedef unsigned long   PictFormat;
   90.18 +#define PictTypeIndexed             0
   90.19 +#define PictTypeDirect              1
   90.20 +
   90.21 +typedef struct {
   90.22 +    short   red;
   90.23 +    short   redMask;
   90.24 +    short   green;
   90.25 +    short   greenMask;
   90.26 +    short   blue;
   90.27 +    short   blueMask;
   90.28 +    short   alpha;
   90.29 +    short   alphaMask;
   90.30 +} XRenderDirectFormat;
   90.31 +
   90.32 +typedef struct {
   90.33 +    PictFormat      id;
   90.34 +    int         type;
   90.35 +    int         depth;
   90.36 +    XRenderDirectFormat direct;
   90.37 +    Colormap        colormap;
   90.38 +} XRenderPictFormat;
   90.39 +
   90.40 +#define PictFormatID        (1 << 0)
   90.41 +#define PictFormatType      (1 << 1)
   90.42 +#define PictFormatDepth     (1 << 2)
   90.43 +#define PictFormatRed       (1 << 3)
   90.44 +#define PictFormatRedMask   (1 << 4)
   90.45 +#define PictFormatGreen     (1 << 5)
   90.46 +#define PictFormatGreenMask (1 << 6)
   90.47 +#define PictFormatBlue      (1 << 7)
   90.48 +#define PictFormatBlueMask  (1 << 8)
   90.49 +#define PictFormatAlpha     (1 << 9)
   90.50 +#define PictFormatAlphaMask (1 << 10)
   90.51 +#define PictFormatColormap  (1 << 11)
   90.52 +
   90.53 +typedef XRenderPictFormat *
   90.54 +XRenderFindVisualFormatFunc (Display *dpy, _Xconst Visual *visual);
   90.55 +
   90.56  static void
   90.57  getAllConfigs (JNIEnv *env, int screen, AwtScreenDataPtr screenDataPtr) {
   90.58  
   90.59 @@ -367,6 +409,9 @@
   90.60      int ind;
   90.61      char errmsg[128];
   90.62      int xinawareScreen;
   90.63 +    void* xrenderLibHandle = NULL;
   90.64 +    XRenderFindVisualFormatFunc *XRenderFindVisualFormat = NULL;
   90.65 +    int major_opcode, first_event, first_error;
   90.66  
   90.67      if (usingXinerama) {
   90.68          xinawareScreen = 0;
   90.69 @@ -449,6 +494,26 @@
   90.70      graphicsConfigs[0] = defaultConfig;
   90.71      nConfig = 1; /* reserve index 0 for default config */
   90.72  
   90.73 +    // Only use the RENDER extension if it is available on the X server
   90.74 +    if (XQueryExtension(awt_display, "RENDER",
   90.75 +                        &major_opcode, &first_event, &first_error))
   90.76 +    {
   90.77 +        xrenderLibHandle = dlopen("libXrender.so.1", RTLD_LAZY | RTLD_GLOBAL);
   90.78 +
   90.79 +#ifndef __linux__ /* SOLARIS */
   90.80 +        if (xrenderLibHandle == NULL) {
   90.81 +            xrenderLibHandle = dlopen("/usr/sfw/lib/libXrender.so.1",
   90.82 +                                      RTLD_LAZY | RTLD_GLOBAL);
   90.83 +        }
   90.84 +#endif
   90.85 +
   90.86 +        if (xrenderLibHandle != NULL) {
   90.87 +            XRenderFindVisualFormat =
   90.88 +                (XRenderFindVisualFormatFunc*)dlsym(xrenderLibHandle,
   90.89 +                                                    "XRenderFindVisualFormat");
   90.90 +        }
   90.91 +    }
   90.92 +
   90.93      for (i = 0; i < nTrue; i++) {
   90.94          if (XVisualIDFromVisual(pVITrue[i].visual) ==
   90.95              XVisualIDFromVisual(defaultConfig->awt_visInfo.visual) ||
   90.96 @@ -462,6 +527,21 @@
   90.97          graphicsConfigs [ind]->awt_depth = pVITrue [i].depth;
   90.98          memcpy (&graphicsConfigs [ind]->awt_visInfo, &pVITrue [i],
   90.99                  sizeof (XVisualInfo));
  90.100 +       if (XRenderFindVisualFormat != NULL) {
  90.101 +            XRenderPictFormat *format = XRenderFindVisualFormat (awt_display,
  90.102 +                    pVITrue [i].visual);
  90.103 +            if (format &&
  90.104 +                format->type == PictTypeDirect &&
  90.105 +                format->direct.alphaMask)
  90.106 +            {
  90.107 +                graphicsConfigs [ind]->isTranslucencySupported = 1;
  90.108 +            }
  90.109 +        }
  90.110 +    }
  90.111 +
  90.112 +    if (xrenderLibHandle != NULL) {
  90.113 +        dlclose(xrenderLibHandle);
  90.114 +        xrenderLibHandle = NULL;
  90.115      }
  90.116  
  90.117      for (i = 0; i < n8p; i++) {
  90.118 @@ -1506,6 +1586,26 @@
  90.119  }
  90.120  
  90.121  /*
  90.122 + * Class:     sun_awt_X11GraphicsConfig
  90.123 + * Method:    isTranslucencyCapable
  90.124 + * Signature: (J)V
  90.125 + */
  90.126 +JNIEXPORT jboolean JNICALL
  90.127 +Java_sun_awt_X11GraphicsConfig_isTranslucencyCapable
  90.128 +    (JNIEnv *env, jobject this, jlong configData)
  90.129 +{
  90.130 +#ifdef HEADLESS
  90.131 +    return JNI_FALSE;
  90.132 +#else
  90.133 +    AwtGraphicsConfigDataPtr aData = (AwtGraphicsConfigDataPtr)jlong_to_ptr(configData);
  90.134 +    if (aData == NULL) {
  90.135 +        return JNI_FALSE;
  90.136 +    }
  90.137 +    return (jboolean)aData->isTranslucencySupported;
  90.138 +#endif
  90.139 +}
  90.140 +
  90.141 +/*
  90.142   * Class:     sun_awt_X11GraphicsDevice
  90.143   * Method:    isDBESupported
  90.144   * Signature: ()Z
    91.1 --- a/src/solaris/native/sun/awt/awt_Window.h	Tue Apr 14 00:05:07 2009 -0700
    91.2 +++ b/src/solaris/native/sun/awt/awt_Window.h	Tue Apr 14 04:21:02 2009 -0700
    91.3 @@ -28,7 +28,6 @@
    91.4  /* fieldIDs for Window fields that may be accessed from C */
    91.5  struct WindowIDs {
    91.6      jfieldID warningString;
    91.7 -    jmethodID resetGCMID;
    91.8      jfieldID locationByPlatform;
    91.9      jfieldID isAutoRequestFocus;
   91.10  };
    92.1 --- a/src/solaris/native/sun/awt/awt_p.h	Tue Apr 14 00:05:07 2009 -0700
    92.2 +++ b/src/solaris/native/sun/awt/awt_p.h	Tue Apr 14 04:21:02 2009 -0700
    92.3 @@ -1,5 +1,5 @@
    92.4  /*
    92.5 - * Copyright 1995-2005 Sun Microsystems, Inc.  All Rights Reserved.
    92.6 + * Copyright 1995-2009 Sun Microsystems, Inc.  All Rights Reserved.
    92.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    92.8   *
    92.9   * This code is free software; you can redistribute it and/or modify it
   92.10 @@ -135,6 +135,7 @@
   92.11      int         pixelStride;     /* Used in X11SurfaceData.c */
   92.12      ColorData      *color_data;
   92.13      struct _GLXGraphicsConfigInfo *glxInfo;
   92.14 +    int         isTranslucencySupported; /* Uses Xrender to find this out. */
   92.15  } AwtGraphicsConfigData;
   92.16  
   92.17  typedef AwtGraphicsConfigData* AwtGraphicsConfigDataPtr;
    93.1 --- a/src/solaris/native/sun/awt/utility/rect.h	Tue Apr 14 00:05:07 2009 -0700
    93.2 +++ b/src/solaris/native/sun/awt/utility/rect.h	Tue Apr 14 04:21:02 2009 -0700
    93.3 @@ -43,4 +43,15 @@
    93.4  
    93.5  #define RECT_INC_HEIGHT(r)      (r).height++
    93.6  
    93.7 +#if defined(__cplusplus)
    93.8 +extern "C" {
    93.9 +#endif
   93.10 +
   93.11 +int BitmapToYXBandedRectangles(int bitsPerPixel, int width, int height,
   93.12 +        unsigned char * buf, RECT_T * outBuf);
   93.13 +
   93.14 +#if defined(__cplusplus)
   93.15 +}
   93.16 +#endif
   93.17 +
   93.18  #endif // _AWT_RECT_H
    94.1 --- a/src/solaris/native/sun/xawt/XToolkit.c	Tue Apr 14 00:05:07 2009 -0700
    94.2 +++ b/src/solaris/native/sun/xawt/XToolkit.c	Tue Apr 14 04:21:02 2009 -0700
    94.3 @@ -182,9 +182,6 @@
    94.4        (*env)->GetMethodID(env, cls, "getLocationOnScreen_NoTreeLock",
    94.5                           "()Ljava/awt/Point;");
    94.6  
    94.7 -    componentIDs.resetGCMID =
    94.8 -      (*env)->GetMethodID(env, cls, "resetGC", "()V");
    94.9 -
   94.10      keyclass = (*env)->FindClass(env, "java/awt/event/KeyEvent");
   94.11      DASSERT (keyclass != NULL);
   94.12  
   94.13 @@ -197,9 +194,6 @@
   94.14                             "Lsun/awt/AppContext;");
   94.15  
   94.16      (*env)->DeleteLocalRef(env, keyclass);
   94.17 -
   94.18 -    DASSERT(componentIDs.resetGCMID);
   94.19 -
   94.20  }
   94.21  
   94.22  
    95.1 --- a/src/solaris/native/sun/xawt/XlibWrapper.c	Tue Apr 14 00:05:07 2009 -0700
    95.2 +++ b/src/solaris/native/sun/xawt/XlibWrapper.c	Tue Apr 14 04:21:02 2009 -0700
    95.3 @@ -1,5 +1,5 @@
    95.4  /*
    95.5 - * Copyright 2002-2008 Sun Microsystems, Inc.  All Rights Reserved.
    95.6 + * Copyright 2002-2009 Sun Microsystems, Inc.  All Rights Reserved.
    95.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    95.8   *
    95.9   * This code is free software; you can redistribute it and/or modify it
   95.10 @@ -42,7 +42,9 @@
   95.11  #include <jvm.h>
   95.12  
   95.13  #include <Region.h>
   95.14 +#include "utility/rect.h"
   95.15  
   95.16 +#include <X11/XKBlib.h>
   95.17  #if defined(DEBUG) || defined(INTERNAL_BUILD)
   95.18  static jmethodID lockIsHeldMID = NULL;
   95.19  
   95.20 @@ -305,6 +307,20 @@
   95.21  
   95.22  /*
   95.23   * Class:     XlibWrapper
   95.24 + * Method:    XConfigureWindow
   95.25 + * Signature: (JJJJ)V
   95.26 + */
   95.27 +JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XConfigureWindow
   95.28 +(JNIEnv *env, jclass clazz, jlong display, jlong window, jlong value_mask,
   95.29 + jlong values)
   95.30 +{
   95.31 +    AWT_CHECK_HAVE_LOCK();
   95.32 +    XConfigureWindow((Display*)jlong_to_ptr(display), (Window)window,
   95.33 +            (unsigned int)value_mask, (XWindowChanges*)jlong_to_ptr(values));
   95.34 +}
   95.35 +
   95.36 +/*
   95.37 + * Class:     XlibWrapper
   95.38   * Method:    XSetInputFocus
   95.39   * Signature: (JJ)V
   95.40   */
   95.41 @@ -434,6 +450,79 @@
   95.42      XSelectInput((Display *) jlong_to_ptr(display), (Window) window, mask);
   95.43  }
   95.44  
   95.45 +JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XkbSelectEvents
   95.46 +(JNIEnv *env, jclass clazz, jlong display, jlong device, jlong bits_to_change, jlong values_for_bits)
   95.47 +{
   95.48 +    AWT_CHECK_HAVE_LOCK();
   95.49 +    XkbSelectEvents((Display *) jlong_to_ptr(display), (unsigned int)device,
   95.50 +                   (unsigned long)bits_to_change,
   95.51 +                   (unsigned long)values_for_bits);
   95.52 +}
   95.53 +JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XkbSelectEventDetails
   95.54 +(JNIEnv *env, jclass clazz, jlong display, jlong device, jlong event_type, jlong bits_to_change, jlong values_for_bits)
   95.55 +{
   95.56 +    AWT_CHECK_HAVE_LOCK();
   95.57 +    XkbSelectEventDetails((Display *) jlong_to_ptr(display), (unsigned int)device,
   95.58 +                   (unsigned int) event_type,
   95.59 +                   (unsigned long)bits_to_change,
   95.60 +                   (unsigned long)values_for_bits);
   95.61 +}
   95.62 +JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XlibWrapper_XkbQueryExtension
   95.63 +(JNIEnv *env, jclass clazz, jlong display, jlong opcode_rtrn, jlong event_rtrn,
   95.64 +              jlong error_rtrn, jlong major_in_out, jlong minor_in_out)
   95.65 +{
   95.66 +    AWT_CHECK_HAVE_LOCK();
   95.67 +    return XkbQueryExtension( (Display *) jlong_to_ptr(display),
   95.68 +                       (int *) jlong_to_ptr(opcode_rtrn),
   95.69 +                       (int *) jlong_to_ptr(event_rtrn),
   95.70 +                       (int *) jlong_to_ptr(error_rtrn),
   95.71 +                       (int *) jlong_to_ptr(major_in_out),
   95.72 +                       (int *) jlong_to_ptr(minor_in_out));
   95.73 +}
   95.74 +JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XlibWrapper_XkbLibraryVersion
   95.75 +(JNIEnv *env, jclass clazz, jlong lib_major_in_out, jlong lib_minor_in_out)
   95.76 +{
   95.77 +    AWT_CHECK_HAVE_LOCK();
   95.78 +    *((int *)lib_major_in_out) =  XkbMajorVersion;
   95.79 +    *((int *)lib_minor_in_out) =  XkbMinorVersion;
   95.80 +    return  XkbLibraryVersion((int *)jlong_to_ptr(lib_major_in_out), (int *)jlong_to_ptr(lib_minor_in_out));
   95.81 +}
   95.82 +
   95.83 +JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_XkbGetMap
   95.84 +(JNIEnv *env, jclass clazz, jlong display, jlong which, jlong device_spec)
   95.85 +{
   95.86 +    AWT_CHECK_HAVE_LOCK();
   95.87 +    return (jlong) XkbGetMap( (Display *) jlong_to_ptr(display),
   95.88 +                              (unsigned int) which,
   95.89 +                              (unsigned int) device_spec);
   95.90 +}
   95.91 +JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_XkbGetUpdatedMap
   95.92 +(JNIEnv *env, jclass clazz, jlong display, jlong which, jlong xkb)
   95.93 +{
   95.94 +    AWT_CHECK_HAVE_LOCK();
   95.95 +    return (jlong) XkbGetUpdatedMap( (Display *) jlong_to_ptr(display),
   95.96 +                              (unsigned int) which,
   95.97 +                              (XkbDescPtr) jlong_to_ptr(xkb));
   95.98 +}
   95.99 +JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XkbFreeKeyboard
  95.100 +(JNIEnv *env, jclass clazz, jlong xkb, jlong which, jboolean free_all)
  95.101 +{
  95.102 +    AWT_CHECK_HAVE_LOCK();
  95.103 +    XkbFreeKeyboard(jlong_to_ptr(xkb), (unsigned int)which, free_all);
  95.104 +}
  95.105 +JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XlibWrapper_XkbTranslateKeyCode
  95.106 +(JNIEnv *env, jclass clazz, jlong xkb, jint keycode, jlong mods, jlong mods_rtrn, jlong keysym_rtrn)
  95.107 +{
  95.108 +    Bool b;
  95.109 +    b = XkbTranslateKeyCode((XkbDescPtr)xkb, (unsigned int)keycode, (unsigned int)mods,
  95.110 +                              (unsigned int *)jlong_to_ptr(mods_rtrn),
  95.111 +                               (KeySym *)jlong_to_ptr(keysym_rtrn));
  95.112 +    //printf("native,  input: keycode:0x%0X; mods:0x%0X\n", keycode, mods);
  95.113 +    //printf("native, output:  keysym:0x%0X; mods:0x%0X\n", *(unsigned int *)jlong_to_ptr(keysym_rtrn), *(unsigned int *)jlong_to_ptr(mods_rtrn));
  95.114 +    return b;
  95.115 +}
  95.116 +
  95.117 +
  95.118  /*
  95.119   * Class:     sun_awt_X11_XlibWrapper
  95.120   * Method:    XNextEvent
  95.121 @@ -1658,6 +1747,39 @@
  95.122  }
  95.123  
  95.124  JNIEXPORT jint JNICALL
  95.125 +Java_sun_awt_X11_XlibWrapper_XkbGetEffectiveGroup(JNIEnv *env, jclass clazz,
  95.126 +                                              jlong display) {
  95.127 +    XkbStateRec sr;
  95.128 +    AWT_CHECK_HAVE_LOCK();
  95.129 +    memset(&sr, 0, sizeof(XkbStateRec));
  95.130 +    XkbGetState((Display*) jlong_to_ptr(display), XkbUseCoreKbd, &sr);
  95.131 +//    printf("-------------------------------------VVVV\n");
  95.132 +//    printf("                 group:0x%0X\n",sr.group);
  95.133 +//    printf("            base_group:0x%0X\n",sr.base_group);
  95.134 +//    printf("         latched_group:0x%0X\n",sr.latched_group);
  95.135 +//    printf("          locked_group:0x%0X\n",sr.locked_group);
  95.136 +//    printf("                  mods:0x%0X\n",sr.mods);
  95.137 +//    printf("             base_mods:0x%0X\n",sr.base_mods);
  95.138 +//    printf("          latched_mods:0x%0X\n",sr.latched_mods);
  95.139 +//    printf("           locked_mods:0x%0X\n",sr.locked_mods);
  95.140 +//    printf("          compat_state:0x%0X\n",sr.compat_state);
  95.141 +//    printf("             grab_mods:0x%0X\n",sr.grab_mods);
  95.142 +//    printf("      compat_grab_mods:0x%0X\n",sr.compat_grab_mods);
  95.143 +//    printf("           lookup_mods:0x%0X\n",sr.lookup_mods);
  95.144 +//    printf("    compat_lookup_mods:0x%0X\n",sr.compat_lookup_mods);
  95.145 +//    printf("           ptr_buttons:0x%0X\n",sr.ptr_buttons);
  95.146 +//    printf("-------------------------------------^^^^\n");
  95.147 +    return (jint)(sr.group);
  95.148 +}
  95.149 +JNIEXPORT jlong JNICALL
  95.150 +Java_sun_awt_X11_XlibWrapper_XkbKeycodeToKeysym(JNIEnv *env, jclass clazz,
  95.151 +                                              jlong display, jint keycode,
  95.152 +                                              jint group, jint level) {
  95.153 +    AWT_CHECK_HAVE_LOCK();
  95.154 +    return XkbKeycodeToKeysym((Display*) jlong_to_ptr(display), (unsigned int)keycode, (unsigned int)group, (unsigned int)level);
  95.155 +}
  95.156 +
  95.157 +JNIEXPORT jint JNICALL
  95.158  Java_sun_awt_X11_XlibWrapper_XKeysymToKeycode(JNIEnv *env, jclass clazz,
  95.159                                                jlong display, jlong keysym) {
  95.160      AWT_CHECK_HAVE_LOCK();
  95.161 @@ -1945,3 +2067,77 @@
  95.162                  ShapeBounding, 0, 0, None, ShapeSet);
  95.163      }
  95.164  }
  95.165 +
  95.166 +/*
  95.167 + * Class:     XlibWrapper
  95.168 + * Method:    SetZOrder
  95.169 + */
  95.170 +
  95.171 +JNIEXPORT void JNICALL
  95.172 +Java_sun_awt_X11_XlibWrapper_SetZOrder
  95.173 +(JNIEnv *env, jclass clazz, jlong display, jlong window, jlong above)
  95.174 +{
  95.175 +    AWT_CHECK_HAVE_LOCK();
  95.176 +
  95.177 +    XWindowChanges wc;
  95.178 +    wc.sibling = (Window)jlong_to_ptr(above);
  95.179 +
  95.180 +    unsigned int value_mask = CWStackMode;
  95.181 +
  95.182 +    if (above == 0) {
  95.183 +        wc.stack_mode = Above;
  95.184 +    } else {
  95.185 +        wc.stack_mode = Below;
  95.186 +        value_mask |= CWSibling;
  95.187 +    }
  95.188 +
  95.189 +    XConfigureWindow((Display *)jlong_to_ptr(display),
  95.190 +                     (Window)jlong_to_ptr(window),
  95.191 +                     value_mask, &wc );
  95.192 +}
  95.193 +
  95.194 +/*
  95.195 + * Class:     XlibWrapper
  95.196 + * Method:    SetBitmapShape
  95.197 + */
  95.198 +JNIEXPORT void JNICALL
  95.199 +Java_sun_awt_X11_XlibWrapper_SetBitmapShape
  95.200 +(JNIEnv *env, jclass clazz, jlong display, jlong window,
  95.201 + jint width, jint height, jintArray bitmap)
  95.202 +{
  95.203 +    jsize len;
  95.204 +    jint *values;
  95.205 +    jboolean isCopy = JNI_FALSE;
  95.206 +    size_t worstBufferSize = (size_t)((width / 2 + 1) * height);
  95.207 +    RECT_T * pRect;
  95.208 +
  95.209 +    AWT_CHECK_HAVE_LOCK();
  95.210 +
  95.211 +    len = (*env)->GetArrayLength(env, bitmap);
  95.212 +    if (len == 0 || len < width * height) {
  95.213 +        return;
  95.214 +    }
  95.215 +
  95.216 +    values = (*env)->GetIntArrayElements(env, bitmap, &isCopy);
  95.217 +    if (JNU_IsNull(env, values)) {
  95.218 +        return;
  95.219 +    }
  95.220 +
  95.221 +    pRect = (RECT_T *)malloc(worstBufferSize * sizeof(RECT_T));
  95.222 +
  95.223 +    /* Note: the values[0] and values[1] are supposed to contain the width
  95.224 +     * and height (see XIconInfo.getIntData() for details). So, we do +2.
  95.225 +     */
  95.226 +    int numrects = BitmapToYXBandedRectangles(32, (int)width, (int)height,
  95.227 +            (unsigned char *)(values + 2), pRect);
  95.228 +
  95.229 +    XShapeCombineRectangles((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
  95.230 +            ShapeClip, 0, 0, pRect, numrects, ShapeSet, YXBanded);
  95.231 +    XShapeCombineRectangles((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
  95.232 +            ShapeBounding, 0, 0, pRect, numrects, ShapeSet, YXBanded);
  95.233 +
  95.234 +    free(pRect);
  95.235 +
  95.236 +    (*env)->ReleaseIntArrayElements(env, bitmap, values, JNI_ABORT);
  95.237 +}
  95.238 +
    96.1 --- a/src/windows/classes/sun/awt/Win32GraphicsConfig.java	Tue Apr 14 00:05:07 2009 -0700
    96.2 +++ b/src/windows/classes/sun/awt/Win32GraphicsConfig.java	Tue Apr 14 04:21:02 2009 -0700
    96.3 @@ -1,5 +1,5 @@
    96.4  /*
    96.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    96.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    96.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    96.8   *
    96.9   * This code is free software; you can redistribute it and/or modify it
   96.10 @@ -331,4 +331,12 @@
   96.11          }
   96.12          // the rest of the flip actions are not supported
   96.13      }
   96.14 +
   96.15 +    /*
   96.16 +    @Override
   96.17 +    */
   96.18 +    public boolean isTranslucencyCapable() {
   96.19 +        //XXX: worth checking if 8-bit? Anyway, it doesn't hurt.
   96.20 +        return true;
   96.21 +    }
   96.22  }
    97.1 --- a/src/windows/classes/sun/awt/Win32GraphicsDevice.java	Tue Apr 14 00:05:07 2009 -0700
    97.2 +++ b/src/windows/classes/sun/awt/Win32GraphicsDevice.java	Tue Apr 14 04:21:02 2009 -0700
    97.3 @@ -380,7 +380,6 @@
    97.4  
    97.5              // fix for 4868278
    97.6              peer.updateGC();
    97.7 -            peer.resetTargetGC();
    97.8          }
    97.9      }
   97.10  
    98.1 --- a/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java	Tue Apr 14 00:05:07 2009 -0700
    98.2 +++ b/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java	Tue Apr 14 04:21:02 2009 -0700
    98.3 @@ -1,5 +1,5 @@
    98.4  /*
    98.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
    98.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
    98.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    98.8   *
    98.9   * This code is free software; you can redistribute it and/or modify it
   98.10 @@ -398,4 +398,11 @@
   98.11      public boolean isDisplayLocal() {
   98.12          return true;
   98.13      }
   98.14 +
   98.15 +    /**
   98.16 +     * Used to find out if the OS is Windows Vista or later.
   98.17 +     *
   98.18 +     * @return {@code true} if the OS is Vista or later, {@code false} otherwise
   98.19 +     */
   98.20 +    public static native boolean isVistaOS();
   98.21  }
    99.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    99.2 +++ b/src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java	Tue Apr 14 04:21:02 2009 -0700
    99.3 @@ -0,0 +1,398 @@
    99.4 +/*
    99.5 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
    99.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    99.7 + *
    99.8 + * This code is free software; you can redistribute it and/or modify it
    99.9 + * under the terms of the GNU General Public License version 2 only, as
   99.10 + * published by the Free Software Foundation.  Sun designates this
   99.11 + * particular file as subject to the "Classpath" exception as provided
   99.12 + * by Sun in the LICENSE file that accompanied this code.
   99.13 + *
   99.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   99.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   99.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   99.17 + * version 2 for more details (a copy is included in the LICENSE file that
   99.18 + * accompanied this code).
   99.19 + *
   99.20 + * You should have received a copy of the GNU General Public License version
   99.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   99.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   99.23 + *
   99.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   99.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   99.26 + * have any questions.
   99.27 + */
   99.28 +package sun.awt.windows;
   99.29 +
   99.30 +import java.awt.AlphaComposite;
   99.31 +import java.awt.Color;
   99.32 +import java.awt.Graphics2D;
   99.33 +import java.awt.GraphicsConfiguration;
   99.34 +import java.awt.Image;
   99.35 +import java.awt.Window;
   99.36 +import java.awt.image.BufferedImage;
   99.37 +import java.awt.image.DataBufferInt;
   99.38 +import java.awt.image.VolatileImage;
   99.39 +import java.lang.ref.WeakReference;
   99.40 +import java.security.AccessController;
   99.41 +import sun.awt.image.BufImgSurfaceData;
   99.42 +import sun.java2d.DestSurfaceProvider;
   99.43 +import sun.java2d.InvalidPipeException;
   99.44 +import sun.java2d.Surface;
   99.45 +import sun.java2d.pipe.RenderQueue;
   99.46 +import sun.java2d.pipe.hw.AccelGraphicsConfig;
   99.47 +import sun.java2d.pipe.hw.AccelSurface;
   99.48 +import sun.security.action.GetPropertyAction;
   99.49 +
   99.50 +import static java.awt.image.VolatileImage.*;
   99.51 +import static java.awt.Transparency.*;
   99.52 +import static sun.java2d.pipe.hw.AccelSurface.*;
   99.53 +import static sun.java2d.pipe.hw.ContextCapabilities.*;
   99.54 +
   99.55 +/**
   99.56 + * This class handles the updates of the non-opaque windows.
   99.57 + * The window associated with the peer is updated either given an image or
   99.58 + * the window is repainted to an internal buffer which is then used to update
   99.59 + * the window.
   99.60 + *
   99.61 + * Note: this class does not attempt to be thread safe, it is expected to be
   99.62 + * called from a single thread (EDT).
   99.63 + */
   99.64 +public abstract class TranslucentWindowPainter {
   99.65 +
   99.66 +    protected Window window;
   99.67 +    protected WWindowPeer peer;
   99.68 +
   99.69 +    // REMIND: we probably would want to remove this later
   99.70 +    private static final boolean forceOpt  =
   99.71 +        Boolean.valueOf(AccessController.doPrivileged(
   99.72 +            new GetPropertyAction("sun.java2d.twp.forceopt", "false")));
   99.73 +    private static final boolean forceSW  =
   99.74 +        Boolean.valueOf(AccessController.doPrivileged(
   99.75 +            new GetPropertyAction("sun.java2d.twp.forcesw", "false")));
   99.76 +
   99.77 +    /**
   99.78 +     * Creates an instance of the painter for particular peer.
   99.79 +     */
   99.80 +    public static TranslucentWindowPainter createInstance(WWindowPeer peer) {
   99.81 +        GraphicsConfiguration gc = peer.getGraphicsConfiguration();
   99.82 +        if (!forceSW && gc instanceof AccelGraphicsConfig) {
   99.83 +            String gcName = gc.getClass().getSimpleName();
   99.84 +            AccelGraphicsConfig agc = (AccelGraphicsConfig)gc;
   99.85 +            // this is a heuristic to check that we have a pcix board
   99.86 +            // (those have higher transfer rate from gpu to cpu)
   99.87 +            if ((agc.getContextCapabilities().getCaps() & CAPS_PS30) != 0 ||
   99.88 +                forceOpt)
   99.89 +            {
   99.90 +                // we check for name to avoid loading classes unnecessarily if
   99.91 +                // a pipeline isn't enabled
   99.92 +                if (gcName.startsWith("D3D")) {
   99.93 +                    return new VIOptD3DWindowPainter(peer);
   99.94 +                } else if (forceOpt && gcName.startsWith("WGL")) {
   99.95 +                    // on some boards (namely, ATI, even on pcix bus) ogl is
   99.96 +                    // very slow reading pixels back so for now it is disabled
   99.97 +                    // unless forced
   99.98 +                    return new VIOptWGLWindowPainter(peer);
   99.99 +                }
  99.100 +            }
  99.101 +        }
  99.102 +        return new BIWindowPainter(peer);
  99.103 +    }
  99.104 +
  99.105 +    protected TranslucentWindowPainter(WWindowPeer peer) {
  99.106 +        this.peer = peer;
  99.107 +        this.window = (Window)peer.getTarget();
  99.108 +    }
  99.109 +
  99.110 +    /**
  99.111 +     * Creates (if needed), clears and returns the buffer for this painter.
  99.112 +     */
  99.113 +    protected abstract Image getBackBuffer();
  99.114 +
  99.115 +    /**
  99.116 +     * Updates the the window associated with this painter with the contents
  99.117 +     * of the passed image.
  99.118 +     * The image can not be null, and NPE will be thrown if it is.
  99.119 +     */
  99.120 +    protected abstract boolean update(Image bb);
  99.121 +
  99.122 +    /**
  99.123 +     * Flushes the resources associated with the painter. They will be
  99.124 +     * recreated as needed.
  99.125 +     */
  99.126 +    public abstract void flush();
  99.127 +
  99.128 +    /**
  99.129 +     * Updates the window associated with the painter given the passed image.
  99.130 +     * If the passed image is null the painter will use its own buffer for
  99.131 +     * rendering the contents of the window into it and updating the window.
  99.132 +     *
  99.133 +     * If the passed buffer has dimensions different from the window, it is
  99.134 +     * copied into the internal buffer first and the latter is used to update
  99.135 +     * the window.
  99.136 +     *
  99.137 +     * @param bb the image to update the non opaque window with, or null.
  99.138 +     * If not null, the image must be of ARGB_PRE type.
  99.139 +     */
  99.140 +    public void updateWindow(Image bb) {
  99.141 +        boolean done = false;
  99.142 +        if (bb != null && (window.getWidth()  != bb.getWidth(null) ||
  99.143 +                           window.getHeight() != bb.getHeight(null)))
  99.144 +        {
  99.145 +            Image ourBB = getBackBuffer();
  99.146 +            Graphics2D g = (Graphics2D)ourBB.getGraphics();
  99.147 +            g.drawImage(bb, 0, 0, null);
  99.148 +            g.dispose();
  99.149 +            bb = ourBB;
  99.150 +        }
  99.151 +        do {
  99.152 +            if (bb == null) {
  99.153 +                bb = getBackBuffer();
  99.154 +                Graphics2D g = (Graphics2D)bb.getGraphics();
  99.155 +                try {
  99.156 +                    window.paintAll(g);
  99.157 +                } finally {
  99.158 +                    g.dispose();
  99.159 +                }
  99.160 +            }
  99.161 +
  99.162 +            peer.paintAppletWarning((Graphics2D)bb.getGraphics(),
  99.163 +                                    bb.getWidth(null), bb.getHeight(null));
  99.164 +
  99.165 +            done = update(bb);
  99.166 +            // in case they passed us a lost VI, next time around we'll use our
  99.167 +            // own bb because we can not validate and restore the contents of
  99.168 +            // their VI
  99.169 +            if (!done) {
  99.170 +                bb = null;
  99.171 +            }
  99.172 +        } while (!done);
  99.173 +    }
  99.174 +
  99.175 +    private static final Image clearImage(Image bb) {
  99.176 +        Graphics2D g = (Graphics2D)bb.getGraphics();
  99.177 +        int w = bb.getWidth(null);
  99.178 +        int h = bb.getHeight(null);
  99.179 +
  99.180 +        g.setComposite(AlphaComposite.Src);
  99.181 +        g.setColor(new Color(0, 0, 0, 0));
  99.182 +        g.fillRect(0, 0, w, h);
  99.183 +
  99.184 +        return bb;
  99.185 +    }
  99.186 +
  99.187 +    /**
  99.188 +     * A painter which uses BufferedImage as the internal buffer. The window
  99.189 +     * is painted into this buffer, and the contents then are uploaded
  99.190 +     * into the layered window.
  99.191 +     *
  99.192 +     * This painter handles all types of images passed to its paint(Image)
  99.193 +     * method (VI, BI, regular Images).
  99.194 +     */
  99.195 +    private static class BIWindowPainter extends TranslucentWindowPainter {
  99.196 +        private WeakReference<BufferedImage> biRef;
  99.197 +
  99.198 +        protected BIWindowPainter(WWindowPeer peer) {
  99.199 +            super(peer);
  99.200 +        }
  99.201 +
  99.202 +        private BufferedImage getBIBackBuffer() {
  99.203 +            int w = window.getWidth();
  99.204 +            int h = window.getHeight();
  99.205 +            BufferedImage bb = biRef == null ? null : biRef.get();
  99.206 +            if (bb == null || bb.getWidth() != w || bb.getHeight() != h) {
  99.207 +                if (bb != null) {
  99.208 +                    bb.flush();
  99.209 +                    bb = null;
  99.210 +                }
  99.211 +                bb = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB_PRE);
  99.212 +                biRef = new WeakReference<BufferedImage>(bb);
  99.213 +            }
  99.214 +            return (BufferedImage)clearImage(bb);
  99.215 +        }
  99.216 +
  99.217 +        @Override
  99.218 +        protected Image getBackBuffer() {
  99.219 +            return getBIBackBuffer();
  99.220 +        }
  99.221 +
  99.222 +        @Override
  99.223 +        protected boolean update(Image bb) {
  99.224 +            VolatileImage viBB = null;
  99.225 +
  99.226 +            if (bb instanceof BufferedImage) {
  99.227 +                BufferedImage bi = (BufferedImage)bb;
  99.228 +                int data[] =
  99.229 +                    ((DataBufferInt)bi.getRaster().getDataBuffer()).getData();
  99.230 +                peer.updateWindowImpl(data, bi.getWidth(), bi.getHeight());
  99.231 +                return true;
  99.232 +            } else if (bb instanceof VolatileImage) {
  99.233 +                viBB = (VolatileImage)bb;
  99.234 +                if (bb instanceof DestSurfaceProvider) {
  99.235 +                    Surface s = ((DestSurfaceProvider)bb).getDestSurface();
  99.236 +                    if (s instanceof BufImgSurfaceData) {
  99.237 +                        // the image is probably lost, upload the data from the
  99.238 +                        // backup surface to avoid creating another heap-based
  99.239 +                        // image (the parent's buffer)
  99.240 +                        int w = viBB.getWidth();
  99.241 +                        int h = viBB.getHeight();
  99.242 +                        BufImgSurfaceData bisd = (BufImgSurfaceData)s;
  99.243 +                        int data[] = ((DataBufferInt)bisd.getRaster(0,0,w,h).
  99.244 +                            getDataBuffer()).getData();
  99.245 +                        peer.updateWindowImpl(data, w, h);
  99.246 +                        return true;
  99.247 +                    }
  99.248 +                }
  99.249 +            }
  99.250 +
  99.251 +            // copy the passed image into our own buffer, then upload
  99.252 +            BufferedImage bi = getBIBackBuffer();
  99.253 +            Graphics2D g = (Graphics2D)bi.getGraphics();
  99.254 +            g.setComposite(AlphaComposite.Src);
  99.255 +            g.drawImage(bb, 0, 0, null);
  99.256 +
  99.257 +            int data[] =
  99.258 +                ((DataBufferInt)bi.getRaster().getDataBuffer()).getData();
  99.259 +            peer.updateWindowImpl(data, bi.getWidth(), bi.getHeight());
  99.260 +
  99.261 +            return (viBB != null ? !viBB.contentsLost() : true);
  99.262 +        }
  99.263 +
  99.264 +        public void flush() {
  99.265 +            if (biRef != null) {
  99.266 +                biRef.clear();
  99.267 +            }
  99.268 +        }
  99.269 +    }
  99.270 +
  99.271 +    /**
  99.272 +     * A version of the painter which uses VolatileImage as the internal buffer.
  99.273 +     * The window is painted into this VI and then copied into the parent's
  99.274 +     * Java heap-based buffer (which is then uploaded to the layered window)
  99.275 +     */
  99.276 +    private static class VIWindowPainter extends BIWindowPainter {
  99.277 +        private WeakReference<VolatileImage> viRef;
  99.278 +
  99.279 +        protected VIWindowPainter(WWindowPeer peer) {
  99.280 +            super(peer);
  99.281 +        }
  99.282 +
  99.283 +        @Override
  99.284 +        protected Image getBackBuffer() {
  99.285 +            int w = window.getWidth();
  99.286 +            int h = window.getHeight();
  99.287 +            GraphicsConfiguration gc = peer.getGraphicsConfiguration();
  99.288 +
  99.289 +            VolatileImage viBB = viRef == null ? null : viRef.get();
  99.290 +
  99.291 +            if (viBB == null || viBB.getWidth() != w || viBB.getHeight() != h ||
  99.292 +                viBB.validate(gc) == IMAGE_INCOMPATIBLE)
  99.293 +            {
  99.294 +                if (viBB != null) {
  99.295 +                    viBB.flush();
  99.296 +                    viBB = null;
  99.297 +                }
  99.298 +
  99.299 +                if (gc instanceof AccelGraphicsConfig) {
  99.300 +                    AccelGraphicsConfig agc = ((AccelGraphicsConfig)gc);
  99.301 +                    viBB = agc.createCompatibleVolatileImage(w, h,
  99.302 +                                                             TRANSLUCENT,
  99.303 +                                                             RT_PLAIN);
  99.304 +                }
  99.305 +                if (viBB == null) {
  99.306 +                    viBB = gc.createCompatibleVolatileImage(w, h, TRANSLUCENT);
  99.307 +                }
  99.308 +                viBB.validate(gc);
  99.309 +                viRef = new WeakReference<VolatileImage>(viBB);
  99.310 +            }
  99.311 +
  99.312 +            return clearImage(viBB);
  99.313 +        }
  99.314 +
  99.315 +        @Override
  99.316 +        public void flush() {
  99.317 +            if (viRef != null) {
  99.318 +                VolatileImage viBB = viRef.get();
  99.319 +                if (viBB != null) {
  99.320 +                    viBB.flush();
  99.321 +                    viBB = null;
  99.322 +                }
  99.323 +                viRef.clear();
  99.324 +            }
  99.325 +        }
  99.326 +    }
  99.327 +
  99.328 +    /**
  99.329 +     * Optimized version of hw painter. Uses VolatileImages for the
  99.330 +     * buffer, and uses an optimized path to pull the data from those into
  99.331 +     * the layered window, bypassing Java heap-based image.
  99.332 +     */
  99.333 +    private abstract static class VIOptWindowPainter extends VIWindowPainter {
  99.334 +
  99.335 +        protected VIOptWindowPainter(WWindowPeer peer) {
  99.336 +            super(peer);
  99.337 +        }
  99.338 +
  99.339 +        protected abstract boolean updateWindowAccel(long psdops, int w, int h);
  99.340 +
  99.341 +        @Override
  99.342 +        protected boolean update(Image bb) {
  99.343 +            if (bb instanceof DestSurfaceProvider) {
  99.344 +                Surface s = ((DestSurfaceProvider)bb).getDestSurface();
  99.345 +                if (s instanceof AccelSurface) {
  99.346 +                    final int w = bb.getWidth(null);
  99.347 +                    final int h = bb.getHeight(null);
  99.348 +                    final boolean arr[] = { false };
  99.349 +                    final AccelSurface as = (AccelSurface)s;
  99.350 +                    RenderQueue rq = as.getContext().getRenderQueue();
  99.351 +                    rq.lock();
  99.352 +                    try {
  99.353 +                        as.getContext().validateContext(as);
  99.354 +                        rq.flushAndInvokeNow(new Runnable() {
  99.355 +                            public void run() {
  99.356 +                                long psdops = as.getNativeOps();
  99.357 +                                arr[0] = updateWindowAccel(psdops, w, h);
  99.358 +                            }
  99.359 +                        });
  99.360 +                    } catch (InvalidPipeException e) {
  99.361 +                        // ignore, false will be returned
  99.362 +                    } finally {
  99.363 +                        rq.unlock();
  99.364 +                    }
  99.365 +                    return arr[0];
  99.366 +                }
  99.367 +            }
  99.368 +            return super.update(bb);
  99.369 +        }
  99.370 +    }
  99.371 +
  99.372 +    private static class VIOptD3DWindowPainter extends VIOptWindowPainter {
  99.373 +
  99.374 +        protected VIOptD3DWindowPainter(WWindowPeer peer) {
  99.375 +            super(peer);
  99.376 +        }
  99.377 +
  99.378 +        @Override
  99.379 +        protected boolean updateWindowAccel(long psdops, int w, int h) {
  99.380 +            // note: this method is executed on the toolkit thread, no sync is
  99.381 +            // necessary at the native level, and a pointer to peer can be used
  99.382 +            return sun.java2d.d3d.D3DSurfaceData.
  99.383 +                updateWindowAccelImpl(psdops, peer.getData(), w, h);
  99.384 +        }
  99.385 +    }
  99.386 +
  99.387 +    private static class VIOptWGLWindowPainter extends VIOptWindowPainter {
  99.388 +
  99.389 +        protected VIOptWGLWindowPainter(WWindowPeer peer) {
  99.390 +            super(peer);
  99.391 +        }
  99.392 +
  99.393 +        @Override
  99.394 +        protected boolean updateWindowAccel(long psdops, int w, int h) {
  99.395 +            // note: part of this method which deals with GDI will be on the
  99.396 +            // toolkit thread
  99.397 +            return sun.java2d.opengl.WGLSurfaceData.
  99.398 +                updateWindowAccelImpl(psdops, peer, w, h);
  99.399 +        }
  99.400 +    }
  99.401 +}
   100.1 --- a/src/windows/classes/sun/awt/windows/WCanvasPeer.java	Tue Apr 14 00:05:07 2009 -0700
   100.2 +++ b/src/windows/classes/sun/awt/windows/WCanvasPeer.java	Tue Apr 14 04:21:02 2009 -0700
   100.3 @@ -1,5 +1,5 @@
   100.4  /*
   100.5 - * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
   100.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   100.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   100.8   *
   100.9   * This code is free software; you can redistribute it and/or modify it
  100.10 @@ -28,6 +28,7 @@
  100.11  import java.awt.peer.*;
  100.12  import java.lang.ref.WeakReference;
  100.13  import java.lang.reflect.Method;
  100.14 +import sun.awt.AWTAccessor;
  100.15  import sun.awt.ComponentAccessor;
  100.16  import sun.awt.SunToolkit;
  100.17  import sun.awt.Win32GraphicsDevice;
  100.18 @@ -37,44 +38,12 @@
  100.19  
  100.20      private boolean eraseBackground;
  100.21  
  100.22 -    Method resetGCMethod;
  100.23 -
  100.24      // Toolkit & peer internals
  100.25  
  100.26      WCanvasPeer(Component target) {
  100.27          super(target);
  100.28      }
  100.29  
  100.30 -    /*
  100.31 -     * From the DisplayChangedListener interface.
  100.32 -     *
  100.33 -     * Overrides WComponentPeer version because Canvases can be created with
  100.34 -     * a non-defulat GraphicsConfiguration, which is no longer valid.
  100.35 -     * Up-called for other windows peer instances (WPanelPeer, WWindowPeer).
  100.36 -     */
  100.37 -    public void displayChanged() {
  100.38 -        clearLocalGC();
  100.39 -        resetTargetGC();
  100.40 -        super.displayChanged();
  100.41 -    }
  100.42 -
  100.43 -    /*
  100.44 -     * Reset the graphicsConfiguration member of our target Component.
  100.45 -     * Component.resetGC() is a package-private method, so we have to call it
  100.46 -     * through reflection.
  100.47 -     */
  100.48 -    public void resetTargetGC() {
  100.49 -        ComponentAccessor.resetGC((Component)target);
  100.50 -    }
  100.51 -
  100.52 -    /*
  100.53 -     * Clears the peer's winGraphicsConfig member.
  100.54 -     * Overridden by WWindowPeer, which shouldn't have a null winGraphicsConfig.
  100.55 -     */
  100.56 -    void clearLocalGC() {
  100.57 -        winGraphicsConfig = null;
  100.58 -    }
  100.59 -
  100.60      native void create(WComponentPeer parent);
  100.61  
  100.62      void initialize() {
  100.63 @@ -110,16 +79,20 @@
  100.64      }
  100.65  
  100.66      public void print(Graphics g) {
  100.67 -        Dimension d = ((Component)target).getSize();
  100.68 -        if (g instanceof Graphics2D ||
  100.69 -            g instanceof sun.awt.Graphics2Delegate) {
  100.70 -            // background color is setup correctly, so just use clearRect
  100.71 -            g.clearRect(0, 0, d.width, d.height);
  100.72 -        } else {
  100.73 -            // emulate clearRect
  100.74 -            g.setColor(((Component)target).getBackground());
  100.75 -            g.fillRect(0, 0, d.width, d.height);
  100.76 -            g.setColor(((Component)target).getForeground());
  100.77 +        if (!(target instanceof Window) ||
  100.78 +            AWTAccessor.getWindowAccessor().isOpaque((Window)target))
  100.79 +        {
  100.80 +            Dimension d = ((Component)target).getSize();
  100.81 +            if (g instanceof Graphics2D ||
  100.82 +                g instanceof sun.awt.Graphics2Delegate) {
  100.83 +                // background color is setup correctly, so just use clearRect
  100.84 +                g.clearRect(0, 0, d.width, d.height);
  100.85 +            } else {
  100.86 +                // emulate clearRect
  100.87 +                g.setColor(((Component)target).getBackground());
  100.88 +                g.fillRect(0, 0, d.width, d.height);
  100.89 +                g.setColor(((Component)target).getForeground());
  100.90 +            }
  100.91          }
  100.92          super.print(g);
  100.93      }
  100.94 @@ -147,4 +120,10 @@
  100.95       */
  100.96      private native void setNativeBackgroundErase(boolean doErase,
  100.97                                                   boolean doEraseOnResize);
  100.98 +
  100.99 +    public GraphicsConfiguration getAppropriateGraphicsConfiguration(
 100.100 +            GraphicsConfiguration gc)
 100.101 +    {
 100.102 +        return gc;
 100.103 +    }
 100.104  }
   101.1 --- a/src/windows/classes/sun/awt/windows/WChoicePeer.java	Tue Apr 14 00:05:07 2009 -0700
   101.2 +++ b/src/windows/classes/sun/awt/windows/WChoicePeer.java	Tue Apr 14 04:21:02 2009 -0700
   101.3 @@ -27,6 +27,10 @@
   101.4  import java.awt.*;
   101.5  import java.awt.peer.*;
   101.6  import java.awt.event.ItemEvent;
   101.7 +import java.awt.event.WindowEvent;
   101.8 +import java.awt.event.WindowListener;
   101.9 +import java.awt.event.WindowAdapter;
  101.10 +import sun.awt.SunToolkit;
  101.11  
  101.12  class WChoicePeer extends WComponentPeer implements ChoicePeer {
  101.13  
  101.14 @@ -70,6 +74,8 @@
  101.15  
  101.16      public synchronized native void reshape(int x, int y, int width, int height);
  101.17  
  101.18 +    private WindowListener windowListener;
  101.19 +
  101.20      // Toolkit & peer internals
  101.21  
  101.22      WChoicePeer(Choice target) {
  101.23 @@ -91,9 +97,38 @@
  101.24                  select(opt.getSelectedIndex());
  101.25              }
  101.26          }
  101.27 +
  101.28 +        Window parentWindow = SunToolkit.getContainingWindow((Component)target);
  101.29 +        if (parentWindow != null) {
  101.30 +            WWindowPeer wpeer = (WWindowPeer)parentWindow.getPeer();
  101.31 +            if (wpeer != null) {
  101.32 +                windowListener = new WindowAdapter() {
  101.33 +                        public void windowIconified(WindowEvent e) {
  101.34 +                            closeList();
  101.35 +                        }
  101.36 +                        public void windowClosing(WindowEvent e) {
  101.37 +                            closeList();
  101.38 +                        }
  101.39 +                    };
  101.40 +                wpeer.addWindowListener(windowListener);
  101.41 +            }
  101.42 +        }
  101.43          super.initialize();
  101.44      }
  101.45  
  101.46 +    protected void disposeImpl() {
  101.47 +        // TODO: we should somehow reset the listener when the choice
  101.48 +        // is moved to another toplevel without destroying its peer.
  101.49 +        Window parentWindow = SunToolkit.getContainingWindow((Component)target);
  101.50 +        if (parentWindow != null) {
  101.51 +            WWindowPeer wpeer = (WWindowPeer)parentWindow.getPeer();
  101.52 +            if (wpeer != null) {
  101.53 +                wpeer.removeWindowListener(windowListener);
  101.54 +            }
  101.55 +        }
  101.56 +        super.disposeImpl();
  101.57 +    }
  101.58 +
  101.59      // native callbacks
  101.60  
  101.61      void handleAction(final int index) {
  101.62 @@ -121,4 +156,5 @@
  101.63              return getMinimumSize();
  101.64      }
  101.65  
  101.66 +    native void closeList();
  101.67  }
   102.1 --- a/src/windows/classes/sun/awt/windows/WComponentPeer.java	Tue Apr 14 00:05:07 2009 -0700
   102.2 +++ b/src/windows/classes/sun/awt/windows/WComponentPeer.java	Tue Apr 14 04:21:02 2009 -0700
   102.3 @@ -1,5 +1,5 @@
   102.4  /*
   102.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   102.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   102.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   102.8   *
   102.9   * This code is free software; you can redistribute it and/or modify it
  102.10 @@ -38,27 +38,32 @@
  102.11  import java.awt.event.PaintEvent;
  102.12  import java.awt.event.InvocationEvent;
  102.13  import java.awt.event.KeyEvent;
  102.14 +import java.awt.event.FocusEvent;
  102.15 +import java.awt.event.MouseEvent;
  102.16 +import java.awt.event.MouseWheelEvent;
  102.17 +import java.awt.event.InputEvent;
  102.18  import sun.awt.Win32GraphicsConfig;
  102.19 +import sun.awt.Win32GraphicsEnvironment;
  102.20  import sun.java2d.InvalidPipeException;
  102.21  import sun.java2d.SurfaceData;
  102.22 -import sun.java2d.d3d.D3DScreenUpdateManager;
  102.23 -import static sun.java2d.d3d.D3DSurfaceData.*;
  102.24  import sun.java2d.ScreenUpdateManager;
  102.25 +import sun.java2d.d3d.D3DSurfaceData;
  102.26  import sun.java2d.opengl.OGLSurfaceData;
  102.27 +import sun.java2d.pipe.Region;
  102.28  import sun.awt.DisplayChangedListener;
  102.29  import sun.awt.PaintEventDispatcher;
  102.30 +import sun.awt.SunToolkit;
  102.31  import sun.awt.event.IgnorePaintEvent;
  102.32  
  102.33  import java.awt.dnd.DropTarget;
  102.34  import java.awt.dnd.peer.DropTargetPeer;
  102.35  import sun.awt.ComponentAccessor;
  102.36  
  102.37 -
  102.38  import java.util.logging.*;
  102.39  
  102.40  
  102.41  public abstract class WComponentPeer extends WObjectPeer
  102.42 -    implements ComponentPeer, DropTargetPeer, DisplayChangedListener
  102.43 +    implements ComponentPeer, DropTargetPeer
  102.44  {
  102.45      /**
  102.46       * Handle to native window
  102.47 @@ -67,6 +72,7 @@
  102.48  
  102.49      private static final Logger log = Logger.getLogger("sun.awt.windows.WComponentPeer");
  102.50      private static final Logger shapeLog = Logger.getLogger("sun.awt.windows.shape.WComponentPeer");
  102.51 +    private static final Logger focusLog = Logger.getLogger("sun.awt.windows.focus.WComponentPeer");
  102.52  
  102.53      // ComponentPeer implementation
  102.54      SurfaceData surfaceData;
  102.55 @@ -186,7 +192,7 @@
  102.56                  cont.invalidate();
  102.57                  cont.validate();
  102.58  
  102.59 -                if (surfaceData instanceof D3DWindowSurfaceData ||
  102.60 +                if (surfaceData instanceof D3DSurfaceData.D3DWindowSurfaceData ||
  102.61                      surfaceData instanceof OGLSurfaceData)
  102.62                  {
  102.63                      // When OGL or D3D is enabled, it is necessary to
  102.64 @@ -258,7 +264,7 @@
  102.65              int[] pix = createPrintedPixels(0, startY, totalW, h);
  102.66              if (pix != null) {
  102.67                  BufferedImage bim = new BufferedImage(totalW, h,
  102.68 -                                              BufferedImage.TYPE_INT_RGB);
  102.69 +                                              BufferedImage.TYPE_INT_ARGB);
  102.70                  bim.setRGB(0, 0, totalW, h, pix, 0, totalW);
  102.71                  g.drawImage(bim, 0, startY, null);
  102.72                  bim.flush();
  102.73 @@ -295,14 +301,35 @@
  102.74      // on handling '\n' to prevent it from being passed to native code
  102.75      public boolean handleJavaKeyEvent(KeyEvent e) { return false; }
  102.76  
  102.77 +    public void handleJavaMouseEvent(MouseEvent e) {
  102.78 +        switch (e.getID()) {
  102.79 +          case MouseEvent.MOUSE_PRESSED:
  102.80 +              // Note that Swing requests focus in its own mouse event handler.
  102.81 +              if (target == e.getSource() &&
  102.82 +                  !((Component)target).isFocusOwner() &&
  102.83 +                  WKeyboardFocusManagerPeer.shouldFocusOnClick((Component)target))
  102.84 +              {
  102.85 +                  WKeyboardFocusManagerPeer.requestFocusFor((Component)target,
  102.86 +                                                            CausedFocusEvent.Cause.MOUSE_EVENT);
  102.87 +              }
  102.88 +              break;
  102.89 +        }
  102.90 +    }
  102.91 +
  102.92      native void nativeHandleEvent(AWTEvent e);
  102.93  
  102.94      public void handleEvent(AWTEvent e) {
  102.95          int id = e.getID();
  102.96  
  102.97 -        if (((Component)target).isEnabled() && (e instanceof KeyEvent) && !((KeyEvent)e).isConsumed())  {
  102.98 -            if (handleJavaKeyEvent((KeyEvent)e)) {
  102.99 -                return;
 102.100 +        if ((e instanceof InputEvent) && !((InputEvent)e).isConsumed() &&
 102.101 +            ((Component)target).isEnabled())
 102.102 +        {
 102.103 +            if (e instanceof MouseEvent && !(e instanceof MouseWheelEvent)) {
 102.104 +                handleJavaMouseEvent((MouseEvent) e);
 102.105 +            } else if (e instanceof KeyEvent) {
 102.106 +                if (handleJavaKeyEvent((KeyEvent)e)) {
 102.107 +                    return;
 102.108 +                }
 102.109              }
 102.110          }
 102.111  
 102.112 @@ -318,6 +345,9 @@
 102.113                      paintArea.paint(target,shouldClearRectBeforePaint());
 102.114                  }
 102.115                  return;
 102.116 +            case FocusEvent.FOCUS_LOST:
 102.117 +            case FocusEvent.FOCUS_GAINED:
 102.118 +                handleJavaFocusEvent((FocusEvent)e);
 102.119              default:
 102.120              break;
 102.121          }
 102.122 @@ -326,6 +356,13 @@
 102.123          nativeHandleEvent(e);
 102.124      }
 102.125  
 102.126 +    void handleJavaFocusEvent(FocusEvent fe) {
 102.127 +        if (focusLog.isLoggable(Level.FINER)) focusLog.finer(fe.toString());
 102.128 +        setFocus(fe.getID() == FocusEvent.FOCUS_GAINED);
 102.129 +    }
 102.130 +
 102.131 +    native void setFocus(boolean doSetFocus);
 102.132 +
 102.133      public Dimension getMinimumSize() {
 102.134          return ((Component)target).getSize();
 102.135      }
 102.136 @@ -451,15 +488,8 @@
 102.137          }
 102.138      }
 102.139  
 102.140 -    /**
 102.141 -     * From the DisplayChangedListener interface.
 102.142 -     *
 102.143 -     * Called after a change in the display mode.  This event
 102.144 -     * triggers replacing the surfaceData object (since that object
 102.145 -     * reflects the current display depth information, which has
 102.146 -     * just changed).
 102.147 -     */
 102.148 -    public void displayChanged() {
 102.149 +    public void updateGraphicsData(GraphicsConfiguration gc) {
 102.150 +        winGraphicsConfig = (Win32GraphicsConfig)gc;
 102.151          try {
 102.152              replaceSurfaceData();
 102.153          } catch (InvalidPipeException e) {
 102.154 @@ -467,13 +497,6 @@
 102.155          }
 102.156      }
 102.157  
 102.158 -    /**
 102.159 -     * Part of the DisplayChangedListener interface: components
 102.160 -     * do not need to react to this event
 102.161 -     */
 102.162 -    public void paletteChanged() {
 102.163 -    }
 102.164 -
 102.165      //This will return null for Components not yet added to a Container
 102.166      public ColorModel getColorModel() {
 102.167          GraphicsConfiguration gc = getGraphicsConfiguration();
 102.168 @@ -585,22 +608,64 @@
 102.169          WGlobalCursorManager.getCursorManager().updateCursorImmediately();
 102.170      }
 102.171  
 102.172 -    native static boolean processSynchronousLightweightTransfer(Component heavyweight, Component descendant,
 102.173 -                                                                boolean temporary, boolean focusedWindowChangeAllowed,
 102.174 -                                                                long time);
 102.175 -    public boolean requestFocus
 102.176 -        (Component lightweightChild, boolean temporary,
 102.177 -         boolean focusedWindowChangeAllowed, long time, CausedFocusEvent.Cause cause) {
 102.178 -        if (processSynchronousLightweightTransfer((Component)target, lightweightChild, temporary,
 102.179 -                                                                      focusedWindowChangeAllowed, time)) {
 102.180 +    // TODO: consider moving it to KeyboardFocusManagerPeerImpl
 102.181 +    public boolean requestFocus(Component lightweightChild, boolean temporary,
 102.182 +                                boolean focusedWindowChangeAllowed, long time,
 102.183 +                                CausedFocusEvent.Cause cause)
 102.184 +    {
 102.185 +        if (WKeyboardFocusManagerPeer.
 102.186 +            processSynchronousLightweightTransfer((Component)target, lightweightChild, temporary,
 102.187 +                                                  focusedWindowChangeAllowed, time))
 102.188 +        {
 102.189              return true;
 102.190 -        } else {
 102.191 -            return _requestFocus(lightweightChild, temporary, focusedWindowChangeAllowed, time, cause);
 102.192          }
 102.193 +
 102.194 +        int result = WKeyboardFocusManagerPeer
 102.195 +            .shouldNativelyFocusHeavyweight((Component)target, lightweightChild,
 102.196 +                                            temporary, focusedWindowChangeAllowed,
 102.197 +                                            time, cause);
 102.198 +
 102.199 +        switch (result) {
 102.200 +          case WKeyboardFocusManagerPeer.SNFH_FAILURE:
 102.201 +              return false;
 102.202 +          case WKeyboardFocusManagerPeer.SNFH_SUCCESS_PROCEED:
 102.203 +              if (focusLog.isLoggable(Level.FINER)) {
 102.204 +                  focusLog.finer("Proceeding with request to " + lightweightChild + " in " + target);
 102.205 +              }
 102.206 +              Window parentWindow = SunToolkit.getContainingWindow((Component)target);
 102.207 +              if (parentWindow == null) {
 102.208 +                  return rejectFocusRequestHelper("WARNING: Parent window is null");
 102.209 +              }
 102.210 +              WWindowPeer wpeer = (WWindowPeer)parentWindow.getPeer();
 102.211 +              if (wpeer == null) {
 102.212 +                  return rejectFocusRequestHelper("WARNING: Parent window's peer is null");
 102.213 +              }
 102.214 +              boolean res = wpeer.requestWindowFocus(cause);
 102.215 +
 102.216 +              if (focusLog.isLoggable(Level.FINER)) focusLog.finer("Requested window focus: " + res);
 102.217 +              // If parent window can be made focused and has been made focused(synchronously)
 102.218 +              // then we can proceed with children, otherwise we retreat.
 102.219 +              if (!(res && parentWindow.isFocused())) {
 102.220 +                  return rejectFocusRequestHelper("Waiting for asynchronous processing of the request");
 102.221 +              }
 102.222 +              return WKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
 102.223 +                                                            (Component)target,
 102.224 +                                                            temporary,
 102.225 +                                                            focusedWindowChangeAllowed,
 102.226 +                                                            time, cause);
 102.227 +
 102.228 +          case WKeyboardFocusManagerPeer.SNFH_SUCCESS_HANDLED:
 102.229 +              // Either lightweight or excessive request - all events are generated.
 102.230 +              return true;
 102.231 +        }
 102.232 +        return false;
 102.233      }
 102.234 -    public native boolean _requestFocus
 102.235 -        (Component lightweightChild, boolean temporary,
 102.236 -         boolean focusedWindowChangeAllowed, long time, CausedFocusEvent.Cause cause);
 102.237 +
 102.238 +    private boolean rejectFocusRequestHelper(String logMsg) {
 102.239 +        if (focusLog.isLoggable(Level.FINER)) focusLog.finer(logMsg);
 102.240 +        WKeyboardFocusManagerPeer.removeLastFocusRequest((Component)target);
 102.241 +        return false;
 102.242 +    }
 102.243  
 102.244      public Image createImage(ImageProducer producer) {
 102.245          return new ToolkitImage(producer);
 102.246 @@ -713,7 +778,7 @@
 102.247       * NOTE: This is called on the privileged toolkit thread. Do not
 102.248       *       call directly into user code using this thread!
 102.249       */
 102.250 -    void handlePaint(int x, int y, int w, int h) {
 102.251 +    public void handlePaint(int x, int y, int w, int h) {
 102.252          postPaintIfNecessary(x, y, w, h);
 102.253      }
 102.254  
 102.255 @@ -731,9 +796,12 @@
 102.256       * Post an event. Queue it for execution by the callback thread.
 102.257       */
 102.258      void postEvent(AWTEvent event) {
 102.259 +        preprocessPostEvent(event);
 102.260          WToolkit.postEvent(WToolkit.targetToAppContext(target), event);
 102.261      }
 102.262  
 102.263 +    void preprocessPostEvent(AWTEvent event) {}
 102.264 +
 102.265      // Routines to support deferred window positioning.
 102.266      public void beginLayout() {
 102.267          // Skip all painting till endLayout
 102.268 @@ -895,9 +963,29 @@
 102.269      public void setBoundsOperation(int operation) {
 102.270      }
 102.271  
 102.272 +    /**
 102.273 +     * Returns whether this component is capable of being hw accelerated.
 102.274 +     * More specifically, whether rendering to this component or a
 102.275 +     * BufferStrategy's back-buffer for this component can be hw accelerated.
 102.276 +     *
 102.277 +     * Conditions which could prevent hw acceleration include the toplevel
 102.278 +     * window containing this component being
 102.279 +     * {@link com.sun.awt.AWTUtilities.Translucency#TRANSLUCENT TRANSLUCENT}.
 102.280 +     *
 102.281 +     * @return {@code true} if this component is capable of being hw
 102.282 +     * accelerated, {@code false} otherwise
 102.283 +     * @see com.sun.awt.AWTUtilities.Translucency#TRANSLUCENT
 102.284 +     */
 102.285 +    public boolean isAccelCapable() {
 102.286 +        boolean isTranslucent =
 102.287 +            SunToolkit.isContainingTopLevelTranslucent((Component)target);
 102.288 +        // D3D/OGL and translucent windows interacted poorly in Windows XP;
 102.289 +        // these problems are no longer present in Vista
 102.290 +        return !isTranslucent || Win32GraphicsEnvironment.isVistaOS();
 102.291 +    }
 102.292  
 102.293      native void setRectangularShape(int lox, int loy, int hix, int hiy,
 102.294 -                     sun.java2d.pipe.Region region);
 102.295 +                     Region region);
 102.296  
 102.297  
 102.298      // REMIND: Temp workaround for issues with using HW acceleration
 102.299 @@ -915,41 +1003,10 @@
 102.300      }
 102.301  
 102.302      /**
 102.303 -     * Returns whether this component is capable of being hw accelerated.
 102.304 -     * More specifically, whether rendering to this component or a
 102.305 -     * BufferStrategy's back-buffer for this component can be hw accelerated.
 102.306 -     *
 102.307 -     * Conditions which could prevent hw acceleration include the toplevel
 102.308 -     * window containing this component being
 102.309 -     * {@link com.sun.awt.AWTUtilities.Translucency#TRANSLUCENT TRANSLUCENT}.
 102.310 -     *
 102.311 -     * @return {@code true} if this component is capable of being hw
 102.312 -     * accelerated, {@code false} otherwise
 102.313 -     * @see com.sun.awt.AWTUtilities.Translucency#TRANSLUCENT
 102.314 -     */
 102.315 -    public boolean isAccelCapable() {
 102.316 -        // REMIND: Temp workaround for issues with using HW acceleration
 102.317 -        // in the browser on Vista when DWM is enabled
 102.318 -        if (!isContainingTopLevelAccelCapable((Component)target)) {
 102.319 -            return false;
 102.320 -        }
 102.321 -
 102.322 -        // REMIND: translucent windows support-related
 102.323 -/*
 102.324 -        boolean isTranslucent =
 102.325 -            SunToolkit.isContainingTopLevelTranslucent((Component)target);
 102.326 -        // D3D/OGL and translucent windows interacted poorly in Windows XP;
 102.327 -        // these problems are no longer present in Vista
 102.328 -        return !isTranslucent || Win32GraphicsEnvironment.isVistaOS();
 102.329 -*/
 102.330 -        return true;
 102.331 -    }
 102.332 -
 102.333 -    /**
 102.334       * Applies the shape to the native component window.
 102.335       * @since 1.7
 102.336       */
 102.337 -    public void applyShape(sun.java2d.pipe.Region shape) {
 102.338 +    public void applyShape(Region shape) {
 102.339          if (shapeLog.isLoggable(Level.FINER)) {
 102.340              shapeLog.finer(
 102.341                      "*** INFO: Setting shape: PEER: " + this
 102.342 @@ -965,4 +1022,15 @@
 102.343          }
 102.344      }
 102.345  
 102.346 +    /**
 102.347 +     * Lowers this component at the bottom of the above component. If the above parameter
 102.348 +     * is null then the method places this component at the top of the Z-order.
 102.349 +     */
 102.350 +    public void setZOrder(ComponentPeer above) {
 102.351 +        long aboveHWND = (above != null) ? ((WComponentPeer)above).getHWnd() : 0;
 102.352 +
 102.353 +        setZOrder(aboveHWND);
 102.354 +    }
 102.355 +
 102.356 +    private native void setZOrder(long above);
 102.357  }
   103.1 --- a/src/windows/classes/sun/awt/windows/WFileDialogPeer.java	Tue Apr 14 00:05:07 2009 -0700
   103.2 +++ b/src/windows/classes/sun/awt/windows/WFileDialogPeer.java	Tue Apr 14 04:21:02 2009 -0700
   103.3 @@ -1,5 +1,5 @@
   103.4  /*
   103.5 - * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
   103.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   103.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   103.8   *
   103.9   * This code is free software; you can redistribute it and/or modify it
  103.10 @@ -225,23 +225,16 @@
  103.11      public void addDropTarget(DropTarget dt) {}
  103.12      public void removeDropTarget(DropTarget dt) {}
  103.13      public void updateFocusableWindowState() {}
  103.14 +    public void setZOrder(ComponentPeer above) {}
  103.15  
  103.16      /**
  103.17       * Initialize JNI field and method ids
  103.18       */
  103.19      private static native void initIDs();
  103.20  
  103.21 -    /**
  103.22 -     * WFileDialogPeer doesn't have native pData so we don't do restack on it
  103.23 -     * @see java.awt.peer.ContainerPeer#restack
  103.24 -     */
  103.25 -    public void restack() {
  103.26 -    }
  103.27 -
  103.28 -    /**
  103.29 -     * @see java.awt.peer.ContainerPeer#isRestackSupported
  103.30 -     */
  103.31 -    public boolean isRestackSupported() {
  103.32 -        return false;
  103.33 -    }
  103.34 +    // The effects are not supported for system dialogs.
  103.35 +    public void applyShape(sun.java2d.pipe.Region shape) {}
  103.36 +    public void setOpacity(float opacity) {}
  103.37 +    public void setOpaque(boolean isOpaque) {}
  103.38 +    public void updateWindow(java.awt.image.BufferedImage backBuffer) {}
  103.39  }
   104.1 --- a/src/windows/classes/sun/awt/windows/WFramePeer.java	Tue Apr 14 00:05:07 2009 -0700
   104.2 +++ b/src/windows/classes/sun/awt/windows/WFramePeer.java	Tue Apr 14 04:21:02 2009 -0700
   104.3 @@ -25,27 +25,46 @@
   104.4  package sun.awt.windows;
   104.5  
   104.6  import java.util.Vector;
   104.7 +
   104.8  import java.awt.*;
   104.9  import java.awt.peer.*;
  104.10  import java.awt.image.ImageObserver;
  104.11 -import sun.awt.image.ImageRepresentation;
  104.12 -import sun.awt.image.IntegerComponentRaster;
  104.13 -import sun.awt.image.ToolkitImage;
  104.14 +
  104.15  import java.awt.image.Raster;
  104.16  import java.awt.image.DataBuffer;
  104.17  import java.awt.image.DataBufferInt;
  104.18  import java.awt.image.BufferedImage;
  104.19 +
  104.20 +import java.awt.image.ColorModel;
  104.21 +
  104.22 +import sun.awt.image.ImageRepresentation;
  104.23 +import sun.awt.image.IntegerComponentRaster;
  104.24 +import sun.awt.image.ToolkitImage;
  104.25  import sun.awt.im.*;
  104.26  import sun.awt.Win32GraphicsDevice;
  104.27 -import java.awt.image.ColorModel;
  104.28 -
  104.29 +import sun.awt.AWTAccessor;
  104.30  
  104.31  class WFramePeer extends WWindowPeer implements FramePeer {
  104.32  
  104.33 +    static {
  104.34 +        initIDs();
  104.35 +    }
  104.36 +
  104.37 +    // initialize JNI field and method IDs
  104.38 +    private static native void initIDs();
  104.39 +
  104.40      // FramePeer implementation
  104.41      public native void setState(int state);
  104.42      public native int getState();
  104.43  
  104.44 +    // sync target and peer
  104.45 +    public void setExtendedState(int state) {
  104.46 +        AWTAccessor.getFrameAccessor().setExtendedState((Frame)target, state);
  104.47 +    }
  104.48 +    public int getExtendedState() {
  104.49 +        return AWTAccessor.getFrameAccessor().getExtendedState((Frame)target);
  104.50 +    }
  104.51 +
  104.52      // Convenience methods to save us from trouble of extracting
  104.53      // Rectangle fields in native code.
  104.54      private native void setMaximizedBounds(int x, int y, int w, int h);
   105.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   105.2 +++ b/src/windows/classes/sun/awt/windows/WKeyboardFocusManagerPeer.java	Tue Apr 14 04:21:02 2009 -0700
   105.3 @@ -0,0 +1,75 @@
   105.4 +/*
   105.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   105.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   105.7 + *
   105.8 + * This code is free software; you can redistribute it and/or modify it
   105.9 + * under the terms of the GNU General Public License version 2 only, as
  105.10 + * published by the Free Software Foundation.  Sun designates this
  105.11 + * particular file as subject to the "Classpath" exception as provided
  105.12 + * by Sun in the LICENSE file that accompanied this code.
  105.13 + *
  105.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  105.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  105.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  105.17 + * version 2 for more details (a copy is included in the LICENSE file that
  105.18 + * accompanied this code).
  105.19 + *
  105.20 + * You should have received a copy of the GNU General Public License version
  105.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  105.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  105.23 + *
  105.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  105.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  105.26 + * have any questions.
  105.27 + */
  105.28 +
  105.29 +package sun.awt.windows;
  105.30 +
  105.31 +import java.awt.KeyboardFocusManager;
  105.32 +import java.awt.Window;
  105.33 +import java.awt.Component;
  105.34 +import java.awt.peer.ComponentPeer;
  105.35 +import sun.awt.KeyboardFocusManagerPeerImpl;
  105.36 +import sun.awt.CausedFocusEvent;
  105.37 +
  105.38 +class WKeyboardFocusManagerPeer extends KeyboardFocusManagerPeerImpl {
  105.39 +    static native void setNativeFocusOwner(ComponentPeer peer);
  105.40 +    static native Component getNativeFocusOwner();
  105.41 +    static native Window getNativeFocusedWindow();
  105.42 +
  105.43 +    WKeyboardFocusManagerPeer(KeyboardFocusManager manager) {
  105.44 +        super(manager);
  105.45 +    }
  105.46 +
  105.47 +    @Override
  105.48 +    public void setCurrentFocusOwner(Component comp) {
  105.49 +        setNativeFocusOwner(comp != null ? comp.getPeer() : null);
  105.50 +    }
  105.51 +
  105.52 +    @Override
  105.53 +    public Component getCurrentFocusOwner() {
  105.54 +        return getNativeFocusOwner();
  105.55 +    }
  105.56 +
  105.57 +    @Override
  105.58 +    public Window getCurrentFocusedWindow() {
  105.59 +        return getNativeFocusedWindow();
  105.60 +    }
  105.61 +
  105.62 +    public static boolean deliverFocus(Component lightweightChild,
  105.63 +                                       Component target,
  105.64 +                                       boolean temporary,
  105.65 +                                       boolean focusedWindowChangeAllowed,
  105.66 +                                       long time,
  105.67 +                                       CausedFocusEvent.Cause cause)
  105.68 +    {
  105.69 +        // TODO: do something to eliminate this forwarding
  105.70 +        return KeyboardFocusManagerPeerImpl.deliverFocus(lightweightChild,
  105.71 +                                                         target,
  105.72 +                                                         temporary,
  105.73 +                                                         focusedWindowChangeAllowed,
  105.74 +                                                         time,
  105.75 +                                                         cause,
  105.76 +                                                         getNativeFocusOwner());
  105.77 +    }
  105.78 +}
   106.1 --- a/src/windows/classes/sun/awt/windows/WPanelPeer.java	Tue Apr 14 00:05:07 2009 -0700
   106.2 +++ b/src/windows/classes/sun/awt/windows/WPanelPeer.java	Tue Apr 14 04:21:02 2009 -0700
   106.3 @@ -100,34 +100,6 @@
   106.4          return getInsets();
   106.5      }
   106.6  
   106.7 -    /*
   106.8 -     * From the DisplayChangedListener interface. Often is
   106.9 -     * up-called from a WWindowPeer instance.
  106.10 -     */
  106.11 -    public void displayChanged() {
  106.12 -        super.displayChanged();
  106.13 -        displayChanged((Container)target);
  106.14 -    }
  106.15 -
  106.16 -    /*
  106.17 -     * Recursively iterates through all the HW and LW children
  106.18 -     * of the container and calls displayChanged() for HW peers.
  106.19 -     * Iteration through children peers only is not enough as the
  106.20 -     * displayChanged notification may not be propagated to HW
  106.21 -     * components inside LW containers, see 4452373 for details.
  106.22 -     */
  106.23 -    private static void displayChanged(Container target) {
  106.24 -        Component children[] = ((Container)target).getComponents();
  106.25 -        for (Component child : children) {
  106.26 -            ComponentPeer cpeer = child.getPeer();
  106.27 -            if (cpeer instanceof WComponentPeer) {
  106.28 -                ((WComponentPeer)cpeer).displayChanged();
  106.29 -            } else if (child instanceof Container) {
  106.30 -                displayChanged((Container)child);
  106.31 -            }
  106.32 -        }
  106.33 -    }
  106.34 -
  106.35      private native void pRestack(Object[] peers);
  106.36      private void restack(Container cont, Vector peers) {
  106.37          for (int i = 0; i < cont.getComponentCount(); i++) {
   107.1 --- a/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java	Tue Apr 14 00:05:07 2009 -0700
   107.2 +++ b/src/windows/classes/sun/awt/windows/WPrintDialogPeer.java	Tue Apr 14 04:21:02 2009 -0700
   107.3 @@ -1,5 +1,5 @@
   107.4  /*
   107.5 - * Copyright 1999-2007 Sun Microsystems, Inc.  All Rights Reserved.
   107.6 + * Copyright 1999-2009 Sun Microsystems, Inc.  All Rights Reserved.
   107.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   107.8   *
   107.9   * This code is free software; you can redistribute it and/or modify it
  107.10 @@ -27,6 +27,7 @@
  107.11  
  107.12  import java.awt.*;
  107.13  import java.awt.peer.DialogPeer;
  107.14 +import java.awt.peer.ComponentPeer;
  107.15  import java.awt.dnd.DropTarget;
  107.16  import java.util.Vector;
  107.17  import sun.awt.AppContext;
  107.18 @@ -137,23 +138,16 @@
  107.19      void invalidate(int x, int y, int width, int height) {}
  107.20      public void addDropTarget(DropTarget dt) {}
  107.21      public void removeDropTarget(DropTarget dt) {}
  107.22 +    public void setZOrder(ComponentPeer above) {}
  107.23  
  107.24      /**
  107.25       * Initialize JNI field and method ids
  107.26       */
  107.27      private static native void initIDs();
  107.28  
  107.29 -    /**
  107.30 -     * WPrintDialogPeer doesn't have native pData so we don't do restack on it
  107.31 -     * @see java.awt.peer.ContainerPeer#restack
  107.32 -     */
  107.33 -    public void restack() {
  107.34 -    }
  107.35 -
  107.36 -    /**
  107.37 -     * @see java.awt.peer.ContainerPeer#isRestackSupported
  107.38 -     */
  107.39 -    public boolean isRestackSupported() {
  107.40 -        return false;
  107.41 -    }
  107.42 +    // The effects are not supported for system dialogs.
  107.43 +    public void applyShape(sun.java2d.pipe.Region shape) {}
  107.44 +    public void setOpacity(float opacity) {}
  107.45 +    public void setOpaque(boolean isOpaque) {}
  107.46 +    public void updateWindow(java.awt.image.BufferedImage backBuffer) {}
  107.47  }
   108.1 --- a/src/windows/classes/sun/awt/windows/WScrollPanePeer.java	Tue Apr 14 00:05:07 2009 -0700
   108.2 +++ b/src/windows/classes/sun/awt/windows/WScrollPanePeer.java	Tue Apr 14 04:21:02 2009 -0700
   108.3 @@ -269,10 +269,4 @@
   108.4          }
   108.5      }
   108.6  
   108.7 -    /**
   108.8 -     * @see java.awt.peer.ContainerPeer#restack
   108.9 -     */
  108.10 -    public void restack() {
  108.11 -        // Since ScrollPane can only have one child its restacking does nothing.
  108.12 -    }
  108.13  }
   109.1 --- a/src/windows/classes/sun/awt/windows/WToolkit.java	Tue Apr 14 00:05:07 2009 -0700
   109.2 +++ b/src/windows/classes/sun/awt/windows/WToolkit.java	Tue Apr 14 04:21:02 2009 -0700
   109.3 @@ -1,5 +1,5 @@
   109.4  /*
   109.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   109.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   109.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   109.8   *
   109.9   * This code is free software; you can redistribute it and/or modify it
  109.10 @@ -494,6 +494,12 @@
  109.11          return true;
  109.12      }
  109.13  
  109.14 +    public KeyboardFocusManagerPeer createKeyboardFocusManagerPeer(KeyboardFocusManager manager)
  109.15 +      throws HeadlessException
  109.16 +    {
  109.17 +        return new WKeyboardFocusManagerPeer(manager);
  109.18 +    }
  109.19 +
  109.20      protected native void setDynamicLayoutNative(boolean b);
  109.21  
  109.22      public void setDynamicLayout(boolean b) {
  109.23 @@ -975,4 +981,34 @@
  109.24      public boolean areExtraMouseButtonsEnabled() throws HeadlessException {
  109.25          return areExtraMouseButtonsEnabled;
  109.26      }
  109.27 +
  109.28 +    @Override
  109.29 +    public boolean isWindowOpacitySupported() {
  109.30 +        // supported in Win2K and later
  109.31 +        return true;
  109.32 +    }
  109.33 +
  109.34 +    @Override
  109.35 +    public boolean isWindowShapingSupported() {
  109.36 +        return true;
  109.37 +    }
  109.38 +
  109.39 +    @Override
  109.40 +    public boolean isWindowTranslucencySupported() {
  109.41 +        // supported in Win2K and later
  109.42 +        return true;
  109.43 +    }
  109.44 +
  109.45 +    @Override
  109.46 +    public boolean isTranslucencyCapable(GraphicsConfiguration gc) {
  109.47 +        //XXX: worth checking if 8-bit? Anyway, it doesn't hurt.
  109.48 +        return true;
  109.49 +    }
  109.50 +
  109.51 +    // On MS Windows one must use the peer.updateWindow() to implement
  109.52 +    // non-opaque windows.
  109.53 +    @Override
  109.54 +    public boolean needUpdateWindow() {
  109.55 +        return true;
  109.56 +    }
  109.57  }
   110.1 --- a/src/windows/classes/sun/awt/windows/WWindowPeer.java	Tue Apr 14 00:05:07 2009 -0700
   110.2 +++ b/src/windows/classes/sun/awt/windows/WWindowPeer.java	Tue Apr 14 04:21:02 2009 -0700
   110.3 @@ -1,5 +1,5 @@
   110.4  /*
   110.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   110.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   110.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   110.8   *
   110.9   * This code is free software; you can redistribute it and/or modify it
  110.10 @@ -31,19 +31,19 @@
  110.11  
  110.12  import java.beans.*;
  110.13  
  110.14 -import java.lang.ref.*;
  110.15  import java.lang.reflect.*;
  110.16  
  110.17 -import java.security.*;
  110.18 -
  110.19  import java.util.*;
  110.20  import java.util.List;
  110.21  import java.util.logging.*;
  110.22  
  110.23  import sun.awt.*;
  110.24 -import sun.awt.image.*;
  110.25  
  110.26 -public class WWindowPeer extends WPanelPeer implements WindowPeer {
  110.27 +import sun.java2d.pipe.Region;
  110.28 +
  110.29 +public class WWindowPeer extends WPanelPeer implements WindowPeer,
  110.30 +       DisplayChangedListener
  110.31 +{
  110.32  
  110.33      private static final Logger log = Logger.getLogger("sun.awt.windows.WWindowPeer");
  110.34      private static final Logger screenLog = Logger.getLogger("sun.awt.windows.screen.WWindowPeer");
  110.35 @@ -52,6 +52,10 @@
  110.36      // extends WWindowPeer, not WDialogPeer
  110.37      private WWindowPeer modalBlocker = null;
  110.38  
  110.39 +    private boolean isOpaque;
  110.40 +
  110.41 +    private volatile TranslucentWindowPainter painter;
  110.42 +
  110.43      /*
  110.44       * A key used for storing a list of active windows in AppContext. The value
  110.45       * is a list of windows, sorted by the time of activation: later a window is
  110.46 @@ -73,6 +77,12 @@
  110.47      private final static PropertyChangeListener guiDisposedListener =
  110.48          new GuiDisposedListener();
  110.49  
  110.50 +    /*
  110.51 +     * Called (on the Toolkit thread) before the appropriate
  110.52 +     * WindowStateEvent is posted to the EventQueue.
  110.53 +     */
  110.54 +    private WindowListener windowListener;
  110.55 +
  110.56      /**
  110.57       * Initialize JNI field IDs
  110.58       */
  110.59 @@ -91,9 +101,18 @@
  110.60                  l.remove(this);
  110.61              }
  110.62          }
  110.63 +
  110.64          // Remove ourself from the Map of DisplayChangeListeners
  110.65          GraphicsConfiguration gc = getGraphicsConfiguration();
  110.66          ((Win32GraphicsDevice)gc.getDevice()).removeDisplayChangedListener(this);
  110.67 +
  110.68 +        TranslucentWindowPainter currentPainter = painter;
  110.69 +        if (currentPainter != null) {
  110.70 +            currentPainter.flush();
  110.71 +            // don't set the current one to null here; reduces the chances of
  110.72 +            // MT issues (like NPEs)
  110.73 +        }
  110.74 +
  110.75          super.disposeImpl();
  110.76      }
  110.77  
  110.78 @@ -158,6 +177,10 @@
  110.79          initActiveWindowsTracking((Window)target);
  110.80  
  110.81          updateIconImages();
  110.82 +
  110.83 +        updateShape();
  110.84 +        updateOpacity();
  110.85 +        updateOpaque();
  110.86      }
  110.87  
  110.88      native void createAwtWindow(WComponentPeer parent);
  110.89 @@ -183,7 +206,6 @@
  110.90          // super.displayChanged() in WWindowPeer.displayChanged() regardless of whether
  110.91          // GraphicsDevice was really changed, or not. So we need to track it here.
  110.92          updateGC();
  110.93 -        resetTargetGC();
  110.94  
  110.95          realShow();
  110.96          updateMinimumSize();
  110.97 @@ -191,6 +213,8 @@
  110.98          if (((Window)target).isAlwaysOnTopSupported() && alwaysOnTop) {
  110.99              setAlwaysOnTop(alwaysOnTop);
 110.100          }
 110.101 +
 110.102 +        updateWindow(null);
 110.103      }
 110.104  
 110.105      // Synchronize the insets members (here & in helper) with actual window
 110.106 @@ -214,25 +238,62 @@
 110.107                                    int[] smallIconRaster, int smw, int smh);
 110.108  
 110.109      synchronized native void reshapeFrame(int x, int y, int width, int height);
 110.110 -    public boolean requestWindowFocus() {
 110.111 -        // Win32 window doesn't need this
 110.112 -        return false;
 110.113 +
 110.114 +    public boolean requestWindowFocus(CausedFocusEvent.Cause cause) {
 110.115 +        if (!focusAllowedFor()) {
 110.116 +            return false;
 110.117 +        }
 110.118 +        return requestWindowFocus(cause == CausedFocusEvent.Cause.MOUSE_EVENT);
 110.119      }
 110.120 +    public native boolean requestWindowFocus(boolean isMouseEventCause);
 110.121  
 110.122      public boolean focusAllowedFor() {
 110.123 -        Window target = (Window)this.target;
 110.124 -        if (!target.isVisible() ||
 110.125 -            !target.isEnabled() ||
 110.126 -            !target.isFocusable())
 110.127 +        Window window = (Window)this.target;
 110.128 +        if (!window.isVisible() ||
 110.129 +            !window.isEnabled() ||
 110.130 +            !window.isFocusableWindow())
 110.131          {
 110.132              return false;
 110.133          }
 110.134 -
 110.135          if (isModalBlocked()) {
 110.136              return false;
 110.137          }
 110.138 +        return true;
 110.139 +    }
 110.140  
 110.141 -        return true;
 110.142 +    public void hide() {
 110.143 +        WindowListener listener = windowListener;
 110.144 +        if (listener != null) {
 110.145 +            // We're not getting WINDOW_CLOSING from the native code when hiding
 110.146 +            // the window programmatically. So, create it and notify the listener.
 110.147 +            listener.windowClosing(new WindowEvent((Window)target, WindowEvent.WINDOW_CLOSING));
 110.148 +        }
 110.149 +        super.hide();
 110.150 +    }
 110.151 +
 110.152 +    // WARNING: it's called on the Toolkit thread!
 110.153 +    void preprocessPostEvent(AWTEvent event) {
 110.154 +        if (event instanceof WindowEvent) {
 110.155 +            WindowListener listener = windowListener;
 110.156 +            if (listener != null) {
 110.157 +                switch(event.getID()) {
 110.158 +                    case WindowEvent.WINDOW_CLOSING:
 110.159 +                        listener.windowClosing((WindowEvent)event);
 110.160 +                        break;
 110.161 +                    case WindowEvent.WINDOW_ICONIFIED:
 110.162 +                        listener.windowIconified((WindowEvent)event);
 110.163 +                        break;
 110.164 +                }
 110.165 +            }
 110.166 +        }
 110.167 +    }
 110.168 +
 110.169 +    synchronized void addWindowListener(WindowListener l) {
 110.170 +        windowListener = AWTEventMulticaster.add(windowListener, l);
 110.171 +    }
 110.172 +
 110.173 +    synchronized void removeWindowListener(WindowListener l) {
 110.174 +        windowListener = AWTEventMulticaster.remove(windowListener, l);
 110.175      }
 110.176  
 110.177      public void updateMinimumSize() {
 110.178 @@ -273,6 +334,31 @@
 110.179          }
 110.180      }
 110.181  
 110.182 +    private void updateShape() {
 110.183 +        // Shape shape = ((Window)target).getShape();
 110.184 +        Shape shape = AWTAccessor.getWindowAccessor().getShape((Window)target);
 110.185 +        if (shape != null) {
 110.186 +            applyShape(Region.getInstance(shape, null));
 110.187 +        }
 110.188 +    }
 110.189 +
 110.190 +    private void updateOpacity() {
 110.191 +        // float opacity = ((Window)target).getOpacity();
 110.192 +        float opacity = AWTAccessor.getWindowAccessor().getOpacity((Window)target);
 110.193 +        if (opacity < 1.0f) {
 110.194 +            setOpacity(opacity);
 110.195 +        }
 110.196 +    }
 110.197 +
 110.198 +    private void updateOpaque() {
 110.199 +        this.isOpaque = true;
 110.200 +        // boolean opaque = ((Window)target).isOpaque();
 110.201 +        boolean opaque = AWTAccessor.getWindowAccessor().isOpaque((Window)target);
 110.202 +        if (!opaque) {
 110.203 +            setOpaque(opaque);
 110.204 +        }
 110.205 +    }
 110.206 +
 110.207      native void setMinSize(int width, int height);
 110.208  
 110.209  /*
 110.210 @@ -358,14 +444,6 @@
 110.211          });
 110.212      }
 110.213  
 110.214 -
 110.215 -    /*
 110.216 -     * Called from WCanvasPeer.displayChanged().
 110.217 -     * Override to do nothing - Window and WWindowPeer GC must never be set to
 110.218 -     * null!
 110.219 -     */
 110.220 -    void clearLocalGC() {}
 110.221 -
 110.222      public void updateGC() {
 110.223          int scrn = getScreenImOn();
 110.224          if (screenLog.isLoggable(Level.FINER)) {
 110.225 @@ -404,18 +482,36 @@
 110.226              oldDev.removeDisplayChangedListener(this);
 110.227              newDev.addDisplayChangedListener(this);
 110.228          }
 110.229 +
 110.230 +        SunToolkit.executeOnEventHandlerThread((Component)target,
 110.231 +                new Runnable() {
 110.232 +                    public void run() {
 110.233 +                        AWTAccessor.getComponentAccessor().
 110.234 +            setGraphicsConfiguration((Component)target, winGraphicsConfig);
 110.235 +                    }
 110.236 +                });
 110.237      }
 110.238  
 110.239 -    /*
 110.240 -     * From the DisplayChangedListener interface
 110.241 +    /**
 110.242 +     * From the DisplayChangedListener interface.
 110.243       *
 110.244       * This method handles a display change - either when the display settings
 110.245       * are changed, or when the window has been dragged onto a different
 110.246       * display.
 110.247 +     * Called after a change in the display mode.  This event
 110.248 +     * triggers replacing the surfaceData object (since that object
 110.249 +     * reflects the current display depth information, which has
 110.250 +     * just changed).
 110.251       */
 110.252      public void displayChanged() {
 110.253          updateGC();
 110.254 -        super.displayChanged();
 110.255 +    }
 110.256 +
 110.257 +    /**
 110.258 +     * Part of the DisplayChangedListener interface: components
 110.259 +     * do not need to react to this event
 110.260 +     */
 110.261 +    public void paletteChanged() {
 110.262      }
 110.263  
 110.264      private native int getScreenImOn();
 110.265 @@ -451,8 +547,10 @@
 110.266       private volatile int sysH = 0;
 110.267  
 110.268       Rectangle constrainBounds(int x, int y, int width, int height) {
 110.269 +         GraphicsConfiguration gc = this.winGraphicsConfig;
 110.270 +
 110.271           // We don't restrict the setBounds() operation if the code is trusted.
 110.272 -         if (!hasWarningWindow()) {
 110.273 +         if (!hasWarningWindow() || gc == null) {
 110.274               return new Rectangle(x, y, width, height);
 110.275           }
 110.276  
 110.277 @@ -461,24 +559,24 @@
 110.278           int newW = width;
 110.279           int newH = height;
 110.280  
 110.281 -         GraphicsConfiguration gc = ((Window)target).getGraphicsConfiguration();
 110.282           Rectangle sB = gc.getBounds();
 110.283 -         Insets sIn = ((Window)target).getToolkit().getScreenInsets(gc);
 110.284 +         Insets sIn = Toolkit.getDefaultToolkit().getScreenInsets(gc);
 110.285  
 110.286           int screenW = sB.width - sIn.left - sIn.right;
 110.287           int screenH = sB.height - sIn.top - sIn.bottom;
 110.288  
 110.289           // If it's undecorated or is not currently visible
 110.290 -         if (!((Window)target).isVisible() || isTargetUndecorated()) {
 110.291 +         if (!AWTAccessor.getComponentAccessor().isVisible_NoClientCode(
 110.292 +                     (Component)target) || isTargetUndecorated())
 110.293 +         {
 110.294               // Now check each point is within the visible part of the screen
 110.295               int screenX = sB.x + sIn.left;
 110.296               int screenY = sB.y + sIn.top;
 110.297  
 110.298 -             // First make sure the size is withing the visible part of the screen
 110.299 +             // First make sure the size is within the visible part of the screen
 110.300               if (newW > screenW) {
 110.301                   newW = screenW;
 110.302               }
 110.303 -
 110.304               if (newH > screenH) {
 110.305                   newH = screenH;
 110.306               }
 110.307 @@ -489,7 +587,6 @@
 110.308               } else if (newX + newW > screenX + screenW) {
 110.309                   newX = screenX + screenW - newW;
 110.310               }
 110.311 -
 110.312               if (newY < screenY) {
 110.313                   newY = screenY;
 110.314               } else if (newY + newH > screenY + screenH) {
 110.315 @@ -504,7 +601,6 @@
 110.316               if (newW > maxW) {
 110.317                   newW = maxW;
 110.318               }
 110.319 -
 110.320               if (newH > maxH) {
 110.321                   newH = maxH;
 110.322               }
 110.323 @@ -513,6 +609,8 @@
 110.324           return new Rectangle(newX, newY, newW, newH);
 110.325       }
 110.326  
 110.327 +     public native void repositionSecurityWarning();
 110.328 +
 110.329       @Override
 110.330       public void setBounds(int x, int y, int width, int height, int op) {
 110.331           Rectangle newBounds = constrainBounds(x, y, width, height);
 110.332 @@ -525,6 +623,135 @@
 110.333           super.setBounds(newBounds.x, newBounds.y, newBounds.width, newBounds.height, op);
 110.334       }
 110.335  
 110.336 +    @Override
 110.337 +    public void print(Graphics g) {
 110.338 +        // We assume we print the whole frame,
 110.339 +        // so we expect no clip was set previously
 110.340 +        Shape shape = AWTAccessor.getWindowAccessor().getShape((Window)target);
 110.341 +        if (shape != null) {
 110.342 +            g.setClip(shape);
 110.343 +        }
 110.344 +        super.print(g);
 110.345 +    }
 110.346 +
 110.347 +    private void replaceSurfaceDataRecursively(Component c) {
 110.348 +        if (c instanceof Container) {
 110.349 +            for (Component child : ((Container)c).getComponents()) {
 110.350 +                replaceSurfaceDataRecursively(child);
 110.351 +            }
 110.352 +        }
 110.353 +        ComponentPeer cp = c.getPeer();
 110.354 +        if (cp instanceof WComponentPeer) {
 110.355 +            ((WComponentPeer)cp).replaceSurfaceDataLater();
 110.356 +        }
 110.357 +    }
 110.358 +
 110.359 +    private native void setOpacity(int iOpacity);
 110.360 +
 110.361 +    public void setOpacity(float opacity) {
 110.362 +        if (!((SunToolkit)((Window)target).getToolkit()).
 110.363 +            isWindowOpacitySupported())
 110.364 +        {
 110.365 +            return;
 110.366 +        }
 110.367 +
 110.368 +        replaceSurfaceDataRecursively((Component)getTarget());
 110.369 +
 110.370 +        final int maxOpacity = 0xff;
 110.371 +        int iOpacity = (int)(opacity * maxOpacity);
 110.372 +        if (iOpacity < 0) {
 110.373 +            iOpacity = 0;
 110.374 +        }
 110.375 +        if (iOpacity > maxOpacity) {
 110.376 +            iOpacity = maxOpacity;
 110.377 +        }
 110.378 +
 110.379 +        setOpacity(iOpacity);
 110.380 +        updateWindow(null);
 110.381 +    }
 110.382 +
 110.383 +    private native void setOpaqueImpl(boolean isOpaque);
 110.384 +
 110.385 +    public void setOpaque(boolean isOpaque) {
 110.386 +        Window target = (Window)getTarget();
 110.387 +
 110.388 +        SunToolkit sunToolkit = (SunToolkit)target.getToolkit();
 110.389 +        if (!sunToolkit.isWindowTranslucencySupported() ||
 110.390 +            !sunToolkit.isTranslucencyCapable(target.getGraphicsConfiguration()))
 110.391 +        {
 110.392 +            return;
 110.393 +        }
 110.394 +
 110.395 +        boolean opaqueChanged = this.isOpaque != isOpaque;
 110.396 +        boolean isVistaOS = Win32GraphicsEnvironment.isVistaOS();
 110.397 +
 110.398 +        if (opaqueChanged && !isVistaOS){
 110.399 +            // non-Vista OS: only replace the surface data if the opacity
 110.400 +            // status changed (see WComponentPeer.isAccelCapable() for more)
 110.401 +            replaceSurfaceDataRecursively(target);
 110.402 +        }
 110.403 +
 110.404 +        this.isOpaque = isOpaque;
 110.405 +
 110.406 +        setOpaqueImpl(isOpaque);
 110.407 +
 110.408 +        if (opaqueChanged) {
 110.409 +            if (isOpaque) {
 110.410 +                TranslucentWindowPainter currentPainter = painter;
 110.411 +                if (currentPainter != null) {
 110.412 +                    currentPainter.flush();
 110.413 +                    painter = null;
 110.414 +                }
 110.415 +            } else {
 110.416 +                painter = TranslucentWindowPainter.createInstance(this);
 110.417 +            }
 110.418 +        }
 110.419 +
 110.420 +        if (opaqueChanged && isVistaOS) {
 110.421 +            // On Vista: setting the window non-opaque makes the window look
 110.422 +            // rectangular, though still catching the mouse clicks within
 110.423 +            // its shape only. To restore the correct visual appearance
 110.424 +            // of the window (i.e. w/ the correct shape) we have to reset
 110.425 +            // the shape.
 110.426 +            Shape shape = AWTAccessor.getWindowAccessor().getShape(target);
 110.427 +            if (shape != null) {
 110.428 +                AWTAccessor.getWindowAccessor().setShape(target, shape);
 110.429 +            }
 110.430 +        }
 110.431 +
 110.432 +        updateWindow(null);
 110.433 +    }
 110.434 +
 110.435 +    public native void updateWindowImpl(int[] data, int width, int height);
 110.436 +
 110.437 +    public void updateWindow(BufferedImage backBuffer) {
 110.438 +        if (isOpaque) {
 110.439 +            return;
 110.440 +        }
 110.441 +
 110.442 +        TranslucentWindowPainter currentPainter = painter;
 110.443 +        if (currentPainter != null) {
 110.444 +            currentPainter.updateWindow(backBuffer);
 110.445 +        } else if (log.isLoggable(Level.FINER)) {
 110.446 +            log.log(Level.FINER,
 110.447 +                    "Translucent window painter is null in updateWindow");
 110.448 +        }
 110.449 +    }
 110.450 +
 110.451 +    /**
 110.452 +     * Paints the Applet Warning into the passed Graphics2D. This method is
 110.453 +     * called by the TranslucentWindowPainter before updating the layered
 110.454 +     * window.
 110.455 +     *
 110.456 +     * @param g Graphics context to paint the warning to
 110.457 +     * @param w the width of the area
 110.458 +     * @param h the height of the area
 110.459 +     * @see TranslucentWindowPainter
 110.460 +     */
 110.461 +    public void paintAppletWarning(Graphics2D g, int w, int h) {
 110.462 +        // REMIND: the applet warning needs to be painted here
 110.463 +    }
 110.464 +
 110.465      /*
 110.466       * The method maps the list of the active windows to the window's AppContext,
 110.467       * then the method registers ActiveWindowListener, GuiDisposedListener listeners;
   111.1 --- a/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java	Tue Apr 14 00:05:07 2009 -0700
   111.2 +++ b/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java	Tue Apr 14 04:21:02 2009 -0700
   111.3 @@ -1,5 +1,5 @@
   111.4  /*
   111.5 - * Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
   111.6 + * Copyright 2007-2009 Sun Microsystems, Inc.  All Rights Reserved.
   111.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   111.8   *
   111.9   * This code is free software; you can redistribute it and/or modify it
  111.10 @@ -37,6 +37,7 @@
  111.11  import java.util.ArrayList;
  111.12  import java.util.HashMap;
  111.13  import sun.awt.SunToolkit;
  111.14 +import sun.awt.AWTAccessor;
  111.15  import sun.awt.Win32GraphicsConfig;
  111.16  import sun.awt.windows.WComponentPeer;
  111.17  import sun.java2d.InvalidPipeException;
  111.18 @@ -284,14 +285,12 @@
  111.19       * @param peer for which target's the repaint should be issued
  111.20       */
  111.21      private void repaintPeerTarget(WComponentPeer peer) {
  111.22 -        // we don't want to call user code on our priveleged
  111.23 -        // thread, delegate to EDT
  111.24 -        final Component target = (Component)peer.getTarget();
  111.25 -        SunToolkit.executeOnEventHandlerThread(target, new Runnable() {
  111.26 -            public void run() {
  111.27 -                target.repaint();
  111.28 -            }
  111.29 -        });
  111.30 +        Component target = (Component)peer.getTarget();
  111.31 +        Rectangle bounds = AWTAccessor.getComponentAccessor().getBounds(target);
  111.32 +        // the system-level painting operations should call the handlePaint()
  111.33 +        // method of the WComponentPeer class to repaint the component;
  111.34 +        // calling repaint() forces AWT to make call to update()
  111.35 +        peer.handlePaint(0, 0, bounds.width, bounds.height);
  111.36      }
  111.37  
  111.38      /**
   112.1 --- a/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java	Tue Apr 14 00:05:07 2009 -0700
   112.2 +++ b/src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java	Tue Apr 14 04:21:02 2009 -0700
   112.3 @@ -1,5 +1,5 @@
   112.4  /*
   112.5 - * Copyright 2004-2008 Sun Microsystems, Inc.  All Rights Reserved.
   112.6 + * Copyright 2004-2009 Sun Microsystems, Inc.  All Rights Reserved.
   112.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   112.8   *
   112.9   * This code is free software; you can redistribute it and/or modify it
  112.10 @@ -72,9 +72,8 @@
  112.11          // the OGL pipeline can render directly to the screen and interfere
  112.12          // with layered windows, which is why we don't allow accelerated
  112.13          // surfaces in this case
  112.14 -        if (!peer.isAccelCapable())
  112.15 -        // REMIND: commented until toplevel translucency is implemented
  112.16 -//            || !SunToolkit.isContainingTopLevelOpaque((Component)peer.getTarget()))
  112.17 +        if (!peer.isAccelCapable() ||
  112.18 +            !SunToolkit.isContainingTopLevelOpaque((Component)peer.getTarget()))
  112.19          {
  112.20              return null;
  112.21          }
  112.22 @@ -93,9 +92,8 @@
  112.23          // the OGL pipeline can render directly to the screen and interfere
  112.24          // with layered windows, which is why we don't allow accelerated
  112.25          // surfaces in this case
  112.26 -        if (!peer.isAccelCapable())
  112.27 -        // REMIND: commented until toplevel translucency is implemented
  112.28 -//            || !SunToolkit.isContainingTopLevelOpaque((Component)peer.getTarget()))
  112.29 +        if (!peer.isAccelCapable() ||
  112.30 +            !SunToolkit.isContainingTopLevelOpaque((Component)peer.getTarget()))
  112.31          {
  112.32              return null;
  112.33          }
   113.1 --- a/src/windows/native/sun/awt/utility/rect.h	Tue Apr 14 00:05:07 2009 -0700
   113.2 +++ b/src/windows/native/sun/awt/utility/rect.h	Tue Apr 14 04:21:02 2009 -0700
   113.3 @@ -1,5 +1,5 @@
   113.4  /*
   113.5 - * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
   113.6 + * Copyright 2007-2009 Sun Microsystems, Inc.  All Rights Reserved.
   113.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   113.8   *
   113.9   * This code is free software; you can redistribute it and/or modify it
  113.10 @@ -43,5 +43,15 @@
  113.11  
  113.12  #define RECT_INC_HEIGHT(r) (r).bottom++
  113.13  
  113.14 +#if defined(__cplusplus)
  113.15 +extern "C" {
  113.16 +#endif
  113.17 +
  113.18 +int BitmapToYXBandedRectangles(int bitsPerPixel, int width, int height,
  113.19 +        unsigned char * buf, RECT_T * outBuf);
  113.20 +
  113.21 +#if defined(__cplusplus)
  113.22 +}
  113.23 +#endif
  113.24  
  113.25  #endif // _AWT_RECT_H
   114.1 --- a/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp	Tue Apr 14 00:05:07 2009 -0700
   114.2 +++ b/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp	Tue Apr 14 04:21:02 2009 -0700
   114.3 @@ -1,5 +1,5 @@
   114.4  /*
   114.5 - * Copyright 2007-2008 Sun Microsystems, Inc.  All Rights Reserved.
   114.6 + * Copyright 2007-2009 Sun Microsystems, Inc.  All Rights Reserved.
   114.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   114.8   *
   114.9   * This code is free software; you can redistribute it and/or modify it
  114.10 @@ -613,17 +613,15 @@
  114.11  
  114.12      res = pTmpSurface->LockRect(&lockedRect, NULL, D3DLOCK_NOSYSLOCK);
  114.13      if (SUCCEEDED(res)) {
  114.14 -        // REMIND: commented until translucent window support is integrated
  114.15 -//        hBitmap =
  114.16 -//            BitmapUtil::CreateBitmapFromARGBPre(w, h,
  114.17 -//                                                lockedRect.Pitch,
  114.18 -//                                                (int*)lockedRect.pBits);
  114.19 +        hBitmap =
  114.20 +            BitmapUtil::CreateBitmapFromARGBPre(w, h,
  114.21 +                                                lockedRect.Pitch,
  114.22 +                                                (int*)lockedRect.pBits);
  114.23          pTmpSurface->UnlockRect();
  114.24      }
  114.25      RETURN_STATUS_IF_NULL(hBitmap, JNI_FALSE);
  114.26  
  114.27 -    // REMIND: commented until translucent window support is integrated
  114.28 -//    window->UpdateWindow(env, NULL, w, h, hBitmap);
  114.29 +    window->UpdateWindow(env, NULL, w, h, hBitmap);
  114.30  
  114.31      // hBitmap is released in UpdateWindow
  114.32  
   115.1 --- a/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c	Tue Apr 14 00:05:07 2009 -0700
   115.2 +++ b/src/windows/native/sun/java2d/opengl/WGLSurfaceData.c	Tue Apr 14 04:21:02 2009 -0700
   115.3 @@ -1,5 +1,5 @@
   115.4  /*
   115.5 - * Copyright 2004-2008 Sun Microsystems, Inc.  All Rights Reserved.
   115.6 + * Copyright 2004-2009 Sun Microsystems, Inc.  All Rights Reserved.
   115.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   115.8   *
   115.9   * This code is free software; you can redistribute it and/or modify it
  115.10 @@ -625,17 +625,15 @@
  115.11      j2d_glPixelStorei(GL_PACK_ALIGNMENT, 4);
  115.12  
  115.13      // the pixels read from the surface are already premultiplied
  115.14 -    // REMIND: commented until translucent window support is integrated
  115.15 -//    hBitmap = BitmapUtil_CreateBitmapFromARGBPre(w, h, scanStride,
  115.16 -//                                                 (int*)pDst);
  115.17 +    hBitmap = BitmapUtil_CreateBitmapFromARGBPre(w, h, scanStride,
  115.18 +                                                 (int*)pDst);
  115.19      free(pDst);
  115.20  
  115.21      if (hBitmap == NULL) {
  115.22          return JNI_FALSE;
  115.23      }
  115.24  
  115.25 -    // REMIND: commented until translucent window support is integrated
  115.26 -    // AwtWindow_UpdateWindow(env, peer, w, h, hBitmap);
  115.27 +    AwtWindow_UpdateWindow(env, peer, w, h, hBitmap);
  115.28  
  115.29      // hBitmap is released in UpdateWindow
  115.30  
   116.1 --- a/src/windows/native/sun/windows/ComCtl32Util.cpp	Tue Apr 14 00:05:07 2009 -0700
   116.2 +++ b/src/windows/native/sun/windows/ComCtl32Util.cpp	Tue Apr 14 04:21:02 2009 -0700
   116.3 @@ -27,6 +27,7 @@
   116.4  #include "ComCtl32Util.h"
   116.5  
   116.6  ComCtl32Util::ComCtl32Util() {
   116.7 +    m_bToolTipControlInitialized = FALSE;
   116.8  }
   116.9  
  116.10  ComCtl32Util::~ComCtl32Util() {
  116.11 @@ -36,7 +37,8 @@
  116.12      INITCOMMONCONTROLSEX iccex;
  116.13      memset(&iccex, 0, sizeof(INITCOMMONCONTROLSEX));
  116.14      iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
  116.15 -    ::InitCommonControlsEx(&iccex);
  116.16 +    iccex.dwICC = ICC_TAB_CLASSES;
  116.17 +    m_bToolTipControlInitialized = ::InitCommonControlsEx(&iccex);
  116.18  }
  116.19  
  116.20  WNDPROC ComCtl32Util::SubclassHWND(HWND hwnd, WNDPROC _WindowProc) {
   117.1 --- a/src/windows/native/sun/windows/ComCtl32Util.h	Tue Apr 14 00:05:07 2009 -0700
   117.2 +++ b/src/windows/native/sun/windows/ComCtl32Util.h	Tue Apr 14 04:21:02 2009 -0700
   117.3 @@ -40,6 +40,10 @@
   117.4  
   117.5          void InitLibraries();
   117.6  
   117.7 +        INLINE BOOL IsToolTipControlInitialized() {
   117.8 +            return m_bToolTipControlInitialized;
   117.9 +        }
  117.10 +
  117.11          WNDPROC SubclassHWND(HWND hwnd, WNDPROC _WindowProc);
  117.12          // DefWindowProc is the same as returned from SubclassHWND
  117.13          void UnsubclassHWND(HWND hwnd, WNDPROC _WindowProc, WNDPROC _DefWindowProc);
  117.14 @@ -50,6 +54,8 @@
  117.15          ComCtl32Util();
  117.16          ~ComCtl32Util();
  117.17  
  117.18 +        BOOL m_bToolTipControlInitialized;
  117.19 +
  117.20          // comctl32.dll version 6 window proc
  117.21          static LRESULT CALLBACK SharedWindowProc(HWND hwnd, UINT message,
  117.22                                                   WPARAM wParam, LPARAM lParam,
   118.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   118.2 +++ b/src/windows/native/sun/windows/DllUtil.cpp	Tue Apr 14 04:21:02 2009 -0700
   118.3 @@ -0,0 +1,87 @@
   118.4 +/*
   118.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   118.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   118.7 + *
   118.8 + * This code is free software; you can redistribute it and/or modify it
   118.9 + * under the terms of the GNU General Public License version 2 only, as
  118.10 + * published by the Free Software Foundation.  Sun designates this
  118.11 + * particular file as subject to the "Classpath" exception as provided
  118.12 + * by Sun in the LICENSE file that accompanied this code.
  118.13 + *
  118.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  118.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  118.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  118.17 + * version 2 for more details (a copy is included in the LICENSE file that
  118.18 + * accompanied this code).
  118.19 + *
  118.20 + * You should have received a copy of the GNU General Public License version
  118.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  118.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  118.23 + *
  118.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  118.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  118.26 + * have any questions.
  118.27 + */
  118.28 +
  118.29 +
  118.30 +#include "DllUtil.h"
  118.31 +
  118.32 +// Disable warning about using this in the initializer list.
  118.33 +#pragma warning( disable : 4355)
  118.34 +
  118.35 +DllUtil::~DllUtil()
  118.36 +{
  118.37 +    if (module != NULL) {
  118.38 +        ::FreeLibrary(module);
  118.39 +        module = NULL;
  118.40 +    }
  118.41 +}
  118.42 +
  118.43 +HMODULE DllUtil::GetModule()
  118.44 +{
  118.45 +    if (!module) {
  118.46 +        module = ::LoadLibrary(name);
  118.47 +    }
  118.48 +    return module;
  118.49 +}
  118.50 +
  118.51 +FARPROC DllUtil::GetProcAddress(LPCSTR name)
  118.52 +{
  118.53 +    if (GetModule()) {
  118.54 +        return ::GetProcAddress(GetModule(), name);
  118.55 +    }
  118.56 +    throw LibraryUnavailableException();
  118.57 +}
  118.58 +
  118.59 +DwmAPI & DwmAPI::GetInstance()
  118.60 +{
  118.61 +    static DwmAPI dll;
  118.62 +    return dll;
  118.63 +}
  118.64 +
  118.65 +DwmAPI::DwmAPI() :
  118.66 +    DllUtil(_T("DWMAPI.DLL")),
  118.67 +    DwmIsCompositionEnabledFunction((DllUtil*)this, "DwmIsCompositionEnabled"),
  118.68 +    DwmGetWindowAttributeFunction((DllUtil*)this, "DwmGetWindowAttribute")
  118.69 +{
  118.70 +}
  118.71 +
  118.72 +HRESULT DwmAPI::DwmIsCompositionEnabled(BOOL * pfEnabled)
  118.73 +{
  118.74 +    if (GetInstance().DwmIsCompositionEnabledFunction()) {
  118.75 +        return GetInstance().DwmIsCompositionEnabledFunction()(pfEnabled);
  118.76 +    }
  118.77 +    throw FunctionUnavailableException();
  118.78 +}
  118.79 +
  118.80 +HRESULT DwmAPI::DwmGetWindowAttribute(HWND hwnd, DWORD dwAttribute,
  118.81 +        PVOID pvAttribute, DWORD cbAttribute)
  118.82 +{
  118.83 +    if (GetInstance().DwmGetWindowAttributeFunction()) {
  118.84 +        return GetInstance().DwmGetWindowAttributeFunction()(hwnd, dwAttribute,
  118.85 +                pvAttribute, cbAttribute);
  118.86 +    }
  118.87 +    throw FunctionUnavailableException();
  118.88 +}
  118.89 +
  118.90 +
   119.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   119.2 +++ b/src/windows/native/sun/windows/DllUtil.h	Tue Apr 14 04:21:02 2009 -0700
   119.3 @@ -0,0 +1,97 @@
   119.4 +/*
   119.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   119.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   119.7 + *
   119.8 + * This code is free software; you can redistribute it and/or modify it
   119.9 + * under the terms of the GNU General Public License version 2 only, as
  119.10 + * published by the Free Software Foundation.  Sun designates this
  119.11 + * particular file as subject to the "Classpath" exception as provided
  119.12 + * by Sun in the LICENSE file that accompanied this code.
  119.13 + *
  119.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  119.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  119.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  119.17 + * version 2 for more details (a copy is included in the LICENSE file that
  119.18 + * accompanied this code).
  119.19 + *
  119.20 + * You should have received a copy of the GNU General Public License version
  119.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  119.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  119.23 + *
  119.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  119.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  119.26 + * have any questions.
  119.27 + */
  119.28 +
  119.29 +#ifndef DLLUTIL_H
  119.30 +#define DLLUTIL_H
  119.31 +
  119.32 +#include <tchar.h>
  119.33 +#include <windows.h>
  119.34 +
  119.35 +/**
  119.36 + * Utility class to handle dynamically loadable libraries.
  119.37 + *
  119.38 + * NOTE: THIS CLASS IS NOT THREAD-SAFE!
  119.39 + */
  119.40 +class DllUtil {
  119.41 +    public:
  119.42 +        class Exception {};
  119.43 +        class LibraryUnavailableException : public Exception {};
  119.44 +        class FunctionUnavailableException : public Exception {};
  119.45 +
  119.46 +        FARPROC GetProcAddress(LPCSTR name);
  119.47 +
  119.48 +    protected:
  119.49 +        DllUtil(const TCHAR * name) : name(name), module(NULL) {}
  119.50 +        virtual ~DllUtil();
  119.51 +
  119.52 +        HMODULE GetModule();
  119.53 +
  119.54 +        template <class FunctionType> class Function {
  119.55 +            public:
  119.56 +                Function(DllUtil * dll, LPCSTR name) :
  119.57 +                    dll(dll), name(name), function(NULL) {}
  119.58 +
  119.59 +                inline FunctionType operator () () {
  119.60 +                    if (!function) {
  119.61 +                        function = (FunctionType)dll->GetProcAddress(name);
  119.62 +                    }
  119.63 +                    return function;
  119.64 +                }
  119.65 +
  119.66 +            private:
  119.67 +                DllUtil * const dll;
  119.68 +                LPCSTR name;
  119.69 +
  119.70 +                FunctionType function;
  119.71 +        };
  119.72 +
  119.73 +    private:
  119.74 +        const TCHAR * const name;
  119.75 +        HMODULE module;
  119.76 +};
  119.77 +
  119.78 +class DwmAPI : public DllUtil {
  119.79 +    public:
  119.80 +        // See DWMWINDOWATTRIBUTE enum in dwmapi.h
  119.81 +        static const DWORD DWMWA_EXTENDED_FRAME_BOUNDS = 9;
  119.82 +
  119.83 +        static HRESULT DwmIsCompositionEnabled(BOOL * pfEnabled);
  119.84 +        static HRESULT DwmGetWindowAttribute(HWND hwnd, DWORD dwAttribute,
  119.85 +                PVOID pvAttribute, DWORD cbAttribute);
  119.86 +
  119.87 +    private:
  119.88 +        static DwmAPI & GetInstance();
  119.89 +        DwmAPI();
  119.90 +
  119.91 +        typedef HRESULT (WINAPI *DwmIsCompositionEnabledType)(BOOL*);
  119.92 +        Function<DwmIsCompositionEnabledType> DwmIsCompositionEnabledFunction;
  119.93 +
  119.94 +        typedef HRESULT (WINAPI *DwmGetWindowAttributeType)(HWND hwnd, DWORD dwAttribute,
  119.95 +                PVOID pvAttribute, DWORD cbAttribute);
  119.96 +        Function<DwmGetWindowAttributeType> DwmGetWindowAttributeFunction;
  119.97 +};
  119.98 +
  119.99 +#endif // DLLUTIL_H
 119.100 +
   120.1 --- a/src/windows/native/sun/windows/awt.rc	Tue Apr 14 00:05:07 2009 -0700
   120.2 +++ b/src/windows/native/sun/windows/awt.rc	Tue Apr 14 04:21:02 2009 -0700
   120.3 @@ -35,6 +35,13 @@
   120.4  AWT_ICON     ICON    DISCARDABLE "awt.ico"
   120.5  CHECK_BITMAP BITMAP  DISCARDABLE "check.bmp"
   120.6  
   120.7 +// Note: the number of icons used is specified in the
   120.8 +// securityWarningIconCounter constant in awt_Toolkit.cpp.
   120.9 +SECURITY_WARNING_0  ICON    DISCARDABLE "security_warning_bw.ico"
  120.10 +SECURITY_WARNING_1  ICON    DISCARDABLE "security_warning_int.ico"
  120.11 +SECURITY_WARNING_2  ICON    DISCARDABLE "security_warning.ico"
  120.12 +
  120.13 +
  120.14  /////////////////////////////////////////////////////////////////////////////
  120.15  //
  120.16  // Version
   121.1 --- a/src/windows/native/sun/windows/awt_BitmapUtil.cpp	Tue Apr 14 00:05:07 2009 -0700
   121.2 +++ b/src/windows/native/sun/windows/awt_BitmapUtil.cpp	Tue Apr 14 04:21:02 2009 -0700
   121.3 @@ -1,5 +1,5 @@
   121.4  /*
   121.5 - * Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
   121.6 + * Copyright 2006-2009 Sun Microsystems, Inc.  All Rights Reserved.
   121.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   121.8   *
   121.9   * This code is free software; you can redistribute it and/or modify it
  121.10 @@ -28,9 +28,14 @@
  121.11  #include <windowsx.h>
  121.12  #include <zmouse.h>
  121.13  
  121.14 +#include "GraphicsPrimitiveMgr.h"
  121.15 +
  121.16  #include "awt.h"
  121.17  #include "awt_BitmapUtil.h"
  121.18  
  121.19 +// Platform-dependent RECT_[EQ | SET | INC_HEIGHT] macros
  121.20 +#include "utility/rect.h"
  121.21 +
  121.22  HBITMAP BitmapUtil::CreateTransparencyMaskFromARGB(int width, int height, int* imageData)
  121.23  {
  121.24      //Scan lines should be aligned to word boundary
  121.25 @@ -148,3 +153,222 @@
  121.26      ::GdiFlush();
  121.27      return hBitmap;
  121.28  }
  121.29 +
  121.30 +/*
  121.31 + * Creates 32-bit premultiplied ARGB bitmap from specified ARGBPre data.
  121.32 + * This function may not work on OS prior to Win95.
  121.33 + * See MSDN articles for CreateDIBitmap, BITMAPINFOHEADER,
  121.34 + * BITMAPV4HEADER, BITMAPV5HEADER for additional info.
  121.35 + */
  121.36 +HBITMAP BitmapUtil::CreateBitmapFromARGBPre(int width, int height,
  121.37 +                                            int srcStride,
  121.38 +                                            int* imageData)
  121.39 +{
  121.40 +    BITMAPINFOHEADER bmi;
  121.41 +    void *bitmapBits = NULL;
  121.42 +
  121.43 +    ZeroMemory(&bmi, sizeof(bmi));
  121.44 +    bmi.biSize = sizeof(bmi);
  121.45 +    bmi.biWidth = width;
  121.46 +    bmi.biHeight = -height;
  121.47 +    bmi.biPlanes = 1;
  121.48 +    bmi.biBitCount = 32;
  121.49 +    bmi.biCompression = BI_RGB;
  121.50 +
  121.51 +    HBITMAP hBitmap =
  121.52 +        ::CreateDIBSection(NULL, (BITMAPINFO *) & bmi, DIB_RGB_COLORS,
  121.53 +                           &bitmapBits, NULL, 0);
  121.54 +
  121.55 +    if (!bitmapBits) {
  121.56 +        return NULL;
  121.57 +    }
  121.58 +
  121.59 +    int dstStride = width * 4;
  121.60 +
  121.61 +    if (srcStride == dstStride) {
  121.62 +        memcpy(bitmapBits, (void*)imageData, srcStride * height);
  121.63 +    } else if (height > 0) {
  121.64 +        void *pSrcPixels = (void*)imageData;
  121.65 +        void *pDstPixels = bitmapBits;
  121.66 +        do {
  121.67 +            memcpy(pDstPixels, pSrcPixels, dstStride);
  121.68 +            pSrcPixels = PtrAddBytes(pSrcPixels, srcStride);
  121.69 +            pDstPixels = PtrAddBytes(pDstPixels, dstStride);
  121.70 +        } while (--height > 0);
  121.71 +    }
  121.72 +
  121.73 +    return hBitmap;
  121.74 +}
  121.75 +
  121.76 +extern "C" {
  121.77 +
  121.78 +/**
  121.79 + * This method is called from the WGL pipeline when it needs to create a bitmap
  121.80 + * needed to update the layered window.
  121.81 + */
  121.82 +HBITMAP BitmapUtil_CreateBitmapFromARGBPre(int width, int height,
  121.83 +                                           int srcStride,
  121.84 +                                           int* imageData)
  121.85 +{
  121.86 +    return BitmapUtil::CreateBitmapFromARGBPre(width, height,
  121.87 +                                               srcStride, imageData);
  121.88 +
  121.89 +}
  121.90 +
  121.91 +}  /* extern "C" */
  121.92 +
  121.93 +
  121.94 +/**
  121.95 + * Transforms the given bitmap into an HRGN representing the transparency
  121.96 + * of the bitmap. The bitmap MUST BE 32bpp. Alpha value == 0 is considered
  121.97 + * transparent, alpha > 0 - opaque.
  121.98 + */
  121.99 +HRGN BitmapUtil::BitmapToRgn(HBITMAP hBitmap)
 121.100 +{
 121.101 +    HDC hdc = ::CreateCompatibleDC(NULL);
 121.102 +    ::SelectObject(hdc, hBitmap);
 121.103 +
 121.104 +    BITMAPINFOEX bi;
 121.105 +    ::ZeroMemory(&bi, sizeof(bi));
 121.106 +
 121.107 +    bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
 121.108 +
 121.109 +    BOOL r = ::GetDIBits(hdc, hBitmap, 0, 0, NULL,
 121.110 +            reinterpret_cast<BITMAPINFO*>(&bi), DIB_RGB_COLORS);
 121.111 +
 121.112 +    if (!r || bi.bmiHeader.biBitCount != 32)
 121.113 +    {
 121.114 +        ::DeleteDC(hdc);
 121.115 +        return NULL;
 121.116 +    }
 121.117 +
 121.118 +    UINT width = bi.bmiHeader.biWidth;
 121.119 +    UINT height = abs(bi.bmiHeader.biHeight);
 121.120 +
 121.121 +    BYTE * buf = (BYTE*)safe_Malloc(bi.bmiHeader.biSizeImage);
 121.122 +    bi.bmiHeader.biHeight = -height;
 121.123 +    ::GetDIBits(hdc, hBitmap, 0, height, buf,
 121.124 +            reinterpret_cast<BITMAPINFO*>(&bi), DIB_RGB_COLORS);
 121.125 +
 121.126 +    /* reserving memory for the worst case */
 121.127 +    RGNDATA * pRgnData = (RGNDATA *) safe_Malloc(sizeof(RGNDATAHEADER) +
 121.128 +            sizeof(RECT) * (width / 2 + 1) * height);
 121.129 +    RGNDATAHEADER * pRgnHdr = (RGNDATAHEADER *) pRgnData;
 121.130 +    pRgnHdr->dwSize = sizeof(RGNDATAHEADER);
 121.131 +    pRgnHdr->iType = RDH_RECTANGLES;
 121.132 +    pRgnHdr->nRgnSize = 0;
 121.133 +    pRgnHdr->rcBound.top = 0;
 121.134 +    pRgnHdr->rcBound.left = 0;
 121.135 +    pRgnHdr->rcBound.bottom = height;
 121.136 +    pRgnHdr->rcBound.right = width;
 121.137 +
 121.138 +    pRgnHdr->nCount = BitmapToYXBandedRectangles(32, width, height, buf,
 121.139 +            (RECT_T *) (((BYTE *) pRgnData) + sizeof(RGNDATAHEADER)));
 121.140 +
 121.141 +    HRGN rgn = ::ExtCreateRegion(NULL,
 121.142 +            sizeof(RGNDATAHEADER) + sizeof(RECT_T) * pRgnHdr->nCount,
 121.143 +            pRgnData);
 121.144 +
 121.145 +    free(pRgnData);
 121.146 +    ::DeleteDC(hdc);
 121.147 +    free(buf);
 121.148 +
 121.149 +    return rgn;
 121.150 +}
 121.151 +
 121.152 +/**
 121.153 + * Makes a copy of the given bitmap. Blends every pixel of the source
 121.154 + * with the given blendColor and alpha. If alpha == 0, the function
 121.155 + * simply makes a plain copy of the source without any blending.
 121.156 + */
 121.157 +HBITMAP BitmapUtil::BlendCopy(HBITMAP hSrcBitmap, COLORREF blendColor,
 121.158 +        BYTE alpha)
 121.159 +{
 121.160 +    HDC hdc = ::CreateCompatibleDC(NULL);
 121.161 +    HBITMAP oldBitmap = (HBITMAP)::SelectObject(hdc, hSrcBitmap);
 121.162 +
 121.163 +    BITMAPINFOEX bi;
 121.164 +    ::ZeroMemory(&bi, sizeof(bi));
 121.165 +
 121.166 +    bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
 121.167 +
 121.168 +    BOOL r = ::GetDIBits(hdc, hSrcBitmap, 0, 0, NULL,
 121.169 +            reinterpret_cast<BITMAPINFO*>(&bi), DIB_RGB_COLORS);
 121.170 +
 121.171 +    if (!r || bi.bmiHeader.biBitCount != 32)
 121.172 +    {
 121.173 +        ::DeleteDC(hdc);
 121.174 +        return NULL;
 121.175 +    }
 121.176 +
 121.177 +    UINT width = bi.bmiHeader.biWidth;
 121.178 +    UINT height = abs(bi.bmiHeader.biHeight);
 121.179 +
 121.180 +    BYTE * buf = (BYTE*)safe_Malloc(bi.bmiHeader.biSizeImage);
 121.181 +    bi.bmiHeader.biHeight = -height;
 121.182 +    ::GetDIBits(hdc, hSrcBitmap, 0, height, buf,
 121.183 +            reinterpret_cast<BITMAPINFO*>(&bi), DIB_RGB_COLORS);
 121.184 +
 121.185 +    UINT widthBytes = width * bi.bmiHeader.biBitCount / 8;
 121.186 +    UINT alignedWidth = (((widthBytes - 1) / 4) + 1) * 4;
 121.187 +    UINT i, j;
 121.188 +
 121.189 +    for (j = 0; j < height; j++) {
 121.190 +        BYTE *pSrc = (BYTE *) buf + j * alignedWidth;
 121.191 +        for (i = 0; i < width; i++, pSrc += 4) {
 121.192 +            // Note: if the current alpha is zero, the other three color
 121.193 +            // components may (theoretically) contain some uninitialized
 121.194 +            // data. The developer does not expect to display them,
 121.195 +            // hence we handle this situation differently.
 121.196 +            if (pSrc[3] == 0) {
 121.197 +                pSrc[0] = GetBValue(blendColor) * alpha / 255;
 121.198 +                pSrc[1] = GetGValue(blendColor) * alpha / 255;
 121.199 +                pSrc[2] = GetRValue(blendColor) * alpha / 255;
 121.200 +                pSrc[3] = alpha;
 121.201 +            } else {
 121.202 +                pSrc[0] = (GetBValue(blendColor) * alpha / 255) +
 121.203 +                    (pSrc[0] * (255 - alpha) / 255);
 121.204 +                pSrc[1] = (GetGValue(blendColor) * alpha / 255) +
 121.205 +                    (pSrc[1] * (255 - alpha) / 255);
 121.206 +                pSrc[2] = (GetRValue(blendColor) * alpha / 255) +
 121.207 +                    (pSrc[2] * (255 - alpha) / 255);
 121.208 +                pSrc[3] = (alpha * alpha / 255) +
 121.209 +                    (pSrc[3] * (255 - alpha) / 255);
 121.210 +            }
 121.211 +        }
 121.212 +    }
 121.213 +
 121.214 +    HBITMAP hDstBitmap = ::CreateDIBitmap(hdc,
 121.215 +            reinterpret_cast<BITMAPINFOHEADER*>(&bi),
 121.216 +            CBM_INIT,
 121.217 +            buf,
 121.218 +            reinterpret_cast<BITMAPINFO*>(&bi),
 121.219 +            DIB_RGB_COLORS
 121.220 +            );
 121.221 +
 121.222 +    ::SelectObject(hdc, oldBitmap);
 121.223 +    ::DeleteDC(hdc);
 121.224 +    free(buf);
 121.225 +
 121.226 +    return hDstBitmap;
 121.227 +}
 121.228 +
 121.229 +/**
 121.230 + * Creates a 32 bit ARGB bitmap. Returns the bitmap handle. The *bitmapBits
 121.231 + * contains the pointer to the bitmap data or NULL if an error occured.
 121.232 + */
 121.233 +HBITMAP BitmapUtil::CreateARGBBitmap(int width, int height, void ** bitmapBitsPtr)
 121.234 +{
 121.235 +    BITMAPINFOHEADER bmi;
 121.236 +
 121.237 +    ::ZeroMemory(&bmi, sizeof(bmi));
 121.238 +    bmi.biSize = sizeof(BITMAPINFOHEADER);
 121.239 +    bmi.biWidth = width;
 121.240 +    bmi.biHeight = -height;
 121.241 +    bmi.biPlanes = 1;
 121.242 +    bmi.biBitCount = 32;
 121.243 +    bmi.biCompression = BI_RGB;
 121.244 +
 121.245 +    return ::CreateDIBSection(NULL, (BITMAPINFO *) & bmi, DIB_RGB_COLORS,
 121.246 +                bitmapBitsPtr, NULL, 0);
 121.247 +}
   122.1 --- a/src/windows/native/sun/windows/awt_BitmapUtil.h	Tue Apr 14 00:05:07 2009 -0700
   122.2 +++ b/src/windows/native/sun/windows/awt_BitmapUtil.h	Tue Apr 14 04:21:02 2009 -0700
   122.3 @@ -1,5 +1,5 @@
   122.4  /*
   122.5 - * Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
   122.6 + * Copyright 2006-2009 Sun Microsystems, Inc.  All Rights Reserved.
   122.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   122.8   *
   122.9   * This code is free software; you can redistribute it and/or modify it
  122.10 @@ -45,6 +45,32 @@
  122.11       */
  122.12      static HBITMAP CreateV4BitmapFromARGB(int width, int height, int* imageData);
  122.13  
  122.14 +    /**
  122.15 +     * Creates 32-bit premultiplied ARGB V4 Bitmap (Win95-compatible) from
  122.16 +     * specified ARGB Pre input data.
  122.17 +     */
  122.18 +    static HBITMAP CreateBitmapFromARGBPre(int width, int height,
  122.19 +                                           int srcStride,
  122.20 +                                           int* imageData);
  122.21 +
  122.22 +    /**
  122.23 +     * Transforms the given bitmap into an HRGN representing the transparency
  122.24 +     * of the bitmap.
  122.25 +     */
  122.26 +    static HRGN BitmapToRgn(HBITMAP hBitmap);
  122.27 +
  122.28 +    /**
  122.29 +     * Makes a copy of the given bitmap. Blends every pixel of the source
  122.30 +     * with the given blendColor and alpha. If alpha == 0, the function
  122.31 +     * simply makes a plain copy of the source without any blending.
  122.32 +     */
  122.33 +    static HBITMAP BlendCopy(HBITMAP hSrcBitmap, COLORREF blendColor, BYTE alpha);
  122.34 +
  122.35 +    /**
  122.36 +     * Creates a 32 bit ARGB bitmap. Returns the bitmap handle.
  122.37 +     * The pointer to the bitmap data is stored into bitmapBitsPtr.
  122.38 +     */
  122.39 +    static HBITMAP CreateARGBBitmap(int width, int height, void ** bitmapBitsPtr);
  122.40  };
  122.41  
  122.42  #endif
   123.1 --- a/src/windows/native/sun/windows/awt_Button.cpp	Tue Apr 14 00:05:07 2009 -0700
   123.2 +++ b/src/windows/native/sun/windows/awt_Button.cpp	Tue Apr 14 04:21:02 2009 -0700
   123.3 @@ -1,5 +1,5 @@
   123.4  /*
   123.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   123.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   123.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   123.8   *
   123.9   * This code is free software; you can redistribute it and/or modify it
  123.10 @@ -30,7 +30,6 @@
  123.11  #include "awt_Button.h"
  123.12  #include "awt_Canvas.h"
  123.13  #include "awt_Window.h"
  123.14 -#include "awt_KeyboardFocusManager.h"
  123.15  
  123.16  /* IMPORTANT! Read the README.JNI file for notes on JNI converted AWT code.
  123.17   */
  123.18 @@ -143,19 +142,6 @@
  123.19      return c;
  123.20  }
  123.21  
  123.22 -BOOL AwtButton::ActMouseMessage(MSG * pMsg) {
  123.23 -    if (!IsFocusingMessage(pMsg->message)) {
  123.24 -        return FALSE;
  123.25 -    }
  123.26 -
  123.27 -    if (pMsg->message == WM_LBUTTONDOWN) {
  123.28 -        SendMessage(BM_SETSTATE, TRUE, 0);
  123.29 -    } else if (pMsg->message == WM_LBUTTONUP) {
  123.30 -        SendMessage(BM_SETSTATE, FALSE, 0);
  123.31 -    }
  123.32 -    return TRUE;
  123.33 -}
  123.34 -
  123.35  MsgRouting
  123.36  AwtButton::WmMouseDown(UINT flags, int x, int y, int button)
  123.37  {
  123.38 @@ -204,23 +190,6 @@
  123.39                 (jint)AwtComponent::GetJavaModifiers());
  123.40  }
  123.41  
  123.42 -/* 4531849 fix.  Previous to 1.4, mouse clicks and typing space bar on a
  123.43 - * Button would notify ActionListeners via WM_COMMAND/WmNotify().  In 1.4, mouse
  123.44 - * grabs are done for all presses in order to correctly send drag and release
  123.45 - * events.  However, WM_COMMAND message aren't sent when the mouse is grabbed,
  123.46 - * so ActionListeners for mouse clicks are sent via WmMouseUp/WmNotify().
  123.47 - * For some reason, if the right mouse button is held down when left-clicking
  123.48 - * on a Button, WM_COMMAND _IS_ sent.  This resulted in two ActionEvents being
  123.49 - * sent in this case.  To fix the problem, we handle typing space bar similar to
  123.50 - * left clicks - in WmKeyUp(), and do nothing for WM_COMMAND.  -bchristi
  123.51 - */
  123.52 -MsgRouting
  123.53 -AwtButton::WmKeyUp(UINT wkey, UINT repCnt, UINT flags, BOOL system)
  123.54 -{
  123.55 -    MsgRouting mrResult = AwtComponent::WmKeyUp(wkey, repCnt, flags, system);
  123.56 -    return mrResult;
  123.57 -}
  123.58 -
  123.59  MsgRouting
  123.60  AwtButton::OwnerDrawItem(UINT /*ctrlId*/, DRAWITEMSTRUCT& drawInfo)
  123.61  {
  123.62 @@ -293,18 +262,26 @@
  123.63      return mrDoDefault;
  123.64  }
  123.65  
  123.66 +BOOL AwtButton::IsFocusingMouseMessage(MSG *pMsg) {
  123.67 +    return pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_LBUTTONUP;
  123.68 +}
  123.69 +
  123.70 +BOOL AwtButton::IsFocusingKeyMessage(MSG *pMsg) {
  123.71 +    return (pMsg->message == WM_KEYDOWN || pMsg->message == WM_KEYUP) &&
  123.72 +            pMsg->wParam == VK_SPACE;
  123.73 +}
  123.74 +
  123.75  MsgRouting AwtButton::HandleEvent(MSG *msg, BOOL synthetic)
  123.76  {
  123.77 -    if (AwtComponent::sm_focusOwner != GetHWnd() &&
  123.78 -        (msg->message == WM_LBUTTONDOWN || msg->message == WM_LBUTTONDBLCLK))
  123.79 -    {
  123.80 -        JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
  123.81 -        jobject target = GetTarget(env);
  123.82 -        env->CallStaticVoidMethod
  123.83 -            (AwtKeyboardFocusManager::keyboardFocusManagerCls,
  123.84 -             AwtKeyboardFocusManager::heavyweightButtonDownMID,
  123.85 -             target, ((jlong)msg->time) & 0xFFFFFFFF);
  123.86 -        env->DeleteLocalRef(target);
  123.87 +    if (IsFocusingMouseMessage(msg)) {
  123.88 +        SendMessage(BM_SETSTATE, msg->message == WM_LBUTTONDOWN ? TRUE : FALSE, 0);
  123.89 +        delete msg;
  123.90 +        return mrConsume;
  123.91 +    }
  123.92 +    if (IsFocusingKeyMessage(msg)) {
  123.93 +        SendMessage(BM_SETSTATE, msg->message == WM_KEYDOWN ? TRUE : FALSE, 0);
  123.94 +        delete msg;
  123.95 +        return mrConsume;
  123.96      }
  123.97      return AwtComponent::HandleEvent(msg, synthetic);
  123.98  }
   124.1 --- a/src/windows/native/sun/windows/awt_Button.h	Tue Apr 14 00:05:07 2009 -0700
   124.2 +++ b/src/windows/native/sun/windows/awt_Button.h	Tue Apr 14 04:21:02 2009 -0700
   124.3 @@ -1,5 +1,5 @@
   124.4  /*
   124.5 - * Copyright 1996-2004 Sun Microsystems, Inc.  All Rights Reserved.
   124.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   124.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   124.8   *
   124.9   * This code is free software; you can redistribute it and/or modify it
  124.10 @@ -50,13 +50,13 @@
  124.11      /* Windows message handler functions */
  124.12      MsgRouting WmMouseDown(UINT flags, int x, int y, int button);
  124.13      MsgRouting WmMouseUp(UINT flags, int x, int y, int button);
  124.14 -    MsgRouting WmKeyUp(UINT vkey, UINT repCnt, UINT flags, BOOL system);
  124.15      MsgRouting OwnerDrawItem(UINT ctrlId, DRAWITEMSTRUCT& drawInfo);
  124.16      MsgRouting WmPaint(HDC hDC);
  124.17  
  124.18      MsgRouting HandleEvent(MSG *msg, BOOL synthetic);
  124.19  
  124.20 -    BOOL ActMouseMessage(MSG * pMsg);
  124.21 +    BOOL IsFocusingMouseMessage(MSG *pMsg);
  124.22 +    BOOL IsFocusingKeyMessage(MSG *pMsg);
  124.23  
  124.24      // called on Toolkit thread from JNI
  124.25      static void _SetLabel(void *param);
   125.1 --- a/src/windows/native/sun/windows/awt_Canvas.cpp	Tue Apr 14 00:05:07 2009 -0700
   125.2 +++ b/src/windows/native/sun/windows/awt_Canvas.cpp	Tue Apr 14 04:21:02 2009 -0700
   125.3 @@ -1,5 +1,5 @@
   125.4  /*
   125.5 - * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
   125.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   125.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   125.8   *
   125.9   * This code is free software; you can redistribute it and/or modify it
  125.10 @@ -26,7 +26,6 @@
  125.11  #include "awt_Toolkit.h"
  125.12  #include "awt_Canvas.h"
  125.13  #include "awt_Win32GraphicsConfig.h"
  125.14 -#include "awt_KeyboardFocusManager.h"
  125.15  #include "awt_Window.h"
  125.16  
  125.17  /* IMPORTANT! Read the README.JNI file for notes on JNI converted AWT code.
  125.18 @@ -176,27 +175,9 @@
  125.19  
  125.20  MsgRouting AwtCanvas::HandleEvent(MSG *msg, BOOL synthetic)
  125.21  {
  125.22 -    if (msg->message == WM_LBUTTONDOWN || msg->message == WM_LBUTTONDBLCLK) {
  125.23 -        /*
  125.24 -         * Fix for BugTraq ID 4041703: keyDown not being invoked.
  125.25 -         * Give the focus to a Canvas or Panel if it doesn't have heavyweight
  125.26 -         * subcomponents so that they will behave the same way as on Solaris
  125.27 -         * providing a possibility of giving keyboard focus to an empty Applet.
  125.28 -         * Since ScrollPane doesn't receive focus on mouse press on Solaris,
  125.29 -         * HandleEvent() is overriden there to do nothing with focus.
  125.30 -         */
  125.31 -        if (AwtComponent::sm_focusOwner != GetHWnd() &&
  125.32 -            ::GetWindow(GetHWnd(), GW_CHILD) == NULL)
  125.33 -        {
  125.34 -            JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
  125.35 -            jobject target = GetTarget(env);
  125.36 -            env->CallStaticVoidMethod
  125.37 -                (AwtKeyboardFocusManager::keyboardFocusManagerCls,
  125.38 -                 AwtKeyboardFocusManager::heavyweightButtonDownMID,
  125.39 -                 target, ((jlong)msg->time) & 0xFFFFFFFF);
  125.40 -            env->DeleteLocalRef(target);
  125.41 -            AwtSetFocus();
  125.42 -        }
  125.43 +    if (IsFocusingMouseMessage(msg)) {
  125.44 +        delete msg;
  125.45 +        return mrConsume;
  125.46      }
  125.47      return AwtComponent::HandleEvent(msg, synthetic);
  125.48  }
   126.1 --- a/src/windows/native/sun/windows/awt_Checkbox.cpp	Tue Apr 14 00:05:07 2009 -0700
   126.2 +++ b/src/windows/native/sun/windows/awt_Checkbox.cpp	Tue Apr 14 04:21:02 2009 -0700
   126.3 @@ -26,7 +26,6 @@
   126.4  #include "awt.h"
   126.5  #include "awt_Toolkit.h"
   126.6  #include "awt_Checkbox.h"
   126.7 -#include "awt_KeyboardFocusManager.h"
   126.8  #include "awt_Canvas.h"
   126.9  #include "awt_Window.h"
  126.10  
  126.11 @@ -143,17 +142,6 @@
  126.12      return checkbox;
  126.13  }
  126.14  
  126.15 -BOOL AwtCheckbox::ActMouseMessage(MSG* pMsg) {
  126.16 -    if (!IsFocusingMessage(pMsg->message)) {
  126.17 -        return FALSE;
  126.18 -    }
  126.19 -
  126.20 -    if (pMsg->message == WM_LBUTTONDOWN) {
  126.21 -        SendMessage(BM_SETSTATE, ~SendMessage(BM_GETSTATE, 0, 0), 0);
  126.22 -    }
  126.23 -    return TRUE;
  126.24 -}
  126.25 -
  126.26  MsgRouting
  126.27  AwtCheckbox::WmMouseUp(UINT flags, int x, int y, int button)
  126.28  {
  126.29 @@ -329,18 +317,32 @@
  126.30      return mrDoDefault;
  126.31  }
  126.32  
  126.33 +BOOL AwtCheckbox::IsFocusingMouseMessage(MSG *pMsg) {
  126.34 +    return pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_LBUTTONUP;
  126.35 +}
  126.36 +
  126.37 +BOOL AwtCheckbox::IsFocusingKeyMessage(MSG *pMsg) {
  126.38 +    return (pMsg->message == WM_KEYDOWN || pMsg->message == WM_KEYUP) &&
  126.39 +            pMsg->wParam == VK_SPACE;
  126.40 +}
  126.41 +
  126.42  MsgRouting AwtCheckbox::HandleEvent(MSG *msg, BOOL synthetic)
  126.43  {
  126.44 -    if (IsFocusable() && AwtComponent::sm_focusOwner != GetHWnd() &&
  126.45 -        (msg->message == WM_LBUTTONDOWN || msg->message == WM_LBUTTONDBLCLK))
  126.46 -    {
  126.47 -        JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
  126.48 -        jobject target = GetTarget(env);
  126.49 -        env->CallStaticVoidMethod
  126.50 -            (AwtKeyboardFocusManager::keyboardFocusManagerCls,
  126.51 -             AwtKeyboardFocusManager::heavyweightButtonDownMID,
  126.52 -             target, ((jlong)msg->time) & 0xFFFFFFFF);
  126.53 -        env->DeleteLocalRef(target);
  126.54 +    if (IsFocusingMouseMessage(msg)) {
  126.55 +        SendMessage(BM_SETSTATE, (WPARAM)(msg->message == WM_LBUTTONDOWN ? TRUE : FALSE));
  126.56 +        delete msg;
  126.57 +        return mrConsume;
  126.58 +    }
  126.59 +    if (IsFocusingKeyMessage(msg)) {
  126.60 +        SendMessage(BM_SETSTATE, (WPARAM)(msg->message == WM_KEYDOWN ? TRUE : FALSE));
  126.61 +        if (msg->message == WM_KEYDOWN) {
  126.62 +            m_fLButtonDowned = TRUE;
  126.63 +        } else if (m_fLButtonDowned == TRUE) {
  126.64 +            WmNotify(BN_CLICKED);
  126.65 +            m_fLButtonDowned = TRUE;
  126.66 +        }
  126.67 +        delete msg;
  126.68 +        return mrConsume;
  126.69      }
  126.70      return AwtComponent::HandleEvent(msg, synthetic);
  126.71  }
   127.1 --- a/src/windows/native/sun/windows/awt_Checkbox.h	Tue Apr 14 00:05:07 2009 -0700
   127.2 +++ b/src/windows/native/sun/windows/awt_Checkbox.h	Tue Apr 14 04:21:02 2009 -0700
   127.3 @@ -69,7 +69,8 @@
   127.4  
   127.5      MsgRouting HandleEvent(MSG *msg, BOOL synthetic);
   127.6  
   127.7 -    BOOL ActMouseMessage(MSG* pMsg);
   127.8 +    BOOL IsFocusingMouseMessage(MSG *pMsg);
   127.9 +    BOOL IsFocusingKeyMessage(MSG *pMsg);
  127.10  
  127.11      // called on Toolkit thread from JNI
  127.12      static void _SetLabel(void *param);
   128.1 --- a/src/windows/native/sun/windows/awt_Choice.cpp	Tue Apr 14 00:05:07 2009 -0700
   128.2 +++ b/src/windows/native/sun/windows/awt_Choice.cpp	Tue Apr 14 04:21:02 2009 -0700
   128.3 @@ -23,14 +23,17 @@
   128.4   * have any questions.
   128.5   */
   128.6  
   128.7 +#include <windowsx.h>
   128.8 +
   128.9  #include "awt_Toolkit.h"
  128.10  #include "awt_Choice.h"
  128.11 -#include "awt_KeyboardFocusManager.h"
  128.12  #include "awt_Canvas.h"
  128.13  
  128.14  #include "awt_Dimension.h"
  128.15  #include "awt_Container.h"
  128.16  
  128.17 +#include "ComCtl32Util.h"
  128.18 +
  128.19  #include <java_awt_Toolkit.h>
  128.20  #include <java_awt_FontMetrics.h>
  128.21  #include <java_awt_event_InputEvent.h>
  128.22 @@ -71,18 +74,31 @@
  128.23  /* Bug #4338368: consume the spurious MouseUp when the choice loses focus */
  128.24  
  128.25  BOOL AwtChoice::skipNextMouseUp = FALSE;
  128.26 +
  128.27 +BOOL AwtChoice::sm_isMouseMoveInList = FALSE;
  128.28 +
  128.29 +static const UINT MINIMUM_NUMBER_OF_VISIBLE_ITEMS = 8;
  128.30 +
  128.31  /*************************************************************************
  128.32   * AwtChoice class methods
  128.33   */
  128.34  
  128.35  AwtChoice::AwtChoice() {
  128.36 -    killFocusRouting = mrPassAlong;
  128.37 +    m_hList = NULL;
  128.38 +    m_listDefWindowProc = NULL;
  128.39  }
  128.40  
  128.41  LPCTSTR AwtChoice::GetClassName() {
  128.42      return TEXT("COMBOBOX");  /* System provided combobox class */
  128.43  }
  128.44  
  128.45 +void AwtChoice::Dispose() {
  128.46 +    if (m_hList != NULL && m_listDefWindowProc != NULL) {
  128.47 +        ComCtl32Util::GetInstance().UnsubclassHWND(m_hList, ListWindowProc, m_listDefWindowProc);
  128.48 +    }
  128.49 +    AwtComponent::Dispose();
  128.50 +}
  128.51 +
  128.52  AwtChoice* AwtChoice::Create(jobject peer, jobject parent) {
  128.53  
  128.54  
  128.55 @@ -162,6 +178,10 @@
  128.56              env->SetIntField(target, AwtComponent::widthID,  (jint) rc.right);
  128.57              env->SetIntField(target, AwtComponent::heightID, (jint) rc.bottom);
  128.58  
  128.59 +            if (IS_WINXP) {
  128.60 +                ::SendMessage(c->GetHWnd(), CB_SETMINVISIBLE, (WPARAM) MINIMUM_NUMBER_OF_VISIBLE_ITEMS, 0);
  128.61 +            }
  128.62 +
  128.63              env->DeleteLocalRef(dimension);
  128.64          }
  128.65      } catch (...) {
  128.66 @@ -175,24 +195,13 @@
  128.67      return c;
  128.68  }
  128.69  
  128.70 -BOOL AwtChoice::ActMouseMessage(MSG* pMsg) {
  128.71 -    if (!IsFocusingMessage(pMsg->message)) {
  128.72 -        return FALSE;
  128.73 -    }
  128.74 -
  128.75 -    if (pMsg->message == WM_LBUTTONDOWN) {
  128.76 -        SendMessage(CB_SHOWDROPDOWN, ~SendMessage(CB_GETDROPPEDSTATE, 0, 0), 0);
  128.77 -    }
  128.78 -    return TRUE;
  128.79 -}
  128.80 -
  128.81  // calculate height of drop-down list part of the combobox
  128.82  // to show all the items up to a maximum of eight
  128.83  int AwtChoice::GetDropDownHeight()
  128.84  {
  128.85      int itemHeight =(int)::SendMessage(GetHWnd(), CB_GETITEMHEIGHT, (UINT)0,0);
  128.86      int numItemsToShow = (int)::SendMessage(GetHWnd(), CB_GETCOUNT, 0,0);
  128.87 -    numItemsToShow = numItemsToShow > 8 ? 8 : numItemsToShow;
  128.88 +    numItemsToShow = min(MINIMUM_NUMBER_OF_VISIBLE_ITEMS, numItemsToShow);
  128.89      // drop-down height snaps to nearest line, so add a
  128.90      // fudge factor of 1/2 line to ensure last line shows
  128.91      return itemHeight*numItemsToShow + itemHeight/2;
  128.92 @@ -253,6 +262,7 @@
  128.93          }
  128.94          return;
  128.95      }
  128.96 +
  128.97      // don't want to interfere with other controls
  128.98      if (::GetCapture() == NULL) {
  128.99          ::SetCapture(GetHWnd());
 128.100 @@ -370,6 +380,58 @@
 128.101      env->DeleteLocalRef(target);
 128.102  }
 128.103  
 128.104 +static int lastClickX = -1;
 128.105 +static int lastClickY = -1;
 128.106 +
 128.107 +LRESULT CALLBACK AwtChoice::ListWindowProc(HWND hwnd, UINT message,
 128.108 +                                           WPARAM wParam, LPARAM lParam)
 128.109 +{
 128.110 +    /*
 128.111 +     * We don't pass the choice WM_LBUTTONDOWN message. As the result the choice's list
 128.112 +     * doesn't forward mouse messages it captures. Below we do forward what we need.
 128.113 +     */
 128.114 +
 128.115 +    TRY;
 128.116 +
 128.117 +    DASSERT(::IsWindow(hwnd));
 128.118 +
 128.119 +    switch (message) {
 128.120 +        case WM_LBUTTONDOWN: {
 128.121 +            DWORD curPos = ::GetMessagePos();
 128.122 +            lastClickX = GET_X_LPARAM(curPos);
 128.123 +            lastClickY = GET_Y_LPARAM(curPos);
 128.124 +            break;
 128.125 +        }
 128.126 +        case WM_MOUSEMOVE: {
 128.127 +            RECT rect;
 128.128 +            ::GetClientRect(hwnd, &rect);
 128.129 +
 128.130 +            POINT pt = {GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)};
 128.131 +            if (::PtInRect(&rect, pt)) {
 128.132 +                sm_isMouseMoveInList = TRUE;
 128.133 +            }
 128.134 +
 128.135 +            POINT lastPt = {lastClickX, lastClickY};
 128.136 +            ::ScreenToClient(hwnd, &lastPt);
 128.137 +            if (::PtInRect(&rect, lastPt)) {
 128.138 +                break; // ignore when dragging inside the list
 128.139 +            }
 128.140 +        }
 128.141 +        case WM_LBUTTONUP: {
 128.142 +            lastClickX = -1;
 128.143 +            lastClickY = -1;
 128.144 +
 128.145 +            AwtChoice *c = (AwtChoice *)::GetWindowLongPtr(hwnd, GWLP_USERDATA);
 128.146 +            if (c != NULL) {
 128.147 +                // forward the msg to the choice
 128.148 +                c->WindowProc(message, wParam, lParam);
 128.149 +            }
 128.150 +        }
 128.151 +    }
 128.152 +    return ComCtl32Util::GetInstance().DefWindowProc(NULL, hwnd, message, wParam, lParam);
 128.153 +
 128.154 +    CATCH_BAD_ALLOC_RET(0);
 128.155 +}
 128.156  
 128.157  
 128.158  MsgRouting AwtChoice::WmNotify(UINT notifyCode)
 128.159 @@ -379,15 +441,24 @@
 128.160          if (itemSelect != CB_ERR){
 128.161              DoCallback("handleAction", "(I)V", itemSelect);
 128.162          }
 128.163 -    } else if (notifyCode == CBN_DROPDOWN && !IsFocusable()) {
 128.164 -        // While non-focusable Choice is shown all WM_KILLFOCUS messages should be consumed.
 128.165 -        killFocusRouting = mrConsume;
 128.166 -    } else if (notifyCode == CBN_CLOSEUP && !IsFocusable()) {
 128.167 -        // When non-focusable Choice is about to close, send it synthetic WM_KILLFOCUS
 128.168 -        // message that should be processed by the native widget only. This will allow
 128.169 -        // the native widget to properly process WM_KILLFOCUS that was earlier consumed.
 128.170 -        killFocusRouting = mrDoDefault;
 128.171 -        ::PostMessage(GetHWnd(), WM_KILLFOCUS, (LPARAM)sm_focusOwner, 0);
 128.172 +    } else if (notifyCode == CBN_DROPDOWN) {
 128.173 +
 128.174 +        if (m_hList == NULL) {
 128.175 +            COMBOBOXINFO cbi;
 128.176 +            cbi.cbSize = sizeof(COMBOBOXINFO);
 128.177 +            ::GetComboBoxInfo(GetHWnd(), &cbi);
 128.178 +            m_hList = cbi.hwndList;
 128.179 +            m_listDefWindowProc = ComCtl32Util::GetInstance().SubclassHWND(m_hList, ListWindowProc);
 128.180 +            DASSERT(::GetWindowLongPtr(m_hList, GWLP_USERDATA) == NULL);
 128.181 +            ::SetWindowLongPtr(m_hList, GWLP_USERDATA, (LONG_PTR)this);
 128.182 +        }
 128.183 +        sm_isMouseMoveInList = FALSE;
 128.184 +
 128.185 +        // Clicking in the dropdown list steals focus from the proxy.
 128.186 +        // So, set the focus-restore flag up.
 128.187 +        SetRestoreFocus(TRUE);
 128.188 +    } else if (notifyCode == CBN_CLOSEUP) {
 128.189 +        SetRestoreFocus(FALSE);
 128.190      }
 128.191      return mrDoDefault;
 128.192  }
 128.193 @@ -414,19 +485,7 @@
 128.194  AwtChoice::WmKillFocus(HWND hWndGotFocus)
 128.195  {
 128.196      skipNextMouseUp = TRUE;
 128.197 -
 128.198 -    switch (killFocusRouting) {
 128.199 -    case mrConsume:
 128.200 -        return mrConsume;
 128.201 -    case mrDoDefault:
 128.202 -        killFocusRouting = mrPassAlong;
 128.203 -        return mrDoDefault;
 128.204 -    case mrPassAlong:
 128.205 -        return AwtComponent::WmKillFocus(hWndGotFocus);
 128.206 -    }
 128.207 -
 128.208 -    DASSERT(false); // must never reach here
 128.209 -    return mrDoDefault;
 128.210 +    return AwtComponent::WmKillFocus(hWndGotFocus);
 128.211  }
 128.212  
 128.213  MsgRouting
 128.214 @@ -441,27 +500,17 @@
 128.215  
 128.216  MsgRouting AwtChoice::HandleEvent(MSG *msg, BOOL synthetic)
 128.217  {
 128.218 -    /*
 128.219 -     * 6366006
 128.220 -     * Note: the event can be sent in two cases:
 128.221 -     *       1) The Choice is closed and user clicks on it to drop it down.
 128.222 -     *       2) The Choice is non-focusable, it's droped down, user
 128.223 -     *          clicks on it (or outside) to close it.
 128.224 -     *       So, if the Choice is in droped down state, we shouldn't call
 128.225 -     *       heavyweightButtonDown() method. Otherwise it will set a typeahead marker
 128.226 -     *       that won't be removed, because no focus events will be generated.
 128.227 -     */
 128.228 -    if (AwtComponent::sm_focusOwner != GetHWnd() &&
 128.229 -        (msg->message == WM_LBUTTONDOWN || msg->message == WM_LBUTTONDBLCLK) &&
 128.230 -        !IsChoiceOpened())
 128.231 +    if (IsFocusingMouseMessage(msg)) {
 128.232 +        SendMessage(CB_SHOWDROPDOWN, ~SendMessage(CB_GETDROPPEDSTATE, 0, 0), 0);
 128.233 +        delete msg;
 128.234 +        return mrConsume;
 128.235 +    }
 128.236 +    // To simulate the native behavior, we close the list on WM_LBUTTONUP if
 128.237 +    // WM_MOUSEMOVE has been dedected on the list since it has been dropped down.
 128.238 +    if (msg->message == WM_LBUTTONUP && SendMessage(CB_GETDROPPEDSTATE, 0, 0) &&
 128.239 +        sm_isMouseMoveInList)
 128.240      {
 128.241 -        JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 128.242 -        jobject target = GetTarget(env);
 128.243 -        env->CallStaticVoidMethod
 128.244 -            (AwtKeyboardFocusManager::keyboardFocusManagerCls,
 128.245 -             AwtKeyboardFocusManager::heavyweightButtonDownMID,
 128.246 -             target, ((jlong)msg->time) & 0xFFFFFFFF);
 128.247 -        env->DeleteLocalRef(target);
 128.248 +        SendMessage(CB_SHOWDROPDOWN, FALSE, 0);
 128.249      }
 128.250      return AwtComponent::HandleEvent(msg, synthetic);
 128.251  }
 128.252 @@ -618,6 +667,26 @@
 128.253      env->DeleteGlobalRef(choice);
 128.254  }
 128.255  
 128.256 +void AwtChoice::_CloseList(void *param)
 128.257 +{
 128.258 +    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 128.259 +
 128.260 +    jobject choice = (jobject)param;
 128.261 +
 128.262 +    AwtChoice *c = NULL;
 128.263 +
 128.264 +    PDATA pData;
 128.265 +    JNI_CHECK_PEER_GOTO(choice, done);
 128.266 +
 128.267 +    c = (AwtChoice *)pData;
 128.268 +    if (::IsWindow(c->GetHWnd()) && c->SendMessage(CB_GETDROPPEDSTATE, 0, 0)) {
 128.269 +        c->SendMessage(CB_SHOWDROPDOWN, FALSE, 0);
 128.270 +    }
 128.271 +
 128.272 +done:
 128.273 +    env->DeleteGlobalRef(choice);
 128.274 +}
 128.275 +
 128.276  /************************************************************************
 128.277   * WChoicePeer native methods
 128.278   */
 128.279 @@ -752,6 +821,23 @@
 128.280      CATCH_BAD_ALLOC;
 128.281  }
 128.282  
 128.283 +/*
 128.284 + * Class:     sun_awt_windows_WChoicePeer
 128.285 + * Method:    closeList
 128.286 + * Signature: ()V
 128.287 + */
 128.288 +JNIEXPORT void JNICALL
 128.289 +Java_sun_awt_windows_WChoicePeer_closeList(JNIEnv *env, jobject self)
 128.290 +{
 128.291 +    TRY;
 128.292 +
 128.293 +    jobject selfGlobalRef = env->NewGlobalRef(self);
 128.294 +
 128.295 +    AwtToolkit::GetInstance().SyncCall(AwtChoice::_CloseList, (void *)selfGlobalRef);
 128.296 +    // global ref is deleted in _CloseList
 128.297 +
 128.298 +    CATCH_BAD_ALLOC;
 128.299 +}
 128.300  } /* extern "C" */
 128.301  
 128.302  
   129.1 --- a/src/windows/native/sun/windows/awt_Choice.h	Tue Apr 14 00:05:07 2009 -0700
   129.2 +++ b/src/windows/native/sun/windows/awt_Choice.h	Tue Apr 14 04:21:02 2009 -0700
   129.3 @@ -43,6 +43,8 @@
   129.4      virtual LPCTSTR GetClassName();
   129.5      static AwtChoice* Create(jobject peer, jobject hParent);
   129.6  
   129.7 +    virtual void Dispose();
   129.8 +
   129.9      virtual void Reshape(int x, int y, int w, int h);
  129.10      void ResetDropDownHeight();
  129.11      int GetDropDownHeight();
  129.12 @@ -75,9 +77,6 @@
  129.13      virtual void SetDragCapture(UINT flags);
  129.14      virtual void ReleaseDragCapture(UINT flags);
  129.15  
  129.16 -    BOOL ActMouseMessage(MSG * pMsg);
  129.17 -    INLINE BOOL AwtChoice::IsChoiceOpened() {return SendMessage(CB_GETDROPPEDSTATE, 0, 0);}
  129.18 -
  129.19      static BOOL mouseCapture;
  129.20      static BOOL skipNextMouseUp;
  129.21  
  129.22 @@ -87,11 +86,16 @@
  129.23      static void _AddItems(void *param);
  129.24      static void _Remove(void *param);
  129.25      static void _RemoveAll(void *param);
  129.26 +    static void _CloseList(void *param);
  129.27  
  129.28  private:
  129.29      int GetFieldHeight();
  129.30      int GetTotalHeight();
  129.31 -    MsgRouting killFocusRouting;
  129.32 +    static BOOL sm_isMouseMoveInList;
  129.33 +    HWND m_hList;
  129.34 +    WNDPROC m_listDefWindowProc;
  129.35 +    static LRESULT CALLBACK ListWindowProc(HWND hwnd, UINT message,
  129.36 +                                           WPARAM wParam, LPARAM lParam);
  129.37  };
  129.38  
  129.39  #endif /* AWT_CHOICE_H */
   130.1 --- a/src/windows/native/sun/windows/awt_Component.cpp	Tue Apr 14 00:05:07 2009 -0700
   130.2 +++ b/src/windows/native/sun/windows/awt_Component.cpp	Tue Apr 14 04:21:02 2009 -0700
   130.3 @@ -1,5 +1,5 @@
   130.4  /*
   130.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   130.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   130.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   130.8   *
   130.9   * This code is free software; you can redistribute it and/or modify it
  130.10 @@ -38,7 +38,6 @@
  130.11  #include "awt_InputTextInfor.h"
  130.12  #include "awt_Insets.h"
  130.13  #include "awt_KeyEvent.h"
  130.14 -#include "awt_KeyboardFocusManager.h"
  130.15  #include "awt_MenuItem.h"
  130.16  #include "awt_MouseEvent.h"
  130.17  #include "awt_Palette.h"
  130.18 @@ -58,7 +57,6 @@
  130.19  #include <java_awt_Event.h>
  130.20  #include <java_awt_event_KeyEvent.h>
  130.21  #include <java_awt_Insets.h>
  130.22 -#include <java_awt_KeyboardFocusManager.h>
  130.23  #include <sun_awt_windows_WPanelPeer.h>
  130.24  #include <java_awt_event_InputEvent.h>
  130.25  #include <java_awt_event_InputMethodEvent.h>
  130.26 @@ -94,12 +92,13 @@
  130.27      BOOL g_bUserHasChangedInputLang = FALSE;
  130.28  }
  130.29  
  130.30 -BOOL AwtComponent::sm_suppressFocusAndActivation;
  130.31 -HWND AwtComponent::sm_focusOwner;
  130.32 -HWND AwtComponent::sm_focusedWindow;
  130.33 -HWND AwtComponent::sm_realFocusOpposite;
  130.34 +BOOL AwtComponent::sm_suppressFocusAndActivation = FALSE;
  130.35 +BOOL AwtComponent::sm_restoreFocusAndActivation = FALSE;
  130.36 +HWND AwtComponent::sm_focusOwner = NULL;
  130.37 +HWND AwtComponent::sm_focusedWindow = NULL;
  130.38  BOOL AwtComponent::sm_bMenuLoop = FALSE;
  130.39  AwtComponent* AwtComponent::sm_getComponentCache = NULL;
  130.40 +BOOL AwtComponent::sm_inSynthesizeFocus = FALSE;
  130.41  
  130.42  /************************************************************************/
  130.43  // Struct for _Reshape() and ReshapeNoCheck() methods
  130.44 @@ -123,15 +122,6 @@
  130.45      jobject component;
  130.46      jobject font;
  130.47  };
  130.48 -// Struct for _RequestFocus() method
  130.49 -struct RequestFocusStruct {
  130.50 -    jobject component;
  130.51 -    jobject lightweightChild;
  130.52 -    jboolean temporary;
  130.53 -    jboolean focusedWindowChangeAllowed;
  130.54 -    jlong time;
  130.55 -    jobject cause;
  130.56 -};
  130.57  // Struct for _CreatePrintedPixels() method
  130.58  struct CreatePrintedPixelsStruct {
  130.59      jobject component;
  130.60 @@ -149,6 +139,16 @@
  130.61      jobject window;
  130.62      RECT *insets;
  130.63  };
  130.64 +// Struct for _SetZOrder function
  130.65 +struct SetZOrderStruct {
  130.66 +    jobject component;
  130.67 +    jlong above;
  130.68 +};
  130.69 +// Struct for _SetFocus function
  130.70 +struct SetFocusStruct {
  130.71 +    jobject component;
  130.72 +    jboolean doSetFocus;
  130.73 +};
  130.74  /************************************************************************/
  130.75  
  130.76  //////////////////////////////////////////////////////////////////////////
  130.77 @@ -199,8 +199,7 @@
  130.78  BOOL AwtComponent::sm_rtlReadingOrder =
  130.79      PRIMARYLANGID(GetInputLanguage()) == LANG_ARABIC;
  130.80  
  130.81 -UINT AwtComponent::sm_95WheelMessage = WM_NULL;
  130.82 -UINT AwtComponent::sm_95WheelSupport = WM_NULL;
  130.83 +BOOL AwtComponent::sm_PrimaryDynamicTableBuilt = FALSE;
  130.84  
  130.85  HWND AwtComponent::sm_cursorOn;
  130.86  BOOL AwtComponent::m_QueryNewPaletteCalled = FALSE;
  130.87 @@ -208,8 +207,6 @@
  130.88  CriticalSection windowMoveLock;
  130.89  BOOL windowMoveLockHeld = FALSE;
  130.90  
  130.91 -int AwtComponent::sm_wheelRotationAmount = 0;
  130.92 -
  130.93  /************************************************************************
  130.94   * AwtComponent methods
  130.95   */
  130.96 @@ -237,7 +234,6 @@
  130.97      m_InputMethod = NULL;
  130.98      m_useNativeCompWindow = TRUE;
  130.99      m_PendingLeadByte = 0;
 130.100 -    m_skipNextSetFocus = FALSE;
 130.101      m_bitsCandType = 0;
 130.102  
 130.103      windowMoveLockPosX = 0;
 130.104 @@ -250,6 +246,12 @@
 130.105      m_bSubclassed = FALSE;
 130.106  
 130.107      m_MessagesProcessing = 0;
 130.108 +    m_wheelRotationAmount = 0;
 130.109 +    if (!sm_PrimaryDynamicTableBuilt) {
 130.110 +        // do it once.
 130.111 +        AwtComponent::BuildPrimaryDynamicTable();
 130.112 +        sm_PrimaryDynamicTableBuilt = TRUE;
 130.113 +    }
 130.114  }
 130.115  
 130.116  AwtComponent::~AwtComponent()
 130.117 @@ -265,8 +267,7 @@
 130.118       * the native one anymore. So we can safely destroy component's
 130.119       * handle.
 130.120       */
 130.121 -    AwtToolkit::DestroyComponentHWND(m_hwnd);
 130.122 -    m_hwnd = NULL;
 130.123 +    DestroyHWnd();
 130.124  
 130.125      if (sm_getComponentCache == this) {
 130.126          sm_getComponentCache = NULL;
 130.127 @@ -275,15 +276,8 @@
 130.128  
 130.129  void AwtComponent::Dispose()
 130.130  {
 130.131 -    if (sm_focusOwner == GetHWnd()) {
 130.132 -        ::SetFocus(NULL);
 130.133 -    }
 130.134 -    if (sm_focusedWindow == GetHWnd()) {
 130.135 -        sm_focusedWindow = NULL;
 130.136 -    }
 130.137 -    if (sm_realFocusOpposite == GetHWnd()) {
 130.138 -        sm_realFocusOpposite = NULL;
 130.139 -    }
 130.140 +    // NOTE: in case the component/toplevel was focused, Java should
 130.141 +    // have already taken care of proper transfering it or clearing.
 130.142  
 130.143      if (m_hdwp != NULL) {
 130.144      // end any deferred window positioning, regardless
 130.145 @@ -588,6 +582,17 @@
 130.146  }
 130.147  
 130.148  /*
 130.149 + * Destroy this window's HWND
 130.150 + */
 130.151 +void AwtComponent::DestroyHWnd() {
 130.152 +    if (m_hwnd != NULL) {
 130.153 +        AwtToolkit::DestroyComponentHWND(m_hwnd);
 130.154 +        //AwtToolkit::DestroyComponent(this);
 130.155 +        m_hwnd = NULL;
 130.156 +    }
 130.157 +}
 130.158 +
 130.159 +/*
 130.160   * Returns hwnd for target on non Toolkit thread
 130.161   */
 130.162  HWND
 130.163 @@ -888,27 +893,8 @@
 130.164  
 130.165  void AwtComponent::Hide()
 130.166  {
 130.167 -    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 130.168 -    jobject peer = GetPeer(env);
 130.169 -    BOOL oldValue = sm_suppressFocusAndActivation;
 130.170      m_visible = false;
 130.171 -
 130.172 -    // On disposal the focus owner actually loses focus at the moment of hiding.
 130.173 -    // So, focus change suppression (if requested) should be made here.
 130.174 -    if (GetHWnd() == sm_focusOwner &&
 130.175 -        !JNU_CallMethodByName(env, NULL, peer, "isAutoFocusTransferOnDisposal", "()Z").z)
 130.176 -   {
 130.177 -        sm_suppressFocusAndActivation = TRUE;
 130.178 -        // The native system may autotransfer focus on hiding to the parent
 130.179 -        // of the component. Nevertheless this focus change won't be posted
 130.180 -        // to the Java level, we're better to avoid this. Anyway, after
 130.181 -        // the disposal focus should be requested to the right component.
 130.182 -        ::SetFocus(NULL);
 130.183 -        sm_focusOwner = NULL;
 130.184 -    }
 130.185      ::ShowWindow(GetHWnd(), SW_HIDE);
 130.186 -
 130.187 -    sm_suppressFocusAndActivation = oldValue;
 130.188  }
 130.189  
 130.190  BOOL
 130.191 @@ -1252,6 +1238,7 @@
 130.192          WIN_MSG(WM_AWT_COMPONENT_SHOW)
 130.193          WIN_MSG(WM_AWT_COMPONENT_HIDE)
 130.194          WIN_MSG(WM_AWT_COMPONENT_SETFOCUS)
 130.195 +        WIN_MSG(WM_AWT_WINDOW_SETACTIVE)
 130.196          WIN_MSG(WM_AWT_LIST_SETMULTISELECT)
 130.197          WIN_MSG(WM_AWT_HANDLE_EVENT)
 130.198          WIN_MSG(WM_AWT_PRINT_COMPONENT)
 130.199 @@ -1503,67 +1490,54 @@
 130.200            sm_bMenuLoop = FALSE;
 130.201            break;
 130.202  
 130.203 +      // We don't expect any focus messages on non-proxy component,
 130.204 +      // except those that came from Java.
 130.205        case WM_SETFOCUS:
 130.206 -          mr = (!sm_suppressFocusAndActivation && !m_skipNextSetFocus)
 130.207 -              ? WmSetFocus((HWND)wParam) : mrConsume;
 130.208 -          m_skipNextSetFocus = FALSE;
 130.209 +          if (sm_inSynthesizeFocus) {
 130.210 +              mr = WmSetFocus((HWND)wParam);
 130.211 +          } else {
 130.212 +              mr = mrConsume;
 130.213 +          }
 130.214            break;
 130.215        case WM_KILLFOCUS:
 130.216 -          mr = (!sm_suppressFocusAndActivation)
 130.217 -              ? WmKillFocus((HWND)wParam) : mrConsume;
 130.218 +          if (sm_inSynthesizeFocus) {
 130.219 +              mr = WmKillFocus((HWND)wParam);
 130.220 +          } else {
 130.221 +              mr = mrConsume;
 130.222 +          }
 130.223            break;
 130.224 -      case WM_ACTIVATE:
 130.225 -      {
 130.226 +      case WM_ACTIVATE: {
 130.227            UINT nState = LOWORD(wParam);
 130.228            BOOL fMinimized = (BOOL)HIWORD(wParam);
 130.229 +          mr = mrConsume;
 130.230 +
 130.231            if (!sm_suppressFocusAndActivation &&
 130.232                (!fMinimized || (nState == WA_INACTIVE)))
 130.233            {
 130.234                mr = WmActivate(nState, fMinimized, (HWND)lParam);
 130.235 -              m_skipNextSetFocus = FALSE;
 130.236 +
 130.237                // When the window is deactivated, send WM_IME_ENDCOMPOSITION
 130.238                // message to deactivate the composition window so that
 130.239                // it won't receive keyboard input focus.
 130.240                if (ImmGetContext() != NULL) {
 130.241                    DefWindowProc(WM_IME_ENDCOMPOSITION, 0, 0);
 130.242                }
 130.243 -          } else {
 130.244 -              if (!sm_suppressFocusAndActivation
 130.245 -                  && fMinimized && (nState != WA_INACTIVE))
 130.246 -              {
 130.247 -                  m_skipNextSetFocus = TRUE;
 130.248 -              }
 130.249 -              mr = mrConsume;
 130.250            }
 130.251 +          break;
 130.252        }
 130.253 -      break;
 130.254 -    case WM_MOUSEACTIVATE: {
 130.255 -        AwtWindow * window = (AwtWindow*)GetComponent((HWND)wParam);
 130.256 -        if (window != NULL) {
 130.257 -            if (!window->IsFocusableWindow()) {
 130.258 -                // if it is non-focusable window we can return
 130.259 -                // MA_NOACTIVATExxx and it will not be activated. We
 130.260 -                // return NOACTIVATE for a client part of the window so we
 130.261 -                // receive mouse event responsible for activation. We
 130.262 -                // return NOACTIVEA for Frame's non-client so user be able
 130.263 -                // to resize and move frames by title and borders. We
 130.264 -                // return NOACTIVATEANDEAT for Window non-client area as
 130.265 -                // there is noone to listen for this event.
 130.266 -                mr = mrConsume;
 130.267 -                if ((window == this) && LOWORD(lParam) != HTCLIENT ) {
 130.268 -                    if (window->IsSimpleWindow()) {
 130.269 -                        retValue = MA_NOACTIVATEANDEAT;
 130.270 -                    } else {
 130.271 -                        retValue = MA_NOACTIVATE;
 130.272 -                    }
 130.273 -                } else {
 130.274 -                    retValue = MA_NOACTIVATE;
 130.275 -                }
 130.276 -            }
 130.277 -        }
 130.278 -        break;
 130.279 -    }
 130.280 -
 130.281 +      case WM_MOUSEACTIVATE: {
 130.282 +          AwtWindow *window = GetContainer();
 130.283 +          if (window && window->IsFocusableWindow()) {
 130.284 +              // AWT/Swing will later request focus to a proper component
 130.285 +              // on handling the Java mouse event. Anyway, we have to
 130.286 +              // activate the window here as it works both for AWT & Swing.
 130.287 +              // Do it in our own fassion,
 130.288 +              window->AwtSetActiveWindow(TRUE, LOWORD(lParam)/*hittest*/);
 130.289 +          }
 130.290 +          mr = mrConsume;
 130.291 +          retValue = MA_NOACTIVATE;
 130.292 +          break;
 130.293 +      }
 130.294        case WM_CTLCOLORMSGBOX:
 130.295        case WM_CTLCOLOREDIT:
 130.296        case WM_CTLCOLORLISTBOX:
 130.297 @@ -1920,7 +1894,15 @@
 130.298            break;
 130.299  
 130.300        case WM_AWT_COMPONENT_SETFOCUS:
 130.301 -          retValue = (LRESULT)WmComponentSetFocus((WmComponentSetFocusData *)wParam);
 130.302 +          if ((BOOL)wParam) {
 130.303 +              retValue = SynthesizeWmSetFocus(GetHWnd(), NULL);
 130.304 +          } else {
 130.305 +              retValue = SynthesizeWmKillFocus(GetHWnd(), NULL);
 130.306 +          }
 130.307 +          mr = mrConsume;
 130.308 +          break;
 130.309 +      case WM_AWT_WINDOW_SETACTIVE:
 130.310 +          retValue = (LRESULT)((AwtWindow*)this)->AwtSetActiveWindow((BOOL)wParam);
 130.311            mr = mrConsume;
 130.312            break;
 130.313  
 130.314 @@ -2048,188 +2030,16 @@
 130.315  
 130.316  MsgRouting AwtComponent::WmSetFocus(HWND hWndLostFocus)
 130.317  {
 130.318 -    if (sm_focusOwner == GetHWnd()) {
 130.319 -        sm_realFocusOpposite = NULL;
 130.320 -        return mrConsume;
 130.321 -    }
 130.322 -
 130.323 -    HWND toplevelHWnd = AwtComponent::GetTopLevelParentForWindow(GetHWnd());
 130.324 -    AwtComponent *comp = AwtComponent::GetComponent(toplevelHWnd);
 130.325 -
 130.326 -    if (comp && comp->IsEmbeddedFrame() &&
 130.327 -        !((AwtFrame*)comp)->activateEmbeddedFrameOnSetFocus(hWndLostFocus))
 130.328 -    {
 130.329 -        // Fix for 6562716.
 130.330 -        // In order that AwtSetFocus() returns FALSE.
 130.331 -        sm_suppressFocusAndActivation = TRUE;
 130.332 -        ::SetFocus(NULL);
 130.333 -        sm_suppressFocusAndActivation = FALSE;
 130.334 -
 130.335 -        return mrConsume;
 130.336 -    }
 130.337 -
 130.338 -    sm_focusOwner = GetHWnd();
 130.339 -    sm_focusedWindow = toplevelHWnd;
 130.340 -
 130.341 -    if (sm_realFocusOpposite != NULL) {
 130.342 -        hWndLostFocus = sm_realFocusOpposite;
 130.343 -        sm_realFocusOpposite = NULL;
 130.344 -    }
 130.345 -
 130.346 -    sm_wheelRotationAmount = 0;
 130.347 -
 130.348 -    SendFocusEvent(java_awt_event_FocusEvent_FOCUS_GAINED, hWndLostFocus);
 130.349 -
 130.350 +    m_wheelRotationAmount = 0;
 130.351      return mrDoDefault;
 130.352  }
 130.353  
 130.354  MsgRouting AwtComponent::WmKillFocus(HWND hWndGotFocus)
 130.355  {
 130.356 -    if (sm_focusOwner != NULL && sm_focusOwner == hWndGotFocus) {
 130.357 -        return mrConsume;
 130.358 -    }
 130.359 -
 130.360 -    if (sm_focusOwner != GetHWnd()) {
 130.361 -        if (sm_focusOwner != NULL) {
 130.362 -            if (hWndGotFocus != NULL &&
 130.363 -                AwtComponent::GetComponent(hWndGotFocus) != NULL)
 130.364 -            {
 130.365 -                sm_realFocusOpposite = sm_focusOwner;
 130.366 -            }
 130.367 -            ::SendMessage(sm_focusOwner, WM_KILLFOCUS, (WPARAM)hWndGotFocus,
 130.368 -                          0);
 130.369 -        }
 130.370 -        return mrConsume;
 130.371 -    }
 130.372 -
 130.373 -    AwtComponent *comp = AwtComponent::GetComponent(sm_focusedWindow);
 130.374 -
 130.375 -    if (comp && comp->IsEmbeddedFrame()) {
 130.376 -        ((AwtFrame*)comp)->deactivateEmbeddedFrameOnKillFocus(hWndGotFocus);
 130.377 -    }
 130.378 -
 130.379 -    sm_focusOwner = NULL;
 130.380 -    sm_wheelRotationAmount = 0;
 130.381 -
 130.382 -    SendFocusEvent(java_awt_event_FocusEvent_FOCUS_LOST, hWndGotFocus);
 130.383 +    m_wheelRotationAmount = 0;
 130.384      return mrDoDefault;
 130.385  }
 130.386  
 130.387 -jboolean
 130.388 -AwtComponent::WmComponentSetFocus(WmComponentSetFocusData *data)
 130.389 -{
 130.390 -    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 130.391 -    if (env->EnsureLocalCapacity(1) < 0) {
 130.392 -        env->DeleteGlobalRef(data->lightweightChild);
 130.393 -        delete data;
 130.394 -        return JNI_FALSE;
 130.395 -    }
 130.396 -
 130.397 -    jboolean result = JNI_FALSE;
 130.398 -
 130.399 -    BOOL setSuppressFocusAndActivation = FALSE;
 130.400 -
 130.401 -    /*
 130.402 -     * This is a fix for 4628933.
 130.403 -     * If sm_suppressFocusAndActivation is TRUE here then
 130.404 -     * this means that we dispatch WM_COMPONENT_SET_FOCUS inside
 130.405 -     * dispatching bounce activation, this unlikely but possible.
 130.406 -     * So we reset sm_suppressFocusAndActivation to give a chance
 130.407 -     * to dispatch focus events which will generate due this focus
 130.408 -     * request to Java.
 130.409 -     *
 130.410 -     * son@sparc.spb.su
 130.411 -     */
 130.412 -    if (sm_suppressFocusAndActivation) {
 130.413 -        sm_suppressFocusAndActivation = FALSE;
 130.414 -        setSuppressFocusAndActivation = TRUE;
 130.415 -    }
 130.416 -
 130.417 -    jobject heavyweight = GetTarget(env);
 130.418 -    jint retval = env->CallStaticIntMethod
 130.419 -        (AwtKeyboardFocusManager::keyboardFocusManagerCls,
 130.420 -         AwtKeyboardFocusManager::shouldNativelyFocusHeavyweightMID,
 130.421 -         heavyweight, data->lightweightChild, data->temporary,
 130.422 -         data->focusedWindowChangeAllowed, data->time, data->cause);
 130.423 -
 130.424 -    if (retval == java_awt_KeyboardFocusManager_SNFH_SUCCESS_HANDLED) {
 130.425 -        result = JNI_TRUE;
 130.426 -    } else if (retval == java_awt_KeyboardFocusManager_SNFH_SUCCESS_PROCEED) {
 130.427 -        result = (AwtSetFocus()) ? JNI_TRUE : JNI_FALSE;
 130.428 -        if (result == JNI_FALSE) {
 130.429 -            env->CallStaticVoidMethod
 130.430 -                (AwtKeyboardFocusManager::keyboardFocusManagerCls,
 130.431 -                 AwtKeyboardFocusManager::removeLastFocusRequestMID,
 130.432 -                 heavyweight);
 130.433 -        }
 130.434 -    } else {
 130.435 -        DASSERT(retval == java_awt_KeyboardFocusManager_SNFH_FAILURE);
 130.436 -        result = JNI_FALSE;
 130.437 -    }
 130.438 -    env->DeleteLocalRef(heavyweight);
 130.439 -
 130.440 -    /*
 130.441 -     * Set sm_suppressFocusAndActivation back to TRUE if needed.
 130.442 -     * Fix for 4628933 (son@sparc.spb.su)
 130.443 -     */
 130.444 -   if (setSuppressFocusAndActivation) {
 130.445 -        sm_suppressFocusAndActivation = TRUE;
 130.446 -    }
 130.447 -
 130.448 -    env->DeleteGlobalRef(data->lightweightChild);
 130.449 -    delete data;
 130.450 -    return result;
 130.451 -}
 130.452 -
 130.453 -BOOL
 130.454 -AwtComponent::AwtSetFocus()
 130.455 -{
 130.456 -    HWND hwnd = GetHWnd();
 130.457 -
 130.458 -    if (sm_focusOwner == hwnd) {
 130.459 -        return TRUE;
 130.460 -    }
 130.461 -
 130.462 -    HWND fgWindow = ::GetForegroundWindow();
 130.463 -    if (NULL != fgWindow) {
 130.464 -        DWORD fgProcessID;
 130.465 -        ::GetWindowThreadProcessId(fgWindow, &fgProcessID);
 130.466 -
 130.467 -        if (fgProcessID != ::GetCurrentProcessId()
 130.468 -            && !AwtToolkit::GetInstance().IsEmbedderProcessId(fgProcessID))
 130.469 -        {
 130.470 -            // fix for 6458497.  we shouldn't request focus if it is out of both
 130.471 -            // our and embedder process.
 130.472 -            return FALSE;
 130.473 -        }
 130.474 -    }
 130.475 -
 130.476 -    AwtWindow *pCont = GetContainer();
 130.477 -    AwtFrame *owner = pCont ? pCont->GetOwningFrameOrDialog() : NULL;
 130.478 -
 130.479 -    if (owner == NULL) {
 130.480 -        ::SetFocus(hwnd);
 130.481 -        if (::GetFocus() != hwnd) {
 130.482 -            return FALSE;
 130.483 -        }
 130.484 -    } else {
 130.485 -        HWND oldFocusOwner = sm_focusOwner;
 130.486 -        if (oldFocusOwner != NULL) {
 130.487 -            ::SendMessage(oldFocusOwner, WM_KILLFOCUS, (WPARAM)hwnd, 0);
 130.488 -        }
 130.489 -
 130.490 -        sm_suppressFocusAndActivation = TRUE;
 130.491 -        ::SetActiveWindow(owner->GetHWnd());
 130.492 -        ::SetFocus(owner->GetProxyFocusOwner());
 130.493 -        sm_suppressFocusAndActivation = FALSE;
 130.494 -
 130.495 -        sm_focusedWindow = GetTopLevelParentForWindow(GetHWnd());
 130.496 -        ::SendMessage(hwnd, WM_SETFOCUS, (WPARAM)oldFocusOwner, 0);
 130.497 -    }
 130.498 -
 130.499 -    return TRUE;
 130.500 -}
 130.501 -
 130.502  MsgRouting AwtComponent::WmCtlColor(HDC hDC, HWND hCtrl,
 130.503                                      UINT ctlColor, HBRUSH& retBrush)
 130.504  {
 130.505 @@ -2524,7 +2334,6 @@
 130.506              AwtWindow::GetGrabbedWindow()->Ungrab();
 130.507          }
 130.508      }
 130.509 -
 130.510      return mrConsume;
 130.511  }
 130.512  
 130.513 @@ -2638,11 +2447,11 @@
 130.514      BOOL result;
 130.515      UINT platformLines;
 130.516  
 130.517 -    sm_wheelRotationAmount += wheelRotation;
 130.518 +    m_wheelRotationAmount += wheelRotation;
 130.519  
 130.520      // AWT interprets wheel rotation differently than win32, so we need to
 130.521      // decode wheel amount.
 130.522 -    jint roundedWheelRotation = sm_wheelRotationAmount / (-1 * WHEEL_DELTA);
 130.523 +    jint roundedWheelRotation = m_wheelRotationAmount / (-1 * WHEEL_DELTA);
 130.524      jdouble preciseWheelRotation = (jdouble) wheelRotation / (-1 * WHEEL_DELTA);
 130.525  
 130.526      MSG msg;
 130.527 @@ -2668,7 +2477,9 @@
 130.528                          eventPt.x, eventPt.y, GetJavaModifiers(), 0, 0, scrollType,
 130.529                          scrollLines, roundedWheelRotation, preciseWheelRotation, &msg);
 130.530  
 130.531 -    sm_wheelRotationAmount %= WHEEL_DELTA;
 130.532 +    m_wheelRotationAmount %= WHEEL_DELTA;
 130.533 +    // this message could be propagated up to the parent chain
 130.534 +    // by the mouse message post processors
 130.535      return mrConsume;
 130.536  }
 130.537  
 130.538 @@ -3088,6 +2899,19 @@
 130.539      {0,0}
 130.540  };
 130.541  
 130.542 +// The full map of the current keyboard state including
 130.543 +// windows virtual key, scancode, java virtual key, and unicode
 130.544 +// for this key sans modifiers.
 130.545 +// All but first element may be 0.
 130.546 +// XXX in the update releases this is an addition to the unchanged existing code
 130.547 +struct DynPrimaryKeymapEntry {
 130.548 +    UINT wkey;
 130.549 +    UINT scancode;
 130.550 +    UINT jkey;
 130.551 +    WCHAR unicode;
 130.552 +};
 130.553 +
 130.554 +static DynPrimaryKeymapEntry dynPrimaryKeymap[256];
 130.555  
 130.556  void
 130.557  AwtComponent::InitDynamicKeyMapTable()
 130.558 @@ -3096,6 +2920,8 @@
 130.559  
 130.560      if (!kbdinited) {
 130.561          AwtComponent::BuildDynamicKeyMapTable();
 130.562 +        // We cannot build it here since JNI is not available yet:
 130.563 +        //AwtComponent::BuildPrimaryDynamicTable();
 130.564          kbdinited = TRUE;
 130.565      }
 130.566  }
 130.567 @@ -3321,7 +3147,11 @@
 130.568  
 130.569      for (int j = 0; dynamicKeyMapTable[j].windowsKey != 0; j++) {
 130.570          if (dynamicKeyMapTable[j].windowsKey == windowsKey) {
 130.571 -            return dynamicKeyMapTable[j].javaKey;
 130.572 +            if (dynamicKeyMapTable[j].javaKey != java_awt_event_KeyEvent_VK_UNDEFINED) {
 130.573 +                return dynamicKeyMapTable[j].javaKey;
 130.574 +            }else{
 130.575 +                break;
 130.576 +            }
 130.577          }
 130.578      }
 130.579  
 130.580 @@ -3398,6 +3228,122 @@
 130.581  
 130.582      return FALSE;
 130.583  }
 130.584 +static void
 130.585 +resetKbdState( BYTE kstate[256]) {
 130.586 +    BYTE tmpState[256];
 130.587 +    WCHAR wc[2];
 130.588 +    memmove(tmpState, kstate, sizeof(kstate));
 130.589 +    tmpState[VK_SHIFT] = 0;
 130.590 +    tmpState[VK_CONTROL] = 0;
 130.591 +    tmpState[VK_MENU] = 0;
 130.592 +
 130.593 +    ::ToUnicodeEx(VK_SPACE,::MapVirtualKey(VK_SPACE, 0), tmpState, wc, 2, 0,  GetKeyboardLayout(0));
 130.594 +}
 130.595 +
 130.596 +// XXX in the update releases this is an addition to the unchanged existing code
 130.597 +// After the call, a table will have a unicode associated with a windows virtual keycode
 130.598 +// sans modifiers. With some further simplification, one can
 130.599 +// derive java keycode from it, and anyway we will pass this unicode value
 130.600 +// all the way up in a comment to a KeyEvent.
 130.601 +void
 130.602 +AwtComponent::BuildPrimaryDynamicTable() {
 130.603 +    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 130.604 +    // XXX: how about that?
 130.605 +    //CriticalSection::Lock l(GetLock());
 130.606 +    //if (GetPeer(env) == NULL) {
 130.607 +    //    /* event received during termination. */
 130.608 +    //    return;
 130.609 +    //}
 130.610 +
 130.611 +    HKL hkl = GetKeyboardLayout();
 130.612 +    UINT sc = 0;
 130.613 +    BYTE kbdState[AwtToolkit::KB_STATE_SIZE];
 130.614 +    memset(kbdState, 0, sizeof (kbdState));
 130.615 +
 130.616 +    // Use JNI call to obtain java key code. We should keep a list
 130.617 +    // of currently available keycodes in a single place.
 130.618 +    static jclass extKeyCodesCls;
 130.619 +    if( extKeyCodesCls == NULL) {
 130.620 +        jclass extKeyCodesClsLocal = env->FindClass("sun/awt/ExtendedKeyCodes");
 130.621 +        DASSERT(extKeyCodesClsLocal);
 130.622 +        if (extKeyCodesClsLocal == NULL) {
 130.623 +            /* exception already thrown */
 130.624 +            return;
 130.625 +        }
 130.626 +        extKeyCodesCls = (jclass)env->NewGlobalRef(extKeyCodesClsLocal);
 130.627 +        env->DeleteLocalRef(extKeyCodesClsLocal);
 130.628 +    }
 130.629 +    static jmethodID getExtendedKeyCodeForChar;
 130.630 +    if (getExtendedKeyCodeForChar == NULL) {
 130.631 +        getExtendedKeyCodeForChar =
 130.632 +                  env->GetStaticMethodID(extKeyCodesCls, "getExtendedKeyCodeForChar", "(I)I");
 130.633 +        DASSERT(getExtendedKeyCodeForChar);
 130.634 +    }
 130.635 +    jint extJKC; //extended Java key code
 130.636 +
 130.637 +    for (UINT i = 0; i < 256; i++) {
 130.638 +        dynPrimaryKeymap[i].wkey = i;
 130.639 +        dynPrimaryKeymap[i].jkey = java_awt_event_KeyEvent_VK_UNDEFINED;
 130.640 +        dynPrimaryKeymap[i].unicode = 0;
 130.641 +
 130.642 +        if ((sc = MapVirtualKey (i, 0)) == 0) {
 130.643 +            dynPrimaryKeymap[i].scancode = 0;
 130.644 +            continue;
 130.645 +        }
 130.646 +        dynPrimaryKeymap[i].scancode = sc;
 130.647 +
 130.648 +        // XXX process cases like VK_SHIFT etc.
 130.649 +        kbdState[i] = 0x80; // "key pressed".
 130.650 +        WCHAR wc[16];
 130.651 +        int k = ::ToUnicodeEx(i, sc, kbdState, wc, 16, 0, hkl);
 130.652 +        if (k == 1) {
 130.653 +            // unicode
 130.654 +            dynPrimaryKeymap[i].unicode = wc[0];
 130.655 +            if (dynPrimaryKeymap[i].jkey == java_awt_event_KeyEvent_VK_UNDEFINED) {
 130.656 +            // Convert unicode to java keycode.
 130.657 +                //dynPrimaryKeymap[i].jkey = ((UINT)(wc[0]) + 0x01000000);
 130.658 +                //
 130.659 +                //XXX If this key in on the keypad, we should force a special value equal to
 130.660 +                //XXX an old java keycode: but how to say if it is a keypad key?
 130.661 +                //XXX We'll do it in WmKeyUp/Down.
 130.662 +                extJKC = env->CallStaticIntMethod(extKeyCodesCls,
 130.663 +                                                  getExtendedKeyCodeForChar, (jint)(wc[0]));
 130.664 +                dynPrimaryKeymap[i].jkey = extJKC;
 130.665 +            }
 130.666 +        }else if (k == -1) {
 130.667 +            // dead key: use charToDeadVKTable
 130.668 +            dynPrimaryKeymap[i].unicode = wc[0];
 130.669 +            resetKbdState( kbdState );
 130.670 +            for (const CharToVKEntry *map = charToDeadVKTable;  map->c != 0;  ++map) {
 130.671 +                if (wc[0] == map->c) {
 130.672 +                    dynPrimaryKeymap[i].jkey = map->javaKey;
 130.673 +                    break;
 130.674 +                }
 130.675 +            }
 130.676 +        } else if (k == 0) {
 130.677 +            // reset
 130.678 +            resetKbdState( kbdState );
 130.679 +        }else {
 130.680 +            printf ("++++Whats that? wkey 0x%x (%d)\n", i,i);
 130.681 +        }
 130.682 +        kbdState[i] = 0; // "key unpressed"
 130.683 +    }
 130.684 +}
 130.685 +void
 130.686 +AwtComponent::UpdateDynPrimaryKeymap(UINT wkey, UINT jkeyLegacy, jint keyLocation, UINT modifiers)
 130.687 +{
 130.688 +    if( wkey && wkey < 256 ) {
 130.689 +        if(keyLocation == java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD) {
 130.690 +            // At the creation time,
 130.691 +            // dynPrimaryKeymap cannot distinguish between e.g. "/" and "NumPad /"
 130.692 +            dynPrimaryKeymap[wkey].jkey = jkeyLegacy;
 130.693 +        }
 130.694 +        if(dynPrimaryKeymap[wkey].jkey ==  java_awt_event_KeyEvent_VK_UNDEFINED) {
 130.695 +            // E.g. it is non-unicode key
 130.696 +            dynPrimaryKeymap[wkey].jkey = jkeyLegacy;
 130.697 +        }
 130.698 +    }
 130.699 +}
 130.700  
 130.701  UINT AwtComponent::WindowsKeyToJavaChar(UINT wkey, UINT modifiers, TransOps ops)
 130.702  {
 130.703 @@ -3554,10 +3500,12 @@
 130.704      jint keyLocation = GetKeyLocation(wkey, flags);
 130.705      UINT jkey = WindowsKeyToJavaKey(wkey, modifiers);
 130.706      UINT character = WindowsKeyToJavaChar(wkey, modifiers, SAVE);
 130.707 +    UpdateDynPrimaryKeymap(wkey, jkey, keyLocation, modifiers);
 130.708 +
 130.709  
 130.710      SendKeyEventToFocusOwner(java_awt_event_KeyEvent_KEY_PRESSED,
 130.711                               TimeHelper::windowsToUTC(msg.time), jkey, character,
 130.712 -                             modifiers, keyLocation, &msg);
 130.713 +                             modifiers, keyLocation, (jlong)wkey, &msg);
 130.714  
 130.715      // bugid 4724007: Windows does not create a WM_CHAR for the Del key
 130.716      // for some reason, so we need to create the KEY_TYPED event on the
 130.717 @@ -3569,7 +3517,7 @@
 130.718                                   TimeHelper::windowsToUTC(msg.time),
 130.719                                   java_awt_event_KeyEvent_VK_UNDEFINED,
 130.720                                   character, modifiers,
 130.721 -                                 java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN);
 130.722 +                                 java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN, (jlong)0);
 130.723      }
 130.724  
 130.725      return mrConsume;
 130.726 @@ -3594,10 +3542,11 @@
 130.727      jint keyLocation = GetKeyLocation(wkey, flags);
 130.728      UINT jkey = WindowsKeyToJavaKey(wkey, modifiers);
 130.729      UINT character = WindowsKeyToJavaChar(wkey, modifiers, LOAD);
 130.730 +    UpdateDynPrimaryKeymap(wkey, jkey, keyLocation, modifiers);
 130.731  
 130.732      SendKeyEventToFocusOwner(java_awt_event_KeyEvent_KEY_RELEASED,
 130.733                               TimeHelper::windowsToUTC(msg.time), jkey, character,
 130.734 -                             modifiers, keyLocation, &msg);
 130.735 +                             modifiers, keyLocation, (jlong)wkey, &msg);
 130.736      return mrConsume;
 130.737  }
 130.738  
 130.739 @@ -3613,6 +3562,7 @@
 130.740      m_idLang = LOWORD(hKeyboardLayout); // lower word of HKL is LANGID
 130.741      m_CodePage = LangToCodePage(m_idLang);
 130.742      BuildDynamicKeyMapTable();  // compute new mappings for VK_OEM
 130.743 +    BuildPrimaryDynamicTable();
 130.744      return mrConsume;           // do not propagate to children
 130.745  }
 130.746  
 130.747 @@ -3643,7 +3593,7 @@
 130.748                               TimeHelper::windowsToUTC(msg.time),
 130.749                               java_awt_event_KeyEvent_VK_UNDEFINED,
 130.750                               unicodeChar, modifiers,
 130.751 -                             java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN,
 130.752 +                             java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN, (jlong)0,
 130.753                               &msg);
 130.754      return mrConsume;
 130.755  }
 130.756 @@ -3712,7 +3662,7 @@
 130.757                               TimeHelper::windowsToUTC(msg.time),
 130.758                               java_awt_event_KeyEvent_VK_UNDEFINED,
 130.759                               unicodeChar, modifiers,
 130.760 -                             java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN,
 130.761 +                             java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN, (jlong)0,
 130.762                               &msg);
 130.763      return mrConsume;
 130.764  }
 130.765 @@ -4033,14 +3983,15 @@
 130.766  
 130.767  HWND AwtComponent::GetProxyFocusOwner()
 130.768  {
 130.769 -    AwtWindow * window = GetContainer();
 130.770 +    AwtWindow *window = GetContainer();
 130.771      if (window != 0) {
 130.772 -        AwtFrame * owner = window->GetOwningFrameOrDialog();
 130.773 +        AwtFrame *owner = window->GetOwningFrameOrDialog();
 130.774          if (owner != 0) {
 130.775              return owner->GetProxyFocusOwner();
 130.776 +        } else if (!window->IsSimpleWindow()) { // isn't an owned simple window
 130.777 +            return ((AwtFrame*)window)->GetProxyFocusOwner();
 130.778          }
 130.779      }
 130.780 -
 130.781      return (HWND)NULL;
 130.782  }
 130.783  
 130.784 @@ -4562,6 +4513,25 @@
 130.785      return hdc;
 130.786  }
 130.787  
 130.788 +void AwtComponent::FillBackground(HDC hMemoryDC, SIZE &size)
 130.789 +{
 130.790 +    RECT eraseR = { 0, 0, size.cx, size.cy };
 130.791 +    VERIFY(::FillRect(hMemoryDC, &eraseR, GetBackgroundBrush()));
 130.792 +}
 130.793 +
 130.794 +void AwtComponent::FillAlpha(void *bitmapBits, SIZE &size, BYTE alpha)
 130.795 +{
 130.796 +    if (bitmapBits) {
 130.797 +        DWORD* dest = (DWORD*)bitmapBits;
 130.798 +        //XXX: might be optimized to use one loop (cy*cx -> 0).
 130.799 +        for (int i = 0; i < size.cy; i++ ) {
 130.800 +            for (int j = 0; j < size.cx; j++ ) {
 130.801 +                ((BYTE*)(dest++))[3] = alpha;
 130.802 +            }
 130.803 +        }
 130.804 +    }
 130.805 +}
 130.806 +
 130.807  jintArray AwtComponent::CreatePrintedPixels(SIZE &loc, SIZE &size) {
 130.808      JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 130.809  
 130.810 @@ -4619,26 +4589,53 @@
 130.811      return pixelArray;
 130.812  }
 130.813  
 130.814 -void *
 130.815 -AwtComponent::GetNativeFocusOwner() {
 130.816 +void* AwtComponent::SetNativeFocusOwner(void *self) {
 130.817 +    if (self == NULL) {
 130.818 +        // It means that the KFM wants to set focus to null
 130.819 +        sm_focusOwner = NULL;
 130.820 +        return NULL;
 130.821 +    }
 130.822 +
 130.823 +    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 130.824 +
 130.825 +    AwtComponent *c = NULL;
 130.826 +    jobject peer = (jobject)self;
 130.827 +
 130.828 +    PDATA pData;
 130.829 +    JNI_CHECK_NULL_GOTO(peer, "peer", ret);
 130.830 +    pData = JNI_GET_PDATA(peer);
 130.831 +    if (pData == NULL) {
 130.832 +        goto ret;
 130.833 +    }
 130.834 +    c = (AwtComponent *)pData;
 130.835 +
 130.836 +ret:
 130.837 +    if (c && ::IsWindow(c->GetHWnd())) {
 130.838 +        sm_focusOwner = c->GetHWnd();
 130.839 +        AwtFrame *owner = (AwtFrame*)GetComponent(c->GetProxyToplevelContainer());
 130.840 +        if (owner) {
 130.841 +            owner->SetLastProxiedFocusOwner(sm_focusOwner);
 130.842 +        }
 130.843 +    } else {
 130.844 +        sm_focusOwner = NULL;
 130.845 +    }
 130.846 +    env->DeleteGlobalRef(peer);
 130.847 +    return NULL;
 130.848 +}
 130.849 +
 130.850 +void* AwtComponent::GetNativeFocusedWindow() {
 130.851 +    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 130.852 +    AwtComponent *comp =
 130.853 +        AwtComponent::GetComponent(AwtComponent::GetFocusedWindow());
 130.854 +    return (comp != NULL) ? comp->GetTargetAsGlobalRef(env) : NULL;
 130.855 +}
 130.856 +
 130.857 +void* AwtComponent::GetNativeFocusOwner() {
 130.858      JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 130.859      AwtComponent *comp =
 130.860          AwtComponent::GetComponent(AwtComponent::sm_focusOwner);
 130.861      return (comp != NULL) ? comp->GetTargetAsGlobalRef(env) : NULL;
 130.862  }
 130.863 -void *
 130.864 -AwtComponent::GetNativeFocusedWindow() {
 130.865 -    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 130.866 -    AwtComponent *comp =
 130.867 -        AwtComponent::GetComponent(AwtComponent::sm_focusedWindow);
 130.868 -    return (comp != NULL) ? comp->GetTargetAsGlobalRef(env) : NULL;
 130.869 -}
 130.870 -void
 130.871 -AwtComponent::ClearGlobalFocusOwner() {
 130.872 -    if (AwtComponent::sm_focusOwner != NULL) {
 130.873 -        ::SetFocus(NULL);
 130.874 -    }
 130.875 -}
 130.876  
 130.877  AwtComponent* AwtComponent::SearchChild(UINT id) {
 130.878      ChildListItem* child;
 130.879 @@ -4674,7 +4671,7 @@
 130.880  }
 130.881  
 130.882  void AwtComponent::SendKeyEvent(jint id, jlong when, jint raw, jint cooked,
 130.883 -                                jint modifiers, jint keyLocation, MSG *pMsg)
 130.884 +                                jint modifiers, jint keyLocation, jlong nativeCode, MSG *pMsg)
 130.885  {
 130.886      JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 130.887      CriticalSection::Lock l(GetLock());
 130.888 @@ -4711,6 +4708,18 @@
 130.889      if (safe_ExceptionOccurred(env)) env->ExceptionDescribe();
 130.890      DASSERT(!safe_ExceptionOccurred(env));
 130.891      DASSERT(keyEvent != NULL);
 130.892 +    env->SetLongField(keyEvent, AwtKeyEvent::rawCodeID, nativeCode);
 130.893 +    if( nativeCode && nativeCode < 256 ) {
 130.894 +        env->SetLongField(keyEvent, AwtKeyEvent::primaryLevelUnicodeID, (jlong)(dynPrimaryKeymap[nativeCode].unicode));
 130.895 +        env->SetLongField(keyEvent, AwtKeyEvent::extendedKeyCodeID, (jlong)(dynPrimaryKeymap[nativeCode].jkey));
 130.896 +        if( nativeCode < 255 ) {
 130.897 +            env->SetLongField(keyEvent, AwtKeyEvent::scancodeID, (jlong)(dynPrimaryKeymap[nativeCode].scancode));
 130.898 +        }else if( pMsg != NULL ) {
 130.899 +            // unknown key with virtual keycode 0xFF.
 130.900 +            // Its scancode is not in the table, pickup it from the message.
 130.901 +            env->SetLongField(keyEvent, AwtKeyEvent::scancodeID, (jlong)(HIWORD(pMsg->lParam) & 0xFF));
 130.902 +        }
 130.903 +    }
 130.904      if (pMsg != NULL) {
 130.905          AwtAWTEvent::saveMSG(env, pMsg, keyEvent);
 130.906      }
 130.907 @@ -4724,16 +4733,17 @@
 130.908  AwtComponent::SendKeyEventToFocusOwner(jint id, jlong when,
 130.909                                         jint raw, jint cooked,
 130.910                                         jint modifiers, jint keyLocation,
 130.911 +                                       jlong nativeCode,
 130.912                                         MSG *msg)
 130.913  {
 130.914      /*
 130.915       * if focus owner is null, but focused window isn't
 130.916       * we will send key event to focused window
 130.917       */
 130.918 -    HWND hwndTarget = ((sm_focusOwner != NULL) ? sm_focusOwner : sm_focusedWindow);
 130.919 +    HWND hwndTarget = ((sm_focusOwner != NULL) ? sm_focusOwner : AwtComponent::GetFocusedWindow());
 130.920  
 130.921      if (hwndTarget == GetHWnd()) {
 130.922 -        SendKeyEvent(id, when, raw, cooked, modifiers, keyLocation, msg);
 130.923 +        SendKeyEvent(id, when, raw, cooked, modifiers, keyLocation, nativeCode, msg);
 130.924      } else {
 130.925          AwtComponent *target = NULL;
 130.926          if (hwndTarget != NULL) {
 130.927 @@ -4744,7 +4754,7 @@
 130.928          }
 130.929          if (target != NULL) {
 130.930              target->SendKeyEvent(id, when, raw, cooked, modifiers,
 130.931 -              keyLocation, msg);
 130.932 +              keyLocation, nativeCode, msg);
 130.933          }
 130.934      }
 130.935  }
 130.936 @@ -5158,14 +5168,7 @@
 130.937      jint x = (env)->GetIntField(mouseEvent, AwtMouseEvent::xID);
 130.938      jint y = (env)->GetIntField(mouseEvent, AwtMouseEvent::yID);
 130.939      MSG* msg = CreateMessage(message, wParam, MAKELPARAM(x, y), x, y);
 130.940 -    // If the window is not focusable but if this is a focusing
 130.941 -    // message we should skip it then and perform our own actions.
 130.942 -    AwtWindow *pCont = GetContainer();
 130.943 -    if ((pCont && pCont->IsFocusableWindow()) || !ActMouseMessage(msg)) {
 130.944 -        PostHandleEventMessage(msg, TRUE);
 130.945 -    } else {
 130.946 -        delete msg;
 130.947 -    }
 130.948 +    PostHandleEventMessage(msg, TRUE);
 130.949  }
 130.950  
 130.951  BOOL AwtComponent::InheritsNativeMouseWheelBehavior() {return false;}
 130.952 @@ -5251,15 +5254,14 @@
 130.953  
 130.954  void AwtComponent::Enable(BOOL bEnable)
 130.955  {
 130.956 -    sm_suppressFocusAndActivation = TRUE;
 130.957 -
 130.958      if (bEnable && IsTopLevel()) {
 130.959          // we should not enable blocked toplevels
 130.960          bEnable = !::IsWindow(AwtWindow::GetModalBlocker(GetHWnd()));
 130.961      }
 130.962 +    // Shouldn't trigger native focus change
 130.963 +    // (only the proxy may be the native focus owner).
 130.964      ::EnableWindow(GetHWnd(), bEnable);
 130.965  
 130.966 -    sm_suppressFocusAndActivation = FALSE;
 130.967      CriticalSection::Lock l(GetLock());
 130.968      VerifyState();
 130.969  }
 130.970 @@ -5286,23 +5288,12 @@
 130.971      }
 130.972  }
 130.973  
 130.974 -/**
 130.975 - * Special procedure responsible for performing the actions which
 130.976 - * usually happen with component when mouse buttons are being
 130.977 - * pressed. It is required in case of non-focusable components - we
 130.978 - * don't pass mouse messages directly to the windows because otherwise
 130.979 - * it will try to focus component first which we don't want.  This
 130.980 - * function receives MSG and should return TRUE if it processed the
 130.981 - * message and no furhter processing is allowed, FALSE otherwise.
 130.982 - * Default implementation returns TRUE it is the message on which
 130.983 - * Windows try to focus the component.  Descendant components write
 130.984 - * their own implementation of this procedure.
 130.985 - */
 130.986 -BOOL AwtComponent::ActMouseMessage(MSG * pMsg) {
 130.987 -    if (IsFocusingMessage(pMsg->message)) {
 130.988 -        return TRUE;
 130.989 -    }
 130.990 -    return FALSE;
 130.991 +BOOL AwtComponent::IsFocusingMouseMessage(MSG *pMsg) {
 130.992 +    return pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_LBUTTONDBLCLK;
 130.993 +}
 130.994 +
 130.995 +BOOL AwtComponent::IsFocusingKeyMessage(MSG *pMsg) {
 130.996 +    return pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_SPACE;
 130.997  }
 130.998  
 130.999  void AwtComponent::_Show(void *param)
130.1000 @@ -5640,22 +5631,12 @@
130.1001                  return;
130.1002              }
130.1003  
130.1004 -            /* Post the message directly to the subclassed component. */
130.1005 -            if (self && (pData = JNI_GET_PDATA(self))) {
130.1006 -                AwtComponent* p = (AwtComponent*)pData;
130.1007 -                // If the window is not focusable but if this is a focusing
130.1008 -                // message we should skip it then and perform our own actions.
130.1009 -                AwtWindow *pCont = (AwtWindow*)(p->GetContainer());
130.1010 -                if ((pCont && pCont->IsFocusableWindow()) ||
130.1011 -                    !p->ActMouseMessage(&msg))
130.1012 -                {
130.1013 -                    // Create copy for local msg
130.1014 -                    MSG* pCopiedMsg = new MSG;
130.1015 -                    memmove(pCopiedMsg, &msg, sizeof(MSG));
130.1016 -                    // Event handler deletes msg
130.1017 -                    p->PostHandleEventMessage(pCopiedMsg, FALSE);
130.1018 -                }
130.1019 -            }
130.1020 +            // Create copy for local msg
130.1021 +            MSG* pCopiedMsg = new MSG;
130.1022 +            memmove(pCopiedMsg, &msg, sizeof(MSG));
130.1023 +            // Event handler deletes msg
130.1024 +            p->PostHandleEventMessage(pCopiedMsg, FALSE);
130.1025 +
130.1026              env->DeleteGlobalRef(self);
130.1027              env->DeleteGlobalRef(event);
130.1028              delete nhes;
130.1029 @@ -5777,19 +5758,15 @@
130.1030      delete sfs;
130.1031  }
130.1032  
130.1033 -jboolean AwtComponent::_RequestFocus(void *param)
130.1034 +// Sets or kills focus for a component.
130.1035 +void AwtComponent::_SetFocus(void *param)
130.1036  {
130.1037      JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
130.1038  
130.1039 -    RequestFocusStruct *rfs = (RequestFocusStruct *)param;
130.1040 -    jobject self = rfs->component;
130.1041 -    jobject lightweightChild = rfs->lightweightChild;
130.1042 -    jboolean temporary = rfs->temporary;
130.1043 -    jboolean focusedWindowChangeAllowed = rfs->focusedWindowChangeAllowed;
130.1044 -    jlong time = rfs->time;
130.1045 -    jobject cause = rfs->cause;
130.1046 -
130.1047 -    jboolean result = JNI_FALSE;
130.1048 +    SetFocusStruct *sfs = (SetFocusStruct *)param;
130.1049 +    jobject self = sfs->component;
130.1050 +    jboolean doSetFocus = sfs->doSetFocus;
130.1051 +
130.1052      AwtComponent *c = NULL;
130.1053  
130.1054      PDATA pData;
130.1055 @@ -5801,25 +5778,13 @@
130.1056      }
130.1057  
130.1058      c = (AwtComponent *)pData;
130.1059 -    if (::IsWindow(c->GetHWnd()))
130.1060 -    {
130.1061 -        WmComponentSetFocusData *data = new WmComponentSetFocusData;
130.1062 -        data->lightweightChild = env->NewGlobalRef(lightweightChild);
130.1063 -        data->temporary = temporary;
130.1064 -        data->focusedWindowChangeAllowed = focusedWindowChangeAllowed;
130.1065 -        data->time = time;
130.1066 -        data->cause = cause;
130.1067 -        result = (jboolean)c->SendMessage(WM_AWT_COMPONENT_SETFOCUS, (WPARAM)data, 0);
130.1068 -        // data and global ref in it are deleted in WmComponentSetFocus
130.1069 +    if (::IsWindow(c->GetHWnd())) {
130.1070 +        c->SendMessage(WM_AWT_COMPONENT_SETFOCUS, (WPARAM)doSetFocus, 0);
130.1071      }
130.1072  ret:
130.1073      env->DeleteGlobalRef(self);
130.1074 -    env->DeleteGlobalRef(lightweightChild);
130.1075 -    env->DeleteGlobalRef(cause);
130.1076 -
130.1077 -    delete rfs;
130.1078 -
130.1079 -    return result;
130.1080 +
130.1081 +    delete sfs;
130.1082  }
130.1083  
130.1084  void AwtComponent::_Start(void *param)
130.1085 @@ -6082,9 +6047,9 @@
130.1086              HWND selfWnd = comps[0]->GetHWnd();
130.1087              HWND parentWnd = comps[1]->GetHWnd();
130.1088              if (::IsWindow(selfWnd) && ::IsWindow(parentWnd)) {
130.1089 -                sm_suppressFocusAndActivation = TRUE;
130.1090 +                // Shouldn't trigger native focus change
130.1091 +                // (only the proxy may be the native focus owner).
130.1092                  ::SetParent(selfWnd, parentWnd);
130.1093 -                sm_suppressFocusAndActivation = FALSE;
130.1094              }
130.1095          }
130.1096          delete[] comps;
130.1097 @@ -6107,15 +6072,12 @@
130.1098  
130.1099      AwtComponent *c = NULL;
130.1100  
130.1101 -
130.1102 -
130.1103      PDATA pData;
130.1104      JNI_CHECK_PEER_GOTO(self, ret);
130.1105 +
130.1106      c = (AwtComponent *)pData;
130.1107 -    if (::IsWindow(c->GetHWnd()))
130.1108 -    {
130.1109 +    if (::IsWindow(c->GetHWnd())) {
130.1110          HRGN hRgn = NULL;
130.1111 -
130.1112          if (region || x1 || x2 || y1 || y2) {
130.1113              // If all the params are zeros, the shape must be simply reset.
130.1114              // Otherwise, convert it into a region.
130.1115 @@ -6157,6 +6119,33 @@
130.1116      delete data;
130.1117  }
130.1118  
130.1119 +void AwtComponent::_SetZOrder(void *param) {
130.1120 +    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
130.1121 +
130.1122 +    SetZOrderStruct *data = (SetZOrderStruct *)param;
130.1123 +    jobject self = data->component;
130.1124 +    HWND above = HWND_TOP;
130.1125 +    if (data->above != 0) {
130.1126 +        above = reinterpret_cast<HWND>(data->above);
130.1127 +    }
130.1128 +
130.1129 +    AwtComponent *c = NULL;
130.1130 +
130.1131 +    PDATA pData;
130.1132 +    JNI_CHECK_PEER_GOTO(self, ret);
130.1133 +
130.1134 +    c = (AwtComponent *)pData;
130.1135 +    if (::IsWindow(c->GetHWnd())) {
130.1136 +        ::SetWindowPos(c->GetHWnd(), above, 0, 0, 0, 0,
130.1137 +                       SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_DEFERERASE | SWP_ASYNCWINDOWPOS);
130.1138 +    }
130.1139 +
130.1140 +ret:
130.1141 +    env->DeleteGlobalRef(self);
130.1142 +
130.1143 +    delete data;
130.1144 +}
130.1145 +
130.1146  void AwtComponent::PostUngrabEvent() {
130.1147      JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
130.1148      jobject target = GetTarget(env);
130.1149 @@ -6173,6 +6162,14 @@
130.1150      }
130.1151  }
130.1152  
130.1153 +void AwtComponent::SetFocusedWindow(HWND window)
130.1154 +{
130.1155 +    HWND old = sm_focusedWindow;
130.1156 +    sm_focusedWindow = window;
130.1157 +
130.1158 +    AwtWindow::FocusedWindowChanged(old, window);
130.1159 +}
130.1160 +
130.1161  /************************************************************************
130.1162   * Component native methods
130.1163   */
130.1164 @@ -6587,31 +6584,25 @@
130.1165  
130.1166  /*
130.1167   * Class:     sun_awt_windows_WComponentPeer
130.1168 - * Method:    requestFocus
130.1169 - * Signature: (Ljava/awt/Component;ZZJ)Z
130.1170 + * Method:    focusGained
130.1171 + * Signature: (Z)
130.1172   */
130.1173 -JNIEXPORT jboolean JNICALL Java_sun_awt_windows_WComponentPeer__1requestFocus
130.1174 -    (JNIEnv *env, jobject self, jobject lightweightChild, jboolean temporary,
130.1175 -     jboolean focusedWindowChangeAllowed, jlong time, jobject cause)
130.1176 +JNIEXPORT void JNICALL Java_sun_awt_windows_WComponentPeer_setFocus
130.1177 +    (JNIEnv *env, jobject self, jboolean doSetFocus)
130.1178  {
130.1179      TRY;
130.1180  
130.1181      jobject selfGlobalRef = env->NewGlobalRef(self);
130.1182 -    jobject lightweightChildGlobalRef = env->NewGlobalRef(lightweightChild);
130.1183 -
130.1184 -    RequestFocusStruct *rfs = new RequestFocusStruct;
130.1185 -    rfs->component = selfGlobalRef;
130.1186 -    rfs->lightweightChild = lightweightChildGlobalRef;
130.1187 -    rfs->temporary = temporary;
130.1188 -    rfs->focusedWindowChangeAllowed = focusedWindowChangeAllowed;
130.1189 -    rfs->time = time;
130.1190 -    rfs->cause = env->NewGlobalRef(cause);
130.1191 -
130.1192 -    return (jboolean)AwtToolkit::GetInstance().SyncCall(
130.1193 -        (void*(*)(void*))AwtComponent::_RequestFocus, rfs);
130.1194 -    // global refs and rfs are deleted in _RequestFocus
130.1195 -
130.1196 -    CATCH_BAD_ALLOC_RET(JNI_FALSE);
130.1197 +
130.1198 +    SetFocusStruct *sfs = new SetFocusStruct;
130.1199 +    sfs->component = selfGlobalRef;
130.1200 +    sfs->doSetFocus = doSetFocus;
130.1201 +
130.1202 +    AwtToolkit::GetInstance().SyncCall(
130.1203 +        (void*(*)(void*))AwtComponent::_SetFocus, sfs);
130.1204 +    // global refs and self are deleted in _SetFocus
130.1205 +
130.1206 +    CATCH_BAD_ALLOC;
130.1207  }
130.1208  
130.1209  /*
130.1210 @@ -6823,25 +6814,6 @@
130.1211      CATCH_BAD_ALLOC_RET(NULL);
130.1212  }
130.1213  
130.1214 -JNIEXPORT jboolean JNICALL
130.1215 -Java_sun_awt_windows_WComponentPeer_processSynchronousLightweightTransfer(JNIEnv *env, jclass cls,
130.1216 -                                                                          jobject heavyweight,
130.1217 -                                                                          jobject descendant,
130.1218 -                                                                          jboolean temporary,
130.1219 -                                                                          jboolean focusedWindowChangeAllowed,
130.1220 -                                                                          jlong time)
130.1221 -{
130.1222 -    TRY;
130.1223 -
130.1224 -    return env->CallStaticBooleanMethod(AwtKeyboardFocusManager::keyboardFocusManagerCls,
130.1225 -                                        AwtKeyboardFocusManager::processSynchronousTransfer,
130.1226 -                                        heavyweight, descendant, temporary,
130.1227 -                                        focusedWindowChangeAllowed,
130.1228 -                                        time);
130.1229 -
130.1230 -    CATCH_BAD_ALLOC_RET(JNI_TRUE);
130.1231 -}
130.1232 -
130.1233  JNIEXPORT void JNICALL
130.1234  Java_sun_awt_windows_WComponentPeer_pSetParent(JNIEnv* env, jobject self, jobject parent) {
130.1235      TRY;
130.1236 @@ -6883,6 +6855,21 @@
130.1237      CATCH_BAD_ALLOC;
130.1238  }
130.1239  
130.1240 +JNIEXPORT void JNICALL
130.1241 +Java_sun_awt_windows_WComponentPeer_setZOrder(JNIEnv* env, jobject self, jlong above)
130.1242 +{
130.1243 +    TRY;
130.1244 +
130.1245 +    SetZOrderStruct * data = new SetZOrderStruct;
130.1246 +    data->component = env->NewGlobalRef(self);
130.1247 +    data->above = above;
130.1248 +
130.1249 +    AwtToolkit::GetInstance().SyncCall(AwtComponent::_SetZOrder, data);
130.1250 +    // global refs and data are deleted in _SetLower
130.1251 +
130.1252 +    CATCH_BAD_ALLOC;
130.1253 +}
130.1254 +
130.1255  } /* extern "C" */
130.1256  
130.1257  
   131.1 --- a/src/windows/native/sun/windows/awt_Component.h	Tue Apr 14 00:05:07 2009 -0700
   131.2 +++ b/src/windows/native/sun/windows/awt_Component.h	Tue Apr 14 04:21:02 2009 -0700
   131.3 @@ -1,5 +1,5 @@
   131.4  /*
   131.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   131.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   131.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   131.8   *
   131.9   * This code is free software; you can redistribute it and/or modify it
  131.10 @@ -78,8 +78,6 @@
  131.11  
  131.12  class AwtDropTarget;
  131.13  
  131.14 -struct WmComponentSetFocusData;
  131.15 -
  131.16  /*
  131.17   * Message routing codes
  131.18   */
  131.19 @@ -139,12 +137,13 @@
  131.20      virtual void RegisterClass();
  131.21      virtual void UnregisterClass();
  131.22  
  131.23 -    void CreateHWnd(JNIEnv *env, LPCWSTR title,
  131.24 +    virtual void CreateHWnd(JNIEnv *env, LPCWSTR title,
  131.25                      DWORD windowStyle, DWORD windowExStyle,
  131.26                      int x, int y, int w, int h,
  131.27                      HWND hWndParent, HMENU hMenu,
  131.28                      COLORREF colorForeground, COLORREF colorBackground,
  131.29                      jobject peer);
  131.30 +    virtual void DestroyHWnd();
  131.31      void InitPeerGraphicsConfig(JNIEnv *env, jobject peer);
  131.32  
  131.33      virtual void Dispose();
  131.34 @@ -221,17 +220,10 @@
  131.35      virtual BOOL IsContainer() { return FALSE;} // Plain components can't
  131.36  
  131.37      /**
  131.38 -     * Perform some actions which by default are being performed by Default Window procedure of
  131.39 -     * this window class
  131.40 -     * For detailed comments see implementation in awt_Component.cpp
  131.41 +     * Returns TRUE if this message will trigger native focus change, FALSE otherwise.
  131.42       */
  131.43 -    virtual BOOL ActMouseMessage(MSG * pMsg);
  131.44 -    /**
  131.45 -     * Returns TRUE if this message will this component to become focused. Returns FALSE otherwise.
  131.46 -     */
  131.47 -    inline BOOL IsFocusingMessage(UINT message) {
  131.48 -        return message == WM_LBUTTONDOWN || message == WM_LBUTTONUP || message == WM_LBUTTONDBLCLK;
  131.49 -    }
  131.50 +    virtual BOOL IsFocusingKeyMessage(MSG *pMsg);
  131.51 +    virtual BOOL IsFocusingMouseMessage(MSG *pMsg);
  131.52  
  131.53      BOOL IsFocusable();
  131.54  
  131.55 @@ -373,7 +365,7 @@
  131.56      }
  131.57  
  131.58      void SendKeyEventToFocusOwner(jint id, jlong when, jint raw, jint cooked,
  131.59 -                                  jint modifiers, jint keyLocation,
  131.60 +                                  jint modifiers, jint keyLocation, jlong nativeCode,
  131.61                                    MSG *msg = NULL);
  131.62      /*
  131.63       * Allocate and initialize a new java.awt.event.KeyEvent, and
  131.64 @@ -381,7 +373,7 @@
  131.65       * from the target.
  131.66       */
  131.67      void SendKeyEvent(jint id, jlong when, jint raw, jint cooked,
  131.68 -                      jint modifiers, jint keyLocation,
  131.69 +                      jint modifiers, jint keyLocation, jlong nativeCode,
  131.70                        MSG *msg = NULL);
  131.71  
  131.72      /*
  131.73 @@ -431,13 +423,6 @@
  131.74       */
  131.75      virtual BOOL InheritsNativeMouseWheelBehavior();
  131.76  
  131.77 -    /* Functions for MouseWheel support on Windows95
  131.78 -     * These should only be called if running on 95
  131.79 -     */
  131.80 -    static void Wheel95Init();
  131.81 -    INLINE static UINT Wheel95GetMsg() {return sm_95WheelMessage;}
  131.82 -    static UINT Wheel95GetScrLines();
  131.83 -
  131.84      /* Determines whether the component is obscured by another window */
  131.85      // Called on Toolkit thread
  131.86      static jboolean _IsObscured(void *param);
  131.87 @@ -457,6 +442,7 @@
  131.88      static UINT GetButtonMK(int mouseButton);
  131.89      static UINT WindowsKeyToJavaKey(UINT windowsKey, UINT modifiers);
  131.90      static void JavaKeyToWindowsKey(UINT javaKey, UINT *windowsKey, UINT *modifiers, UINT originalWindowsKey);
  131.91 +    static void UpdateDynPrimaryKeymap(UINT wkey, UINT jkeyLegacy, jint keyLocation, UINT modifiers);
  131.92  
  131.93      INLINE static void AwtComponent::JavaKeyToWindowsKey(UINT javaKey,
  131.94                                         UINT *windowsKey, UINT *modifiers)
  131.95 @@ -480,6 +466,12 @@
  131.96      HIMC ImmGetContext();
  131.97      HIMC ImmAssociateContext(HIMC himc);
  131.98      HWND GetProxyFocusOwner();
  131.99 +
 131.100 +    INLINE HWND GetProxyToplevelContainer() {
 131.101 +        HWND proxyHWnd = GetProxyFocusOwner();
 131.102 +        return ::GetAncestor(proxyHWnd, GA_ROOT); // a browser in case of EmbeddedFrame
 131.103 +    }
 131.104 +
 131.105      void CallProxyDefWindowProc(UINT message,
 131.106                                  WPARAM wParam,
 131.107                                  LPARAM lParam,
 131.108 @@ -517,11 +509,6 @@
 131.109      virtual MsgRouting WmShowWindow(BOOL show, UINT status);
 131.110      virtual MsgRouting WmSetFocus(HWND hWndLost);
 131.111      virtual MsgRouting WmKillFocus(HWND hWndGot);
 131.112 -    jboolean WmComponentSetFocus(WmComponentSetFocusData *data);
 131.113 -    // Use instead of ::SetFocus to maintain special focusing semantics for
 131.114 -    // Windows which are not Frames/Dialogs.
 131.115 -    BOOL AwtSetFocus();
 131.116 -
 131.117      virtual MsgRouting WmCtlColor(HDC hDC, HWND hCtrl,
 131.118                                    UINT ctlColor, HBRUSH& retBrush);
 131.119      virtual MsgRouting WmHScroll(UINT scrollCode, UINT pos, HWND hScrollBar);
 131.120 @@ -611,10 +598,6 @@
 131.121  
 131.122      jintArray CreatePrintedPixels(SIZE &loc, SIZE &size);
 131.123  
 131.124 -    static void * GetNativeFocusOwner();
 131.125 -    static void * GetNativeFocusedWindow();
 131.126 -    static void   ClearGlobalFocusOwner();
 131.127 -
 131.128      /*
 131.129       * HWND, AwtComponent and Java Peer interaction
 131.130       *
 131.131 @@ -673,7 +656,6 @@
 131.132      static void _SetForeground(void *param);
 131.133      static void _SetBackground(void *param);
 131.134      static void _SetFont(void *param);
 131.135 -    static jboolean _RequestFocus(void *param);
 131.136      static void _Start(void *param);
 131.137      static void _BeginValidate(void *param);
 131.138      static void _EndValidate(void *param);
 131.139 @@ -683,10 +665,40 @@
 131.140      static jintArray _CreatePrintedPixels(void *param);
 131.141      static jboolean _NativeHandlesWheelScrolling(void *param);
 131.142      static void _SetRectangularShape(void *param);
 131.143 +    static void _SetZOrder(void *param);
 131.144  
 131.145      static HWND sm_focusOwner;
 131.146 +
 131.147 +private:
 131.148      static HWND sm_focusedWindow;
 131.149  
 131.150 +public:
 131.151 +    static inline HWND GetFocusedWindow() { return sm_focusedWindow; }
 131.152 +    static void SetFocusedWindow(HWND window);
 131.153 +
 131.154 +    static void _SetFocus(void *param);
 131.155 +
 131.156 +    static void *SetNativeFocusOwner(void *self);
 131.157 +    static void *GetNativeFocusedWindow();
 131.158 +    static void *GetNativeFocusOwner();
 131.159 +
 131.160 +    static BOOL sm_inSynthesizeFocus;
 131.161 +
 131.162 +    // Execute on Toolkit only.
 131.163 +    INLINE static LRESULT SynthesizeWmSetFocus(HWND targetHWnd, HWND oppositeHWnd) {
 131.164 +        sm_inSynthesizeFocus = TRUE;
 131.165 +        LRESULT res = ::SendMessage(targetHWnd, WM_SETFOCUS, (WPARAM)oppositeHWnd, 0);
 131.166 +        sm_inSynthesizeFocus = FALSE;
 131.167 +        return res;
 131.168 +    }
 131.169 +    // Execute on Toolkit only.
 131.170 +    INLINE static LRESULT SynthesizeWmKillFocus(HWND targetHWnd, HWND oppositeHWnd) {
 131.171 +        sm_inSynthesizeFocus = TRUE;
 131.172 +        LRESULT res = ::SendMessage(targetHWnd, WM_KILLFOCUS, (WPARAM)oppositeHWnd, 0);
 131.173 +        sm_inSynthesizeFocus = FALSE;
 131.174 +        return res;
 131.175 +    }
 131.176 +
 131.177      static BOOL sm_bMenuLoop;
 131.178      static INLINE BOOL isMenuLoopActive() {
 131.179          return sm_bMenuLoop;
 131.180 @@ -710,14 +722,25 @@
 131.181      BOOL     m_visible;         /* copy of Component.visible */
 131.182  
 131.183      static BOOL sm_suppressFocusAndActivation;
 131.184 -    static HWND sm_realFocusOpposite;
 131.185 +    static BOOL sm_restoreFocusAndActivation;
 131.186 +
 131.187 +    /*
 131.188 +     * The function sets the focus-restore flag ON/OFF.
 131.189 +     * When the flag is ON, focus is restored immidiately after the proxy loses it.
 131.190 +     * All focus messages are suppressed. It's also assumed that sm_focusedWindow and
 131.191 +     * sm_focusOwner don't change after the flag is set ON and before it's set OFF.
 131.192 +     */
 131.193 +    static INLINE void SetRestoreFocus(BOOL doSet) {
 131.194 +        sm_suppressFocusAndActivation = doSet;
 131.195 +        sm_restoreFocusAndActivation = doSet;
 131.196 +    }
 131.197  
 131.198      virtual void SetDragCapture(UINT flags);
 131.199      virtual void ReleaseDragCapture(UINT flags);
 131.200  
 131.201 -    // 95 support for mouse wheel
 131.202 -    static UINT sm_95WheelMessage;
 131.203 -    static UINT sm_95WheelSupport;
 131.204 +    //These functions are overridden in AwtWindow to handle non-opaque windows.
 131.205 +    virtual void FillBackground(HDC hMemoryDC, SIZE &size);
 131.206 +    virtual void FillAlpha(void *bitmapBits, SIZE &size, BYTE alpha);
 131.207  
 131.208  private:
 131.209      /* A bitmask keeps the button's numbers as MK_LBUTTON, MK_MBUTTON, MK_RBUTTON
 131.210 @@ -761,6 +784,8 @@
 131.211      static BOOL sm_rtl;
 131.212      static BOOL sm_rtlReadingOrder;
 131.213  
 131.214 +    static BOOL sm_PrimaryDynamicTableBuilt;
 131.215 +
 131.216      jobject m_InputMethod;
 131.217      BOOL    m_useNativeCompWindow;
 131.218      LPARAM  m_bitsCandType;
 131.219 @@ -780,8 +805,6 @@
 131.220  
 131.221      static BOOL m_QueryNewPaletteCalled;
 131.222  
 131.223 -    BOOL m_skipNextSetFocus;
 131.224 -
 131.225      static AwtComponent* sm_getComponentCache; // a cache for the GetComponent(..) method.
 131.226  
 131.227      int windowMoveLockPosX;
 131.228 @@ -790,7 +813,7 @@
 131.229      int windowMoveLockPosCY;
 131.230  
 131.231      // 6524352: support finer-resolution
 131.232 -    static int sm_wheelRotationAmount;
 131.233 +    int m_wheelRotationAmount;
 131.234  
 131.235      /*
 131.236       * The association list of children's IDs and corresponding components.
 131.237 @@ -826,6 +849,7 @@
 131.238      AwtComponent* SearchChild(UINT id);
 131.239      void RemoveChild(UINT id) ;
 131.240      static BOOL IsNavigationKey(UINT wkey);
 131.241 +    static void BuildPrimaryDynamicTable();
 131.242  
 131.243      ChildListItem* m_childList;
 131.244  
 131.245 @@ -876,14 +900,6 @@
 131.246      void            RealizePalettes(int screen);
 131.247  };
 131.248  
 131.249 -struct WmComponentSetFocusData {
 131.250 -    jobject lightweightChild;
 131.251 -    jboolean temporary;
 131.252 -    jboolean focusedWindowChangeAllowed;
 131.253 -    jlong time;
 131.254 -    jobject cause;
 131.255 -};
 131.256 -
 131.257  void ReleaseDCList(HWND hwnd, DCList &list);
 131.258  void MoveDCToPassiveList(HDC hDC);
 131.259  
   132.1 --- a/src/windows/native/sun/windows/awt_Dialog.cpp	Tue Apr 14 00:05:07 2009 -0700
   132.2 +++ b/src/windows/native/sun/windows/awt_Dialog.cpp	Tue Apr 14 04:21:02 2009 -0700
   132.3 @@ -230,25 +230,8 @@
   132.4          if (::IsIconic(hWnd)) {
   132.5              ::ShowWindow(hWnd, SW_RESTORE);
   132.6          }
   132.7 -        HWND topMostBlocker = blocker;
   132.8 -        HWND toolkitHWnd = AwtToolkit::GetInstance().GetHWnd();
   132.9 -        while (::IsWindow(blocker)) {
  132.10 -            topMostBlocker = blocker;
  132.11 -            // fix for 6494032: restore the blocker if it was minimized
  132.12 -            // together with its parent frame; in such cases the check
  132.13 -            // ::IsIconic() for the blocker returns false, so we use
  132.14 -            // ::IsWindowVisible() instead
  132.15 -            if (!::IsWindowVisible(topMostBlocker) &&
  132.16 -                (topMostBlocker != toolkitHWnd))
  132.17 -            {
  132.18 -                ::ShowWindow(topMostBlocker, SW_SHOWNA);
  132.19 -            }
  132.20 -            ::BringWindowToTop(blocker);
  132.21 -            blocker = AwtWindow::GetModalBlocker(blocker);
  132.22 -        }
  132.23 -        if (topMostBlocker != toolkitHWnd) {
  132.24 -            ::SetForegroundWindow(topMostBlocker);
  132.25 -        }
  132.26 +        PopupAllDialogs(blocker, TRUE, ::GetForegroundWindow(), FALSE);
  132.27 +        // return 1 to prevent the system from allowing the operation
  132.28          return 1;
  132.29      }
  132.30      return CallNextHookEx(0, code, wParam, lParam);
  132.31 @@ -271,30 +254,11 @@
  132.32              (wParam == WM_NCRBUTTONDOWN))
  132.33          {
  132.34              HWND blocker = AwtWindow::GetModalBlocker(AwtComponent::GetTopLevelParentForWindow(hWnd));
  132.35 -            HWND topMostBlocker = blocker;
  132.36 -            HWND prevForegroundWindow = ::GetForegroundWindow();
  132.37              if (::IsWindow(blocker)) {
  132.38 -                ::BringWindowToTop(hWnd);
  132.39 -            }
  132.40 -            while (::IsWindow(blocker)) {
  132.41 -                topMostBlocker = blocker;
  132.42 -                ::BringWindowToTop(blocker);
  132.43 -                blocker = AwtWindow::GetModalBlocker(blocker);
  132.44 -            }
  132.45 -            if (::IsWindow(topMostBlocker)) {
  132.46 -                // no beep/flash if the mouse was clicked in the taskbar menu
  132.47 -                // or the dialog is currently inactive
  132.48 -                if ((::WindowFromPoint(mhs->pt) == hWnd) &&
  132.49 -                    (prevForegroundWindow == topMostBlocker))
  132.50 -                {
  132.51 -                    ::MessageBeep(MB_OK);
  132.52 -                    // some heuristics: 3 times x 64 milliseconds
  132.53 -                    AwtWindow::FlashWindowEx(topMostBlocker, 3, 64, FLASHW_CAPTION);
  132.54 -                }
  132.55 -                if (topMostBlocker != AwtToolkit::GetInstance().GetHWnd()) {
  132.56 -                    ::BringWindowToTop(topMostBlocker);
  132.57 -                    ::SetForegroundWindow(topMostBlocker);
  132.58 -                }
  132.59 +                BOOL onTaskbar = !(::WindowFromPoint(mhs->pt) == hWnd);
  132.60 +                PopupAllDialogs(hWnd, FALSE, ::GetForegroundWindow(), onTaskbar);
  132.61 +                // return a nonzero value to prevent the system from passing
  132.62 +                // the message to the target window procedure
  132.63                  return 1;
  132.64              }
  132.65          }
  132.66 @@ -303,6 +267,63 @@
  132.67      return CallNextHookEx(0, nCode, wParam, lParam);
  132.68  }
  132.69  
  132.70 +/*
  132.71 + * The function goes through the heirarchy of the blocker dialogs and
  132.72 + * popups all the dialogs. Note that the function starts from the top
  132.73 + * blocker dialog and goes down to the dialog which is the bottom dialog.
  132.74 + * Using another traversal may cause to the flickering issue as a bottom
  132.75 + * dialog will cover a top dialog for some period of time.
  132.76 + */
  132.77 +void AwtDialog::PopupAllDialogs(HWND dialog, BOOL isModalHook, HWND prevFGWindow, BOOL onTaskbar)
  132.78 +{
  132.79 +    HWND blocker = AwtWindow::GetModalBlocker(dialog);
  132.80 +    BOOL isBlocked = ::IsWindow(blocker);
  132.81 +    if (isBlocked) {
  132.82 +        PopupAllDialogs(blocker, isModalHook, prevFGWindow, onTaskbar);
  132.83 +    }
  132.84 +    PopupOneDialog(dialog, blocker, isModalHook, prevFGWindow, onTaskbar);
  132.85 +}
  132.86 +
  132.87 +/*
  132.88 + * The function popups the dialog, it distinguishes non-blocked dialogs
  132.89 + * and activates the dialogs (sets as foreground window). If the dialog is
  132.90 + * blocked, then it changes the Z-order of the dialog.
  132.91 + */
  132.92 +void AwtDialog::PopupOneDialog(HWND dialog, HWND blocker, BOOL isModalHook, HWND prevFGWindow, BOOL onTaskbar)
  132.93 +{
  132.94 +    if (dialog == AwtToolkit::GetInstance().GetHWnd()) {
  132.95 +        return;
  132.96 +    }
  132.97 +
  132.98 +    // fix for 6494032
  132.99 +    if (isModalHook && !::IsWindowVisible(dialog)) {
 132.100 +        ::ShowWindow(dialog, SW_SHOWNA);
 132.101 +    }
 132.102 +
 132.103 +    BOOL isBlocked = ::IsWindow(blocker);
 132.104 +    UINT flags = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE;
 132.105 +
 132.106 +    if (isBlocked) {
 132.107 +        ::SetWindowPos(dialog, blocker, 0, 0, 0, 0, flags);
 132.108 +    } else {
 132.109 +        ::SetWindowPos(dialog, HWND_TOP, 0, 0, 0, 0, flags);
 132.110 +        // no beep/flash if the mouse was clicked in the taskbar menu
 132.111 +        // or the dialog is currently inactive
 132.112 +        if (!isModalHook && !onTaskbar && (dialog == prevFGWindow)) {
 132.113 +            AnimateModalBlocker(dialog);
 132.114 +        }
 132.115 +        ::BringWindowToTop(dialog);
 132.116 +        ::SetForegroundWindow(dialog);
 132.117 +    }
 132.118 +}
 132.119 +
 132.120 +void AwtDialog::AnimateModalBlocker(HWND window)
 132.121 +{
 132.122 +    ::MessageBeep(MB_OK);
 132.123 +    // some heuristics: 3 times x 64 milliseconds
 132.124 +    AwtWindow::FlashWindowEx(window, 3, 64, FLASHW_CAPTION);
 132.125 +}
 132.126 +
 132.127  LRESULT CALLBACK AwtDialog::MouseHookProc_NonTT(int nCode,
 132.128                                                  WPARAM wParam, LPARAM lParam)
 132.129  {
   133.1 --- a/src/windows/native/sun/windows/awt_Dialog.h	Tue Apr 14 00:05:07 2009 -0700
   133.2 +++ b/src/windows/native/sun/windows/awt_Dialog.h	Tue Apr 14 04:21:02 2009 -0700
   133.3 @@ -76,7 +76,7 @@
   133.4       * Thus we don't have to perform any transitive (a blocker of a blocker) checks.
   133.5       */
   133.6      INLINE virtual BOOL IsFocusedWindowModalBlocker() {
   133.7 -        return (sm_focusedWindow != NULL) && (GetModalBlocker(sm_focusedWindow) == GetHWnd());
   133.8 +        return (AwtComponent::GetFocusedWindow() != NULL) && (GetModalBlocker(AwtComponent::GetFocusedWindow()) == GetHWnd());
   133.9      }
  133.10  
  133.11      // finds and activates some window after the modal dialog is hidden
  133.12 @@ -113,6 +113,9 @@
  133.13       */
  133.14      static void ModalPerformActivation(HWND hWnd);
  133.15  
  133.16 +    static void PopupAllDialogs(HWND dialog, BOOL isModalHook, HWND prevFGWindow, BOOL onTaskbar);
  133.17 +    static void PopupOneDialog(HWND dialog, HWND blocker, BOOL isModalHook, HWND prevFGWindow, BOOL onTaskbar);
  133.18 +
  133.19  public:
  133.20  
  133.21      // WH_CBT hook procedure used in modality, prevents modal
  133.22 @@ -129,6 +132,8 @@
  133.23      // example on browser's thread when running in Java Plugin
  133.24      static LRESULT CALLBACK MouseHookProc_NonTT(int code,
  133.25                                                  WPARAM wParam, LPARAM lParam);
  133.26 +
  133.27 +    static void AnimateModalBlocker(HWND window);
  133.28  };
  133.29  
  133.30  #endif /* AWT_DIALOG_H */
   134.1 --- a/src/windows/native/sun/windows/awt_FileDialog.cpp	Tue Apr 14 00:05:07 2009 -0700
   134.2 +++ b/src/windows/native/sun/windows/awt_FileDialog.cpp	Tue Apr 14 04:21:02 2009 -0700
   134.3 @@ -101,7 +101,8 @@
   134.4          }
   134.5      }
   134.6  
   134.7 -    return ComCtl32Util::GetInstance().DefWindowProc(NULL, hWnd, message, wParam, lParam);
   134.8 +    WNDPROC lpfnWndProc = (WNDPROC)(::GetProp(hWnd, NativeDialogWndProcProp));
   134.9 +    return ComCtl32Util::GetInstance().DefWindowProc(lpfnWndProc, hWnd, message, wParam, lParam);
  134.10  }
  134.11  
  134.12  static UINT_PTR CALLBACK
  134.13 @@ -135,16 +136,19 @@
  134.14              }
  134.15  
  134.16              // subclass dialog's parent to receive additional messages
  134.17 -            ComCtl32Util::GetInstance().SubclassHWND(parent,
  134.18 -                                                     FileDialogWndProc);
  134.19 +            WNDPROC lpfnWndProc = ComCtl32Util::GetInstance().SubclassHWND(parent,
  134.20 +                                                                           FileDialogWndProc);
  134.21 +            ::SetProp(parent, NativeDialogWndProcProp, reinterpret_cast<HANDLE>(lpfnWndProc));
  134.22  
  134.23              break;
  134.24          }
  134.25          case WM_DESTROY: {
  134.26 +            WNDPROC lpfnWndProc = (WNDPROC)(::GetProp(parent, NativeDialogWndProcProp));
  134.27              ComCtl32Util::GetInstance().UnsubclassHWND(parent,
  134.28                                                         FileDialogWndProc,
  134.29 -                                                       NULL);
  134.30 +                                                       lpfnWndProc);
  134.31              ::RemoveProp(parent, ModalDialogPeerProp);
  134.32 +            ::RemoveProp(parent, NativeDialogWndProcProp);
  134.33              break;
  134.34          }
  134.35          case WM_NOTIFY: {
   135.1 --- a/src/windows/native/sun/windows/awt_Frame.cpp	Tue Apr 14 00:05:07 2009 -0700
   135.2 +++ b/src/windows/native/sun/windows/awt_Frame.cpp	Tue Apr 14 04:21:02 2009 -0700
   135.3 @@ -1,5 +1,5 @@
   135.4  /*
   135.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   135.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   135.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   135.8   *
   135.9   * This code is free software; you can redistribute it and/or modify it
  135.10 @@ -39,8 +39,6 @@
  135.11  #include <sun_awt_windows_WEmbeddedFramePeer.h>
  135.12  
  135.13  
  135.14 -BOOL isAppActive = FALSE;
  135.15 -
  135.16  /* IMPORTANT! Read the README.JNI file for notes on JNI converted AWT code.
  135.17   */
  135.18  
  135.19 @@ -90,8 +88,10 @@
  135.20   */
  135.21  
  135.22  jfieldID AwtFrame::handleID;
  135.23 -jfieldID AwtFrame::stateID;
  135.24 +
  135.25  jfieldID AwtFrame::undecoratedID;
  135.26 +jmethodID AwtFrame::getExtendedStateMID;
  135.27 +jmethodID AwtFrame::setExtendedStateMID;
  135.28  
  135.29  jmethodID AwtFrame::activateEmbeddingTopLevelMID;
  135.30  
  135.31 @@ -110,6 +110,7 @@
  135.32      m_isInputMethodWindow = FALSE;
  135.33      m_isUndecorated = FALSE;
  135.34      m_proxyFocusOwner = NULL;
  135.35 +    m_lastProxiedFocusOwner = NULL;
  135.36      m_actualFocusedWindow = NULL;
  135.37      m_iconic = FALSE;
  135.38      m_zoomed = FALSE;
  135.39 @@ -232,7 +233,7 @@
  135.40                  frame->InitPeerGraphicsConfig(env, self);
  135.41                  AwtToolkit::GetInstance().RegisterEmbedderProcessId(hwndParent);
  135.42              } else {
  135.43 -                jint state = env->GetIntField(target, AwtFrame::stateID);
  135.44 +                jint state = env->CallIntMethod(self, AwtFrame::getExtendedStateMID);
  135.45                  DWORD exStyle;
  135.46                  DWORD style;
  135.47  
  135.48 @@ -285,7 +286,6 @@
  135.49                                    ::GetSysColor(COLOR_WINDOWTEXT),
  135.50                                    ::GetSysColor(COLOR_WINDOWFRAME),
  135.51                                    self);
  135.52 -
  135.53                  /*
  135.54                   * Reshape here instead of during create, so that a
  135.55                   * WM_NCCALCSIZE is sent.
  135.56 @@ -319,12 +319,13 @@
  135.57          AwtComponent::GetComponentImpl(::GetParent(hwnd));
  135.58  
  135.59      if (!parent || parent->GetProxyFocusOwner() != hwnd ||
  135.60 -        message == AwtComponent::WmAwtIsComponent)
  135.61 +        message == AwtComponent::WmAwtIsComponent ||
  135.62 +        message == WM_GETOBJECT)
  135.63      {
  135.64          return ComCtl32Util::GetInstance().DefWindowProc(NULL, hwnd, message, wParam, lParam);
  135.65      }
  135.66  
  135.67 -    AwtComponent *p = NULL;
  135.68 +    AwtComponent *focusOwner = NULL;
  135.69      // IME and input language related messages need to be sent to a window
  135.70      // which has the Java input focus
  135.71      switch (message) {
  135.72 @@ -342,16 +343,37 @@
  135.73          case WM_IME_KEYUP:
  135.74          case WM_INPUTLANGCHANGEREQUEST:
  135.75          case WM_INPUTLANGCHANGE:
  135.76 -            p = AwtComponent::GetComponent(sm_focusOwner);
  135.77 -            if  (p != NULL) {
  135.78 -                return p->WindowProc(message, wParam, lParam);
  135.79 +        // TODO: when a Choice's list is dropped down and we're scrolling in
  135.80 +        // the list WM_MOUSEWHEEL messages come to the poxy, not to the list. Why?
  135.81 +        case WM_MOUSEWHEEL:
  135.82 +            focusOwner = AwtComponent::GetComponent(parent->GetLastProxiedFocusOwner());
  135.83 +            if  (focusOwner != NULL) {
  135.84 +                return focusOwner->WindowProc(message, wParam, lParam);
  135.85              }
  135.86              break;
  135.87 +        case WM_SETFOCUS:
  135.88 +            if (!sm_suppressFocusAndActivation && parent->IsEmbeddedFrame()) {
  135.89 +                parent->AwtSetActiveWindow();
  135.90 +            }
  135.91 +            return 0;
  135.92 +        case WM_KILLFOCUS:
  135.93 +            if (!sm_suppressFocusAndActivation && parent->IsEmbeddedFrame()) {
  135.94 +                AwtWindow::SynthesizeWmActivate(FALSE, parent->GetHWnd(), NULL);
  135.95 +
  135.96 +            } else if (sm_restoreFocusAndActivation) {
  135.97 +                if (AwtComponent::GetFocusedWindow() != NULL) {
  135.98 +                    AwtWindow *focusedWindow = (AwtWindow*)GetComponent(AwtComponent::GetFocusedWindow());
  135.99 +                    if (focusedWindow != NULL) {
 135.100 +                        // Will just silently restore native focus & activation.
 135.101 +                        focusedWindow->AwtSetActiveWindow();
 135.102 +                    }
 135.103 +                }
 135.104 +            }
 135.105 +            return 0;
 135.106          case 0x0127: // WM_CHANGEUISTATE
 135.107          case 0x0128: // WM_UPDATEUISTATE
 135.108              return 0;
 135.109      }
 135.110 -
 135.111      return parent->WindowProc(message, wParam, lParam);
 135.112  
 135.113      CATCH_BAD_ALLOC_RET(0);
 135.114 @@ -554,7 +576,6 @@
 135.115      if (m_grabbedWindow != NULL/* && !m_grabbedWindow->IsOneOfOwnersOf(this)*/) {
 135.116          m_grabbedWindow->Ungrab();
 135.117      }
 135.118 -
 135.119      if (!IsFocusableWindow() && (button & LEFT_BUTTON)) {
 135.120          switch (hitTest) {
 135.121          case HTTOP:
 135.122 @@ -586,11 +607,6 @@
 135.123      return AwtWindow::WmNcMouseDown(hitTest, x, y, button);
 135.124  }
 135.125  
 135.126 -MsgRouting AwtFrame::WmWindowPosChanged(LPARAM windowPos) {
 135.127 -    return mrDoDefault;
 135.128 -}
 135.129 -
 135.130 -
 135.131  // Override AwtWindow::Reshape() to handle minimized/maximized
 135.132  // frames (see 6525850, 4065534)
 135.133  void AwtFrame::Reshape(int x, int y, int width, int height)
 135.134 @@ -827,6 +843,11 @@
 135.135  
 135.136  MsgRouting AwtFrame::WmSize(UINT type, int w, int h)
 135.137  {
 135.138 +    currentWmSizeState = type;
 135.139 +    if (currentWmSizeState == SIZE_MINIMIZED) {
 135.140 +        UpdateSecurityWarningVisibility();
 135.141 +    }
 135.142 +
 135.143      if (m_ignoreWmSize) {
 135.144          return mrDoDefault;
 135.145      }
 135.146 @@ -883,6 +904,11 @@
 135.147      if (changed != 0) {
 135.148          DTRACE_PRINTLN2("AwtFrame::WmSize: reporting state change %x -> %x",
 135.149                  oldState, newState);
 135.150 +
 135.151 +        // sync target with peer
 135.152 +        JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 135.153 +        env->CallVoidMethod(GetPeer(env), AwtFrame::setExtendedStateMID, newState);
 135.154 +
 135.155          // report (de)iconification to old clients
 135.156          if (changed & java_awt_Frame_ICONIFIED) {
 135.157              if (newState & java_awt_Frame_ICONIFIED) {
 135.158 @@ -907,33 +933,16 @@
 135.159  MsgRouting AwtFrame::WmActivate(UINT nState, BOOL fMinimized, HWND opposite)
 135.160  {
 135.161      jint type;
 135.162 -    BOOL doActivateFrame = TRUE;
 135.163  
 135.164      if (nState != WA_INACTIVE) {
 135.165 -        if (!::IsWindow(AwtWindow::GetModalBlocker(GetHWnd()))) {
 135.166 -            ::SetFocus(NULL); // The KeyboardFocusManager will set focus later
 135.167 -            type = java_awt_event_WindowEvent_WINDOW_GAINED_FOCUS;
 135.168 -            isAppActive = TRUE;
 135.169 -            sm_focusedWindow = GetHWnd();
 135.170 +        if (::IsWindow(AwtWindow::GetModalBlocker(GetHWnd())) ||
 135.171 +            CheckActivateActualFocusedWindow(opposite))
 135.172 +        {
 135.173 +            return mrConsume;
 135.174 +        }
 135.175 +        type = java_awt_event_WindowEvent_WINDOW_GAINED_FOCUS;
 135.176 +        AwtComponent::SetFocusedWindow(GetHWnd());
 135.177  
 135.178 -            /*
 135.179 -             * Fix for 4823903.
 135.180 -             * If the window to be focused is actually not this Frame
 135.181 -             * and it's visible then send it WM_ACTIVATE.
 135.182 -             */
 135.183 -            if (m_actualFocusedWindow != NULL) {
 135.184 -                HWND hwnd = m_actualFocusedWindow->GetHWnd();
 135.185 -
 135.186 -                if (hwnd != NULL && ::IsWindowVisible(hwnd)) {
 135.187 -
 135.188 -                    ::SendMessage(hwnd, WM_ACTIVATE, MAKEWPARAM(nState, fMinimized), (LPARAM)opposite);
 135.189 -                    doActivateFrame = FALSE;
 135.190 -                }
 135.191 -                m_actualFocusedWindow = NULL;
 135.192 -            }
 135.193 -        } else {
 135.194 -            doActivateFrame = FALSE;
 135.195 -        }
 135.196      } else {
 135.197          if (!::IsWindow(AwtWindow::GetModalBlocker(opposite))) {
 135.198              // If deactivation happens because of press on grabbing
 135.199 @@ -955,37 +964,63 @@
 135.200                      }
 135.201                  }
 135.202              }
 135.203 -
 135.204 -            // If actual focused window is not this Frame
 135.205 -            if (sm_focusedWindow != GetHWnd()) {
 135.206 -
 135.207 -                // Check that the Frame is going to be really inactive (i.e. the opposite is not its owned window)
 135.208 -                if (opposite != NULL) {
 135.209 -                    AwtWindow *wOpposite = (AwtWindow *)AwtComponent::GetComponent(opposite);
 135.210 -
 135.211 -                    if (wOpposite != NULL &&
 135.212 -                        wOpposite->GetOwningFrameOrDialog() != this)
 135.213 -                    {
 135.214 -                        AwtWindow *window = (AwtWindow *)AwtComponent::GetComponent(sm_focusedWindow);
 135.215 -
 135.216 -                        // If actual focused window is one of Frame's owned windows
 135.217 -                        if (window != NULL && window->GetOwningFrameOrDialog() == this) {
 135.218 -                            m_actualFocusedWindow = window;
 135.219 -                        }
 135.220 -                    }
 135.221 -                }
 135.222 -            }
 135.223 +            CheckRetainActualFocusedWindow(opposite);
 135.224  
 135.225              type = java_awt_event_WindowEvent_WINDOW_LOST_FOCUS;
 135.226 -            isAppActive = FALSE;
 135.227 -            sm_focusedWindow = NULL;
 135.228 +            AwtComponent::SetFocusedWindow(NULL);
 135.229 +            sm_focusOwner = NULL;
 135.230          }
 135.231      }
 135.232  
 135.233 -    if (doActivateFrame) {
 135.234 -        SendWindowEvent(type, opposite);
 135.235 +    SendWindowEvent(type, opposite);
 135.236 +    return mrConsume;
 135.237 +}
 135.238 +
 135.239 +BOOL AwtFrame::CheckActivateActualFocusedWindow(HWND deactivatedOpositeHWnd)
 135.240 +{
 135.241 +    if (m_actualFocusedWindow != NULL) {
 135.242 +        HWND hwnd = m_actualFocusedWindow->GetHWnd();
 135.243 +        if (hwnd != NULL && ::IsWindowVisible(hwnd)) {
 135.244 +            SynthesizeWmActivate(TRUE, hwnd, deactivatedOpositeHWnd);
 135.245 +            return TRUE;
 135.246 +        }
 135.247 +        m_actualFocusedWindow = NULL;
 135.248      }
 135.249 -    return mrConsume;
 135.250 +    return FALSE;
 135.251 +}
 135.252 +
 135.253 +void AwtFrame::CheckRetainActualFocusedWindow(HWND activatedOpositeHWnd)
 135.254 +{
 135.255 +    // If actual focused window is not this Frame
 135.256 +    if (AwtComponent::GetFocusedWindow() != GetHWnd()) {
 135.257 +        // Make sure the actual focused window is an owned window of this frame
 135.258 +        AwtWindow *focusedWindow = (AwtWindow *)AwtComponent::GetComponent(AwtComponent::GetFocusedWindow());
 135.259 +        if (focusedWindow != NULL && focusedWindow->GetOwningFrameOrDialog() == this) {
 135.260 +
 135.261 +            // Check that the opposite window is not this frame, nor an owned window of this frame
 135.262 +            if (activatedOpositeHWnd != NULL) {
 135.263 +                AwtWindow *oppositeWindow = (AwtWindow *)AwtComponent::GetComponent(activatedOpositeHWnd);
 135.264 +                if (oppositeWindow && oppositeWindow != this &&
 135.265 +                    oppositeWindow->GetOwningFrameOrDialog() != this)
 135.266 +                {
 135.267 +                    m_actualFocusedWindow = focusedWindow;
 135.268 +                }
 135.269 +            } else {
 135.270 +                 m_actualFocusedWindow = focusedWindow;
 135.271 +            }
 135.272 +        }
 135.273 +    }
 135.274 +}
 135.275 +
 135.276 +BOOL AwtFrame::AwtSetActiveWindow(BOOL isMouseEventCause, UINT hittest)
 135.277 +{
 135.278 +    if (hittest == HTCLIENT) {
 135.279 +        // Don't let the actualFocusedWindow to steal focus if:
 135.280 +        // a) the frame is clicked in its client area;
 135.281 +        // b) focus is requested to some of the frame's child.
 135.282 +        m_actualFocusedWindow = NULL;
 135.283 +    }
 135.284 +    return AwtWindow::AwtSetActiveWindow(isMouseEventCause);
 135.285  }
 135.286  
 135.287  MsgRouting AwtFrame::WmEnterMenuLoop(BOOL isTrackPopupMenu)
 135.288 @@ -1161,60 +1196,6 @@
 135.289      return 0L;
 135.290  }
 135.291  
 135.292 -/*
 135.293 - * hWndLostFocus - the opposite component
 135.294 - * Returns TRUE if WM_SETFOCUS may be processed further, otherwise FALSE.
 135.295 - */
 135.296 -BOOL AwtFrame::activateEmbeddedFrameOnSetFocus(HWND hWndLostFocus) {
 135.297 -
 135.298 -    // If the EmbeddedFrame is not yet active, then this is either:
 135.299 -    // - requesting focus on smth in the EmbeddedFrame, or
 135.300 -    // - Alt hitting in IE while its menu is active (see 6374321).
 135.301 -    // In both these cases we get WM_SETFOCUS without WM_ACTIVATE
 135.302 -    // on the EmbeddedFrame.
 135.303 -    if (sm_focusedWindow != GetHWnd()) {
 135.304 -        HWND oppositeToplevelHWnd = AwtComponent::GetTopLevelParentForWindow(hWndLostFocus);
 135.305 -
 135.306 -        // As we get WM_SETFOCUS from the native system we expect
 135.307 -        // the native toplevel be set to the active window.
 135.308 -        HWND activeWindowHWnd = ::GetActiveWindow();
 135.309 -        DASSERT(activeWindowHWnd == ::GetAncestor(GetHWnd(), GA_ROOT));
 135.310 -
 135.311 -        // See 6538154.
 135.312 -        ::BringWindowToTop(activeWindowHWnd);
 135.313 -        ::SetForegroundWindow(activeWindowHWnd);
 135.314 -
 135.315 -        SynthesizeWmActivate(TRUE, oppositeToplevelHWnd);
 135.316 -
 135.317 -        return FALSE;
 135.318 -    }
 135.319 -    // If the EmbeddedFrame is already active, then this is a mouse click
 135.320 -    // or activation (by Alt-Tab, start etc).
 135.321 -    return TRUE;
 135.322 -}
 135.323 -
 135.324 -/*
 135.325 - * hWndGotFocus - the opposite component
 135.326 - * Returns TRUE if WM_KILLFOCUS may be processed further, otherwise FALSE.
 135.327 - */
 135.328 -BOOL AwtFrame::deactivateEmbeddedFrameOnKillFocus(HWND hWndGotFocus) {
 135.329 -    HWND oppositeToplevelHWnd = AwtComponent::GetTopLevelParentForWindow(hWndGotFocus);
 135.330 -
 135.331 -    if (oppositeToplevelHWnd != sm_focusedWindow) {
 135.332 -        SynthesizeWmActivate(FALSE, oppositeToplevelHWnd);
 135.333 -    }
 135.334 -    return TRUE;
 135.335 -}
 135.336 -
 135.337 -/*
 135.338 - * Execute on Toolkit only.
 135.339 - */
 135.340 -void AwtFrame::SynthesizeWmActivate(BOOL doActivate, HWND opposite) {
 135.341 -    if (::IsWindowVisible(GetHWnd())) {
 135.342 -        ::SendMessage(GetHWnd(), WM_ACTIVATE, MAKEWPARAM(doActivate ? WA_ACTIVE : WA_INACTIVE, FALSE), (LPARAM) opposite);
 135.343 -    }
 135.344 -}
 135.345 -
 135.346  void AwtFrame::_SynthesizeWmActivate(void *param)
 135.347  {
 135.348      JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 135.349 @@ -1229,7 +1210,7 @@
 135.350      JNI_CHECK_PEER_GOTO(self, ret);
 135.351      frame = (AwtFrame *)pData;
 135.352  
 135.353 -    frame->SynthesizeWmActivate(doActivate, NULL);
 135.354 +    SynthesizeWmActivate(doActivate, frame->GetHWnd(), NULL);
 135.355  ret:
 135.356      env->DeleteGlobalRef(self);
 135.357  
 135.358 @@ -1594,7 +1575,7 @@
 135.359  extern "C" {
 135.360  
 135.361  /*
 135.362 - * Class:     sun_awt_windows_WFramePeer
 135.363 + * Class:     java_awt_Frame
 135.364   * Method:    initIDs
 135.365   * Signature: ()V
 135.366   */
 135.367 @@ -1603,9 +1584,6 @@
 135.368  {
 135.369      TRY;
 135.370  
 135.371 -    AwtFrame::stateID = env->GetFieldID(cls, "state", "I");
 135.372 -    DASSERT(AwtFrame::stateID != NULL);
 135.373 -
 135.374      AwtFrame::undecoratedID = env->GetFieldID(cls,"undecorated","Z");
 135.375      DASSERT(AwtFrame::undecoratedID != NULL);
 135.376  
 135.377 @@ -1614,6 +1592,25 @@
 135.378  
 135.379  /*
 135.380   * Class:     sun_awt_windows_WFramePeer
 135.381 + * Method:    initIDs
 135.382 + * Signature: ()V
 135.383 + */
 135.384 +JNIEXPORT void JNICALL
 135.385 +Java_sun_awt_windows_WFramePeer_initIDs(JNIEnv *env, jclass cls)
 135.386 +{
 135.387 +    TRY;
 135.388 +
 135.389 +    AwtFrame::setExtendedStateMID = env->GetMethodID(cls, "setExtendedState", "(I)V");
 135.390 +    AwtFrame::getExtendedStateMID = env->GetMethodID(cls, "getExtendedState", "()I");
 135.391 +
 135.392 +    DASSERT(AwtFrame::setExtendedStateMID);
 135.393 +    DASSERT(AwtFrame::getExtendedStateMID);
 135.394 +
 135.395 +    CATCH_BAD_ALLOC;
 135.396 +}
 135.397 +
 135.398 +/*
 135.399 + * Class:     sun_awt_windows_WFramePeer
 135.400   * Method:    setState
 135.401   * Signature: (I)V
 135.402   */
   136.1 --- a/src/windows/native/sun/windows/awt_Frame.h	Tue Apr 14 00:05:07 2009 -0700
   136.2 +++ b/src/windows/native/sun/windows/awt_Frame.h	Tue Apr 14 04:21:02 2009 -0700
   136.3 @@ -1,5 +1,5 @@
   136.4  /*
   136.5 - * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
   136.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   136.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   136.8   *
   136.9   * This code is free software; you can redistribute it and/or modify it
  136.10 @@ -48,14 +48,14 @@
  136.11          FRAME_SETMENUBAR
  136.12      };
  136.13  
  136.14 -    /* int handle field for sun.awt.windows.WEmbeddedFrame */
  136.15 +    /* java.awt.Frame fields and method IDs */
  136.16 +    static jfieldID undecoratedID;
  136.17 +
  136.18 +    /* sun.awt.windows.WEmbeddedFrame fields and method IDs */
  136.19      static jfieldID handleID;
  136.20  
  136.21 -    /* int state field for java.awt.Frame */
  136.22 -    static jfieldID stateID;
  136.23 -
  136.24 -    /* boolean undecorated field for java.awt.Frame */
  136.25 -    static jfieldID undecoratedID;
  136.26 +    static jmethodID setExtendedStateMID;
  136.27 +    static jmethodID getExtendedStateMID;
  136.28  
  136.29      /* method id for WEmbeddedFrame.requestActivate() method */
  136.30      static jmethodID activateEmbeddingTopLevelMID;
  136.31 @@ -108,7 +108,6 @@
  136.32      MsgRouting WmNcMouseDown(WPARAM hitTest, int x, int y, int button);
  136.33      MsgRouting WmNcMouseUp(WPARAM hitTest, int x, int y, int button);
  136.34      MsgRouting WmGetIcon(WPARAM iconType, LRESULT& retVal);
  136.35 -    MsgRouting WmWindowPosChanged(LPARAM windowPos);
  136.36      MsgRouting WmShowWindow(BOOL show, UINT status);
  136.37  
  136.38      virtual MsgRouting WmSysCommand(UINT uCmdType, int xPos, int yPos);
  136.39 @@ -133,11 +132,6 @@
  136.40      // adjusts the IME candidate window position if needed
  136.41      void AdjustCandidateWindowPos();
  136.42  
  136.43 -    void SynthesizeWmActivate(BOOL doActivate, HWND opposite);
  136.44 -
  136.45 -    BOOL activateEmbeddedFrameOnSetFocus(HWND hWndLostFocus);
  136.46 -    BOOL deactivateEmbeddedFrameOnKillFocus(HWND hWndGotFocus);
  136.47 -
  136.48      // invoked on Toolkit thread
  136.49      static jobject _GetBoundsPrivate(void *param);
  136.50  
  136.51 @@ -153,6 +147,14 @@
  136.52  
  136.53      virtual void Reshape(int x, int y, int width, int height);
  136.54  
  136.55 +    virtual BOOL AwtSetActiveWindow(BOOL isMouseEventCause = FALSE, UINT hittest = HTCLIENT);
  136.56 +
  136.57 +    void CheckRetainActualFocusedWindow(HWND activatedOpositeHWnd);
  136.58 +    BOOL CheckActivateActualFocusedWindow(HWND deactivatedOpositeHWnd);
  136.59 +
  136.60 +    INLINE HWND GetLastProxiedFocusOwner() { return m_lastProxiedFocusOwner; }
  136.61 +    INLINE void SetLastProxiedFocusOwner(HWND hwnd) { m_lastProxiedFocusOwner = hwnd; }
  136.62 +
  136.63  protected:
  136.64      /* The frame is undecorated. */
  136.65      BOOL m_isUndecorated;
  136.66 @@ -189,6 +191,10 @@
  136.67         or an AwtDialog (or one of its children) has the logical input focus. */
  136.68      HWND m_proxyFocusOwner;
  136.69  
  136.70 +    /* Retains the last/current sm_focusOwner proxied. Actually, it should be
  136.71 +     * a component of an owned window last/currently active. */
  136.72 +    HWND m_lastProxiedFocusOwner;
  136.73 +
  136.74      /*
  136.75       * Fix for 4823903.
  136.76       * Retains a focus proxied window to set the focus correctly
   137.1 --- a/src/windows/native/sun/windows/awt_InputMethod.cpp	Tue Apr 14 00:05:07 2009 -0700
   137.2 +++ b/src/windows/native/sun/windows/awt_InputMethod.cpp	Tue Apr 14 04:21:02 2009 -0700
   137.3 @@ -1,5 +1,5 @@
   137.4  /*
   137.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
   137.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
   137.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   137.8   *
   137.9   * This code is free software; you can redistribute it and/or modify it
  137.10 @@ -176,7 +176,7 @@
  137.11                              java_awt_event_KeyEvent_CHAR_UNDEFINED,
  137.12                              unicodeChar,
  137.13                              modifiers,
  137.14 -                            java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN,
  137.15 +                            java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN, (jlong)0,
  137.16                              &msg);
  137.17          } else {
  137.18              MSG* pCopiedMsg = new MSG;
   138.1 --- a/src/windows/native/sun/windows/awt_KeyEvent.cpp	Tue Apr 14 00:05:07 2009 -0700
   138.2 +++ b/src/windows/native/sun/windows/awt_KeyEvent.cpp	Tue Apr 14 04:21:02 2009 -0700
   138.3 @@ -1,5 +1,5 @@
   138.4  /*
   138.5 - * Copyright 1998-1999 Sun Microsystems, Inc.  All Rights Reserved.
   138.6 + * Copyright 1998-2009 Sun Microsystems, Inc.  All Rights Reserved.
   138.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   138.8   *
   138.9   * This code is free software; you can redistribute it and/or modify it
  138.10 @@ -32,6 +32,10 @@
  138.11  
  138.12  jfieldID AwtKeyEvent::keyCodeID;
  138.13  jfieldID AwtKeyEvent::keyCharID;
  138.14 +jfieldID AwtKeyEvent::rawCodeID;
  138.15 +jfieldID AwtKeyEvent::primaryLevelUnicodeID;
  138.16 +jfieldID AwtKeyEvent::scancodeID;
  138.17 +jfieldID AwtKeyEvent::extendedKeyCodeID;
  138.18  
  138.19  /************************************************************************
  138.20   * AwtKeyEvent native methods
  138.21 @@ -45,9 +49,18 @@
  138.22  
  138.23      AwtKeyEvent::keyCodeID = env->GetFieldID(cls, "keyCode", "I");
  138.24      AwtKeyEvent::keyCharID = env->GetFieldID(cls, "keyChar", "C");
  138.25 +    AwtKeyEvent::rawCodeID = env->GetFieldID(cls, "rawCode", "J");
  138.26 +    AwtKeyEvent::primaryLevelUnicodeID = env->GetFieldID(cls, "primaryLevelUnicode", "J");
  138.27 +    AwtKeyEvent::scancodeID = env->GetFieldID(cls, "scancode", "J");
  138.28 +    AwtKeyEvent::extendedKeyCodeID = env->GetFieldID(cls, "extendedKeyCode", "J");
  138.29 +
  138.30  
  138.31      DASSERT(AwtKeyEvent::keyCodeID != NULL);
  138.32      DASSERT(AwtKeyEvent::keyCharID != NULL);
  138.33 +    DASSERT(AwtKeyEvent::rawCodeID != NULL);
  138.34 +    DASSERT(AwtKeyEvent::primaryLevelUnicodeID != NULL);
  138.35 +    DASSERT(AwtKeyEvent::scancodeID != NULL);
  138.36 +    DASSERT(AwtKeyEvent::extendedKeyCodeID != NULL);
  138.37  
  138.38      CATCH_BAD_ALLOC;
  138.39  }
   139.1 --- a/src/windows/native/sun/windows/awt_KeyEvent.h	Tue Apr 14 00:05:07 2009 -0700
   139.2 +++ b/src/windows/native/sun/windows/awt_KeyEvent.h	Tue Apr 14 04:21:02 2009 -0700
   139.3 @@ -39,7 +39,10 @@
   139.4      /* java.awt.KeyEvent field ids */
   139.5      static jfieldID keyCodeID;
   139.6      static jfieldID keyCharID;
   139.7 -
   139.8 +    static jfieldID rawCodeID;
   139.9 +    static jfieldID primaryLevelUnicodeID;
  139.10 +    static jfieldID scancodeID;
  139.11 +    static jfieldID extendedKeyCodeID;
  139.12  };
  139.13  
  139.14  #endif // AWT_KEYEVENT_H
   140.1 --- a/src/windows/native/sun/windows/awt_KeyboardFocusManager.cpp	Tue Apr 14 00:05:07 2009 -0700
   140.2 +++ b/src/windows/native/sun/windows/awt_KeyboardFocusManager.cpp	Tue Apr 14 04:21:02 2009 -0700
   140.3 @@ -1,5 +1,5 @@
   140.4  /*
   140.5 - * Copyright 2000-2004 Sun Microsystems, Inc.  All Rights Reserved.
   140.6 + * Copyright 2000-2009 Sun Microsystems, Inc.  All Rights Reserved.
   140.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   140.8   *
   140.9   * This code is free software; you can redistribute it and/or modify it
  140.10 @@ -24,30 +24,20 @@
  140.11   */
  140.12  
  140.13  #include "awt.h"
  140.14 -#include "awt_KeyboardFocusManager.h"
  140.15  #include "awt_Component.h"
  140.16  #include "awt_Toolkit.h"
  140.17  #include <java_awt_KeyboardFocusManager.h>
  140.18 -
  140.19 -jclass AwtKeyboardFocusManager::keyboardFocusManagerCls;
  140.20 -jmethodID AwtKeyboardFocusManager::shouldNativelyFocusHeavyweightMID;
  140.21 -jmethodID AwtKeyboardFocusManager::heavyweightButtonDownMID;
  140.22 -jmethodID AwtKeyboardFocusManager::markClearGlobalFocusOwnerMID;
  140.23 -jmethodID AwtKeyboardFocusManager::removeLastFocusRequestMID;
  140.24 -jfieldID  AwtKeyboardFocusManager::isProxyActive;
  140.25 -jmethodID AwtKeyboardFocusManager::processSynchronousTransfer;
  140.26 +#include <jni.h>
  140.27  
  140.28  static jobject getNativeFocusState(JNIEnv *env, void*(*ftn)()) {
  140.29 -    jobject lFocusState = NULL;
  140.30 +    jobject gFocusState = (jobject)AwtToolkit::GetInstance().SyncCall(ftn);
  140.31  
  140.32 -    jobject gFocusState = reinterpret_cast<jobject>(AwtToolkit::GetInstance().
  140.33 -        InvokeFunction(ftn));
  140.34      if (gFocusState != NULL) {
  140.35 -        lFocusState = env->NewLocalRef(gFocusState);
  140.36 +        jobject lFocusState = env->NewLocalRef(gFocusState);
  140.37          env->DeleteGlobalRef(gFocusState);
  140.38 +        return lFocusState;
  140.39      }
  140.40 -
  140.41 -    return lFocusState;
  140.42 +    return NULL;
  140.43  }
  140.44  
  140.45  extern "C" {
  140.46 @@ -61,53 +51,35 @@
  140.47  Java_java_awt_KeyboardFocusManager_initIDs
  140.48      (JNIEnv *env, jclass cls)
  140.49  {
  140.50 +}
  140.51 +
  140.52 +/*
  140.53 + * Class:     sun_awt_windows_WKeyboardFocusManagerPeer
  140.54 + * Method:    setNativeFocusOwner
  140.55 + * Signature: (Lsun/awt/windows/WComponentPeer)
  140.56 + */
  140.57 +JNIEXPORT void JNICALL
  140.58 +Java_sun_awt_windows_WKeyboardFocusManagerPeer_setNativeFocusOwner
  140.59 +    (JNIEnv *env, jclass cls, jobject compPeer)
  140.60 +{
  140.61      TRY;
  140.62  
  140.63 -    AwtKeyboardFocusManager::keyboardFocusManagerCls = (jclass)
  140.64 -        env->NewGlobalRef(cls);
  140.65 -    AwtKeyboardFocusManager::shouldNativelyFocusHeavyweightMID =
  140.66 -        env->GetStaticMethodID(cls, "shouldNativelyFocusHeavyweight",
  140.67 -            "(Ljava/awt/Component;Ljava/awt/Component;ZZJLsun/awt/CausedFocusEvent$Cause;)I");
  140.68 -    AwtKeyboardFocusManager::heavyweightButtonDownMID =
  140.69 -        env->GetStaticMethodID(cls, "heavyweightButtonDown",
  140.70 -            "(Ljava/awt/Component;J)V");
  140.71 -    AwtKeyboardFocusManager::markClearGlobalFocusOwnerMID =
  140.72 -        env->GetStaticMethodID(cls, "markClearGlobalFocusOwner",
  140.73 -                               "()Ljava/awt/Window;");
  140.74 -    AwtKeyboardFocusManager::removeLastFocusRequestMID =
  140.75 -        env->GetStaticMethodID(cls, "removeLastFocusRequest",
  140.76 -                               "(Ljava/awt/Component;)V");
  140.77 +    jobject peerGlobalRef = env->NewGlobalRef(compPeer);
  140.78  
  140.79 -    AwtKeyboardFocusManager::processSynchronousTransfer =
  140.80 -        env->GetStaticMethodID(cls, "processSynchronousLightweightTransfer",
  140.81 -                               "(Ljava/awt/Component;Ljava/awt/Component;ZZJ)Z");
  140.82 +    AwtToolkit::GetInstance().SyncCall(AwtComponent::SetNativeFocusOwner,
  140.83 +                                       (void*)peerGlobalRef);
  140.84 +    // peerGlobalRef is deleted in SetNativeFocusOwner
  140.85  
  140.86 -    jclass keyclass = env->FindClass("java/awt/event/KeyEvent");
  140.87 -    DASSERT (keyclass != NULL);
  140.88 -
  140.89 -    AwtKeyboardFocusManager::isProxyActive =
  140.90 -        env->GetFieldID(keyclass, "isProxyActive", "Z");
  140.91 -
  140.92 -    env->DeleteLocalRef(keyclass);
  140.93 -
  140.94 -    DASSERT(AwtKeyboardFocusManager::keyboardFocusManagerCls != NULL);
  140.95 -    DASSERT(AwtKeyboardFocusManager::shouldNativelyFocusHeavyweightMID !=
  140.96 -            NULL);
  140.97 -    DASSERT(AwtKeyboardFocusManager::heavyweightButtonDownMID != NULL);
  140.98 -    DASSERT(AwtKeyboardFocusManager::markClearGlobalFocusOwnerMID != NULL);
  140.99 -    DASSERT(AwtKeyboardFocusManager::removeLastFocusRequestMID != NULL);
 140.100 -    DASSERT(AwtKeyboardFocusManager::processSynchronousTransfer != NULL);
 140.101      CATCH_BAD_ALLOC;
 140.102  }
 140.103  
 140.104 -
 140.105  /*
 140.106 - * Class:     sun_awt_KeyboardFocusManagerPeerImpl
 140.107 + * Class:     sun_awt_windows_WKeyboardFocusManagerPeer
 140.108   * Method:    getNativeFocusOwner
 140.109 - * Signature: ()Ljava/awt/Component;
 140.110 + * Signature: (Lsun/awt/windows/WComponentPeer)
 140.111   */
 140.112  JNIEXPORT jobject JNICALL
 140.113 -Java_sun_awt_KeyboardFocusManagerPeerImpl_getNativeFocusOwner
 140.114 +Java_sun_awt_windows_WKeyboardFocusManagerPeer_getNativeFocusOwner
 140.115      (JNIEnv *env, jclass cls)
 140.116  {
 140.117      TRY;
 140.118 @@ -118,12 +90,12 @@
 140.119  }
 140.120  
 140.121  /*
 140.122 - * Class:     sun_awt_KeyboardFocusManagerPeerImpl
 140.123 + * Class:     sun_awt_windows_WKeyboardFocusManagerPeer
 140.124   * Method:    getNativeFocusedWindow
 140.125   * Signature: ()Ljava/awt/Window;
 140.126   */
 140.127  JNIEXPORT jobject JNICALL
 140.128 -Java_sun_awt_KeyboardFocusManagerPeerImpl_getNativeFocusedWindow
 140.129 +Java_sun_awt_windows_WKeyboardFocusManagerPeer_getNativeFocusedWindow
 140.130      (JNIEnv *env, jclass cls)
 140.131  {
 140.132      TRY;
 140.133 @@ -132,21 +104,4 @@
 140.134  
 140.135      CATCH_BAD_ALLOC_RET(NULL);
 140.136  }
 140.137 -
 140.138 -/*
 140.139 - * Class:     sun_awt_KeyboardFocusManagerPeerImpl
 140.140 - * Method:    clearNativeGlobalFocusOwner
 140.141 - * Signature: (Ljava/awt/Window;)V
 140.142 - */
 140.143 -JNIEXPORT void JNICALL
 140.144 -Java_sun_awt_KeyboardFocusManagerPeerImpl_clearNativeGlobalFocusOwner
 140.145 -    (JNIEnv *env, jobject self, jobject activeWindow)
 140.146 -{
 140.147 -    TRY;
 140.148 -
 140.149 -    AwtToolkit::GetInstance().InvokeFunction
 140.150 -        ((void*(*)(void))AwtComponent::ClearGlobalFocusOwner);
 140.151 -
 140.152 -    CATCH_BAD_ALLOC;
 140.153  }
 140.154 -}
   141.1 --- a/src/windows/native/sun/windows/awt_KeyboardFocusManager.h	Tue Apr 14 00:05:07 2009 -0700
   141.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   141.3 @@ -1,43 +0,0 @@
   141.4 -/*
   141.5 - * Copyright 2001-2002 Sun Microsystems, Inc.  All Rights Reserved.
   141.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   141.7 - *
   141.8 - * This code is free software; you can redistribute it and/or modify it
   141.9 - * under the terms of the GNU General Public License version 2 only, as
  141.10 - * published by the Free Software Foundation.  Sun designates this
  141.11 - * particular file as subject to the "Classpath" exception as provided
  141.12 - * by Sun in the LICENSE file that accompanied this code.
  141.13 - *
  141.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
  141.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  141.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  141.17 - * version 2 for more details (a copy is included in the LICENSE file that
  141.18 - * accompanied this code).
  141.19 - *
  141.20 - * You should have received a copy of the GNU General Public License version
  141.21 - * 2 along with this work; if not, write to the Free Software Foundation,
  141.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  141.23 - *
  141.24 - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  141.25 - * CA 95054 USA or visit www.sun.com if you need additional information or
  141.26 - * have any questions.
  141.27 - */
  141.28 -
  141.29 -#ifndef AWT_KEYBOARDFOCUSMANAGER_H
  141.30 -#define AWT_KEYBOARDFOCUSMANAGER_H
  141.31 -
  141.32 -#include <jni.h>
  141.33 -
  141.34 -class AwtKeyboardFocusManager {
  141.35 -public:
  141.36 -
  141.37 -    static jclass keyboardFocusManagerCls;
  141.38 -    static jmethodID shouldNativelyFocusHeavyweightMID;
  141.39 -    static jmethodID heavyweightButtonDownMID;
  141.40 -    static jmethodID markClearGlobalFocusOwnerMID;
  141.41 -    static jmethodID removeLastFocusRequestMID;
  141.42 -    static jfieldID isProxyActive;
  141.43 -    static jmethodID processSynchronousTransfer;
  141.44 -};
  141.45 -
  141.46 -#endif // AWT_KEYBOARDFOCUSMANAGER_H
   142.1 --- a/src/windows/native/sun/windows/awt_List.cpp	Tue Apr 14 00:05:07 2009 -0700
   142.2 +++ b/src/windows/native/sun/windows/awt_List.cpp	Tue Apr 14 04:21:02 2009 -0700
   142.3 @@ -1,5 +1,5 @@
   142.4  /*
   142.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   142.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   142.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   142.8   *
   142.9   * This code is free software; you can redistribute it and/or modify it
  142.10 @@ -24,7 +24,6 @@
  142.11   */
  142.12  
  142.13  #include "awt_List.h"
  142.14 -#include "awt_KeyboardFocusManager.h"
  142.15  #include "awt_Canvas.h"
  142.16  #include "awt_Dimension.h"
  142.17  #include "awt_Toolkit.h"
  142.18 @@ -154,28 +153,6 @@
  142.19      return c;
  142.20  }
  142.21  
  142.22 -BOOL AwtList::ActMouseMessage(MSG * pMsg) {
  142.23 -    if (!IsFocusingMessage(pMsg->message)) {
  142.24 -        return FALSE;
  142.25 -    }
  142.26 -
  142.27 -    if (pMsg->message == WM_LBUTTONDOWN) {
  142.28 -        LONG item = static_cast<LONG>(SendListMessage(LB_ITEMFROMPOINT, 0, pMsg->lParam));
  142.29 -        if (item != LB_ERR) {
  142.30 -            if (isMultiSelect) {
  142.31 -                if (IsItemSelected(item)) {
  142.32 -                    Deselect(item);
  142.33 -                } else {
  142.34 -                    Select(item);
  142.35 -                }
  142.36 -            } else {
  142.37 -                Select(item);
  142.38 -            }
  142.39 -        }
  142.40 -    }
  142.41 -    return TRUE;
  142.42 -}
  142.43 -
  142.44  void AwtList::SetDragCapture(UINT flags)
  142.45  {
  142.46      // don't want to interfere with other controls
  142.47 @@ -473,17 +450,11 @@
  142.48      }
  142.49  
  142.50      /*
  142.51 -     * Fix for 6240202. List being inside a non-focusable Window (or non-focusable List
  142.52 -     * being a single component inside a focusable Window) won't trigger ActionEvent by
  142.53 -     * double click. All focus events will be filtered (in the AWT focus hook) for such
  142.54 -     * a Window containing the List. In such a case OS Windows won't generate WM_COMMAND
  142.55 -     * (and no WmNotify() will be called for the List). Here we call WmCommand()
  142.56 -     * synthetically.
  142.57 +     * As we consume WM_LBUTONDOWN the list won't trigger ActionEvent by double click.
  142.58 +     * We trigger it ourselves. (see also 6240202)
  142.59       */
  142.60      int clickCount = GetClickCount();
  142.61 -    if (button == LEFT_BUTTON && clickCount >= 2 && clickCount % 2 == 0 &&
  142.62 -        !GetContainer()->IsFocusableWindow())
  142.63 -    {
  142.64 +    if (button == LEFT_BUTTON && clickCount >= 2 && clickCount % 2 == 0) {
  142.65          WmCommand(0, GetListHandle(), LBN_DBLCLK);
  142.66      }
  142.67      return mrResult;
  142.68 @@ -500,67 +471,32 @@
  142.69      return mrConsume;
  142.70  }
  142.71  
  142.72 -// Override WmSetFocus and WmKillFocus so that they operate on the List handle
  142.73 -// instead of the wrapper handle. Otherwise, the methods are the same as their
  142.74 -// AwtComponent counterparts.
  142.75 -
  142.76 -MsgRouting AwtList::WmSetFocus(HWND hWndLostFocus) {
  142.77 -    if (sm_focusOwner == GetListHandle()) {
  142.78 -        sm_realFocusOpposite = NULL;
  142.79 -        return mrConsume;
  142.80 -    }
  142.81 -
  142.82 -    sm_focusOwner = GetListHandle();
  142.83 -
  142.84 -    if (sm_realFocusOpposite != NULL) {
  142.85 -        hWndLostFocus = sm_realFocusOpposite;
  142.86 -        sm_realFocusOpposite = NULL;
  142.87 -    }
  142.88 -
  142.89 -    SendFocusEvent(java_awt_event_FocusEvent_FOCUS_GAINED, hWndLostFocus);
  142.90 -
  142.91 -    return mrDoDefault;
  142.92 -}
  142.93 -
  142.94 -MsgRouting AwtList::WmKillFocus(HWND hWndGotFocus) {
  142.95 -    if (sm_focusOwner != NULL && sm_focusOwner == hWndGotFocus) {
  142.96 -        return mrConsume;
  142.97 -    }
  142.98 -
  142.99 -    if (sm_focusOwner != GetListHandle()) {
 142.100 -        if (sm_focusOwner != NULL) {
 142.101 -            if (hWndGotFocus != NULL &&
 142.102 -                AwtComponent::GetComponent(hWndGotFocus) != NULL)
 142.103 -                {
 142.104 -                    sm_realFocusOpposite = sm_focusOwner;
 142.105 -                }
 142.106 -            ::SendMessage(sm_focusOwner, WM_KILLFOCUS, (WPARAM)hWndGotFocus,
 142.107 -                          0);
 142.108 -        }
 142.109 -        return mrConsume;
 142.110 -    }
 142.111 -
 142.112 -    sm_focusOwner = NULL;
 142.113 -
 142.114 -    SendFocusEvent(java_awt_event_FocusEvent_FOCUS_LOST, hWndGotFocus);
 142.115 -
 142.116 -    return mrDoDefault;
 142.117 +BOOL AwtList::IsFocusingMouseMessage(MSG *pMsg)
 142.118 +{
 142.119 +    return pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_LBUTTONDBLCLK;
 142.120  }
 142.121  
 142.122  MsgRouting AwtList::HandleEvent(MSG *msg, BOOL synthetic)
 142.123  {
 142.124 -    if (AwtComponent::sm_focusOwner != GetListHandle() &&
 142.125 -        (msg->message == WM_LBUTTONDOWN || msg->message == WM_LBUTTONDBLCLK))
 142.126 -    {
 142.127 -        JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 142.128 -        jobject target = GetTarget(env);
 142.129 -        env->CallStaticVoidMethod
 142.130 -            (AwtKeyboardFocusManager::keyboardFocusManagerCls,
 142.131 -             AwtKeyboardFocusManager::heavyweightButtonDownMID,
 142.132 -             target, ((jlong)msg->time) & 0xFFFFFFFF);
 142.133 -        env->DeleteLocalRef(target);
 142.134 +    if (IsFocusingMouseMessage(msg)) {
 142.135 +        LONG item = static_cast<LONG>(SendListMessage(LB_ITEMFROMPOINT, 0, msg->lParam));
 142.136 +        if (item != LB_ERR) {
 142.137 +            if (isMultiSelect) {
 142.138 +                if (IsItemSelected(item)) {
 142.139 +                    Deselect(item);
 142.140 +                } else {
 142.141 +                    Select(item);
 142.142 +                }
 142.143 +            } else {
 142.144 +                Select(item);
 142.145 +            }
 142.146 +        }
 142.147 +        delete msg;
 142.148 +        return mrConsume;
 142.149      }
 142.150 -
 142.151 +    if (msg->message == WM_KEYDOWN && msg->wParam == VK_RETURN) {
 142.152 +        WmNotify(LBN_DBLCLK);
 142.153 +    }
 142.154      return AwtComponent::HandleEvent(msg, synthetic);
 142.155  }
 142.156  
 142.157 @@ -607,15 +543,6 @@
 142.158      return mrDoDefault;
 142.159  }
 142.160  
 142.161 -MsgRouting
 142.162 -AwtList::WmKeyDown(UINT wkey, UINT repCnt, UINT flags, BOOL system)
 142.163 -{
 142.164 -    if (wkey == VK_RETURN) {
 142.165 -        WmNotify(LBN_DBLCLK);
 142.166 -    }
 142.167 -    return AwtComponent::WmKeyDown(wkey, repCnt, flags, system);
 142.168 -}
 142.169 -
 142.170  BOOL AwtList::InheritsNativeMouseWheelBehavior() {return true;}
 142.171  
 142.172  jint AwtList::_GetMaxWidth(void *param)
   143.1 --- a/src/windows/native/sun/windows/awt_List.h	Tue Apr 14 00:05:07 2009 -0700
   143.2 +++ b/src/windows/native/sun/windows/awt_List.h	Tue Apr 14 04:21:02 2009 -0700
   143.3 @@ -1,5 +1,5 @@
   143.4  /*
   143.5 - * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
   143.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   143.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   143.8   *
   143.9   * This code is free software; you can redistribute it and/or modify it
  143.10 @@ -97,8 +97,6 @@
  143.11          }
  143.12      }
  143.13  
  143.14 -    BOOL ActMouseMessage(MSG* pMsg);
  143.15 -
  143.16      // Netscape : Change the font on the list and redraw the
  143.17      // items nicely.
  143.18      virtual void SetFont(AwtFont *pFont);
  143.19 @@ -116,7 +114,6 @@
  143.20      MsgRouting WmMouseDown(UINT flags, int x, int y, int button);
  143.21      MsgRouting WmMouseUp(UINT flags, int x, int y, int button);
  143.22      MsgRouting WmNotify(UINT notifyCode);
  143.23 -    MsgRouting WmKeyDown(UINT vkey, UINT repCnt, UINT flags, BOOL system);
  143.24  
  143.25      /* for multifont list */
  143.26      MsgRouting OwnerDrawItem(UINT ctrlId, DRAWITEMSTRUCT& drawInfo);
  143.27 @@ -127,8 +124,6 @@
  143.28  
  143.29      MsgRouting WmCtlColor(HDC hDC, HWND hCtrl, UINT ctlColor,
  143.30                            HBRUSH& retBrush);
  143.31 -    MsgRouting WmSetFocus(HWND hWndLostFocus);
  143.32 -    MsgRouting WmKillFocus(HWND hWndGotFocus);
  143.33  
  143.34      MsgRouting HandleEvent(MSG *msg, BOOL synthetic);
  143.35  
  143.36 @@ -170,6 +165,8 @@
  143.37  
  143.38      virtual BOOL InheritsNativeMouseWheelBehavior();
  143.39  
  143.40 +    virtual BOOL IsFocusingMouseMessage(MSG *pMsg);
  143.41 +
  143.42      // some methods called on Toolkit thread
  143.43      static jint _GetMaxWidth(void *param);
  143.44      static void _UpdateMaxItemWidth(void *param);
   144.1 --- a/src/windows/native/sun/windows/awt_Panel.cpp	Tue Apr 14 00:05:07 2009 -0700
   144.2 +++ b/src/windows/native/sun/windows/awt_Panel.cpp	Tue Apr 14 04:21:02 2009 -0700
   144.3 @@ -34,70 +34,6 @@
   144.4  
   144.5  jfieldID AwtPanel::insets_ID;
   144.6  
   144.7 -static char* AWTPANEL_RESTACK_MSG_1 = "Peers array is null";
   144.8 -static char* AWTPANEL_RESTACK_MSG_2 = "Peer null in JNI";
   144.9 -static char* AWTPANEL_RESTACK_MSG_3 = "Native resources unavailable";
  144.10 -static char* AWTPANEL_RESTACK_MSG_4 = "Child peer is null";
  144.11 -
  144.12 -void* AwtPanel::Restack(void * param) {
  144.13 -    TRY;
  144.14 -
  144.15 -    JNIEnv* env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
  144.16 -    jobjectArray peers = (jobjectArray)param;
  144.17 -
  144.18 -    int peerCount = env->GetArrayLength(peers);
  144.19 -    if (peerCount < 1) {
  144.20 -        env->DeleteGlobalRef(peers);
  144.21 -        return AWTPANEL_RESTACK_MSG_1;
  144.22 -    }
  144.23 -
  144.24 -    jobject self = env->GetObjectArrayElement(peers, 0);
  144.25 -    // It's entirely possible that our native resources have been destroyed
  144.26 -    // before our java peer - if we're dispose()d, for instance.
  144.27 -    // Alert caller w/ IllegalComponentStateException.
  144.28 -    if (self == NULL) {
  144.29 -        env->DeleteGlobalRef(peers);
  144.30 -        return AWTPANEL_RESTACK_MSG_2;
  144.31 -    }
  144.32 -    PDATA pData = JNI_GET_PDATA(self);
  144.33 -    if (pData == NULL) {
  144.34 -        env->DeleteGlobalRef(peers);
  144.35 -        env->DeleteLocalRef(self);
  144.36 -        return AWTPANEL_RESTACK_MSG_3;
  144.37 -    }
  144.38 -
  144.39 -    AwtPanel* panel = (AwtPanel*)pData;
  144.40 -
  144.41 -    HWND prevWindow = 0;
  144.42 -
  144.43 -    for (int i = 1; i < peerCount; i++) {
  144.44 -        jobject peer = env->GetObjectArrayElement(peers, i);
  144.45 -        if (peer == NULL) {
  144.46 -            // Nonsense
  144.47 -            env->DeleteGlobalRef(peers);
  144.48 -            env->DeleteLocalRef(self);
  144.49 -            return  AWTPANEL_RESTACK_MSG_4;
  144.50 -        }
  144.51 -        PDATA child_pData = JNI_GET_PDATA(peer);
  144.52 -        if (child_pData == NULL) {
  144.53 -            env->DeleteLocalRef(peer);
  144.54 -            env->DeleteGlobalRef(peers);
  144.55 -            env->DeleteLocalRef(self);
  144.56 -            return AWTPANEL_RESTACK_MSG_3;
  144.57 -        }
  144.58 -        AwtComponent* child_comp = (AwtComponent*)child_pData;
  144.59 -        ::SetWindowPos(child_comp->GetHWnd(), prevWindow, 0, 0, 0, 0,
  144.60 -                       SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_DEFERERASE | SWP_ASYNCWINDOWPOS);
  144.61 -        prevWindow = child_comp->GetHWnd();
  144.62 -        env->DeleteLocalRef(peer);
  144.63 -    }
  144.64 -    env->DeleteGlobalRef(peers);
  144.65 -    env->DeleteLocalRef(self);
  144.66 -
  144.67 -    CATCH_BAD_ALLOC_RET("Allocation error");
  144.68 -    return NULL;
  144.69 -}
  144.70 -
  144.71  /************************************************************************
  144.72   * AwtPanel native methods
  144.73   */
  144.74 @@ -116,18 +52,4 @@
  144.75      CATCH_BAD_ALLOC;
  144.76  }
  144.77  
  144.78 -JNIEXPORT void JNICALL
  144.79 -Java_sun_awt_windows_WPanelPeer_pRestack(JNIEnv *env, jobject self, jobjectArray peers) {
  144.80 -
  144.81 -    TRY;
  144.82 -
  144.83 -    const char * error = (const char*)AwtToolkit::GetInstance().InvokeFunction(AwtPanel::Restack, env->NewGlobalRef(peers));
  144.84 -    if (error != NULL) {
  144.85 -        JNU_ThrowByName(env, "java/awt/IllegalComponentStateException", error);
  144.86 -    }
  144.87 -
  144.88 -    CATCH_BAD_ALLOC;
  144.89 -}
  144.90 -
  144.91 -
  144.92  } /* extern "C" */
   145.1 --- a/src/windows/native/sun/windows/awt_Panel.h	Tue Apr 14 00:05:07 2009 -0700
   145.2 +++ b/src/windows/native/sun/windows/awt_Panel.h	Tue Apr 14 04:21:02 2009 -0700
   145.3 @@ -35,11 +35,8 @@
   145.4  
   145.5  class AwtPanel {
   145.6  public:
   145.7 -    static void* Restack(void * param);
   145.8 -
   145.9      /* java.awt.Panel field ids */
  145.10      static jfieldID insets_ID;
  145.11 -
  145.12  };
  145.13  
  145.14  #endif // AWT_PANEL_H
   146.1 --- a/src/windows/native/sun/windows/awt_PrintDialog.cpp	Tue Apr 14 00:05:07 2009 -0700
   146.2 +++ b/src/windows/native/sun/windows/awt_PrintDialog.cpp	Tue Apr 14 04:21:02 2009 -0700
   146.3 @@ -65,7 +65,8 @@
   146.4          }
   146.5      }
   146.6  
   146.7 -    return ComCtl32Util::GetInstance().DefWindowProc(NULL, hWnd, message, wParam, lParam);
   146.8 +    WNDPROC lpfnWndProc = (WNDPROC)(::GetProp(hWnd, NativeDialogWndProcProp));
   146.9 +    return ComCtl32Util::GetInstance().DefWindowProc(lpfnWndProc, hWnd, message, wParam, lParam);
  146.10  }
  146.11  
  146.12  static UINT_PTR CALLBACK
  146.13 @@ -87,7 +88,7 @@
  146.14              DWORD style = ::GetClassLong(hdlg, GCL_STYLE);
  146.15              ::SetClassLong(hdlg,GCL_STYLE, style & ~CS_SAVEBITS);
  146.16  
  146.17 -            ::SetFocus(hdlg);
  146.18 +            ::SetFocus(hdlg); // will not break synthetic focus as hdlg is a native toplevel
  146.19  
  146.20              // set appropriate icon for parentless dialogs
  146.21              jobject awtParent = env->GetObjectField(peer, AwtPrintDialog::parentID);
  146.22 @@ -99,16 +100,19 @@
  146.23              }
  146.24  
  146.25              // subclass dialog's parent to receive additional messages
  146.26 -            ComCtl32Util::GetInstance().SubclassHWND(hdlg,
  146.27 -                                                     PrintDialogWndProc);
  146.28 +            WNDPROC lpfnWndProc = ComCtl32Util::GetInstance().SubclassHWND(hdlg,
  146.29 +                                                                           PrintDialogWndProc);
  146.30 +            ::SetProp(hdlg, NativeDialogWndProcProp, reinterpret_cast<HANDLE>(lpfnWndProc));
  146.31  
  146.32              break;
  146.33          }
  146.34          case WM_DESTROY: {
  146.35 +            WNDPROC lpfnWndProc = (WNDPROC)(::GetProp(hdlg, NativeDialogWndProcProp));
  146.36              ComCtl32Util::GetInstance().UnsubclassHWND(hdlg,
  146.37                                                         PrintDialogWndProc,
  146.38 -                                                       NULL);
  146.39 +                                                       lpfnWndProc);
  146.40              ::RemoveProp(hdlg, ModalDialogPeerProp);
  146.41 +            ::RemoveProp(hdlg, NativeDialogWndProcProp);
  146.42              break;
  146.43          }
  146.44      }
   147.1 --- a/src/windows/native/sun/windows/awt_PrintJob.cpp	Tue Apr 14 00:05:07 2009 -0700
   147.2 +++ b/src/windows/native/sun/windows/awt_PrintJob.cpp	Tue Apr 14 04:21:02 2009 -0700
   147.3 @@ -2885,7 +2885,8 @@
   147.4          }
   147.5      }
   147.6  
   147.7 -    return ComCtl32Util::GetInstance().DefWindowProc(NULL, hWnd, message, wParam, lParam);
   147.8 +    WNDPROC lpfnWndProc = (WNDPROC)(::GetProp(hWnd, NativeDialogWndProcProp));
   147.9 +    return ComCtl32Util::GetInstance().DefWindowProc(lpfnWndProc, hWnd, message, wParam, lParam);
  147.10  }
  147.11  
  147.12  /**
  147.13 @@ -2919,16 +2920,19 @@
  147.14              }
  147.15  
  147.16              // subclass dialog's parent to receive additional messages
  147.17 -            ComCtl32Util::GetInstance().SubclassHWND(hDlg,
  147.18 -                                                     PageDialogWndProc);
  147.19 +            WNDPROC lpfnWndProc = ComCtl32Util::GetInstance().SubclassHWND(hDlg,
  147.20 +                                                                           PageDialogWndProc);
  147.21 +            ::SetProp(hDlg, NativeDialogWndProcProp, reinterpret_cast<HANDLE>(lpfnWndProc));
  147.22  
  147.23              break;
  147.24          }
  147.25          case WM_DESTROY: {
  147.26 +            WNDPROC lpfnWndProc = (WNDPROC)(::GetProp(hDlg, NativeDialogWndProcProp));
  147.27              ComCtl32Util::GetInstance().UnsubclassHWND(hDlg,
  147.28                                                         PageDialogWndProc,
  147.29 -                                                       NULL);
  147.30 +                                                       lpfnWndProc);
  147.31              ::RemoveProp(hDlg, ModalDialogPeerProp);
  147.32 +            ::RemoveProp(hDlg, NativeDialogWndProcProp);
  147.33              break;
  147.34          }
  147.35      }
   148.1 --- a/src/windows/native/sun/windows/awt_ScrollPane.cpp	Tue Apr 14 00:05:07 2009 -0700
   148.2 +++ b/src/windows/native/sun/windows/awt_ScrollPane.cpp	Tue Apr 14 04:21:02 2009 -0700
   148.3 @@ -1,5 +1,5 @@
   148.4  /*
   148.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   148.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   148.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   148.8   *
   148.9   * This code is free software; you can redistribute it and/or modify it
  148.10 @@ -361,13 +361,6 @@
  148.11      DASSERT(!safe_ExceptionOccurred(env));
  148.12  }
  148.13  
  148.14 -BOOL AwtScrollPane::ActMouseMessage(MSG* pMsg) {
  148.15 -    if (!IsFocusingMessage(pMsg->message)) {
  148.16 -        return FALSE;
  148.17 -    }
  148.18 -    return TRUE;
  148.19 -}
  148.20 -
  148.21  MsgRouting
  148.22  AwtScrollPane::WmNcHitTest(UINT x, UINT y, LRESULT& retVal)
  148.23  {
  148.24 @@ -412,13 +405,10 @@
  148.25      return mrConsume;
  148.26  }
  148.27  
  148.28 -/*
  148.29 - * Fix for BugTraq ID 4041703: keyDown not being invoked.
  148.30 - * This method overrides AwtCanvas::HandleEvent() since we
  148.31 - * don't want ScrollPanel to receive focus on mouse press.
  148.32 - */
  148.33  MsgRouting AwtScrollPane::HandleEvent(MSG *msg, BOOL synthetic)
  148.34  {
  148.35 +    // SunAwtScrollPane control doesn't cause activation on mouse/key events,
  148.36 +    // so we can safely (for synthetic focus) pass them to the system proc.
  148.37      return AwtComponent::HandleEvent(msg, synthetic);
  148.38  }
  148.39  
   149.1 --- a/src/windows/native/sun/windows/awt_ScrollPane.h	Tue Apr 14 00:05:07 2009 -0700
   149.2 +++ b/src/windows/native/sun/windows/awt_ScrollPane.h	Tue Apr 14 04:21:02 2009 -0700
   149.3 @@ -1,5 +1,5 @@
   149.4  /*
   149.5 - * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
   149.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   149.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   149.8   *
   149.9   * This code is free software; you can redistribute it and/or modify it
  149.10 @@ -65,7 +65,6 @@
  149.11      virtual void Reshape(int x, int y, int w, int h);
  149.12      virtual void BeginValidate() {}
  149.13      virtual void EndValidate() {}
  149.14 -    BOOL ActMouseMessage(MSG* pMsg);
  149.15  
  149.16      /*
  149.17       * Fix for bug 4046446
   150.1 --- a/src/windows/native/sun/windows/awt_Scrollbar.cpp	Tue Apr 14 00:05:07 2009 -0700
   150.2 +++ b/src/windows/native/sun/windows/awt_Scrollbar.cpp	Tue Apr 14 04:21:02 2009 -0700
   150.3 @@ -1,5 +1,5 @@
   150.4  /*
   150.5 - * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
   150.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   150.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   150.8   *
   150.9   * This code is free software; you can redistribute it and/or modify it
  150.10 @@ -27,7 +27,6 @@
  150.11  #include "awt_Scrollbar.h"
  150.12  #include "awt_Canvas.h"
  150.13  #include "awt_Window.h"
  150.14 -#include "awt_KeyboardFocusManager.h"
  150.15  
  150.16  /* IMPORTANT! Read the README.JNI file for notes on JNI converted AWT code.
  150.17   */
  150.18 @@ -61,7 +60,6 @@
  150.19      m_orientation = SB_HORZ;
  150.20      m_lineIncr = 0;
  150.21      m_pageIncr = 0;
  150.22 -    m_ignoreFocusEvents = FALSE;
  150.23      m_prevCallback = NULL;
  150.24      m_prevCallbackPos = 0;
  150.25      ms_instanceCounter++;
  150.26 @@ -221,7 +219,6 @@
  150.27      return retValue;
  150.28  }
  150.29  
  150.30 -
  150.31  MsgRouting
  150.32  AwtScrollbar::WmNcHitTest(UINT x, UINT y, LRESULT& retVal)
  150.33  {
  150.34 @@ -265,17 +262,10 @@
  150.35  MsgRouting
  150.36  AwtScrollbar::HandleEvent(MSG *msg, BOOL synthetic)
  150.37  {
  150.38 -    if (msg->message == WM_LBUTTONDOWN || msg->message == WM_LBUTTONDBLCLK) {
  150.39 -        if (IsFocusable() && AwtComponent::sm_focusOwner != GetHWnd()) {
  150.40 -            JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
  150.41 -            jobject target = GetTarget(env);
  150.42 -            env->CallStaticVoidMethod
  150.43 -                (AwtKeyboardFocusManager::keyboardFocusManagerCls,
  150.44 -                 AwtKeyboardFocusManager::heavyweightButtonDownMID,
  150.45 -                 target, ((jlong)msg->time) & 0xFFFFFFFF);
  150.46 -            env->DeleteLocalRef(target);
  150.47 -            AwtSetFocus();
  150.48 -        }
  150.49 +    // SCROLLBAR control doesn't cause activation on mouse/key events,
  150.50 +    // so we can safely (for synthetic focus) pass them to the system proc.
  150.51 +
  150.52 +    if (IsFocusingMouseMessage(msg)) {
  150.53          // Left button press was already routed to default window
  150.54          // procedure in the WmMouseDown above.  Propagating synthetic
  150.55          // press seems like a bad idea as internal message loop
  150.56 @@ -283,54 +273,19 @@
  150.57          delete msg;
  150.58          return mrConsume;
  150.59      }
  150.60 -    else {
  150.61 -        return AwtComponent::HandleEvent(msg, synthetic);
  150.62 -    }
  150.63 +    return AwtComponent::HandleEvent(msg, synthetic);
  150.64  }
  150.65  
  150.66 -
  150.67  // Work around a windows bug descrbed in KB article Q73839.  Reset
  150.68  // focus on scrollbars to update focus indicator.  The article advises
  150.69 -// to disable/enable the scrollbar, but simply resetting the focus is
  150.70 -// sufficient.
  150.71 +// to disable/enable the scrollbar.
  150.72  void
  150.73  AwtScrollbar::UpdateFocusIndicator()
  150.74  {
  150.75      if (IsFocusable()) {
  150.76 -        m_ignoreFocusEvents = TRUE;
  150.77 -        ::SetFocus(NULL);
  150.78 -        AwtSetFocus();
  150.79 -        m_ignoreFocusEvents = FALSE;
  150.80 -    }
  150.81 -}
  150.82 -
  150.83 -MsgRouting
  150.84 -AwtScrollbar::WmKillFocus(HWND hWndGot)
  150.85 -{
  150.86 -    if (m_ignoreFocusEvents) {
  150.87 -        // We are voluntary giving up focus and will get it back
  150.88 -        // immediately.  This is necessary to force windows to update
  150.89 -        // the focus indicator.
  150.90 -        sm_focusOwner = NULL;
  150.91 -        return mrDoDefault;
  150.92 -    }
  150.93 -    else {
  150.94 -        return AwtComponent::WmKillFocus(hWndGot);
  150.95 -    }
  150.96 -}
  150.97 -
  150.98 -MsgRouting
  150.99 -AwtScrollbar::WmSetFocus(HWND hWndLost)
 150.100 -{
 150.101 -    if (m_ignoreFocusEvents) {
 150.102 -        // We have voluntary gave up focus and are getting it back
 150.103 -        // now.  This is necessary to force windows to update the
 150.104 -        // focus indicator.
 150.105 -        sm_focusOwner = GetHWnd();
 150.106 -        return mrDoDefault;
 150.107 -    }
 150.108 -    else {
 150.109 -        return AwtComponent::WmSetFocus(hWndLost);
 150.110 +        // todo: doesn't work
 150.111 +        SendMessage((WPARAM)ESB_DISABLE_BOTH);
 150.112 +        SendMessage((WPARAM)ESB_ENABLE_BOTH);
 150.113      }
 150.114  }
 150.115  
   151.1 --- a/src/windows/native/sun/windows/awt_Scrollbar.h	Tue Apr 14 00:05:07 2009 -0700
   151.2 +++ b/src/windows/native/sun/windows/awt_Scrollbar.h	Tue Apr 14 04:21:02 2009 -0700
   151.3 @@ -1,5 +1,5 @@
   151.4  /*
   151.5 - * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
   151.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   151.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   151.8   *
   151.9   * This code is free software; you can redistribute it and/or modify it
  151.10 @@ -69,10 +69,6 @@
  151.11      virtual MsgRouting WmHScroll(UINT scrollCode, UINT pos, HWND hScrollBar);
  151.12      virtual MsgRouting WmVScroll(UINT scrollCode, UINT pos, HWND hScrollBar);
  151.13  
  151.14 -    // Work around KB Q73839 bug.
  151.15 -    virtual MsgRouting WmSetFocus(HWND hWndLost);
  151.16 -    virtual MsgRouting WmKillFocus(HWND hWndGot);
  151.17 -
  151.18      // Prevent KB Q102552 race.
  151.19      virtual MsgRouting WmMouseDown(UINT flags, int x, int y, int button);
  151.20      virtual MsgRouting WmNcHitTest(UINT x, UINT y, LRESULT& retVal);
  151.21 @@ -91,7 +87,6 @@
  151.22      int           m_pageIncr;
  151.23  
  151.24      // Work around KB Q73839 bug.
  151.25 -    BOOL m_ignoreFocusEvents;
  151.26      void UpdateFocusIndicator();
  151.27  
  151.28      // Don't do redundant callbacks.
   152.1 --- a/src/windows/native/sun/windows/awt_TextArea.cpp	Tue Apr 14 00:05:07 2009 -0700
   152.2 +++ b/src/windows/native/sun/windows/awt_TextArea.cpp	Tue Apr 14 04:21:02 2009 -0700
   152.3 @@ -1,5 +1,5 @@
   152.4  /*
   152.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   152.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   152.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   152.8   *
   152.9   * This code is free software; you can redistribute it and/or modify it
  152.10 @@ -26,9 +26,9 @@
  152.11  #include "awt_Toolkit.h"
  152.12  #include "awt_TextArea.h"
  152.13  #include "awt_TextComponent.h"
  152.14 -#include "awt_KeyboardFocusManager.h"
  152.15  #include "awt_Canvas.h"
  152.16  #include "awt_Window.h"
  152.17 +#include "awt_Frame.h"
  152.18  
  152.19  /* IMPORTANT! Read the README.JNI file for notes on JNI converted AWT code.
  152.20   */
  152.21 @@ -362,13 +362,6 @@
  152.22      DASSERT(::IsWindow(::GetParent(hWnd)));
  152.23  
  152.24      switch (message) {
  152.25 -    case WM_SETFOCUS:
  152.26 -        ::SendMessage(::GetParent(hWnd), EM_HIDESELECTION, FALSE, 0);
  152.27 -        break;
  152.28 -    case WM_KILLFOCUS:
  152.29 -        ::SendMessage(::GetParent(hWnd), EM_HIDESELECTION, TRUE, 0);
  152.30 -        break;
  152.31 -
  152.32      case WM_UNDO:
  152.33      case WM_CUT:
  152.34      case WM_COPY:
  152.35 @@ -400,7 +393,6 @@
  152.36  
  152.37  MsgRouting
  152.38  AwtTextArea::WmContextMenu(HWND hCtrl, UINT xPos, UINT yPos) {
  152.39 -
  152.40      /* Use the system provided edit control class to generate context menu. */
  152.41      if (m_hEditCtrl == NULL) {
  152.42          DWORD dwStyle = WS_CHILD;
  152.43 @@ -494,22 +486,11 @@
  152.44          VERIFY(::ClientToScreen(GetHWnd(), &p));
  152.45      }
  152.46  
  152.47 -    ::SendMessage(m_hEditCtrl, WM_CONTEXTMENU, (WPARAM)m_hEditCtrl,
  152.48 -                  MAKELPARAM(p.x, p.y));
  152.49 -    /*
  152.50 -     * After the context menu is dismissed focus is owned by the edit contol.
  152.51 -     * Return focus to parent.
  152.52 -     */
  152.53 -    if (IsFocusable() && AwtComponent::sm_focusOwner != GetHWnd()) {
  152.54 -        JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
  152.55 -        jobject target = GetTarget(env);
  152.56 -        env->CallStaticVoidMethod
  152.57 -            (AwtKeyboardFocusManager::keyboardFocusManagerCls,
  152.58 -             AwtKeyboardFocusManager::heavyweightButtonDownMID,
  152.59 -             target, TimeHelper::getMessageTimeUTC());
  152.60 -        env->DeleteLocalRef(target);
  152.61 -        AwtSetFocus();
  152.62 -    }
  152.63 +    // The context menu steals focus from the proxy.
  152.64 +    // So, set the focus-restore flag up.
  152.65 +    SetRestoreFocus(TRUE);
  152.66 +    ::SendMessage(m_hEditCtrl, WM_CONTEXTMENU, (WPARAM)m_hEditCtrl, MAKELPARAM(p.x, p.y));
  152.67 +    SetRestoreFocus(FALSE);
  152.68  
  152.69      return mrConsume;
  152.70  }
  152.71 @@ -558,20 +539,11 @@
  152.72       * By consuming WM_MOUSEMOVE messages we also don't give
  152.73       * the RichEdit control a chance to recognize a drag gesture
  152.74       * and initiate its own drag-n-drop operation.
  152.75 +     *
  152.76 +     * The workaround also allows us to implement synthetic focus mechanism.
  152.77 +     *
  152.78       */
  152.79 -    if (msg->message == WM_LBUTTONDOWN || msg->message == WM_LBUTTONDBLCLK) {
  152.80 -
  152.81 -        if (IsFocusable() && AwtComponent::sm_focusOwner != GetHWnd()) {
  152.82 -            JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
  152.83 -            jobject target = GetTarget(env);
  152.84 -            env->CallStaticVoidMethod
  152.85 -                (AwtKeyboardFocusManager::keyboardFocusManagerCls,
  152.86 -                 AwtKeyboardFocusManager::heavyweightButtonDownMID,
  152.87 -                 target, ((jlong)msg->time) & 0xFFFFFFFF);
  152.88 -            env->DeleteLocalRef(target);
  152.89 -            AwtSetFocus();
  152.90 -        }
  152.91 -
  152.92 +    if (IsFocusingMouseMessage(msg)) {
  152.93          CHARRANGE cr;
  152.94  
  152.95          LONG lCurPos = EditGetCharFromPos(msg->pt);
  152.96 @@ -717,6 +689,7 @@
  152.97              p.x = -1;
  152.98              p.y = -1;
  152.99          }
 152.100 +
 152.101          if (!::PostMessage(GetHWnd(), WM_CONTEXTMENU, (WPARAM)GetHWnd(),
 152.102                             MAKELPARAM(p.x, p.y))) {
 152.103              JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 152.104 @@ -724,6 +697,8 @@
 152.105              env->ExceptionDescribe();
 152.106              env->ExceptionClear();
 152.107          }
 152.108 +        delete msg;
 152.109 +        return mrConsume;
 152.110      } else if (msg->message == WM_MOUSEWHEEL) {
 152.111          // 4417236: If there is an old version of RichEd32.dll which
 152.112          // does not provide the mouse wheel scrolling we have to
   153.1 --- a/src/windows/native/sun/windows/awt_TextComponent.cpp	Tue Apr 14 00:05:07 2009 -0700
   153.2 +++ b/src/windows/native/sun/windows/awt_TextComponent.cpp	Tue Apr 14 04:21:02 2009 -0700
   153.3 @@ -1,5 +1,5 @@
   153.4  /*
   153.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   153.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   153.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   153.8   *
   153.9   * This code is free software; you can redistribute it and/or modify it
  153.10 @@ -25,7 +25,6 @@
  153.11  
  153.12  #include "awt_Toolkit.h"
  153.13  #include "awt_TextComponent.h"
  153.14 -#include "awt_KeyboardFocusManager.h"
  153.15  #include "awt_Canvas.h"
  153.16  
  153.17  #include "jni.h"
  153.18 @@ -62,9 +61,9 @@
  153.19  
  153.20  AwtTextComponent::AwtTextComponent() {
  153.21      m_synthetic = FALSE;
  153.22 -    m_lStartPos       = -1;
  153.23 -    m_lEndPos         = -1;
  153.24 -    m_lLastPos        = -1;
  153.25 +    m_lStartPos = -1;
  153.26 +    m_lEndPos   = -1;
  153.27 +    m_lLastPos  = -1;
  153.28      m_isLFonly        = FALSE;
  153.29      m_EOLchecked      = FALSE;
  153.30  //    javaEventsMask = 0;    // accessibility support
  153.31 @@ -74,10 +73,6 @@
  153.32      return TEXT("EDIT");  /* System provided edit control class */
  153.33  }
  153.34  
  153.35 -BOOL AwtTextComponent::ActMouseMessage(MSG* pMsg) {
  153.36 -    return FALSE;
  153.37 -}
  153.38 -
  153.39  /* Set a suitable font to IME against the component font. */
  153.40  void AwtTextComponent::SetFont(AwtFont* font)
  153.41  {
  153.42 @@ -143,23 +138,16 @@
  153.43      return mrDoDefault;
  153.44  }
  153.45  
  153.46 +BOOL AwtTextComponent::IsFocusingMouseMessage(MSG *pMsg)
  153.47 +{
  153.48 +    return pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_LBUTTONDBLCLK;
  153.49 +}
  153.50 +
  153.51  MsgRouting
  153.52  AwtTextComponent::HandleEvent(MSG *msg, BOOL synthetic)
  153.53  {
  153.54      MsgRouting returnVal;
  153.55  
  153.56 -    if (AwtComponent::sm_focusOwner != GetHWnd() && IsFocusable() &&
  153.57 -        (msg->message == WM_LBUTTONDOWN || msg->message == WM_LBUTTONDBLCLK))
  153.58 -    {
  153.59 -        JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
  153.60 -        jobject target = GetTarget(env);
  153.61 -        env->CallStaticVoidMethod
  153.62 -            (AwtKeyboardFocusManager::keyboardFocusManagerCls,
  153.63 -             AwtKeyboardFocusManager::heavyweightButtonDownMID,
  153.64 -             target, ((jlong)msg->time) & 0xFFFFFFFF);
  153.65 -        env->DeleteLocalRef(target);
  153.66 -    }
  153.67 -
  153.68      /*
  153.69       * Store the 'synthetic' parameter so that the WM_PASTE security check
  153.70       * happens only for synthetic events.
   154.1 --- a/src/windows/native/sun/windows/awt_TextComponent.h	Tue Apr 14 00:05:07 2009 -0700
   154.2 +++ b/src/windows/native/sun/windows/awt_TextComponent.h	Tue Apr 14 04:21:02 2009 -0700
   154.3 @@ -1,5 +1,5 @@
   154.4  /*
   154.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   154.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   154.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   154.8   *
   154.9   * This code is free software; you can redistribute it and/or modify it
  154.10 @@ -69,8 +69,6 @@
  154.11      // called on Toolkit thread from JNI
  154.12      static jstring _GetText(void *param);
  154.13  
  154.14 -    BOOL ActMouseMessage(MSG* pMsg);
  154.15 -
  154.16      void SetFont(AwtFont* font);
  154.17  
  154.18      /*
  154.19 @@ -80,6 +78,8 @@
  154.20      MsgRouting HandleEvent(MSG *msg, BOOL synthetic);
  154.21      MsgRouting WmPaste();
  154.22  
  154.23 +    virtual BOOL IsFocusingMouseMessage(MSG *pMsg);
  154.24 +
  154.25  /*  To be fully implemented in a future release
  154.26  
  154.27      MsgRouting WmKeyDown(UINT wkey, UINT repCnt,
  154.28 @@ -125,7 +125,6 @@
  154.29      LONG    m_lEndPos;
  154.30      LONG    m_lLastPos;
  154.31  
  154.32 -
  154.33      HFONT m_hFont;
  154.34      //im --- end
  154.35  
   155.1 --- a/src/windows/native/sun/windows/awt_TextField.cpp	Tue Apr 14 00:05:07 2009 -0700
   155.2 +++ b/src/windows/native/sun/windows/awt_TextField.cpp	Tue Apr 14 04:21:02 2009 -0700
   155.3 @@ -1,5 +1,5 @@
   155.4  /*
   155.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   155.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   155.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   155.8   *
   155.9   * This code is free software; you can redistribute it and/or modify it
  155.10 @@ -26,7 +26,6 @@
  155.11  #include "awt_Toolkit.h"
  155.12  #include "awt_TextField.h"
  155.13  #include "awt_TextComponent.h"
  155.14 -#include "awt_KeyboardFocusManager.h"
  155.15  #include "awt_Canvas.h"
  155.16  
  155.17  /* IMPORTANT! Read the README.JNI file for notes on JNI converted AWT code.
  155.18 @@ -150,135 +149,130 @@
  155.19       * By consuming WM_MOUSEMOVE messages we also don't give
  155.20       * the RichEdit control a chance to recognize a drag gesture
  155.21       * and initiate its own drag-n-drop operation.
  155.22 +     *
  155.23 +     * The workaround also allows us to implement synthetic focus mechanism.
  155.24       */
  155.25 -    /**
  155.26 -     * In non-focusable mode we don't pass mouse messages to native window thus making user unable
  155.27 -     * to select the text. Below is the code from awt_TextArea.cpp which implements selection
  155.28 -     * functionality. For safety this code is only being executed in non-focusable mode.
  155.29 -     */
  155.30 -    if (!IsFocusable()) {
  155.31 -        if (msg->message == WM_LBUTTONDOWN || msg->message == WM_LBUTTONDBLCLK) {
  155.32 +    if (IsFocusingMouseMessage(msg)) {
  155.33 +        CHARRANGE cr;
  155.34 +
  155.35 +        LONG lCurPos = EditGetCharFromPos(msg->pt);
  155.36 +
  155.37 +        EditGetSel(cr);
  155.38 +        /*
  155.39 +         * NOTE: Plain EDIT control always clears selection on mouse
  155.40 +         * button press. We are clearing the current selection only if
  155.41 +         * the mouse pointer is not over the selected region.
  155.42 +         * In this case we sacrifice backward compatibility
  155.43 +         * to allow dnd of the current selection.
  155.44 +         */
  155.45 +        if (msg->message == WM_LBUTTONDBLCLK) {
  155.46 +            SetStartSelectionPos(static_cast<LONG>(SendMessage(
  155.47 +                EM_FINDWORDBREAK, WB_MOVEWORDLEFT, lCurPos)));
  155.48 +            SetEndSelectionPos(static_cast<LONG>(SendMessage(
  155.49 +                EM_FINDWORDBREAK, WB_MOVEWORDRIGHT, lCurPos)));
  155.50 +        } else {
  155.51 +            SetStartSelectionPos(lCurPos);
  155.52 +            SetEndSelectionPos(lCurPos);
  155.53 +        }
  155.54 +        cr.cpMin = GetStartSelectionPos();
  155.55 +        cr.cpMax = GetEndSelectionPos();
  155.56 +        EditSetSel(cr);
  155.57 +
  155.58 +        delete msg;
  155.59 +        return mrConsume;
  155.60 +    } else if (msg->message == WM_LBUTTONUP) {
  155.61 +
  155.62 +        /*
  155.63 +         * If the left mouse button is pressed on the selected region
  155.64 +         * we don't clear the current selection. We clear it on button
  155.65 +         * release instead. This is to allow dnd of the current selection.
  155.66 +         */
  155.67 +        if (GetStartSelectionPos() == -1 && GetEndSelectionPos() == -1) {
  155.68              CHARRANGE cr;
  155.69  
  155.70              LONG lCurPos = EditGetCharFromPos(msg->pt);
  155.71  
  155.72 -            EditGetSel(cr);
  155.73 +            cr.cpMin = lCurPos;
  155.74 +            cr.cpMax = lCurPos;
  155.75 +            EditSetSel(cr);
  155.76 +        }
  155.77 +
  155.78 +        /*
  155.79 +         * Cleanup the state variables when left mouse button is released.
  155.80 +         * These state variables are designed to reflect the selection state
  155.81 +         * while the left mouse button is pressed and be set to -1 otherwise.
  155.82 +         */
  155.83 +        SetStartSelectionPos(-1);
  155.84 +        SetEndSelectionPos(-1);
  155.85 +        SetLastSelectionPos(-1);
  155.86 +
  155.87 +        delete msg;
  155.88 +        return mrConsume;
  155.89 +    } else if (msg->message == WM_MOUSEMOVE && (msg->wParam & MK_LBUTTON)) {
  155.90 +
  155.91 +        /*
  155.92 +         * We consume WM_MOUSEMOVE while the left mouse button is pressed,
  155.93 +         * so we have to simulate autoscrolling when mouse is moved outside
  155.94 +         * of the client area.
  155.95 +         */
  155.96 +        POINT p;
  155.97 +        RECT r;
  155.98 +        BOOL bScrollLeft = FALSE;
  155.99 +        BOOL bScrollRight = FALSE;
 155.100 +        BOOL bScrollUp = FALSE;
 155.101 +        BOOL bScrollDown = FALSE;
 155.102 +
 155.103 +        p.x = msg->pt.x;
 155.104 +        p.y = msg->pt.y;
 155.105 +        VERIFY(::GetClientRect(GetHWnd(), &r));
 155.106 +
 155.107 +        if (p.x < 0) {
 155.108 +            bScrollLeft = TRUE;
 155.109 +            p.x = 0;
 155.110 +        } else if (p.x > r.right) {
 155.111 +            bScrollRight = TRUE;
 155.112 +            p.x = r.right - 1;
 155.113 +        }
 155.114 +        LONG lCurPos = EditGetCharFromPos(p);
 155.115 +
 155.116 +        if (GetStartSelectionPos() != -1 &&
 155.117 +            GetEndSelectionPos() != -1 &&
 155.118 +            lCurPos != GetLastSelectionPos()) {
 155.119 +
 155.120 +            CHARRANGE cr;
 155.121 +
 155.122 +            SetLastSelectionPos(lCurPos);
 155.123 +
 155.124 +            cr.cpMin = GetStartSelectionPos();
 155.125 +            cr.cpMax = GetLastSelectionPos();
 155.126 +
 155.127 +            EditSetSel(cr);
 155.128 +        }
 155.129 +
 155.130 +        if (bScrollLeft == TRUE || bScrollRight == TRUE) {
 155.131 +            SCROLLINFO si;
 155.132 +            memset(&si, 0, sizeof(si));
 155.133 +            si.cbSize = sizeof(si);
 155.134 +            si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE;
 155.135 +
 155.136 +            VERIFY(::GetScrollInfo(GetHWnd(), SB_HORZ, &si));
 155.137 +            if (bScrollLeft == TRUE) {
 155.138 +                si.nPos = si.nPos - si.nPage / 2;
 155.139 +                si.nPos = max(si.nMin, si.nPos);
 155.140 +            } else if (bScrollRight == TRUE) {
 155.141 +                si.nPos = si.nPos + si.nPage / 2;
 155.142 +                si.nPos = min(si.nPos, si.nMax);
 155.143 +            }
 155.144              /*
 155.145 -             * NOTE: Plain EDIT control always clears selection on mouse
 155.146 -             * button press. We are clearing the current selection only if
 155.147 -             * the mouse pointer is not over the selected region.
 155.148 -             * In this case we sacrifice backward compatibility
 155.149 -             * to allow dnd of the current selection.
 155.150 +             * Okay to use 16-bit position since RichEdit control adjusts
 155.151 +             * its scrollbars so that their range is always 16-bit.
 155.152               */
 155.153 -            if (msg->message == WM_LBUTTONDBLCLK) {
 155.154 -                SetStartSelectionPos(static_cast<LONG>(SendMessage(
 155.155 -                    EM_FINDWORDBREAK, WB_MOVEWORDLEFT, lCurPos)));
 155.156 -                SetEndSelectionPos(static_cast<LONG>(SendMessage(
 155.157 -                    EM_FINDWORDBREAK, WB_MOVEWORDRIGHT, lCurPos)));
 155.158 -            } else {
 155.159 -                SetStartSelectionPos(lCurPos);
 155.160 -                SetEndSelectionPos(lCurPos);
 155.161 -            }
 155.162 -            cr.cpMin = GetStartSelectionPos();
 155.163 -            cr.cpMax = GetEndSelectionPos();
 155.164 -            EditSetSel(cr);
 155.165 -
 155.166 -            delete msg;
 155.167 -            return mrConsume;
 155.168 -        } else if (msg->message == WM_LBUTTONUP) {
 155.169 -
 155.170 -            /*
 155.171 -             * If the left mouse button is pressed on the selected region
 155.172 -             * we don't clear the current selection. We clear it on button
 155.173 -             * release instead. This is to allow dnd of the current selection.
 155.174 -             */
 155.175 -            if (GetStartSelectionPos() == -1 && GetEndSelectionPos() == -1) {
 155.176 -                CHARRANGE cr;
 155.177 -
 155.178 -                LONG lCurPos = EditGetCharFromPos(msg->pt);
 155.179 -
 155.180 -                cr.cpMin = lCurPos;
 155.181 -                cr.cpMax = lCurPos;
 155.182 -                EditSetSel(cr);
 155.183 -            }
 155.184 -
 155.185 -            /*
 155.186 -             * Cleanup the state variables when left mouse button is released.
 155.187 -             * These state variables are designed to reflect the selection state
 155.188 -             * while the left mouse button is pressed and be set to -1 otherwise.
 155.189 -             */
 155.190 -            SetStartSelectionPos(-1);
 155.191 -            SetEndSelectionPos(-1);
 155.192 -            SetLastSelectionPos(-1);
 155.193 -
 155.194 -            delete msg;
 155.195 -            return mrConsume;
 155.196 -        } else if (msg->message == WM_MOUSEMOVE && (msg->wParam & MK_LBUTTON)) {
 155.197 -
 155.198 -            /*
 155.199 -             * We consume WM_MOUSEMOVE while the left mouse button is pressed,
 155.200 -             * so we have to simulate autoscrolling when mouse is moved outside
 155.201 -             * of the client area.
 155.202 -             */
 155.203 -            POINT p;
 155.204 -            RECT r;
 155.205 -            BOOL bScrollLeft = FALSE;
 155.206 -            BOOL bScrollRight = FALSE;
 155.207 -            BOOL bScrollUp = FALSE;
 155.208 -            BOOL bScrollDown = FALSE;
 155.209 -
 155.210 -            p.x = msg->pt.x;
 155.211 -            p.y = msg->pt.y;
 155.212 -            VERIFY(::GetClientRect(GetHWnd(), &r));
 155.213 -
 155.214 -            if (p.x < 0) {
 155.215 -                bScrollLeft = TRUE;
 155.216 -                p.x = 0;
 155.217 -            } else if (p.x > r.right) {
 155.218 -                bScrollRight = TRUE;
 155.219 -                p.x = r.right - 1;
 155.220 -            }
 155.221 -            LONG lCurPos = EditGetCharFromPos(p);
 155.222 -
 155.223 -            if (GetStartSelectionPos() != -1 &&
 155.224 -                GetEndSelectionPos() != -1 &&
 155.225 -                lCurPos != GetLastSelectionPos()) {
 155.226 -
 155.227 -                CHARRANGE cr;
 155.228 -
 155.229 -                SetLastSelectionPos(lCurPos);
 155.230 -
 155.231 -                cr.cpMin = GetStartSelectionPos();
 155.232 -                cr.cpMax = GetLastSelectionPos();
 155.233 -
 155.234 -                EditSetSel(cr);
 155.235 -            }
 155.236 -
 155.237 -            if (bScrollLeft == TRUE || bScrollRight == TRUE) {
 155.238 -                SCROLLINFO si;
 155.239 -                memset(&si, 0, sizeof(si));
 155.240 -                si.cbSize = sizeof(si);
 155.241 -                si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE;
 155.242 -
 155.243 -                VERIFY(::GetScrollInfo(GetHWnd(), SB_HORZ, &si));
 155.244 -                if (bScrollLeft == TRUE) {
 155.245 -                    si.nPos = si.nPos - si.nPage / 2;
 155.246 -                    si.nPos = max(si.nMin, si.nPos);
 155.247 -                } else if (bScrollRight == TRUE) {
 155.248 -                    si.nPos = si.nPos + si.nPage / 2;
 155.249 -                    si.nPos = min(si.nPos, si.nMax);
 155.250 -                }
 155.251 -                /*
 155.252 -                 * Okay to use 16-bit position since RichEdit control adjusts
 155.253 -                 * its scrollbars so that their range is always 16-bit.
 155.254 -                 */
 155.255 -                DASSERT(abs(si.nPos) < 0x8000);
 155.256 -                SendMessage(WM_HSCROLL,
 155.257 -                            MAKEWPARAM(SB_THUMBPOSITION, LOWORD(si.nPos)));
 155.258 -            }
 155.259 -            delete msg;
 155.260 -            return mrConsume;
 155.261 +            DASSERT(abs(si.nPos) < 0x8000);
 155.262 +            SendMessage(WM_HSCROLL,
 155.263 +                        MAKEWPARAM(SB_THUMBPOSITION, LOWORD(si.nPos)));
 155.264          }
 155.265 +        delete msg;
 155.266 +        return mrConsume;
 155.267      }
 155.268      /*
 155.269       * Store the 'synthetic' parameter so that the WM_PASTE security check
   156.1 --- a/src/windows/native/sun/windows/awt_Toolkit.cpp	Tue Apr 14 00:05:07 2009 -0700
   156.2 +++ b/src/windows/native/sun/windows/awt_Toolkit.cpp	Tue Apr 14 04:21:02 2009 -0700
   156.3 @@ -56,6 +56,7 @@
   156.4  #include "debug_mem.h"
   156.5  
   156.6  #include "ComCtl32Util.h"
   156.7 +#include "DllUtil.h"
   156.8  
   156.9  #include "D3DPipelineManager.h"
  156.10  
  156.11 @@ -334,6 +335,8 @@
  156.12      m_mouseDown = FALSE;
  156.13  
  156.14      m_hGetMessageHook = 0;
  156.15 +    m_hMouseLLHook = 0;
  156.16 +    m_lastWindowUnderMouse = NULL;
  156.17      m_timer = 0;
  156.18  
  156.19      m_cmdIDs = new AwtCmdIDList();
  156.20 @@ -483,6 +486,7 @@
  156.21      tk.UnregisterClass();
  156.22  
  156.23      ::UnhookWindowsHookEx(tk.m_hGetMessageHook);
  156.24 +    UninstallMouseLowLevelHook();
  156.25  
  156.26      tk.m_mainThreadId = 0;
  156.27  
  156.28 @@ -960,6 +964,79 @@
  156.29      CATCH_BAD_ALLOC_RET(0);
  156.30  }
  156.31  
  156.32 +void AwtToolkit::InstallMouseLowLevelHook()
  156.33 +{
  156.34 +    // We need the low-level hook since we need to process mouse move
  156.35 +    // messages outside of our windows.
  156.36 +    m_hMouseLLHook = ::SetWindowsHookEx(WH_MOUSE_LL,
  156.37 +            (HOOKPROC)MouseLowLevelHook,
  156.38 +            GetModuleHandle(), NULL);
  156.39 +
  156.40 +    // Reset the old value
  156.41 +    m_lastWindowUnderMouse = NULL;
  156.42 +}
  156.43 +
  156.44 +void AwtToolkit::UninstallMouseLowLevelHook()
  156.45 +{
  156.46 +    if (m_hMouseLLHook != 0) {
  156.47 +        ::UnhookWindowsHookEx(m_hMouseLLHook);
  156.48 +        m_hMouseLLHook = 0;
  156.49 +    }
  156.50 +}
  156.51 +
  156.52 +LRESULT CALLBACK AwtToolkit::MouseLowLevelHook(int code,
  156.53 +        WPARAM wParam, LPARAM lParam)
  156.54 +{
  156.55 +    TRY;
  156.56 +
  156.57 +    if (code >= 0 && wParam == WM_MOUSEMOVE) {
  156.58 +        POINT pt = ((MSLLHOOKSTRUCT*)lParam)->pt;
  156.59 +
  156.60 +        // We can't use GA_ROOTOWNER since in this case we'll go up to
  156.61 +        // the root Java toplevel, not the actual owned toplevel.
  156.62 +        HWND hwnd = ::GetAncestor(::WindowFromPoint(pt), GA_ROOT);
  156.63 +
  156.64 +        AwtToolkit& tk = AwtToolkit::GetInstance();
  156.65 +
  156.66 +        if (tk.m_lastWindowUnderMouse != hwnd) {
  156.67 +            AwtWindow *fw = NULL, *tw = NULL;
  156.68 +
  156.69 +            if (tk.m_lastWindowUnderMouse) {
  156.70 +                fw = (AwtWindow*)
  156.71 +                    AwtComponent::GetComponent(tk.m_lastWindowUnderMouse);
  156.72 +            }
  156.73 +            if (hwnd) {
  156.74 +                tw = (AwtWindow*)AwtComponent::GetComponent(hwnd);
  156.75 +            }
  156.76 +
  156.77 +            tk.m_lastWindowUnderMouse = hwnd;
  156.78 +
  156.79 +            if (fw) {
  156.80 +                fw->UpdateSecurityWarningVisibility();
  156.81 +            }
  156.82 +            // ... however, because we use GA_ROOT, we may find the warningIcon
  156.83 +            // which is not a Java windows.
  156.84 +            if (AwtWindow::IsWarningWindow(hwnd)) {
  156.85 +                hwnd = ::GetParent(hwnd);
  156.86 +                if (hwnd) {
  156.87 +                    tw = (AwtWindow*)AwtComponent::GetComponent(hwnd);
  156.88 +                }
  156.89 +                tk.m_lastWindowUnderMouse = hwnd;
  156.90 +            }
  156.91 +            if (tw) {
  156.92 +                tw->UpdateSecurityWarningVisibility();
  156.93 +            }
  156.94 +
  156.95 +
  156.96 +        }
  156.97 +    }
  156.98 +
  156.99 +    return ::CallNextHookEx(AwtToolkit::GetInstance().m_hMouseLLHook, code,
 156.100 +            wParam, lParam);
 156.101 +
 156.102 +    CATCH_BAD_ALLOC_RET(0);
 156.103 +}
 156.104 +
 156.105  /*
 156.106   * The main message loop
 156.107   */
 156.108 @@ -1376,6 +1453,47 @@
 156.109      return defaultIconSm;
 156.110  }
 156.111  
 156.112 +HICON AwtToolkit::GetSecurityWarningIcon(UINT index, UINT w, UINT h)
 156.113 +{
 156.114 +    //Note: should not exceed 10 because of the current implementation.
 156.115 +    static const int securityWarningIconCounter = 3;
 156.116 +
 156.117 +    static HICON securityWarningIcon[securityWarningIconCounter]      = {NULL, NULL, NULL};;
 156.118 +    static UINT securityWarningIconWidth[securityWarningIconCounter]  = {0, 0, 0};
 156.119 +    static UINT securityWarningIconHeight[securityWarningIconCounter] = {0, 0, 0};
 156.120 +
 156.121 +    index = AwtToolkit::CalculateWave(index, securityWarningIconCounter);
 156.122 +
 156.123 +    if (securityWarningIcon[index] == NULL ||
 156.124 +            w != securityWarningIconWidth[index] ||
 156.125 +            h != securityWarningIconHeight[index])
 156.126 +    {
 156.127 +        if (securityWarningIcon[index] != NULL)
 156.128 +        {
 156.129 +            ::DestroyIcon(securityWarningIcon[index]);
 156.130 +        }
 156.131 +
 156.132 +        static const wchar_t securityWarningIconName[] = L"SECURITY_WARNING_";
 156.133 +        wchar_t iconResourceName[sizeof(securityWarningIconName) + 2];
 156.134 +        ::ZeroMemory(iconResourceName, sizeof(iconResourceName));
 156.135 +        wcscpy(iconResourceName, securityWarningIconName);
 156.136 +
 156.137 +        wchar_t strIndex[2];
 156.138 +        ::ZeroMemory(strIndex, sizeof(strIndex));
 156.139 +        strIndex[0] = L'0' + index;
 156.140 +
 156.141 +        wcscat(iconResourceName, strIndex);
 156.142 +
 156.143 +        securityWarningIcon[index] = (HICON)::LoadImage(GetModuleHandle(),
 156.144 +                iconResourceName,
 156.145 +                IMAGE_ICON, w, h, LR_DEFAULTCOLOR);
 156.146 +        securityWarningIconWidth[index] = w;
 156.147 +        securityWarningIconHeight[index] = h;
 156.148 +    }
 156.149 +
 156.150 +    return securityWarningIcon[index];
 156.151 +}
 156.152 +
 156.153  void AwtToolkit::SetHeapCheck(long flag) {
 156.154      if (flag) {
 156.155          printf("heap checking not supported with this build\n");
 156.156 @@ -1428,6 +1546,49 @@
 156.157          (JNIEnv*)JNU_GetEnv(jvm, JNI_VERSION_1_2) : m_env;
 156.158  }
 156.159  
 156.160 +BOOL AwtToolkit::GetScreenInsets(int screenNum, RECT * rect)
 156.161 +{
 156.162 +    /* if primary display */
 156.163 +    if (screenNum == 0) {
 156.164 +        RECT rRW;
 156.165 +        if (::SystemParametersInfo(SPI_GETWORKAREA,0,(void *) &rRW,0) == TRUE) {
 156.166 +            rect->top = rRW.top;
 156.167 +            rect->left = rRW.left;
 156.168 +            rect->bottom = ::GetSystemMetrics(SM_CYSCREEN) - rRW.bottom;
 156.169 +            rect->right = ::GetSystemMetrics(SM_CXSCREEN) - rRW.right;
 156.170 +            return TRUE;
 156.171 +        }
 156.172 +    }
 156.173 +    /* if additional display */
 156.174 +    else {
 156.175 +        MONITORINFO *miInfo;
 156.176 +        miInfo = AwtWin32GraphicsDevice::GetMonitorInfo(screenNum);
 156.177 +        if (miInfo) {
 156.178 +            rect->top = miInfo->rcWork.top    - miInfo->rcMonitor.top;
 156.179 +            rect->left = miInfo->rcWork.left   - miInfo->rcMonitor.left;
 156.180 +            rect->bottom = miInfo->rcMonitor.bottom - miInfo->rcWork.bottom;
 156.181 +            rect->right = miInfo->rcMonitor.right - miInfo->rcWork.right;
 156.182 +            return TRUE;
 156.183 +        }
 156.184 +    }
 156.185 +    return FALSE;
 156.186 +}
 156.187 +
 156.188 +
 156.189 +void AwtToolkit::GetWindowRect(HWND hWnd, LPRECT lpRect)
 156.190 +{
 156.191 +    try {
 156.192 +        if (S_OK == DwmAPI::DwmGetWindowAttribute(hWnd,
 156.193 +                DwmAPI::DWMWA_EXTENDED_FRAME_BOUNDS,
 156.194 +                lpRect, sizeof(*lpRect)))
 156.195 +        {
 156.196 +            return;
 156.197 +        }
 156.198 +    } catch (const DllUtil::Exception &) {}
 156.199 +
 156.200 +    ::GetWindowRect(hWnd, lpRect);
 156.201 +}
 156.202 +
 156.203  /************************************************************************
 156.204   * Toolkit native methods
 156.205   */
 156.206 @@ -1756,7 +1917,6 @@
 156.207      CATCH_BAD_ALLOC_RET(0);
 156.208  }
 156.209  
 156.210 -
 156.211  /*
 156.212   * Class:     sun_awt_windows_WToolkit
 156.213   * Method:    getSreenInsets
 156.214 @@ -1768,34 +1928,17 @@
 156.215                                                jint screen)
 156.216  {
 156.217      jobject insets = NULL;
 156.218 -    RECT rRW;
 156.219 -    LPMONITORINFO miInfo;
 156.220 +    RECT rect;
 156.221  
 156.222      TRY;
 156.223  
 156.224 -/* if primary display */
 156.225 -   if (screen == 0) {
 156.226 -      if (::SystemParametersInfo(SPI_GETWORKAREA,0,(void *) &rRW,0) == TRUE) {
 156.227 -          insets = env->NewObject(env->FindClass("java/awt/Insets"),
 156.228 -             AwtToolkit::insetsMID,
 156.229 -             rRW.top,
 156.230 -             rRW.left,
 156.231 -             ::GetSystemMetrics(SM_CYSCREEN) - rRW.bottom,
 156.232 -             ::GetSystemMetrics(SM_CXSCREEN) - rRW.right);
 156.233 -      }
 156.234 -    }
 156.235 -
 156.236 -/* if additional display */
 156.237 -    else {
 156.238 -        miInfo = AwtWin32GraphicsDevice::GetMonitorInfo(screen);
 156.239 -        if (miInfo) {
 156.240 -            insets = env->NewObject(env->FindClass("java/awt/Insets"),
 156.241 +    if (AwtToolkit::GetScreenInsets(screen, &rect)) {
 156.242 +        insets = env->NewObject(env->FindClass("java/awt/Insets"),
 156.243                  AwtToolkit::insetsMID,
 156.244 -                miInfo->rcWork.top - miInfo->rcMonitor.top,
 156.245 -                miInfo->rcWork.left - miInfo->rcMonitor.left,
 156.246 -                miInfo->rcMonitor.bottom - miInfo->rcWork.bottom,
 156.247 -                miInfo->rcMonitor.right - miInfo->rcWork.right);
 156.248 -        }
 156.249 +                rect.top,
 156.250 +                rect.left,
 156.251 +                rect.bottom,
 156.252 +                rect.right);
 156.253      }
 156.254  
 156.255      if (safe_ExceptionOccurred(env)) {
   157.1 --- a/src/windows/native/sun/windows/awt_Toolkit.h	Tue Apr 14 00:05:07 2009 -0700
   157.2 +++ b/src/windows/native/sun/windows/awt_Toolkit.h	Tue Apr 14 04:21:02 2009 -0700
   157.3 @@ -210,6 +210,8 @@
   157.4                                               LPARAM lParam);
   157.5      static LRESULT CALLBACK ForegroundIdleFilter(int code, WPARAM wParam,
   157.6                                                   LPARAM lParam);
   157.7 +    static LRESULT CALLBACK MouseLowLevelHook(int code, WPARAM wParam,
   157.8 +            LPARAM lParam);
   157.9  
  157.10      INLINE static AwtToolkit& GetInstance() { return theInstance; }
  157.11      INLINE void SetPeer(JNIEnv *env, jobject wToolkit) {
  157.12 @@ -311,6 +313,30 @@
  157.13      HICON GetAwtIcon();
  157.14      HICON GetAwtIconSm();
  157.15  
  157.16 +    // Calculate a wave-like value out of the integer 'value' and
  157.17 +    // the specified period.
  157.18 +    // The argument 'value' is an integer 0, 1, 2, ... *infinity*.
  157.19 +    //
  157.20 +    // Examples:
  157.21 +    //    Period == 3
  157.22 +    //    Generated sequence: 0 1 2 1 0 .....
  157.23 +    //
  157.24 +    //    Period == 4
  157.25 +    //    Generated sequence: 0 1 2 3 2 1 0 .....
  157.26 +    static inline UINT CalculateWave(UINT value, const UINT period) {
  157.27 +        if (period < 2) {
  157.28 +            return 0;
  157.29 +        }
  157.30 +        // -2 is necessary to avoid repeating extreme values (0 and period-1)
  157.31 +        value %= period * 2 -2;
  157.32 +        if (value >= period) {
  157.33 +            value = period * 2 -2 - value;
  157.34 +        }
  157.35 +        return value;
  157.36 +    }
  157.37 +
  157.38 +    HICON GetSecurityWarningIcon(UINT index, UINT w, UINT h);
  157.39 +
  157.40      /* Turns on/off dialog modality for the system. */
  157.41      INLINE AwtDialog* SetModal(AwtDialog* frame) {
  157.42          AwtDialog* previousDialog = m_pModalDialog;
  157.43 @@ -368,6 +394,7 @@
  157.44      BOOL                m_mouseDown;
  157.45  
  157.46      HHOOK m_hGetMessageHook;
  157.47 +    HHOOK m_hMouseLLHook;
  157.48      UINT_PTR  m_timer;
  157.49  
  157.50      class AwtCmdIDList* m_cmdIDs;
  157.51 @@ -411,6 +438,24 @@
  157.52   public:
  157.53      static void SetEnv(JNIEnv *env);
  157.54      static JNIEnv* GetEnv();
  157.55 +
  157.56 +    static BOOL GetScreenInsets(int screenNum, RECT * rect);
  157.57 +
  157.58 +    // If the DWM is active, this function uses
  157.59 +    // DwmGetWindowAttribute()/DWMWA_EXTENDED_FRAME_BOUNDS.
  157.60 +    // Otherwise, fall back to regular ::GetWindowRect().
  157.61 +    // See 6711576 for more details.
  157.62 +    static void GetWindowRect(HWND hWnd, LPRECT lpRect);
  157.63 +
  157.64 + private:
  157.65 +    // The window handle of a toplevel window last seen under the mouse cursor.
  157.66 +    // See MouseLowLevelHook() for details.
  157.67 +    HWND m_lastWindowUnderMouse;
  157.68 + public:
  157.69 +    HWND GetWindowUnderMouse() { return m_lastWindowUnderMouse; }
  157.70 +
  157.71 +    void InstallMouseLowLevelHook();
  157.72 +    void UninstallMouseLowLevelHook();
  157.73  };
  157.74  
  157.75  /*
   158.1 --- a/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp	Tue Apr 14 00:05:07 2009 -0700
   158.2 +++ b/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp	Tue Apr 14 04:21:02 2009 -0700
   158.3 @@ -29,6 +29,7 @@
   158.4  #include "awt_Win32GraphicsDevice.h"
   158.5  #include "Devices.h"
   158.6  #include "WindowsFlags.h"
   158.7 +#include "DllUtil.h"
   158.8  
   158.9  BOOL DWMIsCompositionEnabled();
  158.10  
  158.11 @@ -89,13 +90,8 @@
  158.12  /**
  158.13   * Returns true if dwm composition is enabled, false if it is not applicable
  158.14   * (if the OS is not Vista) or dwm composition is disabled.
  158.15 - *
  158.16 - * Note: since DWM composition state changes are very rare we load/unload the
  158.17 - * dll on every change.
  158.18   */
  158.19  BOOL DWMIsCompositionEnabled() {
  158.20 -    typedef HRESULT (WINAPI DwmIsCompositionEnabledFunc)(BOOL*);
  158.21 -
  158.22      // cheaper to check than whether it's vista or not
  158.23      if (dwmIsCompositionEnabled != DWM_COMP_UNDEFINED) {
  158.24          return (BOOL)dwmIsCompositionEnabled;
  158.25 @@ -107,32 +103,22 @@
  158.26      }
  158.27  
  158.28      BOOL bRes = FALSE;
  158.29 -    HMODULE hDwmApiDll = ::LoadLibrary(TEXT("dwmapi.dll"));
  158.30  
  158.31 -    if (hDwmApiDll != NULL) {
  158.32 -        DwmIsCompositionEnabledFunc *lpDwmIsCompEnabled =
  158.33 -            (DwmIsCompositionEnabledFunc*)
  158.34 -                GetProcAddress(hDwmApiDll, "DwmIsCompositionEnabled");
  158.35 -        if (lpDwmIsCompEnabled != NULL) {
  158.36 -            BOOL bEnabled;
  158.37 -            HRESULT res = lpDwmIsCompEnabled(&bEnabled);
  158.38 -            if (SUCCEEDED(res)) {
  158.39 -                bRes = bEnabled;
  158.40 -                J2dTraceLn1(J2D_TRACE_VERBOSE, " composition enabled: %d",bRes);
  158.41 -            } else {
  158.42 -                J2dTraceLn1(J2D_TRACE_ERROR,
  158.43 -                            "IsDWMCompositionEnabled: error %x when detecting"\
  158.44 -                            "if composition is enabled", res);
  158.45 -            }
  158.46 +    try {
  158.47 +        BOOL bEnabled;
  158.48 +        HRESULT res = DwmAPI::DwmIsCompositionEnabled(&bEnabled);
  158.49 +        if (SUCCEEDED(res)) {
  158.50 +            bRes = bEnabled;
  158.51 +            J2dTraceLn1(J2D_TRACE_VERBOSE, " composition enabled: %d",bRes);
  158.52          } else {
  158.53 -            J2dTraceLn(J2D_TRACE_ERROR,
  158.54 -                       "IsDWMCompositionEnabled: no DwmIsCompositionEnabled() "\
  158.55 -                       "in dwmapi.dll");
  158.56 +            J2dTraceLn1(J2D_TRACE_ERROR,
  158.57 +                    "IsDWMCompositionEnabled: error %x when detecting"\
  158.58 +                    "if composition is enabled", res);
  158.59          }
  158.60 -        ::FreeLibrary(hDwmApiDll);
  158.61 -    } else {
  158.62 +    } catch (const DllUtil::Exception &) {
  158.63          J2dTraceLn(J2D_TRACE_ERROR,
  158.64 -                   "IsDWMCompositionEnabled: error opening dwmapi.dll");
  158.65 +                "IsDWMCompositionEnabled: no DwmIsCompositionEnabled() "\
  158.66 +                "in dwmapi.dll or dwmapi.dll cannot be loaded");
  158.67      }
  158.68  
  158.69      dwmIsCompositionEnabled = bRes;
   159.1 --- a/src/windows/native/sun/windows/awt_Window.cpp	Tue Apr 14 00:05:07 2009 -0700
   159.2 +++ b/src/windows/native/sun/windows/awt_Window.cpp	Tue Apr 14 04:21:02 2009 -0700
   159.3 @@ -1,5 +1,5 @@
   159.4  /*
   159.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   159.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   159.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   159.8   *
   159.9   * This code is free software; you can redistribute it and/or modify it
  159.10 @@ -25,9 +25,12 @@
  159.11  
  159.12  #include "awt.h"
  159.13  
  159.14 +#include <jlong.h>
  159.15 +
  159.16  #include "awt_Component.h"
  159.17  #include "awt_Container.h"
  159.18  #include "awt_Frame.h"
  159.19 +#include "awt_Dialog.h"
  159.20  #include "awt_Insets.h"
  159.21  #include "awt_Panel.h"
  159.22  #include "awt_Toolkit.h"
  159.23 @@ -35,6 +38,7 @@
  159.24  #include "awt_Win32GraphicsDevice.h"
  159.25  #include "awt_BitmapUtil.h"
  159.26  #include "awt_IconCursor.h"
  159.27 +#include "ComCtl32Util.h"
  159.28  
  159.29  #include "java_awt_Insets.h"
  159.30  #include <java_awt_Container.h>
  159.31 @@ -88,7 +92,6 @@
  159.32      jint x, y;
  159.33      jint w, h;
  159.34  };
  159.35 -
  159.36  // struct for _SetIconImagesData
  159.37  struct SetIconImagesDataStruct {
  159.38      jobject window;
  159.39 @@ -97,7 +100,6 @@
  159.40      jintArray smallIconRaster;
  159.41      jint smw, smh;
  159.42  };
  159.43 -
  159.44  // struct for _SetMinSize() method
  159.45  // and other methods setting sizes
  159.46  struct SizeStruct {
  159.47 @@ -114,6 +116,34 @@
  159.48      jobject window;
  159.49      jlong blockerHWnd;
  159.50  };
  159.51 +// struct for _SetOpacity() method
  159.52 +struct OpacityStruct {
  159.53 +    jobject window;
  159.54 +    jint iOpacity;
  159.55 +};
  159.56 +// struct for _SetOpaque() method
  159.57 +struct OpaqueStruct {
  159.58 +    jobject window;
  159.59 +    jboolean isOpaque;
  159.60 +};
  159.61 +// struct for _UpdateWindow() method
  159.62 +struct UpdateWindowStruct {
  159.63 +    jobject window;
  159.64 +    jintArray data;
  159.65 +    HBITMAP hBitmap;
  159.66 +    jint width, height;
  159.67 +};
  159.68 +// Struct for _RequestWindowFocus() method
  159.69 +struct RequestWindowFocusStruct {
  159.70 +    jobject component;
  159.71 +    jboolean isMouseEventCause;
  159.72 +};
  159.73 +// struct for _RepositionSecurityWarning() method
  159.74 +struct RepositionSecurityWarningStruct {
  159.75 +    jobject window;
  159.76 +};
  159.77 +
  159.78 +
  159.79  /************************************************************************
  159.80   * AwtWindow fields
  159.81   */
  159.82 @@ -121,17 +151,23 @@
  159.83  jfieldID AwtWindow::warningStringID;
  159.84  jfieldID AwtWindow::locationByPlatformID;
  159.85  jfieldID AwtWindow::autoRequestFocusID;
  159.86 +jfieldID AwtWindow::securityWarningWidthID;
  159.87 +jfieldID AwtWindow::securityWarningHeightID;
  159.88  
  159.89  jfieldID AwtWindow::sysXID;
  159.90  jfieldID AwtWindow::sysYID;
  159.91  jfieldID AwtWindow::sysWID;
  159.92  jfieldID AwtWindow::sysHID;
  159.93  
  159.94 +jmethodID AwtWindow::getWarningStringMID;
  159.95 +jmethodID AwtWindow::calculateSecurityWarningPositionMID;
  159.96 +
  159.97  int AwtWindow::ms_instanceCounter = 0;
  159.98  HHOOK AwtWindow::ms_hCBTFilter;
  159.99  AwtWindow * AwtWindow::m_grabbedWindow = NULL;
 159.100  HWND AwtWindow::sm_retainingHierarchyZOrderInShow = NULL;
 159.101  BOOL AwtWindow::sm_resizing = FALSE;
 159.102 +UINT AwtWindow::untrustedWindowsCounter = 0;
 159.103  
 159.104  /************************************************************************
 159.105   * AwtWindow class methods
 159.106 @@ -162,10 +198,34 @@
 159.107              ::SetWindowsHookEx(WH_CBT, (HOOKPROC)AwtWindow::CBTFilter,
 159.108                                 0, AwtToolkit::MainThread());
 159.109      }
 159.110 +
 159.111 +    m_opaque = TRUE;
 159.112 +    m_opacity = 0xff;
 159.113 +
 159.114 +
 159.115 +    warningString = NULL;
 159.116 +    warningWindow = NULL;
 159.117 +    securityTooltipWindow = NULL;
 159.118 +    securityWarningAnimationStage = 0;
 159.119 +    currentWmSizeState = SIZE_RESTORED;
 159.120 +
 159.121 +    hContentBitmap = NULL;
 159.122 +
 159.123 +    ::InitializeCriticalSection(&contentBitmapCS);
 159.124  }
 159.125  
 159.126  AwtWindow::~AwtWindow()
 159.127  {
 159.128 +    if (warningString != NULL) {
 159.129 +        delete [] warningString;
 159.130 +    }
 159.131 +    ::EnterCriticalSection(&contentBitmapCS);
 159.132 +    if (hContentBitmap != NULL) {
 159.133 +        ::DeleteObject(hContentBitmap);
 159.134 +        hContentBitmap = NULL;
 159.135 +    }
 159.136 +    ::LeaveCriticalSection(&contentBitmapCS);
 159.137 +    ::DeleteCriticalSection(&contentBitmapCS);
 159.138  }
 159.139  
 159.140  void AwtWindow::Dispose()
 159.141 @@ -204,10 +264,10 @@
 159.142      }
 159.143      m_grabbed = TRUE;
 159.144      m_grabbedWindow = this;
 159.145 -    if (sm_focusedWindow == NULL && IsFocusableWindow()) {
 159.146 +    if (AwtComponent::GetFocusedWindow() == NULL && IsFocusableWindow()) {
 159.147          // we shouldn't perform grab in this case (see 4841881 & 6539458)
 159.148          Ungrab();
 159.149 -    } else if (GetHWnd() != sm_focusedWindow) {
 159.150 +    } else if (GetHWnd() != AwtComponent::GetFocusedWindow()) {
 159.151          _ToFront(env->NewGlobalRef(GetPeer(env)));
 159.152          // Global ref was deleted in _ToFront
 159.153      }
 159.154 @@ -301,12 +361,40 @@
 159.155      return mrDoDefault;
 159.156  }
 159.157  
 159.158 +void AwtWindow::RepositionSecurityWarning(JNIEnv *env)
 159.159 +{
 159.160 +    RECT rect;
 159.161 +    CalculateWarningWindowBounds(env, &rect);
 159.162 +
 159.163 +    ::SetWindowPos(warningWindow, HWND_NOTOPMOST,
 159.164 +            rect.left, rect.top,
 159.165 +            rect.right - rect.left, rect.bottom - rect.top,
 159.166 +            SWP_ASYNCWINDOWPOS | SWP_NOACTIVATE | SWP_NOZORDER
 159.167 +            );
 159.168 +}
 159.169 +
 159.170  MsgRouting AwtWindow::WmWindowPosChanged(LPARAM windowPos) {
 159.171 -    if (IsRetainingHierarchyZOrder() && ((WINDOWPOS *)windowPos)->flags & SWP_SHOWWINDOW) {
 159.172 +    WINDOWPOS * wp = (WINDOWPOS *)windowPos;
 159.173 +
 159.174 +    if (IsRetainingHierarchyZOrder() && wp->flags & SWP_SHOWWINDOW) {
 159.175          // By this time all the windows from the hierarchy are already notified about z-order change.
 159.176          // Thus we may and we should reset the trigger in order not to affect other changes.
 159.177          sm_retainingHierarchyZOrderInShow = NULL;
 159.178      }
 159.179 +
 159.180 +    // Reposition the warning window
 159.181 +    if (IsUntrusted() && warningWindow != NULL) {
 159.182 +        if (wp->flags & SWP_HIDEWINDOW) {
 159.183 +            UpdateSecurityWarningVisibility();
 159.184 +        }
 159.185 +
 159.186 +        RepositionSecurityWarning((JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2));
 159.187 +
 159.188 +        if (wp->flags & SWP_SHOWWINDOW) {
 159.189 +            UpdateSecurityWarningVisibility();
 159.190 +        }
 159.191 +    }
 159.192 +
 159.193      return mrDoDefault;
 159.194  }
 159.195  
 159.196 @@ -326,21 +414,597 @@
 159.197      lpwc->cbWndExtra = DLGWINDOWEXTRA;
 159.198  }
 159.199  
 159.200 +bool AwtWindow::IsWarningWindow(HWND hWnd)
 159.201 +{
 159.202 +    const UINT len = 128;
 159.203 +    TCHAR windowClassName[len];
 159.204 +
 159.205 +    ::RealGetWindowClass(hWnd, windowClassName, len);
 159.206 +    return 0 == _tcsncmp(windowClassName,
 159.207 +            AwtWindow::GetWarningWindowClassName(), len);
 159.208 +}
 159.209 +
 159.210  LRESULT CALLBACK AwtWindow::CBTFilter(int nCode, WPARAM wParam, LPARAM lParam)
 159.211  {
 159.212      if (nCode == HCBT_ACTIVATE || nCode == HCBT_SETFOCUS) {
 159.213 -        AwtComponent *comp = AwtComponent::GetComponent((HWND)wParam);
 159.214 -
 159.215 -        if (comp != NULL && comp->IsTopLevel()) {
 159.216 -            AwtWindow* win = (AwtWindow*)comp;
 159.217 -            if (!win->IsFocusableWindow() || win->m_filterFocusAndActivation) {
 159.218 -                return 1; // Don't change focus/activation.
 159.219 +        HWND hWnd = (HWND)wParam;
 159.220 +        AwtComponent *comp = AwtComponent::GetComponent(hWnd);
 159.221 +
 159.222 +        if (comp == NULL) {
 159.223 +            // Check if it's a security warning icon
 159.224 +            // See: 5091224, 6181725, 6732583
 159.225 +            if (AwtWindow::IsWarningWindow(hWnd)) {
 159.226 +                return 1;
 159.227 +            }
 159.228 +        } else {
 159.229 +            if (comp->IsTopLevel()) {
 159.230 +                AwtWindow* win = (AwtWindow*)comp;
 159.231 +
 159.232 +                if (!win->IsFocusableWindow() ||
 159.233 +                        win->m_filterFocusAndActivation)
 159.234 +                {
 159.235 +                    return 1; // Don't change focus/activation.
 159.236 +                }
 159.237              }
 159.238          }
 159.239      }
 159.240      return ::CallNextHookEx(AwtWindow::ms_hCBTFilter, nCode, wParam, lParam);
 159.241  }
 159.242  
 159.243 +void AwtWindow::InitSecurityWarningSize(JNIEnv *env)
 159.244 +{
 159.245 +    warningWindowWidth = ::GetSystemMetrics(SM_CXSMICON);
 159.246 +    warningWindowHeight = ::GetSystemMetrics(SM_CYSMICON);
 159.247 +
 159.248 +    jobject target = GetTarget(env);
 159.249 +
 159.250 +    env->SetIntField(target, AwtWindow::securityWarningWidthID,
 159.251 +            warningWindowWidth);
 159.252 +    env->SetIntField(target, AwtWindow::securityWarningHeightID,
 159.253 +            warningWindowHeight);
 159.254 +
 159.255 +    env->DeleteLocalRef(target);
 159.256 +}
 159.257 +
 159.258 +void AwtWindow::CreateHWnd(JNIEnv *env, LPCWSTR title,
 159.259 +        DWORD windowStyle,
 159.260 +        DWORD windowExStyle,
 159.261 +        int x, int y, int w, int h,
 159.262 +        HWND hWndParent, HMENU hMenu,
 159.263 +        COLORREF colorForeground,
 159.264 +        COLORREF colorBackground,
 159.265 +        jobject peer)
 159.266 +{
 159.267 +    // Retrieve the warning string
 159.268 +    // Note: we need to get it before CreateHWnd() happens because
 159.269 +    // the isUntrusted() method may be invoked while the HWND
 159.270 +    // is being created in response to some window messages.
 159.271 +    jobject target = env->GetObjectField(peer, AwtObject::targetID);
 159.272 +    jstring javaWarningString =
 159.273 +        (jstring)env->CallObjectMethod(target, AwtWindow::getWarningStringMID);
 159.274 +
 159.275 +    if (javaWarningString != NULL) {
 159.276 +        size_t length = env->GetStringLength(javaWarningString) + 1;
 159.277 +        warningString = new WCHAR[length];
 159.278 +        env->GetStringRegion(javaWarningString, 0,
 159.279 +                static_cast<jsize>(length - 1), warningString);
 159.280 +        warningString[length-1] = L'\0';
 159.281 +
 159.282 +        env->DeleteLocalRef(javaWarningString);
 159.283 +    }
 159.284 +    env->DeleteLocalRef(target);
 159.285 +
 159.286 +    AwtCanvas::CreateHWnd(env, title,
 159.287 +            windowStyle,
 159.288 +            windowExStyle,
 159.289 +            x, y, w, h,
 159.290 +            hWndParent, hMenu,
 159.291 +            colorForeground,
 159.292 +            colorBackground,
 159.293 +            peer);
 159.294 +
 159.295 +    // Now we need to create the warning window.
 159.296 +    CreateWarningWindow(env);
 159.297 +}
 159.298 +
 159.299 +void AwtWindow::CreateWarningWindow(JNIEnv *env)
 159.300 +{
 159.301 +    if (!IsUntrusted()) {
 159.302 +        return;
 159.303 +    }
 159.304 +
 159.305 +    if (++AwtWindow::untrustedWindowsCounter == 1) {
 159.306 +        AwtToolkit::GetInstance().InstallMouseLowLevelHook();
 159.307 +    }
 159.308 +
 159.309 +    InitSecurityWarningSize(env);
 159.310 +
 159.311 +    RECT rect;
 159.312 +    CalculateWarningWindowBounds(env, &rect);
 159.313 +
 159.314 +    RegisterWarningWindowClass();
 159.315 +    warningWindow = ::CreateWindowEx(
 159.316 +            WS_EX_NOACTIVATE | WS_EX_LAYERED,
 159.317 +            GetWarningWindowClassName(),
 159.318 +            warningString,
 159.319 +            WS_POPUP,
 159.320 +            rect.left, rect.top,
 159.321 +            rect.right - rect.left, rect.bottom - rect.top,
 159.322 +            GetHWnd(), // owner
 159.323 +            NULL, // menu
 159.324 +            AwtToolkit::GetInstance().GetModuleHandle(),
 159.325 +            NULL // lParam
 159.326 +            );
 159.327 +    if (warningWindow == NULL) {
 159.328 +        //XXX: actually this is bad... We didn't manage to create the widow.
 159.329 +        return;
 159.330 +    }
 159.331 +
 159.332 +    HICON hIcon = GetSecurityWarningIcon();
 159.333 +
 159.334 +    ICONINFO ii;
 159.335 +    ::GetIconInfo(hIcon, &ii);
 159.336 +
 159.337 +    //Note: we assume that every security icon has exactly the same shape.
 159.338 +    HRGN rgn = BitmapUtil::BitmapToRgn(ii.hbmColor);
 159.339 +    if (rgn) {
 159.340 +        ::SetWindowRgn(warningWindow, rgn, TRUE);
 159.341 +    }
 159.342 +
 159.343 +    // Now we need to create the tooltip control for this window.
 159.344 +    if (!ComCtl32Util::GetInstance().IsToolTipControlInitialized()) {
 159.345 +        return;
 159.346 +    }
 159.347 +
 159.348 +    securityTooltipWindow = ::CreateWindowEx(
 159.349 +            WS_EX_TOPMOST,
 159.350 +            TOOLTIPS_CLASS,
 159.351 +            NULL,
 159.352 +            WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,
 159.353 +            CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
 159.354 +            warningWindow,
 159.355 +            NULL,
 159.356 +            AwtToolkit::GetInstance().GetModuleHandle(),
 159.357 +            NULL
 159.358 +            );
 159.359 +
 159.360 +    ::SetWindowPos(securityTooltipWindow,
 159.361 +            HWND_TOPMOST, 0, 0, 0, 0,
 159.362 +            SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
 159.363 +
 159.364 +
 159.365 +    // We currently don't expect changing the size of the window,
 159.366 +    // hence we may not care of updating the TOOL position/size.
 159.367 +    ::GetClientRect(warningWindow, &rect);
 159.368 +
 159.369 +    TOOLINFO ti;
 159.370 +
 159.371 +    ti.cbSize = sizeof(ti);
 159.372 +    ti.uFlags = TTF_SUBCLASS;
 159.373 +    ti.hwnd = warningWindow;
 159.374 +    ti.hinst = AwtToolkit::GetInstance().GetModuleHandle();
 159.375 +    ti.uId = 0;
 159.376 +    ti.lpszText = warningString;
 159.377 +    ti.rect.left = rect.left;
 159.378 +    ti.rect.top = rect.top;
 159.379 +    ti.rect.right = rect.right;
 159.380 +    ti.rect.bottom = rect.bottom;
 159.381 +
 159.382 +    ::SendMessage(securityTooltipWindow, TTM_ADDTOOL,
 159.383 +            0, (LPARAM) (LPTOOLINFO) &ti);
 159.384 +}
 159.385 +
 159.386 +void AwtWindow::DestroyWarningWindow()
 159.387 +{
 159.388 +    if (!IsUntrusted()) {
 159.389 +        return;
 159.390 +    }
 159.391 +    if (--AwtWindow::untrustedWindowsCounter == 0) {
 159.392 +        AwtToolkit::GetInstance().UninstallMouseLowLevelHook();
 159.393 +    }
 159.394 +    if (warningWindow != NULL) {
 159.395 +        // Note that the warningWindow is an owned window, and hence
 159.396 +        // it would be destroyed automatically. However, the window
 159.397 +        // class may only be unregistered if there's no any single
 159.398 +        // window left using this class. Thus, we're destroying the
 159.399 +        // warning window manually. Note that the tooltip window
 159.400 +        // will be destroyed automatically because it's an owned
 159.401 +        // window as well.
 159.402 +        ::DestroyWindow(warningWindow);
 159.403 +        warningWindow = NULL;
 159.404 +        securityTooltipWindow = NULL;
 159.405 +        UnregisterWarningWindowClass();
 159.406 +    }
 159.407 +}
 159.408 +
 159.409 +void AwtWindow::DestroyHWnd()
 159.410 +{
 159.411 +    DestroyWarningWindow();
 159.412 +    AwtCanvas::DestroyHWnd();
 159.413 +}
 159.414 +
 159.415 +LPCTSTR AwtWindow::GetWarningWindowClassName()
 159.416 +{
 159.417 +    return TEXT("SunAwtWarningWindow");
 159.418 +}
 159.419 +
 159.420 +void AwtWindow::FillWarningWindowClassInfo(WNDCLASS *lpwc)
 159.421 +{
 159.422 +    lpwc->style         = 0L;
 159.423 +    lpwc->lpfnWndProc   = (WNDPROC)WarningWindowProc;
 159.424 +    lpwc->cbClsExtra    = 0;
 159.425 +    lpwc->cbWndExtra    = 0;
 159.426 +    lpwc->hInstance     = AwtToolkit::GetInstance().GetModuleHandle(),
 159.427 +    lpwc->hIcon         = AwtToolkit::GetInstance().GetAwtIcon();
 159.428 +    lpwc->hCursor       = ::LoadCursor(NULL, IDC_ARROW);
 159.429 +    lpwc->hbrBackground = NULL;
 159.430 +    lpwc->lpszMenuName  = NULL;
 159.431 +    lpwc->lpszClassName = AwtWindow::GetWarningWindowClassName();
 159.432 +}
 159.433 +
 159.434 +void AwtWindow::RegisterWarningWindowClass()
 159.435 +{
 159.436 +    WNDCLASS  wc;
 159.437 +
 159.438 +    ::ZeroMemory(&wc, sizeof(wc));
 159.439 +
 159.440 +    if (!::GetClassInfo(AwtToolkit::GetInstance().GetModuleHandle(),
 159.441 +                        AwtWindow::GetWarningWindowClassName(), &wc))
 159.442 +    {
 159.443 +        AwtWindow::FillWarningWindowClassInfo(&wc);
 159.444 +        ATOM atom = ::RegisterClass(&wc);
 159.445 +        DASSERT(atom != 0);
 159.446 +    }
 159.447 +}
 159.448 +
 159.449 +void AwtWindow::UnregisterWarningWindowClass()
 159.450 +{
 159.451 +    ::UnregisterClass(AwtWindow::GetWarningWindowClassName(), AwtToolkit::GetInstance().GetModuleHandle());
 159.452 +}
 159.453 +
 159.454 +HICON AwtWindow::GetSecurityWarningIcon()
 159.455 +{
 159.456 +    HICON ico = AwtToolkit::GetInstance().GetSecurityWarningIcon(securityWarningAnimationStage,
 159.457 +            warningWindowWidth, warningWindowHeight);
 159.458 +    return ico;
 159.459 +}
 159.460 +
 159.461 +// This function calculates the bounds of the warning window and stores them
 159.462 +// into the RECT structure pointed by the argument rect.
 159.463 +void AwtWindow::CalculateWarningWindowBounds(JNIEnv *env, LPRECT rect)
 159.464 +{
 159.465 +    RECT windowBounds;
 159.466 +    AwtToolkit::GetWindowRect(GetHWnd(), &windowBounds);
 159.467 +
 159.468 +    jobject target = GetTarget(env);
 159.469 +    jobject point2D = env->CallObjectMethod(target,
 159.470 +            calculateSecurityWarningPositionMID,
 159.471 +            (jdouble)windowBounds.left, (jdouble)windowBounds.top,
 159.472 +            (jdouble)(windowBounds.right - windowBounds.left),
 159.473 +            (jdouble)(windowBounds.bottom - windowBounds.top));
 159.474 +    env->DeleteLocalRef(target);
 159.475 +
 159.476 +    static jclass point2DClassID = NULL;
 159.477 +    static jmethodID point2DGetXMID = NULL;
 159.478 +    static jmethodID point2DGetYMID = NULL;
 159.479 +
 159.480 +    if (point2DClassID == NULL) {
 159.481 +        jclass point2DClassIDLocal = env->FindClass("java/awt/geom/Point2D");
 159.482 +        point2DClassID = (jclass)env->NewGlobalRef(point2DClassIDLocal);
 159.483 +        env->DeleteLocalRef(point2DClassIDLocal);
 159.484 +    }
 159.485 +
 159.486 +    if (point2DGetXMID == NULL) {
 159.487 +        point2DGetXMID = env->GetMethodID(point2DClassID, "getX", "()D");
 159.488 +    }
 159.489 +    if (point2DGetYMID == NULL) {
 159.490 +        point2DGetYMID = env->GetMethodID(point2DClassID, "getY", "()D");
 159.491 +    }
 159.492 +
 159.493 +
 159.494 +    int x = (int)env->CallDoubleMethod(point2D, point2DGetXMID);
 159.495 +    int y = (int)env->CallDoubleMethod(point2D, point2DGetYMID);
 159.496 +
 159.497 +    env->DeleteLocalRef(point2D);
 159.498 +
 159.499 +    //Make sure the warning is not far from the window bounds
 159.500 +    x = max(x, windowBounds.left - (int)warningWindowWidth - 2);
 159.501 +    x = min(x, windowBounds.right + (int)warningWindowWidth + 2);
 159.502 +
 159.503 +    y = max(y, windowBounds.top - (int)warningWindowHeight - 2);
 159.504 +    y = min(y, windowBounds.bottom + (int)warningWindowHeight + 2);
 159.505 +
 159.506 +    // Now make sure the warning window is visible on the screen
 159.507 +    HMONITOR hmon = MonitorFromWindow(GetHWnd(), MONITOR_DEFAULTTOPRIMARY);
 159.508 +    DASSERT(hmon != NULL);
 159.509 +
 159.510 +    RECT monitorBounds;
 159.511 +    RECT monitorInsets;
 159.512 +
 159.513 +    MonitorBounds(hmon, &monitorBounds);
 159.514 +    if (!AwtToolkit::GetScreenInsets(m_screenNum, &monitorInsets)) {
 159.515 +        ::ZeroMemory(&monitorInsets, sizeof(monitorInsets));
 159.516 +    }
 159.517 +
 159.518 +    x = max(x, monitorBounds.left + monitorInsets.left);
 159.519 +    x = min(x, monitorBounds.right - monitorInsets.right - (int)warningWindowWidth);
 159.520 +
 159.521 +    y = max(y, monitorBounds.top + monitorInsets.top);
 159.522 +    y = min(y, monitorBounds.bottom - monitorInsets.bottom - (int)warningWindowHeight);
 159.523 +
 159.524 +    rect->left = x;
 159.525 +    rect->top = y;
 159.526 +    rect->right = rect->left + warningWindowWidth;
 159.527 +    rect->bottom = rect->top + warningWindowHeight;
 159.528 +}
 159.529 +
 159.530 +LRESULT CALLBACK AwtWindow::WarningWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 159.531 +{
 159.532 +    switch (uMsg) {
 159.533 +        case WM_PAINT:
 159.534 +            PaintWarningWindow(hwnd);
 159.535 +            return 0;
 159.536 +
 159.537 +        case WM_MOUSEACTIVATE:
 159.538 +            {
 159.539 +                // Retrive the owner of the warning window.
 159.540 +                HWND javaWindow = ::GetParent(hwnd);
 159.541 +                if (javaWindow) {
 159.542 +                    // If the window is blocked by a modal dialog, substitute
 159.543 +                    // its handle with the topmost blocker.
 159.544 +                    HWND topmostBlocker = GetTopmostModalBlocker(javaWindow);
 159.545 +                    if (::IsWindow(topmostBlocker)) {
 159.546 +                        javaWindow = topmostBlocker;
 159.547 +                    }
 159.548 +
 159.549 +                    ::BringWindowToTop(javaWindow);
 159.550 +
 159.551 +                    AwtWindow * window =
 159.552 +                        (AwtWindow*)AwtComponent::GetComponent(javaWindow);
 159.553 +                    if (window == NULL) {
 159.554 +                        // Quite unlikely to go into here, but it's way better
 159.555 +                        // than getting a crash.
 159.556 +                        ::SetForegroundWindow(javaWindow);
 159.557 +                    } else {
 159.558 +                        // Activate the window if it is focusable and inactive
 159.559 +                        if (window->IsFocusableWindow() &&
 159.560 +                                javaWindow != ::GetActiveWindow()) {
 159.561 +                            ::SetForegroundWindow(javaWindow);
 159.562 +                        } else {
 159.563 +                            // ...otherwise just start the animation.
 159.564 +                            window->StartSecurityAnimation(akShow);
 159.565 +                        }
 159.566 +                    }
 159.567 +
 159.568 +                    // In every case if there's a top-most blocker, we need to
 159.569 +                    // enable modal animation.
 159.570 +                    if (::IsWindow(topmostBlocker)) {
 159.571 +                        AwtDialog::AnimateModalBlocker(topmostBlocker);
 159.572 +                    }
 159.573 +                }
 159.574 +                return MA_NOACTIVATEANDEAT;
 159.575 +            }
 159.576 +    }
 159.577 +    return ::DefWindowProc(hwnd, uMsg, wParam, lParam);
 159.578 +}
 159.579 +
 159.580 +void AwtWindow::PaintWarningWindow(HWND warningWindow)
 159.581 +{
 159.582 +    RECT updateRect;
 159.583 +
 159.584 +    if (!::GetUpdateRect(warningWindow, &updateRect, FALSE)) {
 159.585 +        // got nothing to update
 159.586 +        return;
 159.587 +    }
 159.588 +
 159.589 +    PAINTSTRUCT ps;
 159.590 +    HDC hdc = ::BeginPaint(warningWindow, &ps);
 159.591 +    if (hdc == NULL) {
 159.592 +        // indicates an error
 159.593 +        return;
 159.594 +    }
 159.595 +
 159.596 +    PaintWarningWindow(warningWindow, hdc);
 159.597 +
 159.598 +    ::EndPaint(warningWindow, &ps);
 159.599 +}
 159.600 +
 159.601 +void AwtWindow::PaintWarningWindow(HWND warningWindow, HDC hdc)
 159.602 +{
 159.603 +    HWND javaWindow = ::GetParent(warningWindow);
 159.604 +
 159.605 +    AwtWindow * window = (AwtWindow*)AwtComponent::GetComponent(javaWindow);
 159.606 +    if (window == NULL) {
 159.607 +        return;
 159.608 +    }
 159.609 +
 159.610 +    ::DrawIconEx(hdc, 0, 0, window->GetSecurityWarningIcon(),
 159.611 +            window->warningWindowWidth, window->warningWindowHeight,
 159.612 +            0, NULL, DI_NORMAL);
 159.613 +}
 159.614 +
 159.615 +static const UINT_PTR IDT_AWT_SECURITYANIMATION = 0x102;
 159.616 +
 159.617 +// Approximately 6 times a second. 0.75 seconds total.
 159.618 +static const UINT securityAnimationTimerElapse = 150;
 159.619 +static const UINT securityAnimationMaxIterations = 5;
 159.620 +
 159.621 +void AwtWindow::RepaintWarningWindow()
 159.622 +{
 159.623 +    HDC hdc = ::GetDC(warningWindow);
 159.624 +    PaintWarningWindow(warningWindow, hdc);
 159.625 +    ::ReleaseDC(warningWindow, hdc);
 159.626 +}
 159.627 +
 159.628 +void AwtWindow::StartSecurityAnimation(AnimationKind kind)
 159.629 +{
 159.630 +    if (!IsUntrusted()) {
 159.631 +        return;
 159.632 +    }
 159.633 +    if (warningWindow == NULL) {
 159.634 +        return;
 159.635 +    }
 159.636 +
 159.637 +    securityAnimationKind = kind;
 159.638 +
 159.639 +    securityWarningAnimationStage = 1;
 159.640 +    ::SetTimer(GetHWnd(), IDT_AWT_SECURITYANIMATION,
 159.641 +            securityAnimationTimerElapse, NULL);
 159.642 +
 159.643 +    if (securityAnimationKind == akShow) {
 159.644 +        ::SetWindowPos(warningWindow, HWND_NOTOPMOST, 0, 0, 0, 0,
 159.645 +                SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOMOVE |
 159.646 +                SWP_SHOWWINDOW);
 159.647 +
 159.648 +        ::SetLayeredWindowAttributes(warningWindow, RGB(0, 0, 0),
 159.649 +                0xFF, LWA_ALPHA);
 159.650 +        ::RedrawWindow(warningWindow, NULL, NULL,
 159.651 +                RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN);
 159.652 +    }
 159.653 +}
 159.654 +
 159.655 +void AwtWindow::StopSecurityAnimation()
 159.656 +{
 159.657 +    if (!IsUntrusted()) {
 159.658 +        return;
 159.659 +    }
 159.660 +    if (warningWindow == NULL) {
 159.661 +        return;
 159.662 +    }
 159.663 +
 159.664 +    securityWarningAnimationStage = 0;
 159.665 +    ::KillTimer(GetHWnd(), IDT_AWT_SECURITYANIMATION);
 159.666 +
 159.667 +    switch (securityAnimationKind) {
 159.668 +        case akHide:
 159.669 +        case akPreHide:
 159.670 +            ::SetWindowPos(warningWindow, HWND_NOTOPMOST, 0, 0, 0, 0,
 159.671 +                    SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOMOVE |
 159.672 +                    SWP_HIDEWINDOW);
 159.673 +            break;
 159.674 +        case akShow:
 159.675 +            RepaintWarningWindow();
 159.676 +            break;
 159.677 +    }
 159.678 +
 159.679 +    securityAnimationKind = akNone;
 159.680 +}
 159.681 +
 159.682 +MsgRouting AwtWindow::WmTimer(UINT_PTR timerID)
 159.683 +{
 159.684 +    if (timerID != IDT_AWT_SECURITYANIMATION) {
 159.685 +        return mrPassAlong;
 159.686 +    }
 159.687 +
 159.688 +    if (securityWarningAnimationStage == 0) {
 159.689 +        return mrConsume;
 159.690 +    }
 159.691 +
 159.692 +    securityWarningAnimationStage++;
 159.693 +    if (securityWarningAnimationStage >= securityAnimationMaxIterations) {
 159.694 +        if (securityAnimationKind == akPreHide) {
 159.695 +            // chain real hiding
 159.696 +            StartSecurityAnimation(akHide);
 159.697 +        } else {
 159.698 +            StopSecurityAnimation();
 159.699 +        }
 159.700 +    } else {
 159.701 +        switch (securityAnimationKind) {
 159.702 +            case akHide:
 159.703 +                {
 159.704 +                    BYTE opacity = ((int)0xFF *
 159.705 +                            (securityAnimationMaxIterations -
 159.706 +                             securityWarningAnimationStage)) /
 159.707 +                        securityAnimationMaxIterations;
 159.708 +                    ::SetLayeredWindowAttributes(warningWindow,
 159.709 +                            RGB(0, 0, 0), opacity, LWA_ALPHA);
 159.710 +                }
 159.711 +                break;
 159.712 +            case akShow:
 159.713 +            case akNone: // quite unlikely, but quite safe
 159.714 +                RepaintWarningWindow();
 159.715 +                break;
 159.716 +        }
 159.717 +    }
 159.718 +
 159.719 +    return mrConsume;
 159.720 +}
 159.721 +
 159.722 +// The security warning is visible if:
 159.723 +//    1. The window has the keyboard window focus, OR
 159.724 +//    2. The mouse pointer is located within the window bounds,
 159.725 +//       or within the security warning icon.
 159.726 +void AwtWindow::UpdateSecurityWarningVisibility()
 159.727 +{
 159.728 +    if (!IsUntrusted()) {
 159.729 +        return;
 159.730 +    }
 159.731 +    if (warningWindow == NULL) {
 159.732 +        return;
 159.733 +    }
 159.734 +
 159.735 +    bool show = false;
 159.736 +
 159.737 +    if (IsVisible() && currentWmSizeState != SIZE_MINIMIZED) {
 159.738 +        if (AwtComponent::GetFocusedWindow() == GetHWnd()) {
 159.739 +            show = true;
 159.740 +        }
 159.741 +
 159.742 +        HWND hwnd = AwtToolkit::GetInstance().GetWindowUnderMouse();
 159.743 +        if (hwnd == GetHWnd()) {
 159.744 +            show = true;
 159.745 +        }
 159.746 +        if (hwnd == warningWindow) {
 159.747 +            show = true;
 159.748 +        }
 159.749 +    }
 159.750 +
 159.751 +    if (show && (!::IsWindowVisible(warningWindow) ||
 159.752 +                securityAnimationKind == akHide ||
 159.753 +                securityAnimationKind == akPreHide)) {
 159.754 +        StartSecurityAnimation(akShow);
 159.755 +    }
 159.756 +    if (!show && ::IsWindowVisible(warningWindow)) {
 159.757 +        StartSecurityAnimation(akPreHide);
 159.758 +    }
 159.759 +}
 159.760 +
 159.761 +void AwtWindow::FocusedWindowChanged(HWND from, HWND to)
 159.762 +{
 159.763 +    AwtWindow * fw = (AwtWindow *)AwtComponent::GetComponent(from);
 159.764 +    AwtWindow * tw = (AwtWindow *)AwtComponent::GetComponent(to);
 159.765 +
 159.766 +    if (fw != NULL) {
 159.767 +        fw->UpdateSecurityWarningVisibility();
 159.768 +    }
 159.769 +    if (tw != NULL) {
 159.770 +        tw->UpdateSecurityWarningVisibility();
 159.771 +
 159.772 +        // Flash on receiving the keyboard focus even if the warning
 159.773 +        // has already been shown (e.g. by hovering with the mouse)
 159.774 +        tw->StartSecurityAnimation(akShow);
 159.775 +    }
 159.776 +}
 159.777 +
 159.778 +void AwtWindow::_RepositionSecurityWarning(void* param)
 159.779 +{
 159.780 +    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 159.781 +
 159.782 +    RepositionSecurityWarningStruct *rsws =
 159.783 +        (RepositionSecurityWarningStruct *)param;
 159.784 +    jobject self = rsws->window;
 159.785 +
 159.786 +    PDATA pData;
 159.787 +    JNI_CHECK_PEER_GOTO(self, ret);
 159.788 +    AwtWindow *window = (AwtWindow *)pData;
 159.789 +
 159.790 +    window->RepositionSecurityWarning(env);
 159.791 +
 159.792 +  ret:
 159.793 +    env->DeleteGlobalRef(self);
 159.794 +    delete rsws;
 159.795 +}
 159.796 +
 159.797  /* Create a new AwtWindow object and window.   */
 159.798  AwtWindow* AwtWindow::Create(jobject self, jobject parent)
 159.799  {
 159.800 @@ -372,7 +1036,7 @@
 159.801                  window->m_isRetainingHierarchyZOrder = TRUE;
 159.802              }
 159.803              DWORD style = WS_CLIPCHILDREN | WS_POPUP;
 159.804 -            DWORD exStyle = 0;
 159.805 +            DWORD exStyle = WS_EX_NOACTIVATE;
 159.806              if (GetRTL()) {
 159.807                  exStyle |= WS_EX_RIGHT | WS_EX_LEFTSCROLLBAR;
 159.808                  if (GetRTLReadingOrder())
 159.809 @@ -620,23 +1284,6 @@
 159.810      ::GetClientRect(GetHWnd(), &inside);
 159.811      ::GetWindowRect(GetHWnd(), &outside);
 159.812  
 159.813 -    jobject target = GetTarget(env);
 159.814 -    jstring warningString =
 159.815 -      (jstring)(env)->GetObjectField(target, AwtWindow::warningStringID);
 159.816 -    if (warningString != NULL) {
 159.817 -        ::CopyRect(&inside, &outside);
 159.818 -        DefWindowProc(WM_NCCALCSIZE, FALSE, (LPARAM)&inside);
 159.819 -        /*
 159.820 -         * Fix for BugTraq ID 4304024.
 159.821 -         * Calculate client rectangle in client coordinates.
 159.822 -         */
 159.823 -        VERIFY(::OffsetRect(&inside, -inside.left, -inside.top));
 159.824 -        extraBottomInsets = ::GetSystemMetrics(SM_CYCAPTION) +
 159.825 -            ((GetStyle() & WS_THICKFRAME) ? 2 : -2);
 159.826 -    }
 159.827 -    env->DeleteLocalRef(target);
 159.828 -    env->DeleteLocalRef(warningString);
 159.829 -
 159.830      /* Update our inset member */
 159.831      if (outside.right - outside.left > 0 && outside.bottom - outside.top > 0) {
 159.832          ::MapWindowPoints(GetHWnd(), 0, (LPPOINT)&inside, 2);
 159.833 @@ -863,45 +1510,93 @@
 159.834      env->DeleteLocalRef(event);
 159.835  }
 159.836  
 159.837 +BOOL AwtWindow::AwtSetActiveWindow(BOOL isMouseEventCause, UINT hittest)
 159.838 +{
 159.839 +    // Fix for 6458497.
 159.840 +    // Retreat if current foreground window is out of both our and embedder process.
 159.841 +    // The exception is when activation is requested due to a mouse event.
 159.842 +    if (!isMouseEventCause) {
 159.843 +        HWND fgWindow = ::GetForegroundWindow();
 159.844 +        if (NULL != fgWindow) {
 159.845 +            DWORD fgProcessID;
 159.846 +            ::GetWindowThreadProcessId(fgWindow, &fgProcessID);
 159.847 +            if (fgProcessID != ::GetCurrentProcessId()
 159.848 +                && !AwtToolkit::GetInstance().IsEmbedderProcessId(fgProcessID))
 159.849 +            {
 159.850 +                return FALSE;
 159.851 +            }
 159.852 +        }
 159.853 +    }
 159.854 +
 159.855 +    HWND proxyContainerHWnd = GetProxyToplevelContainer();
 159.856 +    HWND proxyHWnd = GetProxyFocusOwner();
 159.857 +
 159.858 +    if (proxyContainerHWnd == NULL || proxyHWnd == NULL) {
 159.859 +        return FALSE;
 159.860 +    }
 159.861 +
 159.862 +    // Activate the proxy toplevel container
 159.863 +    if (::GetActiveWindow() != proxyContainerHWnd) {
 159.864 +        sm_suppressFocusAndActivation = TRUE;
 159.865 +        ::BringWindowToTop(proxyContainerHWnd);
 159.866 +        ::SetForegroundWindow(proxyContainerHWnd);
 159.867 +        sm_suppressFocusAndActivation = FALSE;
 159.868 +
 159.869 +        if (::GetActiveWindow() != proxyContainerHWnd) {
 159.870 +            return FALSE; // activation has been rejected
 159.871 +        }
 159.872 +    }
 159.873 +
 159.874 +    // Focus the proxy itself
 159.875 +    if (::GetFocus() != proxyHWnd) {
 159.876 +        sm_suppressFocusAndActivation = TRUE;
 159.877 +        ::SetFocus(proxyHWnd);
 159.878 +        sm_suppressFocusAndActivation = FALSE;
 159.879 +
 159.880 +        if (::GetFocus() != proxyHWnd) {
 159.881 +            return FALSE; // focus has been rejected (that is unlikely)
 159.882 +        }
 159.883 +    }
 159.884 +
 159.885 +    const HWND focusedWindow = AwtComponent::GetFocusedWindow();
 159.886 +    if (focusedWindow != GetHWnd()) {
 159.887 +        if (focusedWindow != NULL) {
 159.888 +            // Deactivate the old focused window
 159.889 +            AwtWindow::SynthesizeWmActivate(FALSE, focusedWindow, GetHWnd());
 159.890 +        }
 159.891 +        // Activate the new focused window.
 159.892 +        AwtWindow::SynthesizeWmActivate(TRUE, GetHWnd(), focusedWindow);
 159.893 +    }
 159.894 +    return TRUE;
 159.895 +}
 159.896 +
 159.897  MsgRouting AwtWindow::WmActivate(UINT nState, BOOL fMinimized, HWND opposite)
 159.898  {
 159.899      jint type;
 159.900  
 159.901      if (nState != WA_INACTIVE) {
 159.902 -        ::SetFocus((sm_focusOwner == NULL ||
 159.903 -                    AwtComponent::GetTopLevelParentForWindow(sm_focusOwner) !=
 159.904 -                    GetHWnd()) ? NULL : sm_focusOwner);
 159.905          type = java_awt_event_WindowEvent_WINDOW_GAINED_FOCUS;
 159.906 -        AwtToolkit::GetInstance().
 159.907 -            InvokeFunctionLater(BounceActivation, this);
 159.908 -        sm_focusedWindow = GetHWnd();
 159.909 +        AwtComponent::SetFocusedWindow(GetHWnd());
 159.910      } else {
 159.911 +        // The owner is not necassarily getting WM_ACTIVATE(WA_INACTIVE).
 159.912 +        // So, initiate retaining the actualFocusedWindow.
 159.913 +        AwtFrame *owner = GetOwningFrameOrDialog();
 159.914 +        if (owner) {
 159.915 +            owner->CheckRetainActualFocusedWindow(opposite);
 159.916 +        }
 159.917 +
 159.918          if (m_grabbedWindow != NULL && !m_grabbedWindow->IsOneOfOwnersOf(this)) {
 159.919              m_grabbedWindow->Ungrab();
 159.920          }
 159.921          type = java_awt_event_WindowEvent_WINDOW_LOST_FOCUS;
 159.922 -        sm_focusedWindow = NULL;
 159.923 +        AwtComponent::SetFocusedWindow(NULL);
 159.924 +        sm_focusOwner = NULL;
 159.925      }
 159.926  
 159.927      SendWindowEvent(type, opposite);
 159.928      return mrConsume;
 159.929  }
 159.930  
 159.931 -void AwtWindow::BounceActivation(void *self) {
 159.932 -    AwtWindow *wSelf = (AwtWindow *)self;
 159.933 -
 159.934 -    if (::GetActiveWindow() == wSelf->GetHWnd()) {
 159.935 -        AwtFrame *owner = wSelf->GetOwningFrameOrDialog();
 159.936 -
 159.937 -        if (owner != NULL) {
 159.938 -            sm_suppressFocusAndActivation = TRUE;
 159.939 -            ::SetActiveWindow(owner->GetHWnd());
 159.940 -            ::SetFocus(owner->GetProxyFocusOwner());
 159.941 -            sm_suppressFocusAndActivation = FALSE;
 159.942 -        }
 159.943 -    }
 159.944 -}
 159.945 -
 159.946  MsgRouting AwtWindow::WmCreate()
 159.947  {
 159.948      return mrDoDefault;
 159.949 @@ -925,17 +1620,20 @@
 159.950  {
 159.951      /*
 159.952       * Original fix for 4810575. Modified for 6386592.
 159.953 -     * If an owned window (not frame/dialog) gets disposed we should synthesize
 159.954 +     * If a simple window gets disposed we should synthesize
 159.955       * WM_ACTIVATE for its nearest owner. This is not performed by default because
 159.956       * the owner frame/dialog is natively active.
 159.957       */
 159.958      HWND hwndSelf = GetHWnd();
 159.959 -    HWND hwndParent = ::GetParent(hwndSelf);
 159.960 -
 159.961 -    if (!show && IsSimpleWindow() && hwndSelf == sm_focusedWindow &&
 159.962 -        hwndParent != NULL && ::IsWindowVisible(hwndParent))
 159.963 +    HWND hwndOwner = ::GetParent(hwndSelf);
 159.964 +
 159.965 +    if (!show && IsSimpleWindow() && hwndSelf == AwtComponent::GetFocusedWindow() &&
 159.966 +        hwndOwner != NULL && ::IsWindowVisible(hwndOwner))
 159.967      {
 159.968 -        ::PostMessage(hwndParent, WM_ACTIVATE, (WPARAM)WA_ACTIVE, (LPARAM)hwndSelf);
 159.969 +        AwtFrame *owner = (AwtFrame*)AwtComponent::GetComponent(hwndOwner);
 159.970 +        if (owner != NULL) {
 159.971 +            owner->AwtSetActiveWindow();
 159.972 +        }
 159.973      }
 159.974  
 159.975      //Fixed 4842599: REGRESSION: JPopupMenu not Hidden Properly After Iconified and Deiconified
 159.976 @@ -1034,7 +1732,10 @@
 159.977   */
 159.978  MsgRouting AwtWindow::WmSize(UINT type, int w, int h)
 159.979  {
 159.980 +    currentWmSizeState = type;
 159.981 +
 159.982      if (type == SIZE_MINIMIZED) {
 159.983 +        UpdateSecurityWarningVisibility();
 159.984          return mrDoDefault;
 159.985      }
 159.986  
 159.987 @@ -1098,103 +1799,18 @@
 159.988      if (env->EnsureLocalCapacity(2) < 0) {
 159.989          return mrConsume;
 159.990      }
 159.991 -    jobject target = GetTarget(env);
 159.992 -    jstring warningString =
 159.993 -      (jstring)(env)->GetObjectField(target, AwtWindow::warningStringID);
 159.994 -    if (warningString != NULL) {
 159.995 -        RECT r;
 159.996 -        ::CopyRect(&r, &lpncsp->rgrc[0]);
 159.997 -        retVal = static_cast<UINT>(DefWindowProc(WM_NCCALCSIZE, fCalcValidRects,
 159.998 -        reinterpret_cast<LPARAM>(lpncsp)));
 159.999 -
159.1000 -        /* Adjust non-client area for warning banner space. */
159.1001 -        m_warningRect.left = lpncsp->rgrc[0].left;
159.1002 -        m_warningRect.right = lpncsp->rgrc[0].right;
159.1003 -        m_warningRect.bottom = lpncsp->rgrc[0].bottom;
159.1004 -        m_warningRect.top =
159.1005 -            m_warningRect.bottom - ::GetSystemMetrics(SM_CYCAPTION);
159.1006 -        if (GetStyle() & WS_THICKFRAME) {
159.1007 -            m_warningRect.top -= 2;
159.1008 -        } else {
159.1009 -            m_warningRect.top += 2;
159.1010 -        }
159.1011 -
159.1012 -        lpncsp->rgrc[0].bottom = (m_warningRect.top >= lpncsp->rgrc[0].top)
159.1013 -            ? m_warningRect.top
159.1014 -            : lpncsp->rgrc[0].top;
159.1015 -
159.1016 -        /* Convert to window-relative coordinates. */
159.1017 -        ::OffsetRect(&m_warningRect, -r.left, -r.top);
159.1018 -
159.1019 -        /* Notify target of Insets change. */
159.1020 -        if (HasValidRect()) {
159.1021 -            UpdateInsets(NULL);
159.1022 -        }
159.1023 -
159.1024 -        mrRetVal = mrConsume;
159.1025 -    } else {
159.1026 -        // WM_NCCALCSIZE is usually in response to a resize, but
159.1027 -        // also can be triggered by SetWindowPos(SWP_FRAMECHANGED),
159.1028 -        // which means the insets will have changed - rnk 4/7/1998
159.1029 -        retVal = static_cast<UINT>(DefWindowProc(
159.1030 -        WM_NCCALCSIZE, fCalcValidRects, reinterpret_cast<LPARAM>(lpncsp)));
159.1031 -        if (HasValidRect()) {
159.1032 -            UpdateInsets(NULL);
159.1033 -        }
159.1034 -        mrRetVal = mrConsume;
159.1035 +    // WM_NCCALCSIZE is usually in response to a resize, but
159.1036 +    // also can be triggered by SetWindowPos(SWP_FRAMECHANGED),
159.1037 +    // which means the insets will have changed - rnk 4/7/1998
159.1038 +    retVal = static_cast<UINT>(DefWindowProc(
159.1039 +                WM_NCCALCSIZE, fCalcValidRects, reinterpret_cast<LPARAM>(lpncsp)));
159.1040 +    if (HasValidRect()) {
159.1041 +        UpdateInsets(NULL);
159.1042      }
159.1043 -    env->DeleteLocalRef(target);
159.1044 -    env->DeleteLocalRef(warningString);
159.1045 +    mrRetVal = mrConsume;
159.1046      return mrRetVal;
159.1047  }
159.1048  
159.1049 -MsgRouting AwtWindow::WmNcPaint(HRGN hrgn)
159.1050 -{
159.1051 -    DefWindowProc(WM_NCPAINT, (WPARAM)hrgn, 0);
159.1052 -
159.1053 -    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
159.1054 -    if (env->EnsureLocalCapacity(2) < 0) {
159.1055 -        return mrConsume;
159.1056 -    }
159.1057 -    jobject target = GetTarget(env);
159.1058 -    jstring warningString =
159.1059 -      (jstring)(env)->GetObjectField(target, AwtWindow::warningStringID);
159.1060 -    if (warningString != NULL) {
159.1061 -        RECT r;
159.1062 -        ::CopyRect(&r, &m_warningRect);
159.1063 -        HDC hDC = ::GetWindowDC(GetHWnd());
159.1064 -        DASSERT(hDC);
159.1065 -        int iSaveDC = ::SaveDC(hDC);
159.1066 -        VERIFY(::SelectClipRgn(hDC, NULL) != NULL);
159.1067 -        VERIFY(::FillRect(hDC, &m_warningRect, (HBRUSH)::GetStockObject(BLACK_BRUSH)));
159.1068 -
159.1069 -        if (GetStyle() & WS_THICKFRAME) {
159.1070 -            /* draw edge */
159.1071 -            VERIFY(::DrawEdge(hDC, &r, EDGE_RAISED, BF_TOP));
159.1072 -            r.top += 2;
159.1073 -            VERIFY(::DrawEdge(hDC, &r, EDGE_SUNKEN, BF_RECT));
159.1074 -            ::InflateRect(&r, -2, -2);
159.1075 -        }
159.1076 -
159.1077 -        /* draw warning text */
159.1078 -        LPCWSTR text = JNU_GetStringPlatformChars(env, warningString, NULL);
159.1079 -        VERIFY(::SetBkColor(hDC, ::GetSysColor(COLOR_BTNFACE)) != CLR_INVALID);
159.1080 -        VERIFY(::SetTextColor(hDC, ::GetSysColor(COLOR_BTNTEXT)) != CLR_INVALID);
159.1081 -        VERIFY(::SelectObject(hDC, ::GetStockObject(DEFAULT_GUI_FONT)) != NULL);
159.1082 -        VERIFY(::SetTextAlign(hDC, TA_LEFT | TA_BOTTOM) != GDI_ERROR);
159.1083 -        VERIFY(::ExtTextOut(hDC, r.left+2, r.bottom-1,
159.1084 -                             ETO_CLIPPED | ETO_OPAQUE,
159.1085 -                             &r, text, static_cast<UINT>(wcslen(text)), NULL));
159.1086 -        VERIFY(::RestoreDC(hDC, iSaveDC));
159.1087 -        ::ReleaseDC(GetHWnd(), hDC);
159.1088 -        JNU_ReleaseStringPlatformChars(env, warningString, text);
159.1089 -    }
159.1090 -
159.1091 -    env->DeleteLocalRef(target);
159.1092 -    env->DeleteLocalRef(warningString);
159.1093 -    return mrConsume;
159.1094 -}
159.1095 -
159.1096  MsgRouting AwtWindow::WmNcHitTest(UINT x, UINT y, LRESULT& retVal)
159.1097  {
159.1098      // If this window is blocked by modal dialog, return HTCLIENT for any point of it.
159.1099 @@ -1420,6 +2036,19 @@
159.1100      }
159.1101  }
159.1102  
159.1103 +HWND AwtWindow::GetTopmostModalBlocker(HWND window)
159.1104 +{
159.1105 +    HWND ret, blocker = NULL;
159.1106 +
159.1107 +    do {
159.1108 +        ret = blocker;
159.1109 +        blocker = AwtWindow::GetModalBlocker(window);
159.1110 +        window = blocker;
159.1111 +    } while (::IsWindow(blocker));
159.1112 +
159.1113 +    return ret;
159.1114 +}
159.1115 +
159.1116  void AwtWindow::FlashWindowEx(HWND hWnd, UINT count, DWORD timeout, DWORD flags) {
159.1117      FLASHWINFO fi;
159.1118      fi.cbSize = sizeof(fi);
159.1119 @@ -1430,6 +2059,38 @@
159.1120      ::FlashWindowEx(&fi);
159.1121  }
159.1122  
159.1123 +jboolean
159.1124 +AwtWindow::_RequestWindowFocus(void *param)
159.1125 +{
159.1126 +    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
159.1127 +
159.1128 +    RequestWindowFocusStruct *rfs = (RequestWindowFocusStruct *)param;
159.1129 +    jobject self = rfs->component;
159.1130 +    jboolean isMouseEventCause = rfs->isMouseEventCause;
159.1131 +
159.1132 +    jboolean result = JNI_FALSE;
159.1133 +    AwtWindow *window = NULL;
159.1134 +
159.1135 +    PDATA pData;
159.1136 +    JNI_CHECK_NULL_GOTO(self, "peer", ret);
159.1137 +    pData = JNI_GET_PDATA(self);
159.1138 +    if (pData == NULL) {
159.1139 +        // do nothing just return false
159.1140 +        goto ret;
159.1141 +    }
159.1142 +
159.1143 +    window = (AwtWindow *)pData;
159.1144 +    if (::IsWindow(window->GetHWnd())) {
159.1145 +        result = (jboolean)window->SendMessage(WM_AWT_WINDOW_SETACTIVE, (WPARAM)isMouseEventCause, 0);
159.1146 +    }
159.1147 +ret:
159.1148 +    env->DeleteGlobalRef(self);
159.1149 +
159.1150 +    delete rfs;
159.1151 +
159.1152 +    return result;
159.1153 +}
159.1154 +
159.1155  void AwtWindow::_ToFront(void *param)
159.1156  {
159.1157      JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
159.1158 @@ -1839,6 +2500,216 @@
159.1159      //Does nothing for windows, is overriden for frames and dialogs
159.1160  }
159.1161  
159.1162 +void AwtWindow::RedrawWindow()
159.1163 +{
159.1164 +    if (isOpaque()) {
159.1165 +        ::RedrawWindow(GetHWnd(), NULL, NULL,
159.1166 +                RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN);
159.1167 +    } else {
159.1168 +        ::EnterCriticalSection(&contentBitmapCS);
159.1169 +        if (hContentBitmap != NULL) {
159.1170 +            UpdateWindowImpl(contentWidth, contentHeight, hContentBitmap);
159.1171 +        }
159.1172 +        ::LeaveCriticalSection(&contentBitmapCS);
159.1173 +    }
159.1174 +}
159.1175 +
159.1176 +void AwtWindow::SetTranslucency(BYTE opacity, BOOL opaque)
159.1177 +{
159.1178 +    BYTE old_opacity = getOpacity();
159.1179 +    BOOL old_opaque = isOpaque();
159.1180 +
159.1181 +    if (opacity == old_opacity && opaque == old_opaque) {
159.1182 +        return;
159.1183 +    }
159.1184 +
159.1185 +    setOpacity(opacity);
159.1186 +    setOpaque(opaque);
159.1187 +
159.1188 +    HWND hwnd = GetHWnd();
159.1189 +
159.1190 +    LONG ex_style = ::GetWindowLong(hwnd, GWL_EXSTYLE);
159.1191 +
159.1192 +    if (opaque != old_opaque) {
159.1193 +        ::EnterCriticalSection(&contentBitmapCS);
159.1194 +        if (hContentBitmap != NULL) {
159.1195 +            ::DeleteObject(hContentBitmap);
159.1196 +            hContentBitmap = NULL;
159.1197 +        }
159.1198 +        ::LeaveCriticalSection(&contentBitmapCS);
159.1199 +    }
159.1200 +
159.1201 +    if (opaque && opacity == 0xff) {
159.1202 +        // Turn off all the effects
159.1203 +        ::SetWindowLong(hwnd, GWL_EXSTYLE, ex_style & ~WS_EX_LAYERED);
159.1204 +        // Ask the window to repaint itself and all the children
159.1205 +        RedrawWindow();
159.1206 +    } else {
159.1207 +        // We're going to enable some effects
159.1208 +        if (!(ex_style & WS_EX_LAYERED)) {
159.1209 +            ::SetWindowLong(hwnd, GWL_EXSTYLE, ex_style | WS_EX_LAYERED);
159.1210 +        } else {
159.1211 +            if ((opaque && opacity < 0xff) ^ (old_opaque && old_opacity < 0xff)) {
159.1212 +                // _One_ of the modes uses the SetLayeredWindowAttributes.
159.1213 +                // Need to reset the style in this case.
159.1214 +                // If both modes are simple (i.e. just changing the opacity level),
159.1215 +                // no need to reset the style.
159.1216 +                ::SetWindowLong(hwnd, GWL_EXSTYLE, ex_style & ~WS_EX_LAYERED);
159.1217 +                ::SetWindowLong(hwnd, GWL_EXSTYLE, ex_style | WS_EX_LAYERED);
159.1218 +            }
159.1219 +        }
159.1220 +
159.1221 +        if (opaque) {
159.1222 +            // Simple opacity mode
159.1223 +            ::SetLayeredWindowAttributes(hwnd, RGB(0, 0, 0), opacity, LWA_ALPHA);
159.1224 +        }
159.1225 +    }
159.1226 +}
159.1227 +
159.1228 +static HBITMAP CreateBitmapFromRaster(JNIEnv* env, jintArray raster, jint w, jint h)
159.1229 +{
159.1230 +    HBITMAP image = NULL;
159.1231 +    if (raster != NULL) {
159.1232 +        int* rasterBuffer = NULL;
159.1233 +        try {
159.1234 +            rasterBuffer = (int *)env->GetPrimitiveArrayCritical(raster, 0);
159.1235 +            JNI_CHECK_NULL_GOTO(rasterBuffer, "raster data", done);
159.1236 +            image = BitmapUtil::CreateBitmapFromARGBPre(w, h, w*4, rasterBuffer);
159.1237 +        } catch (...) {
159.1238 +            if (rasterBuffer != NULL) {
159.1239 +                env->ReleasePrimitiveArrayCritical(raster, rasterBuffer, 0);
159.1240 +            }
159.1241 +            throw;
159.1242 +        }
159.1243 +        if (rasterBuffer != NULL) {
159.1244 +            env->ReleasePrimitiveArrayCritical(raster, rasterBuffer, 0);
159.1245 +        }
159.1246 +    }
159.1247 +done:
159.1248 +    return image;
159.1249 +}
159.1250 +
159.1251 +void AwtWindow::UpdateWindowImpl(int width, int height, HBITMAP hBitmap)
159.1252 +{
159.1253 +    if (isOpaque()) {
159.1254 +        return;
159.1255 +    }
159.1256 +
159.1257 +    HWND hWnd = GetHWnd();
159.1258 +    HDC hdcDst = ::GetDC(NULL);
159.1259 +    HDC hdcSrc = ::CreateCompatibleDC(NULL);
159.1260 +    HBITMAP hOldBitmap = (HBITMAP)::SelectObject(hdcSrc, hBitmap);
159.1261 +
159.1262 +    //XXX: this code doesn't paint the children (say, the java.awt.Button)!
159.1263 +    //So, if we ever want to support HWs here, we need to repaint them
159.1264 +    //in some other way...
159.1265 +    //::SendMessage(hWnd, WM_PRINT, (WPARAM)hdcSrc, /*PRF_CHECKVISIBLE |*/
159.1266 +    //      PRF_CHILDREN /*| PRF_CLIENT | PRF_NONCLIENT*/);
159.1267 +
159.1268 +    POINT ptSrc;
159.1269 +    ptSrc.x = ptSrc.y = 0;
159.1270 +
159.1271 +    RECT rect;
159.1272 +    POINT ptDst;
159.1273 +    SIZE size;
159.1274 +
159.1275 +    ::GetWindowRect(hWnd, &rect);
159.1276 +    ptDst.x = rect.left;
159.1277 +    ptDst.y = rect.top;
159.1278 +    size.cx = width;
159.1279 +    size.cy = height;
159.1280 +
159.1281 +    BLENDFUNCTION bf;
159.1282 +
159.1283 +    bf.SourceConstantAlpha = getOpacity();
159.1284 +    bf.AlphaFormat = AC_SRC_ALPHA;
159.1285 +    bf.BlendOp = AC_SRC_OVER;
159.1286 +    bf.BlendFlags = 0;
159.1287 +
159.1288 +    ::UpdateLayeredWindow(hWnd, hdcDst, &ptDst, &size, hdcSrc, &ptSrc,
159.1289 +            RGB(0, 0, 0), &bf, ULW_ALPHA);
159.1290 +
159.1291 +    ::ReleaseDC(NULL, hdcDst);
159.1292 +    ::SelectObject(hdcSrc, hOldBitmap);
159.1293 +    ::DeleteDC(hdcSrc);
159.1294 +}
159.1295 +
159.1296 +void AwtWindow::UpdateWindow(JNIEnv* env, jintArray data, int width, int height,
159.1297 +                             HBITMAP hNewBitmap)
159.1298 +{
159.1299 +    if (isOpaque()) {
159.1300 +        return;
159.1301 +    }
159.1302 +
159.1303 +    HBITMAP hBitmap;
159.1304 +    if (hNewBitmap == NULL) {
159.1305 +        if (data == NULL) {
159.1306 +            return;
159.1307 +        }
159.1308 +        hBitmap = CreateBitmapFromRaster(env, data, width, height);
159.1309 +        if (hBitmap == NULL) {
159.1310 +            return;
159.1311 +        }
159.1312 +    } else {
159.1313 +        hBitmap = hNewBitmap;
159.1314 +    }
159.1315 +
159.1316 +    ::EnterCriticalSection(&contentBitmapCS);
159.1317 +    if (hContentBitmap != NULL) {
159.1318 +        ::DeleteObject(hContentBitmap);
159.1319 +    }
159.1320 +    hContentBitmap = hBitmap;
159.1321 +    contentWidth = width;
159.1322 +    contentHeight = height;
159.1323 +    UpdateWindowImpl(width, height, hBitmap);
159.1324 +    ::LeaveCriticalSection(&contentBitmapCS);
159.1325 +}
159.1326 +
159.1327 +void AwtWindow::FillBackground(HDC hMemoryDC, SIZE &size)
159.1328 +{
159.1329 +    if (isOpaque()) {
159.1330 +        AwtCanvas::FillBackground(hMemoryDC, size);
159.1331 +    }
159.1332 +}
159.1333 +
159.1334 +void AwtWindow::FillAlpha(void *bitmapBits, SIZE &size, BYTE alpha)
159.1335 +{
159.1336 +    if (isOpaque()) {
159.1337 +        AwtCanvas::FillAlpha(bitmapBits, size, alpha);
159.1338 +    }
159.1339 +}
159.1340 +
159.1341 +/*
159.1342 + * Fixed 6353381: it's improved fix for 4792958
159.1343 + * which was backed-out to avoid 5059656
159.1344 + */
159.1345 +BOOL AwtWindow::HasValidRect()
159.1346 +{
159.1347 +    RECT inside;
159.1348 +    RECT outside;
159.1349 +
159.1350 +    if (::IsIconic(GetHWnd())) {
159.1351 +        return FALSE;
159.1352 +    }
159.1353 +
159.1354 +    ::GetClientRect(GetHWnd(), &inside);
159.1355 +    ::GetWindowRect(GetHWnd(), &outside);
159.1356 +
159.1357 +    BOOL isZeroClientArea = (inside.right == 0 && inside.bottom == 0);
159.1358 +    BOOL isInvalidLocation = ((outside.left == -32000 && outside.top == -32000) || // Win2k && WinXP
159.1359 +                              (outside.left == 32000 && outside.top == 32000) || // Win95 && Win98
159.1360 +                              (outside.left == 3000 && outside.top == 3000)); // Win95 && Win98
159.1361 +
159.1362 +    // the bounds correspond to iconic state
159.1363 +    if (isZeroClientArea && isInvalidLocation)
159.1364 +    {
159.1365 +        return FALSE;
159.1366 +    }
159.1367 +
159.1368 +    return TRUE;
159.1369 +}
159.1370 +
159.1371 +
159.1372  void AwtWindow::_SetIconImagesData(void * param)
159.1373  {
159.1374      JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
159.1375 @@ -1940,11 +2811,14 @@
159.1376  
159.1377      window->m_isFocusableWindow = isFocusableWindow;
159.1378  
159.1379 -    if (!window->m_isFocusableWindow) {
159.1380 -        LONG isPopup = window->GetStyle() & WS_POPUP;
159.1381 -        window->SetStyleEx(window->GetStyleEx() | (isPopup ? 0 : WS_EX_APPWINDOW) | AWT_WS_EX_NOACTIVATE);
159.1382 -    } else {
159.1383 -        window->SetStyleEx(window->GetStyleEx() & ~WS_EX_APPWINDOW & ~AWT_WS_EX_NOACTIVATE);
159.1384 +    // A simple window is permanently set to WS_EX_NOACTIVATE
159.1385 +    if (!window->IsSimpleWindow()) {
159.1386 +        if (!window->m_isFocusableWindow) {
159.1387 +            LONG isPopup = window->GetStyle() & WS_POPUP;
159.1388 +            window->SetStyleEx(window->GetStyleEx() | (isPopup ? 0 : WS_EX_APPWINDOW) | WS_EX_NOACTIVATE);
159.1389 +        } else {
159.1390 +            window->SetStyleEx(window->GetStyleEx() & ~WS_EX_APPWINDOW & ~WS_EX_NOACTIVATE);
159.1391 +        }
159.1392      }
159.1393  
159.1394    ret:
159.1395 @@ -2009,36 +2883,68 @@
159.1396      env->DeleteGlobalRef(self);
159.1397  }
159.1398  
159.1399 -/*
159.1400 - * Fixed 6353381: it's improved fix for 4792958
159.1401 - * which was backed-out to avoid 5059656
159.1402 - */
159.1403 -BOOL AwtWindow::HasValidRect()
159.1404 +void AwtWindow::_SetOpacity(void* param)
159.1405  {
159.1406 -    RECT inside;
159.1407 -    RECT outside;
159.1408 -
159.1409 -    if (::IsIconic(GetHWnd())) {
159.1410 -        return FALSE;
159.1411 +    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
159.1412 +
159.1413 +    OpacityStruct *os = (OpacityStruct *)param;
159.1414 +    jobject self = os->window;
159.1415 +    BYTE iOpacity = (BYTE)os->iOpacity;
159.1416 +
159.1417 +    PDATA pData;
159.1418 +    JNI_CHECK_PEER_GOTO(self, ret);
159.1419 +    AwtWindow *window = (AwtWindow *)pData;
159.1420 +
159.1421 +    window->SetTranslucency(iOpacity, window->isOpaque());
159.1422 +
159.1423 +  ret:
159.1424 +    env->DeleteGlobalRef(self);
159.1425 +    delete os;
159.1426 +}
159.1427 +
159.1428 +void AwtWindow::_SetOpaque(void* param)
159.1429 +{
159.1430 +    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
159.1431 +
159.1432 +    OpaqueStruct *os = (OpaqueStruct *)param;
159.1433 +    jobject self = os->window;
159.1434 +    BOOL isOpaque = (BOOL)os->isOpaque;
159.1435 +
159.1436 +    PDATA pData;
159.1437 +    JNI_CHECK_PEER_GOTO(self, ret);
159.1438 +    AwtWindow *window = (AwtWindow *)pData;
159.1439 +
159.1440 +    window->SetTranslucency(window->getOpacity(), isOpaque);
159.1441 +
159.1442 +  ret:
159.1443 +    env->DeleteGlobalRef(self);
159.1444 +    delete os;
159.1445 +}
159.1446 +
159.1447 +void AwtWindow::_UpdateWindow(void* param)
159.1448 +{
159.1449 +    JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
159.1450 +
159.1451 +    UpdateWindowStruct *uws = (UpdateWindowStruct *)param;
159.1452 +    jobject self = uws->window;
159.1453 +    jintArray data = uws->data;
159.1454 +
159.1455 +    PDATA pData;
159.1456 +    JNI_CHECK_PEER_GOTO(self, ret);
159.1457 +    AwtWindow *window = (AwtWindow *)pData;
159.1458 +
159.1459 +    window->UpdateWindow(env, data, (int)uws->width, (int)uws->height,
159.1460 +                         uws->hBitmap);
159.1461 +
159.1462 +  ret:
159.1463 +    env->DeleteGlobalRef(self);
159.1464 +    if (data != NULL) {
159.1465 +        env->DeleteGlobalRef(data);
159.1466      }
159.1467 -
159.1468 -    ::GetClientRect(GetHWnd(), &inside);
159.1469 -    ::GetWindowRect(GetHWnd(), &outside);
159.1470 -
159.1471 -    BOOL isZeroClientArea = (inside.right == 0 && inside.bottom == 0);
159.1472 -    BOOL isInvalidLocation = ((outside.left == -32000 && outside.top == -32000) || // Win2k && WinXP
159.1473 -                              (outside.left == 32000 && outside.top == 32000) || // Win95 && Win98
159.1474 -                              (outside.left == 3000 && outside.top == 3000)); // Win95 && Win98
159.1475 -
159.1476 -    // the bounds correspond to iconic state
159.1477 -    if (isZeroClientArea && isInvalidLocation)
159.1478 -    {
159.1479 -        return FALSE;
159.1480 -    }
159.1481 -
159.1482 -    return TRUE;
159.1483 +    delete uws;
159.1484  }
159.1485  
159.1486 +
159.1487  extern "C" {
159.1488  
159.1489  /*
159.1490 @@ -2055,8 +2961,16 @@
159.1491          env->GetFieldID(cls, "warningString", "Ljava/lang/String;");
159.1492      AwtWindow::locationByPlatformID =
159.1493          env->GetFieldID(cls, "locationByPlatform", "Z");
159.1494 +    AwtWindow::securityWarningWidthID =
159.1495 +        env->GetFieldID(cls, "securityWarningWidth", "I");
159.1496 +    AwtWindow::securityWarningHeightID =
159.1497 +        env->GetFieldID(cls, "securityWarningHeight", "I");
159.1498 +    AwtWindow::getWarningStringMID =
159.1499 +        env->GetMethodID(cls, "getWarningString", "()Ljava/lang/String;");
159.1500      AwtWindow::autoRequestFocusID =
159.1501          env->GetFieldID(cls, "autoRequestFocus", "Z");
159.1502 +    AwtWindow::calculateSecurityWarningPositionMID =
159.1503 +        env->GetMethodID(cls, "calculateSecurityWarningPosition", "(DDDD)Ljava/awt/geom/Point2D;");
159.1504  
159.1505      CATCH_BAD_ALLOC;
159.1506  }
159.1507 @@ -2489,4 +3403,138 @@
159.1508      CATCH_BAD_ALLOC;
159.1509  }
159.1510  
159.1511 +/*
159.1512 + * Class:     sun_awt_windows_WWindowPeer
159.1513 + * Method:    setOpacity
159.1514 + * Signature: (I)V
159.1515 + */
159.1516 +JNIEXPORT void JNICALL
159.1517 +Java_sun_awt_windows_WWindowPeer_setOpacity(JNIEnv *env, jobject self,
159.1518 +                                              jint iOpacity)
159.1519 +{
159.1520 +    TRY;
159.1521 +
159.1522 +    OpacityStruct *os = new OpacityStruct;
159.1523 +    os->window = env->NewGlobalRef(self);
159.1524 +    os->iOpacity = iOpacity;
159.1525 +
159.1526 +    AwtToolkit::GetInstance().SyncCall(AwtWindow::_SetOpacity, os);
159.1527 +    // global refs and mds are deleted in _SetMinSize
159.1528 +
159.1529 +    CATCH_BAD_ALLOC;
159.1530 +}
159.1531 +
159.1532 +/*
159.1533 + * Class:     sun_awt_windows_WWindowPeer
159.1534 + * Method:    setOpaqueImpl
159.1535 + * Signature: (Z)V
159.1536 + */
159.1537 +JNIEXPORT void JNICALL
159.1538 +Java_sun_awt_windows_WWindowPeer_setOpaqueImpl(JNIEnv *env, jobject self,
159.1539 +                                              jboolean isOpaque)
159.1540 +{
159.1541 +    TRY;
159.1542 +
159.1543 +    OpaqueStruct *os = new OpaqueStruct;
159.1544 +    os->window = env->NewGlobalRef(self);
159.1545 +    os->isOpaque = isOpaque;
159.1546 +
159.1547 +    AwtToolkit::GetInstance().SyncCall(AwtWindow::_SetOpaque, os);
159.1548 +    // global refs and mds are deleted in _SetMinSize
159.1549 +
159.1550 +    CATCH_BAD_ALLOC;
159.1551 +}
159.1552 +
159.1553 +/*
159.1554 + * Class:     sun_awt_windows_WWindowPeer
159.1555 + * Method:    updateWindowImpl
159.1556 + * Signature: ([III)V
159.1557 + */
159.1558 +JNIEXPORT void JNICALL
159.1559 +Java_sun_awt_windows_WWindowPeer_updateWindowImpl(JNIEnv *env, jobject self,
159.1560 +                                                  jintArray data,
159.1561 +                                                  jint width, jint height)
159.1562 +{
159.1563 +    TRY;
159.1564 +
159.1565 +    UpdateWindowStruct *uws = new UpdateWindowStruct;
159.1566 +    uws->window = env->NewGlobalRef(self);
159.1567 +    uws->data = (jintArray)env->NewGlobalRef(data);
159.1568 +    uws->hBitmap = NULL;
159.1569 +    uws->width = width;
159.1570 +    uws->height = height;
159.1571 +
159.1572 +    AwtToolkit::GetInstance().InvokeFunction(AwtWindow::_UpdateWindow, uws);
159.1573 +    // global refs and mds are deleted in _UpdateWindow
159.1574 +
159.1575 +    CATCH_BAD_ALLOC;
159.1576 +}
159.1577 +
159.1578 +/**
159.1579 + * This method is called from the WGL pipeline when it needs to update
159.1580 + * the layered window WindowPeer's C++ level object.
159.1581 + */
159.1582 +void AwtWindow_UpdateWindow(JNIEnv *env, jobject peer,
159.1583 +                            jint width, jint height, HBITMAP hBitmap)
159.1584 +{
159.1585 +    TRY;
159.1586 +
159.1587 +    UpdateWindowStruct *uws = new UpdateWindowStruct;
159.1588 +    uws->window = env->NewGlobalRef(peer);
159.1589 +    uws->data = NULL;
159.1590 +    uws->hBitmap = hBitmap;
159.1591 +    uws->width = width;
159.1592 +    uws->height = height;
159.1593 +
159.1594 +    AwtToolkit::GetInstance().InvokeFunction(AwtWindow::_UpdateWindow, uws);
159.1595 +    // global refs and mds are deleted in _UpdateWindow
159.1596 +
159.1597 +    CATCH_BAD_ALLOC;
159.1598 +}
159.1599 +
159.1600 +/*
159.1601 + * Class:     sun_awt_windows_WComponentPeer
159.1602 + * Method:    requestFocus
159.1603 + * Signature: (Z)Z
159.1604 + */
159.1605 +JNIEXPORT jboolean JNICALL Java_sun_awt_windows_WWindowPeer_requestWindowFocus
159.1606 +    (JNIEnv *env, jobject self, jboolean isMouseEventCause)
159.1607 +{
159.1608 +    TRY;
159.1609 +
159.1610 +    jobject selfGlobalRef = env->NewGlobalRef(self);
159.1611 +
159.1612 +    RequestWindowFocusStruct *rfs = new RequestWindowFocusStruct;
159.1613 +    rfs->component = selfGlobalRef;
159.1614 +    rfs->isMouseEventCause = isMouseEventCause;
159.1615 +
159.1616 +    return (jboolean)AwtToolkit::GetInstance().SyncCall(
159.1617 +        (void*(*)(void*))AwtWindow::_RequestWindowFocus, rfs);
159.1618 +    // global refs and rfs are deleted in _RequestWindowFocus
159.1619 +
159.1620 +    CATCH_BAD_ALLOC_RET(JNI_FALSE);
159.1621 +}
159.1622 +
159.1623 +/*
159.1624 + * Class:     sun_awt_windows_WWindowPeer
159.1625 + * Method:    repositionSecurityWarning
159.1626 + * Signature: ()V
159.1627 + */
159.1628 +JNIEXPORT void JNICALL
159.1629 +Java_sun_awt_windows_WWindowPeer_repositionSecurityWarning(JNIEnv *env,
159.1630 +        jobject self)
159.1631 +{
159.1632 +    TRY;
159.1633 +
159.1634 +    RepositionSecurityWarningStruct *rsws =
159.1635 +        new RepositionSecurityWarningStruct;
159.1636 +    rsws->window = env->NewGlobalRef(self);
159.1637 +
159.1638 +    AwtToolkit::GetInstance().InvokeFunction(
159.1639 +            AwtWindow::_RepositionSecurityWarning, rsws);
159.1640 +    // global refs and mds are deleted in _RepositionSecurityWarning
159.1641 +
159.1642 +    CATCH_BAD_ALLOC;
159.1643 +}
159.1644 +
159.1645  } /* extern "C" */
   160.1 --- a/src/windows/native/sun/windows/awt_Window.h	Tue Apr 14 00:05:07 2009 -0700
   160.2 +++ b/src/windows/native/sun/windows/awt_Window.h	Tue Apr 14 04:21:02 2009 -0700
   160.3 @@ -1,5 +1,5 @@
   160.4  /*
   160.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   160.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   160.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   160.8   *
   160.9   * This code is free software; you can redistribute it and/or modify it
  160.10 @@ -34,14 +34,12 @@
  160.11  // property name tagging windows disabled by modality
  160.12  static LPCTSTR ModalBlockerProp = TEXT("SunAwtModalBlockerProp");
  160.13  static LPCTSTR ModalDialogPeerProp = TEXT("SunAwtModalDialogPeerProp");
  160.14 +static LPCTSTR NativeDialogWndProcProp = TEXT("SunAwtNativeDialogWndProcProp");
  160.15  
  160.16  #ifndef WH_MOUSE_LL
  160.17  #define WH_MOUSE_LL 14
  160.18  #endif
  160.19  
  160.20 -// WS_EX_NOACTIVATE is not defined in the headers we build with
  160.21 -#define AWT_WS_EX_NOACTIVATE        0x08000000L
  160.22 -
  160.23  class AwtFrame;
  160.24  
  160.25  /************************************************************************
  160.26 @@ -56,6 +54,8 @@
  160.27      static jfieldID locationByPlatformID;
  160.28      static jfieldID screenID; /* screen number passed over from WindowPeer */
  160.29      static jfieldID autoRequestFocusID;
  160.30 +    static jfieldID securityWarningWidthID;
  160.31 +    static jfieldID securityWarningHeightID;
  160.32  
  160.33      // The coordinates at the peer.
  160.34      static jfieldID sysXID;
  160.35 @@ -63,6 +63,9 @@
  160.36      static jfieldID sysWID;
  160.37      static jfieldID sysHID;
  160.38  
  160.39 +    static jmethodID getWarningStringMID;
  160.40 +    static jmethodID calculateSecurityWarningPositionMID;
  160.41 +
  160.42      AwtWindow();
  160.43      virtual ~AwtWindow();
  160.44  
  160.45 @@ -152,11 +155,12 @@
  160.46      static void SetModalBlocker(HWND window, HWND blocker);
  160.47      static void SetAndActivateModalBlocker(HWND window, HWND blocker);
  160.48  
  160.49 +    static HWND GetTopmostModalBlocker(HWND window);
  160.50 +
  160.51      /*
  160.52       * Windows message handler functions
  160.53       */
  160.54      virtual MsgRouting WmActivate(UINT nState, BOOL fMinimized, HWND opposite);
  160.55 -    static void BounceActivation(void *self); // used by WmActivate
  160.56      virtual MsgRouting WmCreate();
  160.57      virtual MsgRouting WmClose();
  160.58      virtual MsgRouting WmDestroy();
  160.59 @@ -169,19 +173,36 @@
  160.60      virtual MsgRouting WmSettingChange(UINT wFlag, LPCTSTR pszSection);
  160.61      virtual MsgRouting WmNcCalcSize(BOOL fCalcValidRects,
  160.62                                      LPNCCALCSIZE_PARAMS lpncsp, LRESULT& retVal);
  160.63 -    virtual MsgRouting WmNcPaint(HRGN hrgn);
  160.64      virtual MsgRouting WmNcHitTest(UINT x, UINT y, LRESULT& retVal);
  160.65      virtual MsgRouting WmNcMouseDown(WPARAM hitTest, int x, int y, int button);
  160.66      virtual MsgRouting WmGetIcon(WPARAM iconType, LRESULT& retVal);
  160.67      virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  160.68      virtual MsgRouting WmWindowPosChanging(LPARAM windowPos);
  160.69      virtual MsgRouting WmWindowPosChanged(LPARAM windowPos);
  160.70 +    virtual MsgRouting WmTimer(UINT_PTR timerID);
  160.71  
  160.72      virtual MsgRouting HandleEvent(MSG *msg, BOOL synthetic);
  160.73      virtual void WindowResized();
  160.74  
  160.75 +    static jboolean _RequestWindowFocus(void *param);
  160.76 +
  160.77 +    virtual BOOL AwtSetActiveWindow(BOOL isMouseEventCause = FALSE, UINT hittest = HTCLIENT);
  160.78 +
  160.79 +    // Execute on Toolkit only.
  160.80 +    INLINE static LRESULT SynthesizeWmActivate(BOOL doActivate, HWND targetHWnd, HWND oppositeHWnd) {
  160.81 +        if (::IsWindowVisible(targetHWnd)) {
  160.82 +            return ::SendMessage(targetHWnd, WM_ACTIVATE,
  160.83 +                                 MAKEWPARAM(doActivate ? WA_ACTIVE : WA_INACTIVE, FALSE),
  160.84 +                                 (LPARAM) oppositeHWnd);
  160.85 +        }
  160.86 +        return 1; // if not processed
  160.87 +    }
  160.88 +
  160.89      void moveToDefaultLocation(); /* moves Window to X,Y specified by Window Manger */
  160.90  
  160.91 +    void UpdateWindow(JNIEnv* env, jintArray data, int width, int height,
  160.92 +                      HBITMAP hNewBitmap = NULL);
  160.93 +
  160.94      INLINE virtual BOOL IsTopLevel() { return TRUE; }
  160.95      static AwtWindow * GetGrabbedWindow() { return m_grabbedWindow; }
  160.96  
  160.97 @@ -204,11 +225,25 @@
  160.98      static void _SetModalExcludedNativeProp(void *param);
  160.99      static void _ModalDisable(void *param);
 160.100      static void _ModalEnable(void *param);
 160.101 +    static void _SetOpacity(void* param);
 160.102 +    static void _SetOpaque(void* param);
 160.103 +    static void _UpdateWindow(void* param);
 160.104 +    static void _RepositionSecurityWarning(void* param);
 160.105  
 160.106      inline static BOOL IsResizing() {
 160.107          return sm_resizing;
 160.108      }
 160.109  
 160.110 +    virtual void CreateHWnd(JNIEnv *env, LPCWSTR title,
 160.111 +            DWORD windowStyle, DWORD windowExStyle,
 160.112 +            int x, int y, int w, int h,
 160.113 +            HWND hWndParent, HMENU hMenu,
 160.114 +            COLORREF colorForeground, COLORREF colorBackground,
 160.115 +            jobject peer);
 160.116 +    virtual void DestroyHWnd();
 160.117 +
 160.118 +    static void FocusedWindowChanged(HWND from, HWND to);
 160.119 +
 160.120  private:
 160.121      static int ms_instanceCounter;
 160.122      static HHOOK ms_hCBTFilter;
 160.123 @@ -228,6 +263,79 @@
 160.124                                         // from its hierarchy when shown. Currently applied to instances of
 160.125                                         // javax/swing/Popup$HeavyWeightWindow class.
 160.126  
 160.127 +    BYTE m_opacity;         // The opacity level. == 0xff by default (when opacity mode is disabled)
 160.128 +    BOOL m_opaque;          // Whether the window uses the perpixel translucency (false), or not (true).
 160.129 +
 160.130 +    inline BYTE getOpacity() {
 160.131 +        return m_opacity;
 160.132 +    }
 160.133 +    inline void setOpacity(BYTE opacity) {
 160.134 +        m_opacity = opacity;
 160.135 +    }
 160.136 +
 160.137 +    inline BOOL isOpaque() {
 160.138 +        return m_opaque;
 160.139 +    }
 160.140 +    inline void setOpaque(BOOL opaque) {
 160.141 +        m_opaque = opaque;
 160.142 +    }
 160.143 +
 160.144 +    CRITICAL_SECTION contentBitmapCS;
 160.145 +    HBITMAP hContentBitmap;
 160.146 +    UINT contentWidth;
 160.147 +    UINT contentHeight;
 160.148 +
 160.149 +    void SetTranslucency(BYTE opacity, BOOL opaque);
 160.150 +    void UpdateWindow(int width, int height, HBITMAP hBitmap);
 160.151 +    void UpdateWindowImpl(int width, int height, HBITMAP hBitmap);
 160.152 +    void RedrawWindow();
 160.153 +
 160.154 +    static UINT untrustedWindowsCounter;
 160.155 +
 160.156 +    WCHAR * warningString;
 160.157 +
 160.158 +    // The warning icon
 160.159 +    HWND warningWindow;
 160.160 +    // The tooltip that appears when hovering the icon
 160.161 +    HWND securityTooltipWindow;
 160.162 +
 160.163 +    UINT warningWindowWidth;
 160.164 +    UINT warningWindowHeight;
 160.165 +    void InitSecurityWarningSize(JNIEnv *env);
 160.166 +    HICON GetSecurityWarningIcon();
 160.167 +
 160.168 +    void CreateWarningWindow(JNIEnv *env);
 160.169 +    void DestroyWarningWindow();
 160.170 +    static LPCTSTR GetWarningWindowClassName();
 160.171 +    void FillWarningWindowClassInfo(WNDCLASS *lpwc);
 160.172 +    void RegisterWarningWindowClass();
 160.173 +    void UnregisterWarningWindowClass();
 160.174 +    static LRESULT CALLBACK WarningWindowProc(
 160.175 +            HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
 160.176 +
 160.177 +    static void PaintWarningWindow(HWND warningWindow);
 160.178 +    static void PaintWarningWindow(HWND warningWindow, HDC hdc);
 160.179 +    void RepaintWarningWindow();
 160.180 +    void CalculateWarningWindowBounds(JNIEnv *env, LPRECT rect);
 160.181 +
 160.182 +    void AnimateSecurityWarning(bool enable);
 160.183 +    UINT securityWarningAnimationStage;
 160.184 +
 160.185 +    enum AnimationKind {
 160.186 +        akNone, akShow, akPreHide, akHide
 160.187 +    };
 160.188 +
 160.189 +    AnimationKind securityAnimationKind;
 160.190 +
 160.191 +    void StartSecurityAnimation(AnimationKind kind);
 160.192 +    void StopSecurityAnimation();
 160.193 +
 160.194 +    void RepositionSecurityWarning(JNIEnv *env);
 160.195 +
 160.196 +public:
 160.197 +    void UpdateSecurityWarningVisibility();
 160.198 +    static bool IsWarningWindow(HWND hWnd);
 160.199 +
 160.200  protected:
 160.201      BOOL m_isResizable;
 160.202      static AwtWindow* m_grabbedWindow; // Current grabbing window
 160.203 @@ -236,6 +344,16 @@
 160.204      BOOL m_iconInherited;     /* TRUE if icon is inherited from the owner */
 160.205      BOOL m_filterFocusAndActivation; /* Used in the WH_CBT hook */
 160.206  
 160.207 +    //These are used in AwtComponent::CreatePrintedPixels. They are overridden
 160.208 +    //here to handle non-opaque windows.
 160.209 +    virtual void FillBackground(HDC hMemoryDC, SIZE &size);
 160.210 +    virtual void FillAlpha(void *bitmapBits, SIZE &size, BYTE alpha);
 160.211 +
 160.212 +    inline BOOL IsUntrusted() {
 160.213 +        return warningString != NULL;
 160.214 +    }
 160.215 +
 160.216 +    UINT currentWmSizeState;
 160.217  
 160.218  private:
 160.219      int m_screenNum;
   161.1 --- a/src/windows/native/sun/windows/awtmsg.h	Tue Apr 14 00:05:07 2009 -0700
   161.2 +++ b/src/windows/native/sun/windows/awtmsg.h	Tue Apr 14 04:21:02 2009 -0700
   161.3 @@ -1,5 +1,5 @@
   161.4  /*
   161.5 - * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   161.6 + * Copyright 1996-2009 Sun Microsystems, Inc.  All Rights Reserved.
   161.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   161.8   *
   161.9   * This code is free software; you can redistribute it and/or modify it
  161.10 @@ -194,6 +194,7 @@
  161.11      WM_AWT_COMPONENT_SHOW,
  161.12      WM_AWT_COMPONENT_HIDE,
  161.13      WM_AWT_COMPONENT_SETFOCUS,
  161.14 +    WM_AWT_WINDOW_SETACTIVE,
  161.15      WM_AWT_LIST_SETMULTISELECT,
  161.16      WM_AWT_HANDLE_EVENT,
  161.17      WM_AWT_PRINT_COMPONENT,
   162.1 Binary file src/windows/native/sun/windows/security_warning.ico has changed
   163.1 Binary file src/windows/native/sun/windows/security_warning_bw.ico has changed
   164.1 Binary file src/windows/native/sun/windows/security_warning_int.ico has changed
   165.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   165.2 +++ b/test/com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java	Tue Apr 14 04:21:02 2009 -0700
   165.3 @@ -0,0 +1,392 @@
   165.4 +/*
   165.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   165.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   165.7 + *
   165.8 + * This code is free software; you can redistribute it and/or modify it
   165.9 + * under the terms of the GNU General Public License version 2 only, as
  165.10 + * published by the Free Software Foundation.
  165.11 + *
  165.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  165.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  165.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  165.15 + * version 2 for more details (a copy is included in the LICENSE file that
  165.16 + * accompanied this code).
  165.17 + *
  165.18 + * You should have received a copy of the GNU General Public License version
  165.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  165.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  165.21 + *
  165.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  165.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  165.24 + * have any questions.
  165.25 + */
  165.26 +
  165.27 +/*
  165.28 +  @test %W% %E%
  165.29 +  @bug 6818312
  165.30 +  @summary The size returned by SecurityWarning.getSize() should not be zero
  165.31 +  @author anthony.petrov@sun.com: area=awt.toplevel
  165.32 +  @library ../../../../java/awt/regtesthelpers
  165.33 +  @build Util
  165.34 +  @run main GetSizeShouldNotReturnZero
  165.35 +*/
  165.36 +
  165.37 +/**
  165.38 + * GetSizeShouldNotReturnZero.java
  165.39 + *
  165.40 + * summary: The size returned by SecurityWarning.getSize() should not be zero
  165.41 + */
  165.42 +
  165.43 +import java.awt.*;
  165.44 +import java.awt.event.*;
  165.45 +import java.security.Permission;
  165.46 +import test.java.awt.regtesthelpers.Util;
  165.47 +import com.sun.awt.SecurityWarning;
  165.48 +
  165.49 +public class GetSizeShouldNotReturnZero
  165.50 +{
  165.51 +    private static void init()
  165.52 +    {
  165.53 +        String[] instructions =
  165.54 +        {
  165.55 +            "This is an AUTOMATIC test, simply wait until it is done.",
  165.56 +            "The result (passed or failed) will be shown in the",
  165.57 +            "message window below."
  165.58 +        };
  165.59 +        Sysout.createDialog( );
  165.60 +        Sysout.printInstructions( instructions );
  165.61 +
  165.62 +
  165.63 +        // Install the security manager so that all subsequently created
  165.64 +        // windows display the security warning.
  165.65 +        System.setSecurityManager(new SecurityManager() {
  165.66 +
  165.67 +            @Override
  165.68 +            public void checkPermission(Permission perm) {
  165.69 +            }
  165.70 +
  165.71 +            @Override
  165.72 +            public boolean checkTopLevelWindow(Object window) {
  165.73 +                return false;
  165.74 +            }
  165.75 +        });
  165.76 +
  165.77 +        Frame f = new Frame();
  165.78 +        f.setSize(100, 100);
  165.79 +        f.setVisible(true);
  165.80 +
  165.81 +        Robot robot = Util.createRobot();
  165.82 +        Util.waitForIdle(robot);
  165.83 +
  165.84 +        Dimension size = SecurityWarning.getSize(f);
  165.85 +        if (size.width == 0 || size.height == 0) {
  165.86 +            fail("Reported security warning size: " + size);
  165.87 +            return;
  165.88 +        }
  165.89 +        pass();
  165.90 +    }//End  init()
  165.91 +
  165.92 +
  165.93 +
  165.94 +    /*****************************************************
  165.95 +     * Standard Test Machinery Section
  165.96 +     * DO NOT modify anything in this section -- it's a
  165.97 +     * standard chunk of code which has all of the
  165.98 +     * synchronisation necessary for the test harness.
  165.99 +     * By keeping it the same in all tests, it is easier
 165.100 +     * to read and understand someone else's test, as
 165.101 +     * well as insuring that all tests behave correctly
 165.102 +     * with the test harness.
 165.103 +     * There is a section following this for test-
 165.104 +     * classes
 165.105 +     ******************************************************/
 165.106 +    private static boolean theTestPassed = false;
 165.107 +    private static boolean testGeneratedInterrupt = false;
 165.108 +    private static String failureMessage = "";
 165.109 +
 165.110 +    private static Thread mainThread = null;
 165.111 +
 165.112 +    private static int sleepTime = 300000;
 165.113 +
 165.114 +    // Not sure about what happens if multiple of this test are
 165.115 +    //  instantiated in the same VM.  Being static (and using
 165.116 +    //  static vars), it aint gonna work.  Not worrying about
 165.117 +    //  it for now.
 165.118 +    public static void main( String args[] ) throws InterruptedException
 165.119 +    {
 165.120 +        mainThread = Thread.currentThread();
 165.121 +        try
 165.122 +        {
 165.123 +            init();
 165.124 +        }
 165.125 +        catch( TestPassedException e )
 165.126 +        {
 165.127 +            //The test passed, so just return from main and harness will
 165.128 +            // interepret this return as a pass
 165.129 +            return;
 165.130 +        }
 165.131 +        //At this point, neither test pass nor test fail has been
 165.132 +        // called -- either would have thrown an exception and ended the
 165.133 +        // test, so we know we have multiple threads.
 165.134 +
 165.135 +        //Test involves other threads, so sleep and wait for them to
 165.136 +        // called pass() or fail()
 165.137 +        try
 165.138 +        {
 165.139 +            Thread.sleep( sleepTime );
 165.140 +            //Timed out, so fail the test
 165.141 +            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
 165.142 +        }
 165.143 +        catch (InterruptedException e)
 165.144 +        {
 165.145 +            //The test harness may have interrupted the test.  If so, rethrow the exception
 165.146 +            // so that the harness gets it and deals with it.
 165.147 +            if( ! testGeneratedInterrupt ) throw e;
 165.148 +
 165.149 +            //reset flag in case hit this code more than once for some reason (just safety)
 165.150 +            testGeneratedInterrupt = false;
 165.151 +
 165.152 +            if ( theTestPassed == false )
 165.153 +            {
 165.154 +                throw new RuntimeException( failureMessage );
 165.155 +            }
 165.156 +        }
 165.157 +
 165.158 +    }//main
 165.159 +
 165.160 +    public static synchronized void setTimeoutTo( int seconds )
 165.161 +    {
 165.162 +        sleepTime = seconds * 1000;
 165.163 +    }
 165.164 +
 165.165 +    public static synchronized void pass()
 165.166 +    {
 165.167 +        Sysout.println( "The test passed." );
 165.168 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 165.169 +        //first check if this is executing in main thread
 165.170 +        if ( mainThread == Thread.currentThread() )
 165.171 +        {
 165.172 +            //Still in the main thread, so set the flag just for kicks,
 165.173 +            // and throw a test passed exception which will be caught
 165.174 +            // and end the test.
 165.175 +            theTestPassed = true;
 165.176 +            throw new TestPassedException();
 165.177 +        }
 165.178 +        theTestPassed = true;
 165.179 +        testGeneratedInterrupt = true;
 165.180 +        mainThread.interrupt();
 165.181 +    }//pass()
 165.182 +
 165.183 +    public static synchronized void fail()
 165.184 +    {
 165.185 +        //test writer didn't specify why test failed, so give generic
 165.186 +        fail( "it just plain failed! :-)" );
 165.187 +    }
 165.188 +
 165.189 +    public static synchronized void fail( String whyFailed )
 165.190 +    {
 165.191 +        Sysout.println( "The test failed: " + whyFailed );
 165.192 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 165.193 +        //check if this called from main thread
 165.194 +        if ( mainThread == Thread.currentThread() )
 165.195 +        {
 165.196 +            //If main thread, fail now 'cause not sleeping
 165.197 +            throw new RuntimeException( whyFailed );
 165.198 +        }
 165.199 +        theTestPassed = false;
 165.200 +        testGeneratedInterrupt = true;
 165.201 +        failureMessage = whyFailed;
 165.202 +        mainThread.interrupt();
 165.203 +    }//fail()
 165.204 +
 165.205 +}// class GetSizeShouldNotReturnZero
 165.206 +
 165.207 +//This exception is used to exit from any level of call nesting
 165.208 +// when it's determined that the test has passed, and immediately
 165.209 +// end the test.
 165.210 +class TestPassedException extends RuntimeException
 165.211 +{
 165.212 +}
 165.213 +
 165.214 +//*********** End Standard Test Machinery Section **********
 165.215 +
 165.216 +
 165.217 +//************ Begin classes defined for the test ****************
 165.218 +
 165.219 +// if want to make listeners, here is the recommended place for them, then instantiate
 165.220 +//  them in init()
 165.221 +
 165.222 +/* Example of a class which may be written as part of a test
 165.223 +class NewClass implements anInterface
 165.224 + {
 165.225 +   static int newVar = 0;
 165.226 +
 165.227 +   public void eventDispatched(AWTEvent e)
 165.228 +    {
 165.229 +      //Counting events to see if we get enough
 165.230 +      eventCount++;
 165.231 +
 165.232 +      if( eventCount == 20 )
 165.233 +       {
 165.234 +         //got enough events, so pass
 165.235 +
 165.236 +         GetSizeShouldNotReturnZero.pass();
 165.237 +       }
 165.238 +      else if( tries == 20 )
 165.239 +       {
 165.240 +         //tried too many times without getting enough events so fail
 165.241 +
 165.242 +         GetSizeShouldNotReturnZero.fail();
 165.243 +       }
 165.244 +
 165.245 +    }// eventDispatched()
 165.246 +
 165.247 + }// NewClass class
 165.248 +
 165.249 +*/
 165.250 +
 165.251 +
 165.252 +//************** End classes defined for the test *******************
 165.253 +
 165.254 +
 165.255 +
 165.256 +
 165.257 +/****************************************************
 165.258 + Standard Test Machinery
 165.259 + DO NOT modify anything below -- it's a standard
 165.260 +  chunk of code whose purpose is to make user
 165.261 +  interaction uniform, and thereby make it simpler
 165.262 +  to read and understand someone else's test.
 165.263 + ****************************************************/
 165.264 +
 165.265 +/**
 165.266 + This is part of the standard test machinery.
 165.267 + It creates a dialog (with the instructions), and is the interface
 165.268 +  for sending text messages to the user.
 165.269 + To print the instructions, send an array of strings to Sysout.createDialog
 165.270 +  WithInstructions method.  Put one line of instructions per array entry.
 165.271 + To display a message for the tester to see, simply call Sysout.println
 165.272 +  with the string to be displayed.
 165.273 + This mimics System.out.println but works within the test harness as well
 165.274 +  as standalone.
 165.275 + */
 165.276 +
 165.277 +class Sysout
 165.278 +{
 165.279 +    private static TestDialog dialog;
 165.280 +
 165.281 +    public static void createDialogWithInstructions( String[] instructions )
 165.282 +    {
 165.283 +        dialog = new TestDialog( new Frame(), "Instructions" );
 165.284 +        dialog.printInstructions( instructions );
 165.285 +        dialog.setVisible(true);
 165.286 +        println( "Any messages for the tester will display here." );
 165.287 +    }
 165.288 +
 165.289 +    public static void createDialog( )
 165.290 +    {
 165.291 +        dialog = new TestDialog( new Frame(), "Instructions" );
 165.292 +        String[] defInstr = { "Instructions will appear here. ", "" } ;
 165.293 +        dialog.printInstructions( defInstr );
 165.294 +        dialog.setVisible(true);
 165.295 +        println( "Any messages for the tester will display here." );
 165.296 +    }
 165.297 +
 165.298 +
 165.299 +    public static void printInstructions( String[] instructions )
 165.300 +    {
 165.301 +        dialog.printInstructions( instructions );
 165.302 +    }
 165.303 +
 165.304 +
 165.305 +    public static void println( String messageIn )
 165.306 +    {
 165.307 +        dialog.displayMessage( messageIn );
 165.308 +        System.out.println(messageIn);
 165.309 +    }
 165.310 +
 165.311 +}// Sysout  class
 165.312 +
 165.313 +/**
 165.314 +  This is part of the standard test machinery.  It provides a place for the
 165.315 +   test instructions to be displayed, and a place for interactive messages
 165.316 +   to the user to be displayed.
 165.317 +  To have the test instructions displayed, see Sysout.
 165.318 +  To have a message to the user be displayed, see Sysout.
 165.319 +  Do not call anything in this dialog directly.
 165.320 +  */
 165.321 +class TestDialog extends Dialog
 165.322 +{
 165.323 +
 165.324 +    TextArea instructionsText;
 165.325 +    TextArea messageText;
 165.326 +    int maxStringLength = 80;
 165.327 +
 165.328 +    //DO NOT call this directly, go through Sysout
 165.329 +    public TestDialog( Frame frame, String name )
 165.330 +    {
 165.331 +        super( frame, name );
 165.332 +        int scrollBoth = TextArea.SCROLLBARS_BOTH;
 165.333 +        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
 165.334 +        add( "North", instructionsText );
 165.335 +
 165.336 +        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
 165.337 +        add("Center", messageText);
 165.338 +
 165.339 +        pack();
 165.340 +
 165.341 +        setVisible(true);
 165.342 +    }// TestDialog()
 165.343 +
 165.344 +    //DO NOT call this directly, go through Sysout
 165.345 +    public void printInstructions( String[] instructions )
 165.346 +    {
 165.347 +        //Clear out any current instructions
 165.348 +        instructionsText.setText( "" );
 165.349 +
 165.350 +        //Go down array of instruction strings
 165.351 +
 165.352 +        String printStr, remainingStr;
 165.353 +        for( int i=0; i < instructions.length; i++ )
 165.354 +        {
 165.355 +            //chop up each into pieces maxSringLength long
 165.356 +            remainingStr = instructions[ i ];
 165.357 +            while( remainingStr.length() > 0 )
 165.358 +            {
 165.359 +                //if longer than max then chop off first max chars to print
 165.360 +                if( remainingStr.length() >= maxStringLength )
 165.361 +                {
 165.362 +                    //Try to chop on a word boundary
 165.363 +                    int posOfSpace = remainingStr.
 165.364 +                        lastIndexOf( ' ', maxStringLength - 1 );
 165.365 +
 165.366 +                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
 165.367 +
 165.368 +                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
 165.369 +                    remainingStr = remainingStr.substring( posOfSpace + 1 );
 165.370 +                }
 165.371 +                //else just print
 165.372 +                else
 165.373 +                {
 165.374 +                    printStr = remainingStr;
 165.375 +                    remainingStr = "";
 165.376 +                }
 165.377 +
 165.378 +                instructionsText.append( printStr + "\n" );
 165.379 +
 165.380 +            }// while
 165.381 +
 165.382 +        }// for
 165.383 +
 165.384 +    }//printInstructions()
 165.385 +
 165.386 +    //DO NOT call this directly, go through Sysout
 165.387 +    public void displayMessage( String messageIn )
 165.388 +    {
 165.389 +        messageText.append( messageIn + "\n" );
 165.390 +        System.out.println(messageIn);
 165.391 +    }
 165.392 +
 165.393 +}// TestDialog  class
 165.394 +
 165.395 +
   166.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   166.2 +++ b/test/com/sun/awt/Translucency/TranslucentJAppletTest/TranslucentJAppletTest.java	Tue Apr 14 04:21:02 2009 -0700
   166.3 @@ -0,0 +1,103 @@
   166.4 +/*
   166.5 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
   166.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   166.7 + *
   166.8 + * This code is free software; you can redistribute it and/or modify it
   166.9 + * under the terms of the GNU General Public License version 2 only, as
  166.10 + * published by the Free Software Foundation.
  166.11 + *
  166.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  166.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  166.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  166.15 + * version 2 for more details (a copy is included in the LICENSE file that
  166.16 + * accompanied this code).
  166.17 + *
  166.18 + * You should have received a copy of the GNU General Public License version
  166.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  166.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  166.21 + *
  166.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  166.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  166.24 + * have any questions.
  166.25 + */
  166.26 +
  166.27 +/*
  166.28 + * @test %I% %E%
  166.29 + * @bug 6683728
  166.30 + * @summary Tests that a JApplet in a translucent JFrame works properly
  166.31 + * @author Kenneth.Russell@sun.com: area=Graphics
  166.32 + * @compile -XDignore.symbol.file=true TranslucentJAppletTest.java
  166.33 + * @run main/manual/othervm TranslucentJAppletTest
  166.34 + */
  166.35 +
  166.36 +import java.awt.*;
  166.37 +import java.awt.image.*;
  166.38 +
  166.39 +import javax.swing.*;
  166.40 +
  166.41 +public class TranslucentJAppletTest {
  166.42 +
  166.43 +    private static JFrame frame;
  166.44 +    private static volatile boolean paintComponentCalled = false;
  166.45 +
  166.46 +    private static void initAndShowGUI() {
  166.47 +        frame = new JFrame();
  166.48 +        JApplet applet = new JApplet();
  166.49 +        JPanel panel = new JPanel() {
  166.50 +            protected void paintComponent(Graphics g) {
  166.51 +                paintComponentCalled = true;
  166.52 +                g.setColor(Color.RED);
  166.53 +                g.fillOval(0, 0, getWidth(), getHeight());
  166.54 +            }
  166.55 +        };
  166.56 +        panel.setDoubleBuffered(false);
  166.57 +        panel.setOpaque(false);
  166.58 +        applet.add(panel);
  166.59 +        frame.add(applet);
  166.60 +        frame.setBounds(100, 100, 200, 200);
  166.61 +        frame.setUndecorated(true);
  166.62 +        com.sun.awt.AWTUtilities.setWindowOpaque(frame, false);
  166.63 +        frame.setVisible(true);
  166.64 +    }
  166.65 +
  166.66 +    public static void main(String[] args)
  166.67 +        throws Exception
  166.68 +    {
  166.69 +        sun.awt.SunToolkit tk = (sun.awt.SunToolkit)Toolkit.getDefaultToolkit();
  166.70 +
  166.71 +        Robot r = new Robot();
  166.72 +        Color color1 = r.getPixelColor(100, 100); // (0, 0) in frame coordinates
  166.73 +
  166.74 +        SwingUtilities.invokeAndWait(new Runnable() {
  166.75 +            public void run() {
  166.76 +                initAndShowGUI();
  166.77 +            }
  166.78 +        });
  166.79 +        tk.realSync();
  166.80 +
  166.81 +        if (!paintComponentCalled) {
  166.82 +            throw new RuntimeException("Test FAILED: panel's paintComponent() method is not called");
  166.83 +        }
  166.84 +
  166.85 +        Color newColor1 = r.getPixelColor(100, 100);
  166.86 +        // unfortunately, robot.getPixelColor() doesn't work for some unknown reason
  166.87 +        // Color newColor2 = r.getPixelColor(200, 200);
  166.88 +        BufferedImage bim = r.createScreenCapture(new Rectangle(200, 200, 1, 1));
  166.89 +        Color newColor2 = new Color(bim.getRGB(0, 0));
  166.90 +
  166.91 +        // Frame must be transparent at (100, 100) in screen coords
  166.92 +        if (!color1.equals(newColor1)) {
  166.93 +            System.err.println("color1 = " + color1);
  166.94 +            System.err.println("newColor1 = " + newColor1);
  166.95 +            throw new RuntimeException("Test FAILED: frame pixel at (0, 0) is not transparent");
  166.96 +        }
  166.97 +
  166.98 +        // Frame must be RED at (200, 200) in screen coords
  166.99 +        if (!newColor2.equals(Color.RED)) {
 166.100 +            System.err.println("newColor2 = " + newColor2);
 166.101 +            throw new RuntimeException("Test FAILED: frame pixel at (100, 100) is not red (transparent?)");
 166.102 +        }
 166.103 +
 166.104 +        System.out.println("Test PASSED");
 166.105 +    }
 166.106 +}
   167.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   167.2 +++ b/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TSFrame.java	Tue Apr 14 04:21:02 2009 -0700
   167.3 @@ -0,0 +1,306 @@
   167.4 +/*
   167.5 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
   167.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   167.7 + *
   167.8 + * This code is free software; you can redistribute it and/or modify it
   167.9 + * under the terms of the GNU General Public License version 2 only, as
  167.10 + * published by the Free Software Foundation.  Sun designates this
  167.11 + * particular file as subject to the "Classpath" exception as provided
  167.12 + * by Sun in the LICENSE file that accompanied this code.
  167.13 + *
  167.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  167.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  167.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  167.17 + * version 2 for more details (a copy is included in the LICENSE file that
  167.18 + * accompanied this code).
  167.19 + *
  167.20 + * You should have received a copy of the GNU General Public License version
  167.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  167.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  167.23 + *
  167.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  167.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  167.26 + * have any questions.
  167.27 + */
  167.28 +
  167.29 +import com.sun.awt.AWTUtilities;
  167.30 +import static com.sun.awt.AWTUtilities.Translucency.*;
  167.31 +import java.awt.BorderLayout;
  167.32 +import java.awt.Color;
  167.33 +import java.awt.Dimension;
  167.34 +import java.awt.Frame;
  167.35 +import java.awt.Graphics;
  167.36 +import java.awt.GraphicsConfiguration;
  167.37 +import java.awt.GraphicsEnvironment;
  167.38 +import java.awt.RenderingHints;
  167.39 +import java.awt.event.MouseAdapter;
  167.40 +import java.awt.event.MouseEvent;
  167.41 +import java.awt.event.WindowAdapter;
  167.42 +import java.awt.event.WindowEvent;
  167.43 +import java.awt.Canvas;
  167.44 +import java.awt.Component;
  167.45 +import java.awt.GradientPaint;
  167.46 +import java.awt.Graphics2D;
  167.47 +import java.awt.Paint;
  167.48 +import java.util.Random;
  167.49 +import java.awt.geom.Ellipse2D;
  167.50 +import javax.swing.JApplet;
  167.51 +import javax.swing.JButton;
  167.52 +import javax.swing.JComponent;
  167.53 +import javax.swing.JFrame;
  167.54 +import javax.swing.JPanel;
  167.55 +import javax.swing.SwingUtilities;
  167.56 +
  167.57 +public class TSFrame {
  167.58 +
  167.59 +    static volatile boolean done = false;
  167.60 +
  167.61 +    static final boolean useSwing = System.getProperty("useswing") != null;
  167.62 +    static final boolean useShape = System.getProperty("useshape") != null;
  167.63 +    static final boolean useTransl = System.getProperty("usetransl") != null;
  167.64 +    static final boolean useNonOpaque = System.getProperty("usenonop") != null;
  167.65 +
  167.66 +    static final Random rnd = new Random();
  167.67 +    private static void render(Graphics g, int w, int h, boolean useNonOpaque) {
  167.68 +        if (useNonOpaque) {
  167.69 +            Graphics2D g2d = (Graphics2D)g;
  167.70 +            GradientPaint p =
  167.71 +                new GradientPaint(0.0f, 0.0f,
  167.72 +                                  new Color(rnd.nextInt(0xffffff)),
  167.73 +                                  w, h,
  167.74 +                                  new Color(rnd.nextInt(0xff),
  167.75 +                                            rnd.nextInt(0xff),
  167.76 +                                            rnd.nextInt(0xff), 0),
  167.77 +                                  true);
  167.78 +            g2d.setPaint(p);
  167.79 +            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
  167.80 +                                 RenderingHints.VALUE_ANTIALIAS_ON);
  167.81 +            g2d.fillOval(0, 0, w, h);
  167.82 +        } else {
  167.83 +            g.setColor(new Color(rnd.nextInt(0xffffff)));
  167.84 +            g.fillRect(0, 0, w, h);
  167.85 +        }
  167.86 +    }
  167.87 +
  167.88 +    private static class MyCanvas extends Canvas {
  167.89 +        @Override
  167.90 +        public void paint(Graphics g) {
  167.91 +            render(g, getWidth(), getHeight(), false);
  167.92 +        }
  167.93 +        @Override
  167.94 +        public Dimension getPreferredSize() {
  167.95 +            return new Dimension(200, 100);
  167.96 +        }
  167.97 +    }
  167.98 +    private static class NonOpaqueJFrame extends JFrame {
  167.99 +        NonOpaqueJFrame(GraphicsConfiguration gc) {
 167.100 +            super("NonOpaque Swing JFrame", gc);
 167.101 +            JPanel p = new JPanel() {
 167.102 +                public void paintComponent(Graphics g) {
 167.103 +                    super.paintComponent(g);
 167.104 +                    render(g, getWidth(), getHeight(), true);
 167.105 +                    g.setColor(Color.red);
 167.106 +                    g.drawString("Non-Opaque Swing JFrame", 10, 15);
 167.107 +                }
 167.108 +            };
 167.109 +            p.setDoubleBuffered(false);
 167.110 +            p.setOpaque(false);
 167.111 +            add(p);
 167.112 +            setUndecorated(true);
 167.113 +        }
 167.114 +    }
 167.115 +    private static class NonOpaqueJAppletFrame extends JFrame {
 167.116 +        JPanel p;
 167.117 +        NonOpaqueJAppletFrame(GraphicsConfiguration gc) {
 167.118 +            super("NonOpaque Swing JAppletFrame", gc);
 167.119 +            JApplet ja = new JApplet() {
 167.120 +                public void paint(Graphics g) {
 167.121 +                    super.paint(g);
 167.122 +                    System.err.println("JAppletFrame paint called");
 167.123 +                }
 167.124 +            };
 167.125 +            p = new JPanel() {
 167.126 +                public void paintComponent(Graphics g) {
 167.127 +                    super.paintComponent(g);
 167.128 +                    render(g, getWidth(), getHeight(), true);
 167.129 +                    g.setColor(Color.red);
 167.130 +                    g.drawString("Non-Opaque Swing JFrame", 10, 15);
 167.131 +                }
 167.132 +            };
 167.133 +            p.setDoubleBuffered(false);
 167.134 +            p.setOpaque(false);
 167.135 +            ja.add(p);
 167.136 +            add(ja);
 167.137 +            setUndecorated(true);
 167.138 +        }
 167.139 +    }
 167.140 +    private static class NonOpaqueFrame extends Frame {
 167.141 +        NonOpaqueFrame(GraphicsConfiguration gc) {
 167.142 +            super("NonOpaque AWT Frame", gc);
 167.143 +            // uncomment to test with hw child
 167.144 +//            setLayout(null);
 167.145 +//            Component c = new Panel() {
 167.146 +//                public void paint(Graphics g) {
 167.147 +//                    g.setColor(new Color(1.0f, 1.0f, 1.0f, 0.5f));
 167.148 +//                    g.fillRect(0, 0, getWidth(), getHeight());
 167.149 +//                }
 167.150 +//            };
 167.151 +//            c.setSize(100, 100);
 167.152 +//            c.setBackground(Color.red);
 167.153 +//            c.setForeground(Color.red);
 167.154 +//            add(c);
 167.155 +//            c.setLocation(130, 130);
 167.156 +        }
 167.157 +        @Override
 167.158 +        public void paint(Graphics g) {
 167.159 +            render(g, getWidth(), getHeight(), true);
 167.160 +            g.setColor(Color.red);
 167.161 +            g.drawString("Non-Opaque AWT Frame", 10, 15);
 167.162 +        }
 167.163 +    }
 167.164 +
 167.165 +    private static class MyJPanel extends JPanel {
 167.166 +        @Override
 167.167 +        public void paintComponent(Graphics g) {
 167.168 +            render(g, getWidth(), getHeight(), false);
 167.169 +        }
 167.170 +    }
 167.171 +
 167.172 +    public static Frame createGui(GraphicsConfiguration gc,
 167.173 +                                  final boolean useSwing,
 167.174 +                                  final boolean useShape,
 167.175 +                                  final boolean useTransl,
 167.176 +                                  final boolean useNonOpaque,
 167.177 +                                  final float factor)
 167.178 +    {
 167.179 +        Frame frame;
 167.180 +        done = false;
 167.181 +
 167.182 +        if (gc == null) {
 167.183 +            gc = GraphicsEnvironment.getLocalGraphicsEnvironment().
 167.184 +                    getDefaultScreenDevice().getDefaultConfiguration();
 167.185 +        }
 167.186 +
 167.187 +        if (useNonOpaque) {
 167.188 +            if (useSwing) {
 167.189 +                frame = new NonOpaqueJFrame(gc);
 167.190 +//                frame = new NonOpaqueJAppletFrame(gc);
 167.191 +            } else {
 167.192 +                frame = new NonOpaqueFrame(gc);
 167.193 +            }
 167.194 +            animateComponent(frame);
 167.195 +        } else if (useSwing) {
 167.196 +            frame = new JFrame("Swing Frame", gc);
 167.197 +            JComponent p = new JButton("Swing!");
 167.198 +            p.setPreferredSize(new Dimension(200, 100));
 167.199 +            frame.add("North", p);
 167.200 +            p = new MyJPanel();
 167.201 +            animateComponent(p);
 167.202 +            frame.add("Center", p);
 167.203 +        } else {
 167.204 +            frame = new Frame("AWT Frame", gc) {
 167.205 +                public void paint(Graphics g) {
 167.206 +                    g.setColor(Color.red);
 167.207 +                    g.fillRect(0, 0, 100, 100);
 167.208 +                }
 167.209 +            };
 167.210 +            frame.setLayout(new BorderLayout());
 167.211 +            Canvas c = new MyCanvas();
 167.212 +            frame.add("North", c);
 167.213 +            animateComponent(c);
 167.214 +            c = new MyCanvas();
 167.215 +            frame.add("Center", c);
 167.216 +            animateComponent(c);
 167.217 +            c = new MyCanvas();
 167.218 +            frame.add("South", c);
 167.219 +            animateComponent(c);
 167.220 +        }
 167.221 +        final Frame finalFrame = frame;
 167.222 +        frame.addWindowListener(new WindowAdapter() {
 167.223 +            @Override
 167.224 +            public void windowClosing(WindowEvent e) {
 167.225 +                finalFrame.dispose();
 167.226 +                done = true;
 167.227 +            }
 167.228 +        });
 167.229 +        frame.addMouseListener(new MouseAdapter() {
 167.230 +            @Override
 167.231 +            public void mouseClicked(MouseEvent e) {
 167.232 +                finalFrame.dispose();
 167.233 +                done = true;
 167.234 +            }
 167.235 +        });
 167.236 +        frame.setPreferredSize(new Dimension(800, 600));
 167.237 +
 167.238 +        if (useShape) {
 167.239 +            frame.setUndecorated(true);
 167.240 +        }
 167.241 +
 167.242 +        frame.setLocation(450, 10);
 167.243 +        frame.pack();
 167.244 +
 167.245 +        if (useShape) {
 167.246 +            if (AWTUtilities.isTranslucencySupported(PERPIXEL_TRANSPARENT)) {
 167.247 +                System.out.println("applying PERPIXEL_TRANSPARENT");
 167.248 +                AWTUtilities.setWindowShape(frame,
 167.249 +                    new Ellipse2D.Double(0, 0, frame.getWidth(),
 167.250 +                                               frame.getHeight()/3));
 167.251 +                frame.setTitle("PERPIXEL_TRANSPARENT");
 167.252 +            } else {
 167.253 +                System.out.println("Passed: PERPIXEL_TRANSPARENT unsupported");
 167.254 +            }
 167.255 +        }
 167.256 +        if (useTransl) {
 167.257 +            if (AWTUtilities.isTranslucencySupported(TRANSLUCENT)) {
 167.258 +                System.out.println("applying TRANSLUCENT");
 167.259 +                AWTUtilities.setWindowOpacity(frame, factor);
 167.260 +                frame.setTitle("TRANSLUCENT");
 167.261 +            } else {
 167.262 +                System.out.println("Passed: TRANSLUCENT unsupported");
 167.263 +            }
 167.264 +        }
 167.265 +        if (useNonOpaque) {
 167.266 +            if (AWTUtilities.isTranslucencySupported(PERPIXEL_TRANSLUCENT) &&
 167.267 +                AWTUtilities.isTranslucencyCapable(gc))
 167.268 +            {
 167.269 +                System.out.println("applying PERPIXEL_TRANSLUCENT");
 167.270 +                AWTUtilities.setWindowOpaque(frame, false);
 167.271 +                frame.setTitle("PERPIXEL_TRANSLUCENT");
 167.272 +            } else {
 167.273 +                System.out.println("Passed: PERPIXEL_TRANSLUCENT unsupported");
 167.274 +            }
 167.275 +        }
 167.276 +        frame.setVisible(true);
 167.277 +        return frame;
 167.278 +    }
 167.279 +
 167.280 +    public static void stopThreads() {
 167.281 +        done = true;
 167.282 +    }
 167.283 +
 167.284 +    private static void animateComponent(final Component comp) {
 167.285 +        Thread t = new Thread(new Runnable() {
 167.286 +            public void run() {
 167.287 +                do {
 167.288 +                    try {
 167.289 +                        Thread.sleep(50);
 167.290 +                    } catch (InterruptedException ex) {}
 167.291 +                    comp.repaint();
 167.292 +                } while (!done);
 167.293 +            }
 167.294 +        });
 167.295 +        t.start();
 167.296 +    }
 167.297 +
 167.298 +    public static void main(String[] args) throws Exception {
 167.299 +        SwingUtilities.invokeLater(new Runnable() {
 167.300 +            public void run() {
 167.301 +                TSFrame.createGui(null, useSwing,
 167.302 +                                  useShape,
 167.303 +                                  useTransl,
 167.304 +                                  useNonOpaque,
 167.305 +                                  0.7f);
 167.306 +            }
 167.307 +        });
 167.308 +    }
 167.309 +}
   168.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   168.2 +++ b/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.form	Tue Apr 14 04:21:02 2009 -0700
   168.3 @@ -0,0 +1,230 @@
   168.4 +<?xml version="1.0" encoding="UTF-8" ?>
   168.5 +
   168.6 +<Form version="1.3" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
   168.7 +  <NonVisualComponents>
   168.8 +    <Component class="javax.swing.ButtonGroup" name="createDisposeGrp">
   168.9 +    </Component>
  168.10 +  </NonVisualComponents>
  168.11 +  <Properties>
  168.12 +    <Property name="defaultCloseOperation" type="int" value="3"/>
  168.13 +    <Property name="title" type="java.lang.String" value="TranslucentShapedFrameTest"/>
  168.14 +  </Properties>
  168.15 +  <SyntheticProperties>
  168.16 +    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
  168.17 +  </SyntheticProperties>
  168.18 +  <AuxValues>
  168.19 +    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
  168.20 +    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
  168.21 +    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
  168.22 +    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
  168.23 +    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
  168.24 +    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
  168.25 +  </AuxValues>
  168.26 +
  168.27 +  <Layout>
  168.28 +    <DimensionLayout dim="0">
  168.29 +      <Group type="103" groupAlignment="0" attributes="0">
  168.30 +          <Group type="102" attributes="0">
  168.31 +              <EmptySpace max="-2" attributes="0"/>
  168.32 +              <Group type="103" groupAlignment="0" attributes="0">
  168.33 +                  <Group type="102" alignment="0" attributes="0">
  168.34 +                      <Component id="transparencySld" pref="375" max="32767" attributes="0"/>
  168.35 +                      <EmptySpace max="-2" attributes="0"/>
  168.36 +                  </Group>
  168.37 +                  <Component id="jLabel1" alignment="0" min="-2" max="-2" attributes="0"/>
  168.38 +                  <Group type="102" alignment="0" attributes="0">
  168.39 +                      <Component id="shapedCb" min="-2" max="-2" attributes="0"/>
  168.40 +                      <EmptySpace max="-2" attributes="0"/>
  168.41 +                      <Component id="nonOpaqueChb" min="-2" max="-2" attributes="0"/>
  168.42 +                      <EmptySpace max="-2" attributes="0"/>
  168.43 +                      <Component id="useSwingCb" min="-2" max="-2" attributes="0"/>
  168.44 +                      <EmptySpace pref="102" max="32767" attributes="0"/>
  168.45 +                  </Group>
  168.46 +                  <Group type="102" alignment="0" attributes="0">
  168.47 +                      <Group type="103" groupAlignment="0" attributes="0">
  168.48 +                          <Group type="102" alignment="0" attributes="0">
  168.49 +                              <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
  168.50 +                              <EmptySpace pref="314" max="-2" attributes="0"/>
  168.51 +                          </Group>
  168.52 +                          <Group type="102" alignment="0" attributes="0">
  168.53 +                              <Component id="passedBtn" min="-2" max="-2" attributes="0"/>
  168.54 +                              <EmptySpace max="-2" attributes="0"/>
  168.55 +                              <Component id="failedBtn" min="-2" max="-2" attributes="0"/>
  168.56 +                              <EmptySpace pref="241" max="-2" attributes="0"/>
  168.57 +                          </Group>
  168.58 +                          <Component id="jScrollPane1" alignment="1" pref="375" max="32767" attributes="0"/>
  168.59 +                          <Group type="102" alignment="0" attributes="0">
  168.60 +                              <Component id="createFrameBtn" min="-2" pref="187" max="-2" attributes="0"/>
  168.61 +                              <EmptySpace max="-2" attributes="0"/>
  168.62 +                              <Component id="disposeFrameBtn" min="-2" pref="182" max="-2" attributes="0"/>
  168.63 +                          </Group>
  168.64 +                      </Group>
  168.65 +                      <EmptySpace max="-2" attributes="0"/>
  168.66 +                  </Group>
  168.67 +              </Group>
  168.68 +          </Group>
  168.69 +      </Group>
  168.70 +    </DimensionLayout>
  168.71 +    <DimensionLayout dim="1">
  168.72 +      <Group type="103" groupAlignment="0" attributes="0">
  168.73 +          <Group type="102" alignment="0" attributes="0">
  168.74 +              <EmptySpace max="-2" attributes="0"/>
  168.75 +              <Component id="jLabel1" min="-2" max="-2" attributes="0"/>
  168.76 +              <EmptySpace max="-2" attributes="0"/>
  168.77 +              <Component id="transparencySld" min="-2" max="-2" attributes="0"/>
  168.78 +              <EmptySpace max="-2" attributes="0"/>
  168.79 +              <Group type="103" groupAlignment="3" attributes="0">
  168.80 +                  <Component id="shapedCb" alignment="3" min="-2" max="-2" attributes="0"/>
  168.81 +                  <Component id="nonOpaqueChb" alignment="3" min="-2" max="-2" attributes="0"/>
  168.82 +                  <Component id="useSwingCb" alignment="3" min="-2" max="-2" attributes="0"/>
  168.83 +              </Group>
  168.84 +              <EmptySpace max="-2" attributes="0"/>
  168.85 +              <Group type="103" groupAlignment="3" attributes="0">
  168.86 +                  <Component id="disposeFrameBtn" alignment="3" min="-2" max="-2" attributes="0"/>
  168.87 +                  <Component id="createFrameBtn" alignment="3" min="-2" max="-2" attributes="0"/>
  168.88 +              </Group>
  168.89 +              <EmptySpace min="-2" pref="17" max="-2" attributes="0"/>
  168.90 +              <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
  168.91 +              <EmptySpace max="-2" attributes="0"/>
  168.92 +              <Component id="jScrollPane1" min="-2" pref="148" max="-2" attributes="0"/>
  168.93 +              <EmptySpace max="-2" attributes="0"/>
  168.94 +              <Group type="103" groupAlignment="3" attributes="0">
  168.95 +                  <Component id="passedBtn" alignment="3" min="-2" max="-2" attributes="0"/>
  168.96 +                  <Component id="failedBtn" alignment="3" min="-2" max="-2" attributes="0"/>
  168.97 +              </Group>
  168.98 +              <EmptySpace max="32767" attributes="0"/>
  168.99 +          </Group>
 168.100 +      </Group>
 168.101 +    </DimensionLayout>
 168.102 +  </Layout>
 168.103 +  <SubComponents>
 168.104 +    <Component class="javax.swing.JLabel" name="jLabel1">
 168.105 +      <Properties>
 168.106 +        <Property name="text" type="java.lang.String" value="Frame Opacity:"/>
 168.107 +      </Properties>
 168.108 +    </Component>
 168.109 +    <Component class="javax.swing.JSlider" name="transparencySld">
 168.110 +      <Properties>
 168.111 +        <Property name="majorTickSpacing" type="int" value="10"/>
 168.112 +        <Property name="minorTickSpacing" type="int" value="5"/>
 168.113 +        <Property name="paintLabels" type="boolean" value="true"/>
 168.114 +        <Property name="paintTicks" type="boolean" value="true"/>
 168.115 +        <Property name="value" type="int" value="100"/>
 168.116 +      </Properties>
 168.117 +      <Events>
 168.118 +        <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="transparencySldStateChanged"/>
 168.119 +      </Events>
 168.120 +    </Component>
 168.121 +    <Component class="javax.swing.JCheckBox" name="shapedCb">
 168.122 +      <Properties>
 168.123 +        <Property name="text" type="java.lang.String" value="Shaped Frame"/>
 168.124 +        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
 168.125 +          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
 168.126 +            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
 168.127 +          </Border>
 168.128 +        </Property>
 168.129 +        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
 168.130 +          <Insets value="[0, 0, 0, 0]"/>
 168.131 +        </Property>
 168.132 +      </Properties>
 168.133 +      <Events>
 168.134 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="shapedCbActionPerformed"/>
 168.135 +      </Events>
 168.136 +    </Component>
 168.137 +    <Component class="javax.swing.JCheckBox" name="nonOpaqueChb">
 168.138 +      <Properties>
 168.139 +        <Property name="text" type="java.lang.String" value="Non Opaque Frame"/>
 168.140 +        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
 168.141 +          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
 168.142 +            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
 168.143 +          </Border>
 168.144 +        </Property>
 168.145 +        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
 168.146 +          <Insets value="[0, 0, 0, 0]"/>
 168.147 +        </Property>
 168.148 +      </Properties>
 168.149 +      <Events>
 168.150 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="nonOpaqueChbActionPerformed"/>
 168.151 +      </Events>
 168.152 +    </Component>
 168.153 +    <Container class="javax.swing.JScrollPane" name="jScrollPane1">
 168.154 +      <AuxValues>
 168.155 +        <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
 168.156 +      </AuxValues>
 168.157 +
 168.158 +      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
 168.159 +      <SubComponents>
 168.160 +        <Component class="javax.swing.JTextArea" name="jTextArea1">
 168.161 +          <Properties>
 168.162 +            <Property name="columns" type="int" value="20"/>
 168.163 +            <Property name="rows" type="int" value="5"/>
 168.164 +            <Property name="text" type="java.lang.String" value="Create translucent and/or shaped, or&#xa;non-opaque frame. Make sure it behaves&#xa;correctly (no artifacts left on the screen&#xa;when dragging - if dragging is possible).&#xa;Click &quot;Passed&quot; if the test behaves correctly,&#xa;&quot;Falied&quot; otherwise."/>
 168.165 +          </Properties>
 168.166 +        </Component>
 168.167 +      </SubComponents>
 168.168 +    </Container>
 168.169 +    <Component class="javax.swing.JLabel" name="jLabel2">
 168.170 +      <Properties>
 168.171 +        <Property name="text" type="java.lang.String" value="Instructions:"/>
 168.172 +      </Properties>
 168.173 +    </Component>
 168.174 +    <Component class="javax.swing.JButton" name="passedBtn">
 168.175 +      <Properties>
 168.176 +        <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
 168.177 +          <Color blue="64" green="ff" red="81" type="rgb"/>
 168.178 +        </Property>
 168.179 +        <Property name="text" type="java.lang.String" value="Passed"/>
 168.180 +      </Properties>
 168.181 +      <Events>
 168.182 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="passedBtnActionPerformed"/>
 168.183 +      </Events>
 168.184 +    </Component>
 168.185 +    <Component class="javax.swing.JButton" name="failedBtn">
 168.186 +      <Properties>
 168.187 +        <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
 168.188 +          <Color blue="0" green="0" id="red" palette="1" red="ff" type="palette"/>
 168.189 +        </Property>
 168.190 +        <Property name="text" type="java.lang.String" value="Failed"/>
 168.191 +      </Properties>
 168.192 +      <Events>
 168.193 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="failedBtnActionPerformed"/>
 168.194 +      </Events>
 168.195 +    </Component>
 168.196 +    <Component class="javax.swing.JToggleButton" name="createFrameBtn">
 168.197 +      <Properties>
 168.198 +        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
 168.199 +          <ComponentRef name="createDisposeGrp"/>
 168.200 +        </Property>
 168.201 +        <Property name="text" type="java.lang.String" value="Create Frame"/>
 168.202 +      </Properties>
 168.203 +      <Events>
 168.204 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="createFrameBtnActionPerformed"/>
 168.205 +      </Events>
 168.206 +    </Component>
 168.207 +    <Component class="javax.swing.JToggleButton" name="disposeFrameBtn">
 168.208 +      <Properties>
 168.209 +        <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
 168.210 +          <ComponentRef name="createDisposeGrp"/>
 168.211 +        </Property>
 168.212 +        <Property name="selected" type="boolean" value="true"/>
 168.213 +        <Property name="text" type="java.lang.String" value="Dispose Frame"/>
 168.214 +      </Properties>
 168.215 +      <Events>
 168.216 +        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="disposeFrameBtnActionPerformed"/>
 168.217 +      </Events>
 168.218 +    </Component>
 168.219 +    <Component class="javax.swing.JCheckBox" name="useSwingCb">
 168.220 +      <Properties>
 168.221 +        <Property name="text" type="java.lang.String" value="Use JFrame"/>
 168.222 +        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
 168.223 +          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
 168.224 +            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
 168.225 +          </Border>
 168.226 +        </Property>
 168.227 +        <Property name="margin" type="java.awt.Insets" editor="org.netbeans.beaninfo.editors.InsetsEditor">
 168.228 +          <Insets value="[0, 0, 0, 0]"/>
 168.229 +        </Property>
 168.230 +      </Properties>
 168.231 +    </Component>
 168.232 +  </SubComponents>
 168.233 +</Form>
   169.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   169.2 +++ b/test/com/sun/awt/Translucency/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java	Tue Apr 14 04:21:02 2009 -0700
   169.3 @@ -0,0 +1,359 @@
   169.4 +/*
   169.5 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
   169.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   169.7 + *
   169.8 + * This code is free software; you can redistribute it and/or modify it
   169.9 + * under the terms of the GNU General Public License version 2 only, as
  169.10 + * published by the Free Software Foundation.  Sun designates this
  169.11 + * particular file as subject to the "Classpath" exception as provided
  169.12 + * by Sun in the LICENSE file that accompanied this code.
  169.13 + *
  169.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  169.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  169.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  169.17 + * version 2 for more details (a copy is included in the LICENSE file that
  169.18 + * accompanied this code).
  169.19 + *
  169.20 + * You should have received a copy of the GNU General Public License version
  169.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  169.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  169.23 + *
  169.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  169.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
  169.26 + * have any questions.
  169.27 + */
  169.28 +
  169.29 +/*
  169.30 + * @test %I% %E%
  169.31 + * @bug 6655001 6670649 6687141
  169.32 + * @summary Tests that hw acceleration doesn't affect translucent/shaped windows
  169.33 + * @author Dmitri.Trembovetski@sun.com: area=Graphics
  169.34 + * @compile -XDignore.symbol.file=true TranslucentShapedFrameTest.java
  169.35 + * @compile -XDignore.symbol.file=true TSFrame.java
  169.36 + * @run main/manual/othervm TranslucentShapedFrameTest
  169.37 + * @run main/manual/othervm -Dsun.java2d.noddraw=true TranslucentShapedFrameTest
  169.38 + * @run main/manual/othervm -Dsun.java2d.opengl=True TranslucentShapedFrameTest
  169.39 + */
  169.40 +import com.sun.awt.AWTUtilities;
  169.41 +import static com.sun.awt.AWTUtilities.Translucency.*;
  169.42 +import java.awt.Frame;
  169.43 +import java.awt.GraphicsConfiguration;
  169.44 +import java.awt.GraphicsDevice;
  169.45 +import java.awt.GraphicsEnvironment;
  169.46 +import java.awt.Shape;
  169.47 +import java.awt.geom.Ellipse2D;
  169.48 +import java.util.concurrent.CountDownLatch;
  169.49 +import javax.swing.JSlider;
  169.50 +import javax.swing.SwingUtilities;
  169.51 +import javax.swing.UIManager;
  169.52 +import javax.swing.UnsupportedLookAndFeelException;
  169.53 +
  169.54 +public class TranslucentShapedFrameTest extends javax.swing.JFrame {
  169.55 +    Frame testFrame;
  169.56 +    static CountDownLatch done;
  169.57 +    static volatile boolean failed = false;
  169.58 +    GraphicsConfiguration gcToUse = null;
  169.59 +
  169.60 +    /**
  169.61 +     * Creates new form TranslucentShapedFrameTest
  169.62 +     */
  169.63 +    public TranslucentShapedFrameTest() {
  169.64 +        // not necessary, but we just look nicer
  169.65 +        try {
  169.66 +            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  169.67 +        } catch (Exception ex) {}
  169.68 +
  169.69 +        initComponents();
  169.70 +        checkEffects();
  169.71 +
  169.72 +        SwingUtilities.updateComponentTreeUI(this);
  169.73 +    }
  169.74 +
  169.75 +    /** This method is called from within the constructor to
  169.76 +     * initialize the form.
  169.77 +     * WARNING: Do NOT modify this code. The content of this method is
  169.78 +     * always regenerated by the Form Editor.
  169.79 +     */
  169.80 +    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
  169.81 +    private void initComponents() {
  169.82 +        createDisposeGrp = new javax.swing.ButtonGroup();
  169.83 +        jLabel1 = new javax.swing.JLabel();
  169.84 +        transparencySld = new javax.swing.JSlider();
  169.85 +        shapedCb = new javax.swing.JCheckBox();
  169.86 +        nonOpaqueChb = new javax.swing.JCheckBox();
  169.87 +        jScrollPane1 = new javax.swing.JScrollPane();
  169.88 +        jTextArea1 = new javax.swing.JTextArea();
  169.89 +        jLabel2 = new javax.swing.JLabel();
  169.90 +        passedBtn = new javax.swing.JButton();
  169.91 +        failedBtn = new javax.swing.JButton();
  169.92 +        createFrameBtn = new javax.swing.JToggleButton();
  169.93 +        disposeFrameBtn = new javax.swing.JToggleButton();
  169.94 +        useSwingCb = new javax.swing.JCheckBox();
  169.95 +
  169.96 +        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  169.97 +        setTitle("TranslucentShapedFrameTest");
  169.98 +        jLabel1.setText("Frame Opacity:");
  169.99 +
 169.100 +        transparencySld.setMajorTickSpacing(10);
 169.101 +        transparencySld.setMinorTickSpacing(5);
 169.102 +        transparencySld.setPaintLabels(true);
 169.103 +        transparencySld.setPaintTicks(true);
 169.104 +        transparencySld.setValue(100);
 169.105 +        transparencySld.addChangeListener(new javax.swing.event.ChangeListener() {
 169.106 +            public void stateChanged(javax.swing.event.ChangeEvent evt) {
 169.107 +                transparencySldStateChanged(evt);
 169.108 +            }
 169.109 +        });
 169.110 +
 169.111 +        shapedCb.setText("Shaped Frame");
 169.112 +        shapedCb.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
 169.113 +        shapedCb.setMargin(new java.awt.Insets(0, 0, 0, 0));
 169.114 +        shapedCb.addActionListener(new java.awt.event.ActionListener() {
 169.115 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
 169.116 +                shapedCbActionPerformed(evt);
 169.117 +            }
 169.118 +        });
 169.119 +
 169.120 +        nonOpaqueChb.setText("Non Opaque Frame");
 169.121 +        nonOpaqueChb.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
 169.122 +        nonOpaqueChb.setMargin(new java.awt.Insets(0, 0, 0, 0));
 169.123 +        nonOpaqueChb.addActionListener(new java.awt.event.ActionListener() {
 169.124 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
 169.125 +                nonOpaqueChbActionPerformed(evt);
 169.126 +            }
 169.127 +        });
 169.128 +
 169.129 +        jTextArea1.setColumns(20);
 169.130 +        jTextArea1.setRows(5);
 169.131 +        jTextArea1.setText("Create translucent and/or shaped, or\nnon-opaque frame. Make sure it behaves\ncorrectly (no artifacts left on the screen\nwhen dragging - if dragging is possible).\nClick \"Passed\" if the test behaves correctly,\n\"Falied\" otherwise.");
 169.132 +        jScrollPane1.setViewportView(jTextArea1);
 169.133 +
 169.134 +        jLabel2.setText("Instructions:");
 169.135 +
 169.136 +        passedBtn.setBackground(new java.awt.Color(129, 255, 100));
 169.137 +        passedBtn.setText("Passed");
 169.138 +        passedBtn.addActionListener(new java.awt.event.ActionListener() {
 169.139 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
 169.140 +                passedBtnActionPerformed(evt);
 169.141 +            }
 169.142 +        });
 169.143 +
 169.144 +        failedBtn.setBackground(java.awt.Color.red);
 169.145 +        failedBtn.setText("Failed");
 169.146 +        failedBtn.addActionListener(new java.awt.event.ActionListener() {
 169.147 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
 169.148 +                failedBtnActionPerformed(evt);
 169.149 +            }
 169.150 +        });
 169.151 +
 169.152 +        createDisposeGrp.add(createFrameBtn);
 169.153 +        createFrameBtn.setText("Create Frame");
 169.154 +        createFrameBtn.addActionListener(new java.awt.event.ActionListener() {
 169.155 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
 169.156 +                createFrameBtnActionPerformed(evt);
 169.157 +            }
 169.158 +        });
 169.159 +
 169.160 +        createDisposeGrp.add(disposeFrameBtn);
 169.161 +        disposeFrameBtn.setSelected(true);
 169.162 +        disposeFrameBtn.setText("Dispose Frame");
 169.163 +        disposeFrameBtn.addActionListener(new java.awt.event.ActionListener() {
 169.164 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
 169.165 +                disposeFrameBtnActionPerformed(evt);
 169.166 +            }
 169.167 +        });
 169.168 +
 169.169 +        useSwingCb.setText("Use JFrame");
 169.170 +        useSwingCb.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
 169.171 +        useSwingCb.setMargin(new java.awt.Insets(0, 0, 0, 0));
 169.172 +
 169.173 +        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
 169.174 +        getContentPane().setLayout(layout);
 169.175 +        layout.setHorizontalGroup(
 169.176 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 169.177 +            .addGroup(layout.createSequentialGroup()
 169.178 +                .addContainerGap()
 169.179 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 169.180 +                    .addGroup(layout.createSequentialGroup()
 169.181 +                        .addComponent(transparencySld, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)
 169.182 +                        .addContainerGap())
 169.183 +                    .addComponent(jLabel1)
 169.184 +                    .addGroup(layout.createSequentialGroup()
 169.185 +                        .addComponent(shapedCb)
 169.186 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 169.187 +                        .addComponent(nonOpaqueChb)
 169.188 +                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 169.189 +                        .addComponent(useSwingCb)
 169.190 +                        .addContainerGap(102, Short.MAX_VALUE))
 169.191 +                    .addGroup(layout.createSequentialGroup()
 169.192 +                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 169.193 +                            .addGroup(layout.createSequentialGroup()
 169.194 +                                .addComponent(jLabel2)
 169.195 +                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 314, javax.swing.GroupLayout.PREFERRED_SIZE))
 169.196 +                            .addGroup(layout.createSequentialGroup()
 169.197 +                                .addComponent(passedBtn)
 169.198 +                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 169.199 +                                .addComponent(failedBtn)
 169.200 +                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 241, javax.swing.GroupLayout.PREFERRED_SIZE))
 169.201 +                            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 375, Short.MAX_VALUE)
 169.202 +                            .addGroup(layout.createSequentialGroup()
 169.203 +                                .addComponent(createFrameBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE)
 169.204 +                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 169.205 +                                .addComponent(disposeFrameBtn, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE)))
 169.206 +                        .addContainerGap())))
 169.207 +        );
 169.208 +        layout.setVerticalGroup(
 169.209 +            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
 169.210 +            .addGroup(layout.createSequentialGroup()
 169.211 +                .addContainerGap()
 169.212 +                .addComponent(jLabel1)
 169.213 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 169.214 +                .addComponent(transparencySld, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
 169.215 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 169.216 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 169.217 +                    .addComponent(shapedCb)
 169.218 +                    .addComponent(nonOpaqueChb)
 169.219 +                    .addComponent(useSwingCb))
 169.220 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 169.221 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 169.222 +                    .addComponent(disposeFrameBtn)
 169.223 +                    .addComponent(createFrameBtn))
 169.224 +                .addGap(17, 17, 17)
 169.225 +                .addComponent(jLabel2)
 169.226 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 169.227 +                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE)
 169.228 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
 169.229 +                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
 169.230 +                    .addComponent(passedBtn)
 169.231 +                    .addComponent(failedBtn))
 169.232 +                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
 169.233 +        );
 169.234 +        pack();
 169.235 +    }// </editor-fold>//GEN-END:initComponents
 169.236 +
 169.237 +    private void nonOpaqueChbActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nonOpaqueChbActionPerformed
 169.238 +        if (testFrame != null) {
 169.239 +            // REMIND: this path in the test doesn't work well (test bug)
 169.240 +//            AWTUtilities.setWindowOpaque(testFrame, !nonOpaqueChb.isSelected());
 169.241 +        }
 169.242 +    }//GEN-LAST:event_nonOpaqueChbActionPerformed
 169.243 +
 169.244 +    private void shapedCbActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_shapedCbActionPerformed
 169.245 +        if (testFrame != null) {
 169.246 +            Shape s = null;
 169.247 +            if (shapedCb.isSelected()) {
 169.248 +                s = new Ellipse2D.Double(0, 0,
 169.249 +                                         testFrame.getWidth(),
 169.250 +                                         testFrame.getHeight());
 169.251 +            }
 169.252 +            AWTUtilities.setWindowShape(testFrame, s);
 169.253 +        }
 169.254 +    }//GEN-LAST:event_shapedCbActionPerformed
 169.255 +
 169.256 +    private void transparencySldStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_transparencySldStateChanged
 169.257 +        JSlider source = (JSlider)evt.getSource();
 169.258 +            int transl = transparencySld.getValue();
 169.259 +            if (testFrame != null) {
 169.260 +                AWTUtilities.setWindowOpacity(testFrame, (float)transl/100f);
 169.261 +            }
 169.262 +    }//GEN-LAST:event_transparencySldStateChanged
 169.263 +
 169.264 +    private void failedBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_failedBtnActionPerformed
 169.265 +        disposeFrameBtnActionPerformed(evt);
 169.266 +        dispose();
 169.267 +        failed = true;
 169.268 +        done.countDown();
 169.269 +    }//GEN-LAST:event_failedBtnActionPerformed
 169.270 +
 169.271 +    private void disposeFrameBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_disposeFrameBtnActionPerformed
 169.272 +        TSFrame.stopThreads();
 169.273 +        if (testFrame != null) {
 169.274 +            testFrame.dispose();
 169.275 +            testFrame = null;
 169.276 +        }
 169.277 +    }//GEN-LAST:event_disposeFrameBtnActionPerformed
 169.278 +
 169.279 +    private void createFrameBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_createFrameBtnActionPerformed
 169.280 +        disposeFrameBtnActionPerformed(evt);
 169.281 +        int transl = transparencySld.getValue();
 169.282 +        testFrame = TSFrame.createGui(gcToUse,
 169.283 +                useSwingCb.isSelected(), shapedCb.isSelected(),
 169.284 +                (transl < 100), nonOpaqueChb.isSelected(),
 169.285 +                (float)transl/100f);
 169.286 +    }//GEN-LAST:event_createFrameBtnActionPerformed
 169.287 +
 169.288 +    private void passedBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_passedBtnActionPerformed
 169.289 +        disposeFrameBtnActionPerformed(evt);
 169.290 +        dispose();
 169.291 +        done.countDown();
 169.292 +    }//GEN-LAST:event_passedBtnActionPerformed
 169.293 +
 169.294 +    /**
 169.295 +     * @param args the command line arguments
 169.296 +     */
 169.297 +    public static void main(String args[]) {
 169.298 +        done = new CountDownLatch(1);
 169.299 +        java.awt.EventQueue.invokeLater(new Runnable() {
 169.300 +            public void run() {
 169.301 +                new TranslucentShapedFrameTest().setVisible(true);
 169.302 +            }
 169.303 +        });
 169.304 +        try {
 169.305 +            done.await();
 169.306 +        } catch (InterruptedException ex) {}
 169.307 +        if (failed) {
 169.308 +            throw new RuntimeException("Test FAILED");
 169.309 +        }
 169.310 +        System.out.println("Test PASSED");
 169.311 +    }
 169.312 +
 169.313 +    private void checkEffects() {
 169.314 +        if (!AWTUtilities.isTranslucencySupported(PERPIXEL_TRANSPARENT)) {
 169.315 +            shapedCb.setEnabled(false);
 169.316 +        }
 169.317 +
 169.318 +        if (!AWTUtilities.isTranslucencySupported(TRANSLUCENT)) {
 169.319 +            transparencySld.setEnabled(false);
 169.320 +        }
 169.321 +
 169.322 +        GraphicsConfiguration gc = null;
 169.323 +        if (AWTUtilities.isTranslucencySupported(PERPIXEL_TRANSLUCENT)) {
 169.324 +            gc = findGraphicsConfig();
 169.325 +            if (gc == null) {
 169.326 +                nonOpaqueChb.setEnabled(false);
 169.327 +            }
 169.328 +        }
 169.329 +
 169.330 +        gcToUse = gc;
 169.331 +    }
 169.332 +
 169.333 +    private GraphicsConfiguration findGraphicsConfig() {
 169.334 +        GraphicsDevice gd =
 169.335 +            GraphicsEnvironment.getLocalGraphicsEnvironment().
 169.336 +                getDefaultScreenDevice();
 169.337 +        GraphicsConfiguration gcs[] = gd.getConfigurations();
 169.338 +        for (GraphicsConfiguration gc : gcs) {
 169.339 +            if (AWTUtilities.isTranslucencyCapable(gc)) {
 169.340 +                return gc;
 169.341 +            }
 169.342 +        }
 169.343 +        return null;
 169.344 +    }
 169.345 +
 169.346 +    // Variables declaration - do not modify//GEN-BEGIN:variables
 169.347 +    private javax.swing.ButtonGroup createDisposeGrp;
 169.348 +    private javax.swing.JToggleButton createFrameBtn;
 169.349 +    private javax.swing.JToggleButton disposeFrameBtn;
 169.350 +    private javax.swing.JButton failedBtn;
 169.351 +    private javax.swing.JLabel jLabel1;
 169.352 +    private javax.swing.JLabel jLabel2;
 169.353 +    private javax.swing.JScrollPane jScrollPane1;
 169.354 +    private javax.swing.JTextArea jTextArea1;
 169.355 +    private javax.swing.JCheckBox nonOpaqueChb;
 169.356 +    private javax.swing.JButton passedBtn;
 169.357 +    private javax.swing.JCheckBox shapedCb;
 169.358 +    private javax.swing.JSlider transparencySld;
 169.359 +    private javax.swing.JCheckBox useSwingCb;
 169.360 +    // End of variables declaration//GEN-END:variables
 169.361 +
 169.362 +}
   170.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   170.2 +++ b/test/com/sun/awt/Translucency/WindowOpacity.java	Tue Apr 14 04:21:02 2009 -0700
   170.3 @@ -0,0 +1,461 @@
   170.4 +/*
   170.5 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
   170.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   170.7 + *
   170.8 + * This code is free software; you can redistribute it and/or modify it
   170.9 + * under the terms of the GNU General Public License version 2 only, as
  170.10 + * published by the Free Software Foundation.
  170.11 + *
  170.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  170.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  170.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  170.15 + * version 2 for more details (a copy is included in the LICENSE file that
  170.16 + * accompanied this code).
  170.17 + *
  170.18 + * You should have received a copy of the GNU General Public License version
  170.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  170.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  170.21 + *
  170.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  170.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  170.24 + * have any questions.
  170.25 + */
  170.26 +
  170.27 +/*
  170.28 +  @test %W% %E%
  170.29 +  @bug 6594131
  170.30 +  @summary Tests the AWTUtilities.get/setWindowOpacity() methods
  170.31 +  @author anthony.petrov@...: area=awt.toplevel
  170.32 +  @run main WindowOpacity
  170.33 +*/
  170.34 +
  170.35 +import java.awt.*;
  170.36 +import java.awt.event.*;
  170.37 +
  170.38 +import com.sun.awt.AWTUtilities;
  170.39 +import sun.awt.SunToolkit;
  170.40 +
  170.41 +public class WindowOpacity
  170.42 +{
  170.43 +    //*** test-writer defined static variables go here ***
  170.44 +
  170.45 +    private static void realSync() {
  170.46 +        ((SunToolkit)Toolkit.getDefaultToolkit()).realSync();
  170.47 +    }
  170.48 +
  170.49 +
  170.50 +    private static void init()
  170.51 +    {
  170.52 +        //*** Create instructions for the user here ***
  170.53 +        String[] instructions =
  170.54 +        {
  170.55 +            "This is an AUTOMATIC test, simply wait until it is done.",
  170.56 +            "The result (passed or failed) will be shown in the",
  170.57 +            "message window below."
  170.58 +        };
  170.59 +        Sysout.createDialog( );
  170.60 +        Sysout.printInstructions( instructions );
  170.61 +
  170.62 +        if (!AWTUtilities.isTranslucencySupported(AWTUtilities.Translucency.TRANSLUCENT)) {
  170.63 +            System.out.println("Either the Toolkit or the native system does not support controlling the window opacity level.");
  170.64 +            pass();
  170.65 +        }
  170.66 +
  170.67 +        boolean passed;
  170.68 +
  170.69 +        Frame f = new Frame("Opacity test");
  170.70 +
  170.71 +        passed = false;
  170.72 +        try {
  170.73 +            AWTUtilities.getWindowOpacity(null);
  170.74 +        } catch (NullPointerException e) {
  170.75 +            passed = true;
  170.76 +        }
  170.77 +        if (!passed) {
  170.78 +            fail("getWindowOpacity() allows passing null.");
  170.79 +        }
  170.80 +
  170.81 +
  170.82 +        passed = false;
  170.83 +        try {
  170.84 +            AWTUtilities.setWindowOpacity(null, 0.5f);
  170.85 +        } catch (NullPointerException e) {
  170.86 +            passed = true;
  170.87 +        }
  170.88 +        if (!passed) {
  170.89 +            fail("setWindowOpacity() allows passing null.");
  170.90 +        }
  170.91 +
  170.92 +
  170.93 +        float curOpacity = AWTUtilities.getWindowOpacity(f);
  170.94 +        if (curOpacity < 1.0f || curOpacity > 1.0f) {
  170.95 +            fail("getWindowOpacity() reports the initial opacity level other than 1.0: " + curOpacity);
  170.96 +        }
  170.97 +
  170.98 +
  170.99 +
 170.100 +        passed = false;
 170.101 +        try {
 170.102 +            AWTUtilities.setWindowOpacity(f, -0.5f);
 170.103 +        } catch (IllegalArgumentException e) {
 170.104 +            passed = true;
 170.105 +        }
 170.106 +        if (!passed) {
 170.107 +            fail("setWindowOpacity() allows passing negative opacity level.");
 170.108 +        }
 170.109 +
 170.110 +
 170.111 +
 170.112 +        passed = false;
 170.113 +        try {
 170.114 +            AWTUtilities.setWindowOpacity(f, 1.5f);
 170.115 +        } catch (IllegalArgumentException e) {
 170.116 +            passed = true;
 170.117 +        }
 170.118 +        if (!passed) {
 170.119 +            fail("setWindowOpacity() allows passing opacity level greater than 1.0.");
 170.120 +        }
 170.121 +
 170.122 +
 170.123 +        AWTUtilities.setWindowOpacity(f, 0.5f);
 170.124 +
 170.125 +        curOpacity = AWTUtilities.getWindowOpacity(f);
 170.126 +        if (curOpacity < 0.5f || curOpacity > 0.5f) {
 170.127 +            fail("getWindowOpacity() reports the opacity level that differs from the value set with setWindowOpacity: " + curOpacity);
 170.128 +        }
 170.129 +
 170.130 +
 170.131 +        AWTUtilities.setWindowOpacity(f, 0.75f);
 170.132 +
 170.133 +        curOpacity = AWTUtilities.getWindowOpacity(f);
 170.134 +        if (curOpacity < 0.75f || curOpacity > 0.75f) {
 170.135 +            fail("getWindowOpacity() reports the opacity level that differs from the value set with setWindowOpacity the second time: " + curOpacity);
 170.136 +        }
 170.137 +
 170.138 +
 170.139 +        f.setBounds(100, 100, 300, 200);
 170.140 +        f.setVisible(true);
 170.141 +
 170.142 +        realSync();
 170.143 +
 170.144 +        curOpacity = AWTUtilities.getWindowOpacity(f);
 170.145 +        if (curOpacity < 0.75f || curOpacity > 0.75f) {
 170.146 +            fail("getWindowOpacity() reports the opacity level that differs from the value set with setWindowOpacity before showing the frame: " + curOpacity);
 170.147 +        }
 170.148 +
 170.149 +
 170.150 +
 170.151 +        AWTUtilities.setWindowOpacity(f, 0.5f);
 170.152 +        realSync();
 170.153 +
 170.154 +        curOpacity = AWTUtilities.getWindowOpacity(f);
 170.155 +        if (curOpacity < 0.5f || curOpacity > 0.5f) {
 170.156 +            fail("getWindowOpacity() reports the opacity level that differs from the value set with setWindowOpacity after showing the frame: " + curOpacity);
 170.157 +        }
 170.158 +
 170.159 +        WindowOpacity.pass();
 170.160 +
 170.161 +    }//End  init()
 170.162 +
 170.163 +
 170.164 +
 170.165 +    /*****************************************************
 170.166 +     * Standard Test Machinery Section
 170.167 +     * DO NOT modify anything in this section -- it's a
 170.168 +     * standard chunk of code which has all of the
 170.169 +     * synchronisation necessary for the test harness.
 170.170 +     * By keeping it the same in all tests, it is easier
 170.171 +     * to read and understand someone else's test, as
 170.172 +     * well as insuring that all tests behave correctly
 170.173 +     * with the test harness.
 170.174 +     * There is a section following this for test-
 170.175 +     * classes
 170.176 +     ******************************************************/
 170.177 +    private static boolean theTestPassed = false;
 170.178 +    private static boolean testGeneratedInterrupt = false;
 170.179 +    private static String failureMessage = "";
 170.180 +
 170.181 +    private static Thread mainThread = null;
 170.182 +
 170.183 +    private static int sleepTime = 300000;
 170.184 +
 170.185 +    // Not sure about what happens if multiple of this test are
 170.186 +    //  instantiated in the same VM.  Being static (and using
 170.187 +    //  static vars), it aint gonna work.  Not worrying about
 170.188 +    //  it for now.
 170.189 +    public static void main( String args[] ) throws InterruptedException
 170.190 +    {
 170.191 +        mainThread = Thread.currentThread();
 170.192 +        try
 170.193 +        {
 170.194 +            init();
 170.195 +        }
 170.196 +        catch( TestPassedException e )
 170.197 +        {
 170.198 +            //The test passed, so just return from main and harness will
 170.199 +            // interepret this return as a pass
 170.200 +            return;
 170.201 +        }
 170.202 +        //At this point, neither test pass nor test fail has been
 170.203 +        // called -- either would have thrown an exception and ended the
 170.204 +        // test, so we know we have multiple threads.
 170.205 +
 170.206 +        //Test involves other threads, so sleep and wait for them to
 170.207 +        // called pass() or fail()
 170.208 +        try
 170.209 +        {
 170.210 +            Thread.sleep( sleepTime );
 170.211 +            //Timed out, so fail the test
 170.212 +            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
 170.213 +        }
 170.214 +        catch (InterruptedException e)
 170.215 +        {
 170.216 +            //The test harness may have interrupted the test.  If so, rethrow the exception
 170.217 +            // so that the harness gets it and deals with it.
 170.218 +            if( ! testGeneratedInterrupt ) throw e;
 170.219 +
 170.220 +            //reset flag in case hit this code more than once for some reason (just safety)
 170.221 +            testGeneratedInterrupt = false;
 170.222 +
 170.223 +            if ( theTestPassed == false )
 170.224 +            {
 170.225 +                throw new RuntimeException( failureMessage );
 170.226 +            }
 170.227 +        }
 170.228 +
 170.229 +    }//main
 170.230 +
 170.231 +    public static synchronized void setTimeoutTo( int seconds )
 170.232 +    {
 170.233 +        sleepTime = seconds * 1000;
 170.234 +    }
 170.235 +
 170.236 +    public static synchronized void pass()
 170.237 +    {
 170.238 +        Sysout.println( "The test passed." );
 170.239 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 170.240 +        //first check if this is executing in main thread
 170.241 +        if ( mainThread == Thread.currentThread() )
 170.242 +        {
 170.243 +            //Still in the main thread, so set the flag just for kicks,
 170.244 +            // and throw a test passed exception which will be caught
 170.245 +            // and end the test.
 170.246 +            theTestPassed = true;
 170.247 +            throw new TestPassedException();
 170.248 +        }
 170.249 +        theTestPassed = true;
 170.250 +        testGeneratedInterrupt = true;
 170.251 +        mainThread.interrupt();
 170.252 +    }//pass()
 170.253 +
 170.254 +    public static synchronized void fail()
 170.255 +    {
 170.256 +        //test writer didn't specify why test failed, so give generic
 170.257 +        fail( "it just plain failed! :-)" );
 170.258 +    }
 170.259 +
 170.260 +    public static synchronized void fail( String whyFailed )
 170.261 +    {
 170.262 +        Sysout.println( "The test failed: " + whyFailed );
 170.263 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 170.264 +        //check if this called from main thread
 170.265 +        if ( mainThread == Thread.currentThread() )
 170.266 +        {
 170.267 +            //If main thread, fail now 'cause not sleeping
 170.268 +            throw new RuntimeException( whyFailed );
 170.269 +        }
 170.270 +        theTestPassed = false;
 170.271 +        testGeneratedInterrupt = true;
 170.272 +        failureMessage = whyFailed;
 170.273 +        mainThread.interrupt();
 170.274 +    }//fail()
 170.275 +
 170.276 +}// class WindowOpacity
 170.277 +
 170.278 +//This exception is used to exit from any level of call nesting
 170.279 +// when it's determined that the test has passed, and immediately
 170.280 +// end the test.
 170.281 +class TestPassedException extends RuntimeException
 170.282 +{
 170.283 +}
 170.284 +
 170.285 +//*********** End Standard Test Machinery Section **********
 170.286 +
 170.287 +
 170.288 +//************ Begin classes defined for the test ****************
 170.289 +
 170.290 +// if want to make listeners, here is the recommended place for them, then instantiate
 170.291 +//  them in init()
 170.292 +
 170.293 +/* Example of a class which may be written as part of a test
 170.294 +class NewClass implements anInterface
 170.295 + {
 170.296 +   static int newVar = 0;
 170.297 +
 170.298 +   public void eventDispatched(AWTEvent e)
 170.299 +    {
 170.300 +      //Counting events to see if we get enough
 170.301 +      eventCount++;
 170.302 +
 170.303 +      if( eventCount == 20 )
 170.304 +       {
 170.305 +         //got enough events, so pass
 170.306 +
 170.307 +         WindowOpacity.pass();
 170.308 +       }
 170.309 +      else if( tries == 20 )
 170.310 +       {
 170.311 +         //tried too many times without getting enough events so fail
 170.312 +
 170.313 +         WindowOpacity.fail();
 170.314 +       }
 170.315 +
 170.316 +    }// eventDispatched()
 170.317 +
 170.318 + }// NewClass class
 170.319 +
 170.320 +*/
 170.321 +
 170.322 +
 170.323 +//************** End classes defined for the test *******************
 170.324 +
 170.325 +
 170.326 +
 170.327 +
 170.328 +/****************************************************
 170.329 + Standard Test Machinery
 170.330 + DO NOT modify anything below -- it's a standard
 170.331 +  chunk of code whose purpose is to make user
 170.332 +  interaction uniform, and thereby make it simpler
 170.333 +  to read and understand someone else's test.
 170.334 + ****************************************************/
 170.335 +
 170.336 +/**
 170.337 + This is part of the standard test machinery.
 170.338 + It creates a dialog (with the instructions), and is the interface
 170.339 +  for sending text messages to the user.
 170.340 + To print the instructions, send an array of strings to Sysout.createDialog
 170.341 +  WithInstructions method.  Put one line of instructions per array entry.
 170.342 + To display a message for the tester to see, simply call Sysout.println
 170.343 +  with the string to be displayed.
 170.344 + This mimics System.out.println but works within the test harness as well
 170.345 +  as standalone.
 170.346 + */
 170.347 +
 170.348 +class Sysout
 170.349 +{
 170.350 +    private static TestDialog dialog;
 170.351 +
 170.352 +    public static void createDialogWithInstructions( String[] instructions )
 170.353 +    {
 170.354 +        dialog = new TestDialog( new Frame(), "Instructions" );
 170.355 +        dialog.printInstructions( instructions );
 170.356 +        dialog.setVisible(true);
 170.357 +        println( "Any messages for the tester will display here." );
 170.358 +    }
 170.359 +
 170.360 +    public static void createDialog( )
 170.361 +    {
 170.362 +        dialog = new TestDialog( new Frame(), "Instructions" );
 170.363 +        String[] defInstr = { "Instructions will appear here. ", "" } ;
 170.364 +        dialog.printInstructions( defInstr );
 170.365 +        dialog.setVisible(true);
 170.366 +        println( "Any messages for the tester will display here." );
 170.367 +    }
 170.368 +
 170.369 +
 170.370 +    public static void printInstructions( String[] instructions )
 170.371 +    {
 170.372 +        dialog.printInstructions( instructions );
 170.373 +    }
 170.374 +
 170.375 +
 170.376 +    public static void println( String messageIn )
 170.377 +    {
 170.378 +        dialog.displayMessage( messageIn );
 170.379 +        System.out.println(messageIn);
 170.380 +    }
 170.381 +
 170.382 +}// Sysout  class
 170.383 +
 170.384 +/**
 170.385 +  This is part of the standard test machinery.  It provides a place for the
 170.386 +   test instructions to be displayed, and a place for interactive messages
 170.387 +   to the user to be displayed.
 170.388 +  To have the test instructions displayed, see Sysout.
 170.389 +  To have a message to the user be displayed, see Sysout.
 170.390 +  Do not call anything in this dialog directly.
 170.391 +  */
 170.392 +class TestDialog extends Dialog
 170.393 +{
 170.394 +
 170.395 +    TextArea instructionsText;
 170.396 +    TextArea messageText;
 170.397 +    int maxStringLength = 80;
 170.398 +
 170.399 +    //DO NOT call this directly, go through Sysout
 170.400 +    public TestDialog( Frame frame, String name )
 170.401 +    {
 170.402 +        super( frame, name );
 170.403 +        int scrollBoth = TextArea.SCROLLBARS_BOTH;
 170.404 +        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
 170.405 +        add( "North", instructionsText );
 170.406 +
 170.407 +        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
 170.408 +        add("Center", messageText);
 170.409 +
 170.410 +        pack();
 170.411 +
 170.412 +        setVisible(true);
 170.413 +    }// TestDialog()
 170.414 +
 170.415 +    //DO NOT call this directly, go through Sysout
 170.416 +    public void printInstructions( String[] instructions )
 170.417 +    {
 170.418 +        //Clear out any current instructions
 170.419 +        instructionsText.setText( "" );
 170.420 +
 170.421 +        //Go down array of instruction strings
 170.422 +
 170.423 +        String printStr, remainingStr;
 170.424 +        for( int i=0; i < instructions.length; i++ )
 170.425 +        {
 170.426 +            //chop up each into pieces maxSringLength long
 170.427 +            remainingStr = instructions[ i ];
 170.428 +            while( remainingStr.length() > 0 )
 170.429 +            {
 170.430 +                //if longer than max then chop off first max chars to print
 170.431 +                if( remainingStr.length() >= maxStringLength )
 170.432 +                {
 170.433 +                    //Try to chop on a word boundary
 170.434 +                    int posOfSpace = remainingStr.
 170.435 +                        lastIndexOf( ' ', maxStringLength - 1 );
 170.436 +
 170.437 +                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
 170.438 +
 170.439 +                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
 170.440 +                    remainingStr = remainingStr.substring( posOfSpace + 1 );
 170.441 +                }
 170.442 +                //else just print
 170.443 +                else
 170.444 +                {
 170.445 +                    printStr = remainingStr;
 170.446 +                    remainingStr = "";
 170.447 +                }
 170.448 +
 170.449 +                instructionsText.append( printStr + "\n" );
 170.450 +
 170.451 +            }// while
 170.452 +
 170.453 +        }// for
 170.454 +
 170.455 +    }//printInstructions()
 170.456 +
 170.457 +    //DO NOT call this directly, go through Sysout
 170.458 +    public void displayMessage( String messageIn )
 170.459 +    {
 170.460 +        messageText.append( messageIn + "\n" );
 170.461 +        System.out.println(messageIn);
 170.462 +    }
 170.463 +
 170.464 +}// TestDialog  class
   171.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   171.2 +++ b/test/java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java	Tue Apr 14 04:21:02 2009 -0700
   171.3 @@ -0,0 +1,381 @@
   171.4 +/*
   171.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   171.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   171.7 + *
   171.8 + * This code is free software; you can redistribute it and/or modify it
   171.9 + * under the terms of the GNU General Public License version 2 only, as
  171.10 + * published by the Free Software Foundation.
  171.11 + *
  171.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  171.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  171.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  171.15 + * version 2 for more details (a copy is included in the LICENSE file that
  171.16 + * accompanied this code).
  171.17 + *
  171.18 + * You should have received a copy of the GNU General Public License version
  171.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  171.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  171.21 + *
  171.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  171.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  171.24 + * have any questions.
  171.25 + */
  171.26 +
  171.27 +/*
  171.28 +  @test
  171.29 +  @bug 6774258
  171.30 +  @summary  api/java_awt/Component/index.html#PaintUpdate fails randomly
  171.31 +  @author dmitry.cherepanov@...: area=awt.painting
  171.32 +  @run main NoUpdateUponShow
  171.33 +*/
  171.34 +
  171.35 +/**
  171.36 + * NoUpdateUponShow.java
  171.37 + *
  171.38 + * summary:  System-level painting operations shouldn't make call to update()
  171.39 + */
  171.40 +
  171.41 +import java.awt.*;
  171.42 +import sun.awt.SunToolkit;
  171.43 +
  171.44 +public class NoUpdateUponShow
  171.45 +{
  171.46 +
  171.47 +    static volatile boolean wasUpdate = false;
  171.48 +
  171.49 +    private static void init()
  171.50 +    {
  171.51 +        //*** Create instructions for the user here ***
  171.52 +
  171.53 +        String[] instructions =
  171.54 +        {
  171.55 +            "This is an AUTOMATIC test, simply wait until it is done.",
  171.56 +            "The result (passed or failed) will be shown in the",
  171.57 +            "message window below."
  171.58 +        };
  171.59 +        Sysout.createDialog( );
  171.60 +        Sysout.printInstructions( instructions );
  171.61 +
  171.62 +
  171.63 +        // Create the frame and the button
  171.64 +        Frame f = new Frame();
  171.65 +        f.setBounds(100, 100, 200, 200);
  171.66 +        f.setLayout(new FlowLayout());
  171.67 +        f.add(new Button() {
  171.68 +            @Override
  171.69 +            public void update(Graphics g) {
  171.70 +                wasUpdate = true;
  171.71 +                super.update(g);
  171.72 +            }
  171.73 +        });
  171.74 +        f.setVisible(true);
  171.75 +
  171.76 +        ((SunToolkit)Toolkit.getDefaultToolkit()).realSync();
  171.77 +
  171.78 +        if (wasUpdate) {
  171.79 +            fail(" Unexpected update. ");
  171.80 +        } else {
  171.81 +            pass();
  171.82 +        }
  171.83 +    }//End  init()
  171.84 +
  171.85 +    /*****************************************************
  171.86 +     * Standard Test Machinery Section
  171.87 +     * DO NOT modify anything in this section -- it's a
  171.88 +     * standard chunk of code which has all of the
  171.89 +     * synchronisation necessary for the test harness.
  171.90 +     * By keeping it the same in all tests, it is easier
  171.91 +     * to read and understand someone else's test, as
  171.92 +     * well as insuring that all tests behave correctly
  171.93 +     * with the test harness.
  171.94 +     * There is a section following this for test-
  171.95 +     * classes
  171.96 +     ******************************************************/
  171.97 +    private static boolean theTestPassed = false;
  171.98 +    private static boolean testGeneratedInterrupt = false;
  171.99 +    private static String failureMessage = "";
 171.100 +
 171.101 +    private static Thread mainThread = null;
 171.102 +
 171.103 +    private static int sleepTime = 300000;
 171.104 +
 171.105 +    // Not sure about what happens if multiple of this test are
 171.106 +    //  instantiated in the same VM.  Being static (and using
 171.107 +    //  static vars), it aint gonna work.  Not worrying about
 171.108 +    //  it for now.
 171.109 +    public static void main( String args[] ) throws InterruptedException
 171.110 +    {
 171.111 +        mainThread = Thread.currentThread();
 171.112 +        try
 171.113 +        {
 171.114 +            init();
 171.115 +        }
 171.116 +        catch( TestPassedException e )
 171.117 +        {
 171.118 +            //The test passed, so just return from main and harness will
 171.119 +            // interepret this return as a pass
 171.120 +            return;
 171.121 +        }
 171.122 +        //At this point, neither test pass nor test fail has been
 171.123 +        // called -- either would have thrown an exception and ended the
 171.124 +        // test, so we know we have multiple threads.
 171.125 +
 171.126 +        //Test involves other threads, so sleep and wait for them to
 171.127 +        // called pass() or fail()
 171.128 +        try
 171.129 +        {
 171.130 +            Thread.sleep( sleepTime );
 171.131 +            //Timed out, so fail the test
 171.132 +            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
 171.133 +        }
 171.134 +        catch (InterruptedException e)
 171.135 +        {
 171.136 +            //The test harness may have interrupted the test.  If so, rethrow the exception
 171.137 +            // so that the harness gets it and deals with it.
 171.138 +            if( ! testGeneratedInterrupt ) throw e;
 171.139 +
 171.140 +            //reset flag in case hit this code more than once for some reason (just safety)
 171.141 +            testGeneratedInterrupt = false;
 171.142 +
 171.143 +            if ( theTestPassed == false )
 171.144 +            {
 171.145 +                throw new RuntimeException( failureMessage );
 171.146 +            }
 171.147 +        }
 171.148 +
 171.149 +    }//main
 171.150 +
 171.151 +    public static synchronized void setTimeoutTo( int seconds )
 171.152 +    {
 171.153 +        sleepTime = seconds * 1000;
 171.154 +    }
 171.155 +
 171.156 +    public static synchronized void pass()
 171.157 +    {
 171.158 +        Sysout.println( "The test passed." );
 171.159 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 171.160 +        //first check if this is executing in main thread
 171.161 +        if ( mainThread == Thread.currentThread() )
 171.162 +        {
 171.163 +            //Still in the main thread, so set the flag just for kicks,
 171.164 +            // and throw a test passed exception which will be caught
 171.165 +            // and end the test.
 171.166 +            theTestPassed = true;
 171.167 +            throw new TestPassedException();
 171.168 +        }
 171.169 +        theTestPassed = true;
 171.170 +        testGeneratedInterrupt = true;
 171.171 +        mainThread.interrupt();
 171.172 +    }//pass()
 171.173 +
 171.174 +    public static synchronized void fail()
 171.175 +    {
 171.176 +        //test writer didn't specify why test failed, so give generic
 171.177 +        fail( "it just plain failed! :-)" );
 171.178 +    }
 171.179 +
 171.180 +    public static synchronized void fail( String whyFailed )
 171.181 +    {
 171.182 +        Sysout.println( "The test failed: " + whyFailed );
 171.183 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 171.184 +        //check if this called from main thread
 171.185 +        if ( mainThread == Thread.currentThread() )
 171.186 +        {
 171.187 +            //If main thread, fail now 'cause not sleeping
 171.188 +            throw new RuntimeException( whyFailed );
 171.189 +        }
 171.190 +        theTestPassed = false;
 171.191 +        testGeneratedInterrupt = true;
 171.192 +        failureMessage = whyFailed;
 171.193 +        mainThread.interrupt();
 171.194 +    }//fail()
 171.195 +
 171.196 +}// class ValidBounds
 171.197 +
 171.198 +//This exception is used to exit from any level of call nesting
 171.199 +// when it's determined that the test has passed, and immediately
 171.200 +// end the test.
 171.201 +class TestPassedException extends RuntimeException
 171.202 +{
 171.203 +}
 171.204 +
 171.205 +//*********** End Standard Test Machinery Section **********
 171.206 +
 171.207 +
 171.208 +//************ Begin classes defined for the test ****************
 171.209 +
 171.210 +// if want to make listeners, here is the recommended place for them, then instantiate
 171.211 +//  them in init()
 171.212 +
 171.213 +/* Example of a class which may be written as part of a test
 171.214 +class NewClass implements anInterface
 171.215 + {
 171.216 +   static int newVar = 0;
 171.217 +
 171.218 +   public void eventDispatched(AWTEvent e)
 171.219 +    {
 171.220 +      //Counting events to see if we get enough
 171.221 +      eventCount++;
 171.222 +
 171.223 +      if( eventCount == 20 )
 171.224 +       {
 171.225 +         //got enough events, so pass
 171.226 +
 171.227 +         ValidBounds.pass();
 171.228 +       }
 171.229 +      else if( tries == 20 )
 171.230 +       {
 171.231 +         //tried too many times without getting enough events so fail
 171.232 +
 171.233 +         ValidBounds.fail();
 171.234 +       }
 171.235 +
 171.236 +    }// eventDispatched()
 171.237 +
 171.238 + }// NewClass class
 171.239 +
 171.240 +*/
 171.241 +
 171.242 +
 171.243 +//************** End classes defined for the test *******************
 171.244 +
 171.245 +
 171.246 +
 171.247 +
 171.248 +/****************************************************
 171.249 + Standard Test Machinery
 171.250 + DO NOT modify anything below -- it's a standard
 171.251 +  chunk of code whose purpose is to make user
 171.252 +  interaction uniform, and thereby make it simpler
 171.253 +  to read and understand someone else's test.
 171.254 + ****************************************************/
 171.255 +
 171.256 +/**
 171.257 + This is part of the standard test machinery.
 171.258 + It creates a dialog (with the instructions), and is the interface
 171.259 +  for sending text messages to the user.
 171.260 + To print the instructions, send an array of strings to Sysout.createDialog
 171.261 +  WithInstructions method.  Put one line of instructions per array entry.
 171.262 + To display a message for the tester to see, simply call Sysout.println
 171.263 +  with the string to be displayed.
 171.264 + This mimics System.out.println but works within the test harness as well
 171.265 +  as standalone.
 171.266 + */
 171.267 +
 171.268 +class Sysout
 171.269 +{
 171.270 +    private static TestDialog dialog;
 171.271 +
 171.272 +    public static void createDialogWithInstructions( String[] instructions )
 171.273 +    {
 171.274 +        dialog = new TestDialog( new Frame(), "Instructions" );
 171.275 +        dialog.printInstructions( instructions );
 171.276 +        dialog.setVisible(true);
 171.277 +        println( "Any messages for the tester will display here." );
 171.278 +    }
 171.279 +
 171.280 +    public static void createDialog( )
 171.281 +    {
 171.282 +        dialog = new TestDialog( new Frame(), "Instructions" );
 171.283 +        String[] defInstr = { "Instructions will appear here. ", "" } ;
 171.284 +        dialog.printInstructions( defInstr );
 171.285 +        dialog.setVisible(true);
 171.286 +        println( "Any messages for the tester will display here." );
 171.287 +    }
 171.288 +
 171.289 +
 171.290 +    public static void printInstructions( String[] instructions )
 171.291 +    {
 171.292 +        dialog.printInstructions( instructions );
 171.293 +    }
 171.294 +
 171.295 +
 171.296 +    public static void println( String messageIn )
 171.297 +    {
 171.298 +        dialog.displayMessage( messageIn );
 171.299 +        System.out.println(messageIn);
 171.300 +    }
 171.301 +
 171.302 +}// Sysout  class
 171.303 +
 171.304 +/**
 171.305 +  This is part of the standard test machinery.  It provides a place for the
 171.306 +   test instructions to be displayed, and a place for interactive messages
 171.307 +   to the user to be displayed.
 171.308 +  To have the test instructions displayed, see Sysout.
 171.309 +  To have a message to the user be displayed, see Sysout.
 171.310 +  Do not call anything in this dialog directly.
 171.311 +  */
 171.312 +class TestDialog extends Dialog
 171.313 +{
 171.314 +
 171.315 +    TextArea instructionsText;
 171.316 +    TextArea messageText;
 171.317 +    int maxStringLength = 80;
 171.318 +
 171.319 +    //DO NOT call this directly, go through Sysout
 171.320 +    public TestDialog( Frame frame, String name )
 171.321 +    {
 171.322 +        super( frame, name );
 171.323 +        int scrollBoth = TextArea.SCROLLBARS_BOTH;
 171.324 +        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
 171.325 +        add( "North", instructionsText );
 171.326 +
 171.327 +        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
 171.328 +        add("Center", messageText);
 171.329 +
 171.330 +        pack();
 171.331 +
 171.332 +        setVisible(true);
 171.333 +    }// TestDialog()
 171.334 +
 171.335 +    //DO NOT call this directly, go through Sysout
 171.336 +    public void printInstructions( String[] instructions )
 171.337 +    {
 171.338 +        //Clear out any current instructions
 171.339 +        instructionsText.setText( "" );
 171.340 +
 171.341 +        //Go down array of instruction strings
 171.342 +
 171.343 +        String printStr, remainingStr;
 171.344 +        for( int i=0; i < instructions.length; i++ )
 171.345 +        {
 171.346 +            //chop up each into pieces maxSringLength long
 171.347 +            remainingStr = instructions[ i ];
 171.348 +            while( remainingStr.length() > 0 )
 171.349 +            {
 171.350 +                //if longer than max then chop off first max chars to print
 171.351 +                if( remainingStr.length() >= maxStringLength )
 171.352 +                {
 171.353 +                    //Try to chop on a word boundary
 171.354 +                    int posOfSpace = remainingStr.
 171.355 +                        lastIndexOf( ' ', maxStringLength - 1 );
 171.356 +
 171.357 +                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
 171.358 +
 171.359 +                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
 171.360 +                    remainingStr = remainingStr.substring( posOfSpace + 1 );
 171.361 +                }
 171.362 +                //else just print
 171.363 +                else
 171.364 +                {
 171.365 +                    printStr = remainingStr;
 171.366 +                    remainingStr = "";
 171.367 +                }
 171.368 +
 171.369 +                instructionsText.append( printStr + "\n" );
 171.370 +
 171.371 +            }// while
 171.372 +
 171.373 +        }// for
 171.374 +
 171.375 +    }//printInstructions()
 171.376 +
 171.377 +    //DO NOT call this directly, go through Sysout
 171.378 +    public void displayMessage( String messageIn )
 171.379 +    {
 171.380 +        messageText.append( messageIn + "\n" );
 171.381 +        System.out.println(messageIn);
 171.382 +    }
 171.383 +
 171.384 +}// TestDialog  class
   172.1 --- a/test/java/awt/Component/isLightweightCrash/StubPeerCrash.java	Tue Apr 14 00:05:07 2009 -0700
   172.2 +++ b/test/java/awt/Component/isLightweightCrash/StubPeerCrash.java	Tue Apr 14 04:21:02 2009 -0700
   172.3 @@ -118,7 +118,7 @@
   172.4      public boolean     handlesWheelScrolling(){return true;};
   172.5      public void createBuffers(int numBuffers, BufferCapabilities caps) throws AWTException{};
   172.6      public Image getBackBuffer(){return null;};
   172.7 -    public void flip(BufferCapabilities.FlipContents flipAction){};
   172.8 +    public void flip(int x1, int y1, int x2, int y2, BufferCapabilities.FlipContents flipAction){};
   172.9      public void destroyBuffers(){};
  172.10  
  172.11      /**
   173.1 --- a/test/java/awt/EventQueue/6638195/bug6638195.java	Tue Apr 14 00:05:07 2009 -0700
   173.2 +++ b/test/java/awt/EventQueue/6638195/bug6638195.java	Tue Apr 14 04:21:02 2009 -0700
   173.3 @@ -76,8 +76,13 @@
   173.4          Callable<Void> afterDispatchCallable =
   173.5              new Callable<Void>() {
   173.6                  public Void call() {
   173.7 -                    delegate.afterDispatch(afterDispatchEventArgument[0],
   173.8 -                                           afterDispatchHandleArgument[0]);
   173.9 +                    try {
  173.10 +                        delegate.afterDispatch(afterDispatchEventArgument[0],
  173.11 +                                afterDispatchHandleArgument[0]);
  173.12 +                    }
  173.13 +                    catch (InterruptedException e) {
  173.14 +                        throw new RuntimeException("afterDispatch interrupted", e);
  173.15 +                    }
  173.16                      return null;
  173.17                  }
  173.18              };
  173.19 @@ -91,8 +96,13 @@
  173.20          Callable<Object> beforeDispatchCallable =
  173.21              new Callable<Object>() {
  173.22                  public Object call() {
  173.23 -                    return delegate.beforeDispatch(
  173.24 -                        beforeDispatchEventArgument[0]);
  173.25 +                    try {
  173.26 +                        return delegate.beforeDispatch(
  173.27 +                                beforeDispatchEventArgument[0]);
  173.28 +                    }
  173.29 +                    catch (InterruptedException e) {
  173.30 +                        throw new RuntimeException("beforeDispatch interrupted", e);
  173.31 +                    }
  173.32                  }
  173.33              };
  173.34          methodMap = new HashMap<String, Object>();
   174.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   174.2 +++ b/test/java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java	Tue Apr 14 04:21:02 2009 -0700
   174.3 @@ -0,0 +1,95 @@
   174.4 +/*
   174.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   174.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   174.7 + *
   174.8 + * This code is free software; you can redistribute it and/or modify it
   174.9 + * under the terms of the GNU General Public License version 2 only, as
  174.10 + * published by the Free Software Foundation.
  174.11 + *
  174.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  174.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  174.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  174.15 + * version 2 for more details (a copy is included in the LICENSE file that
  174.16 + * accompanied this code).
  174.17 + *
  174.18 + * You should have received a copy of the GNU General Public License version
  174.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  174.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  174.21 + *
  174.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  174.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  174.24 + * have any questions.
  174.25 + */
  174.26 +
  174.27 +/*
  174.28 +  @test
  174.29 +  @bug 4390555
  174.30 +  @summary Synopsis: clearGlobalFocusOwner() is not trigerring permanent FOCUS_LOST event
  174.31 +  @author son@sparc.spb.su, anton.tarasov: area=awt.focus
  174.32 +  @library   ../../regtesthelpers
  174.33 +  @build Util
  174.34 +  @run main ClearGlobalFocusOwnerTest
  174.35 +*/
  174.36 +
  174.37 +import java.awt.*;
  174.38 +import java.awt.event.*;
  174.39 +import test.java.awt.regtesthelpers.Util;
  174.40 +
  174.41 +public class ClearGlobalFocusOwnerTest {
  174.42 +    static volatile boolean isFocusLost = false;
  174.43 +    static Frame frame = new Frame("Test frame");
  174.44 +    static Button button = new Button("Test button");
  174.45 +
  174.46 +    public static void main(String[] args) {
  174.47 +        button.addFocusListener(new FocusAdapter() {
  174.48 +                public void focusLost(FocusEvent fe) {
  174.49 +                    if (fe.isTemporary()) {
  174.50 +                        throw new TestFailedException("the FocusLost event is temporary: " + fe);
  174.51 +                    }
  174.52 +                    isFocusLost = true;
  174.53 +                }
  174.54 +            });
  174.55 +
  174.56 +        frame.add(button);
  174.57 +        frame.pack();
  174.58 +        frame.setVisible(true);
  174.59 +
  174.60 +        Util.waitForIdle(null);
  174.61 +
  174.62 +        if (!button.hasFocus()) {
  174.63 +            button.requestFocus();
  174.64 +            Util.waitForIdle(null);
  174.65 +            if (!button.hasFocus()) {
  174.66 +                throw new TestErrorException("couldn't focus " + button);
  174.67 +            }
  174.68 +        }
  174.69 +
  174.70 +        KeyboardFocusManager.getCurrentKeyboardFocusManager().clearGlobalFocusOwner();
  174.71 +
  174.72 +        Util.waitForIdle(null);
  174.73 +
  174.74 +        if (!isFocusLost) {
  174.75 +            throw new TestFailedException("no FocusLost event happened on clearGlobalFocusOwner");
  174.76 +        }
  174.77 +
  174.78 +        System.out.println("Test passed.");
  174.79 +    }
  174.80 +}
  174.81 +
  174.82 +/**
  174.83 + * Thrown when the behavior being verified is found wrong.
  174.84 + */
  174.85 +class TestFailedException extends RuntimeException {
  174.86 +    TestFailedException(String msg) {
  174.87 +        super("Test failed: " + msg);
  174.88 +    }
  174.89 +}
  174.90 +
  174.91 +/**
  174.92 + * Thrown when an error not related to the behavior being verified is encountered.
  174.93 + */
  174.94 +class TestErrorException extends RuntimeException {
  174.95 +    TestErrorException(String msg) {
  174.96 +        super("Unexpected error: " + msg);
  174.97 +    }
  174.98 +}
   175.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   175.2 +++ b/test/java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java	Tue Apr 14 04:21:02 2009 -0700
   175.3 @@ -0,0 +1,114 @@
   175.4 +/*
   175.5 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
   175.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   175.7 + *
   175.8 + * This code is free software; you can redistribute it and/or modify it
   175.9 + * under the terms of the GNU General Public License version 2 only, as
  175.10 + * published by the Free Software Foundation.
  175.11 + *
  175.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  175.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  175.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  175.15 + * version 2 for more details (a copy is included in the LICENSE file that
  175.16 + * accompanied this code).
  175.17 + *
  175.18 + * You should have received a copy of the GNU General Public License version
  175.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  175.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  175.21 + *
  175.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  175.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  175.24 + * have any questions.
  175.25 + */
  175.26 +
  175.27 +/*
  175.28 +  @test
  175.29 +  @bug       6785058
  175.30 +  @summary   Tests that an owner is activated on closing its owned dialog with the warning icon.
  175.31 +  @author    Anton Tarasov: area=awt.focus
  175.32 +  @library   ../../regtesthelpers
  175.33 +  @build     Util
  175.34 +  @run       main/othervm/policy=java.policy -Djava.security.manager CloseDialogActivateOwnerTest
  175.35 +*/
  175.36 +
  175.37 +import java.awt.*;
  175.38 +import java.awt.event.*;
  175.39 +import java.applet.Applet;
  175.40 +import java.util.concurrent.atomic.AtomicBoolean;
  175.41 +import java.lang.reflect.InvocationTargetException;
  175.42 +import test.java.awt.regtesthelpers.Util;
  175.43 +
  175.44 +public class CloseDialogActivateOwnerTest extends Applet {
  175.45 +    Robot robot;
  175.46 +
  175.47 +    public static void main(String[] args) {
  175.48 +        CloseDialogActivateOwnerTest app = new CloseDialogActivateOwnerTest();
  175.49 +        app.init();
  175.50 +        app.start();
  175.51 +    }
  175.52 +
  175.53 +    public void init() {
  175.54 +        robot = Util.createRobot();
  175.55 +    }
  175.56 +
  175.57 +    public void start() {
  175.58 +        final Frame frame = new Frame("Owner Frame");
  175.59 +        final Dialog dialog = new Dialog(frame, "Owned Dialog");
  175.60 +
  175.61 +        frame.setSize(100, 100);
  175.62 +        dialog.setSize(100, 100);
  175.63 +
  175.64 +        // Show the owner. Check that it's focused.
  175.65 +        if (!Util.trackWindowGainedFocus(frame, new Runnable() {
  175.66 +                public void run() {
  175.67 +                    frame.setVisible(true);
  175.68 +                }
  175.69 +            }, 2000, false))
  175.70 +        {
  175.71 +            throw new TestErrorException("the owner frame hasn't been activated on show");
  175.72 +        }
  175.73 +
  175.74 +        // Show the owned dialog. Check that it's focused.
  175.75 +        if (!Util.trackWindowGainedFocus(dialog, new Runnable() {
  175.76 +                public void run() {
  175.77 +                    dialog.setVisible(true);
  175.78 +                }
  175.79 +            }, 2000, true))
  175.80 +        {
  175.81 +            throw new TestErrorException("the owned dialog hasn't been activated on show");
  175.82 +        }
  175.83 +
  175.84 +        robot.delay(2000); // wait for the warning icon is shown
  175.85 +
  175.86 +        // Close the dialog. Check that the owner is activated.
  175.87 +        if (!Util.trackWindowGainedFocus(frame, new Runnable() {
  175.88 +                public void run() {
  175.89 +                    dialog.dispose();
  175.90 +                }
  175.91 +            }, 2000, false))
  175.92 +        {
  175.93 +            throw new TestFailedException("the owner hasn't been activated on closing the owned dialog");
  175.94 +        }
  175.95 +
  175.96 +        System.out.println("Test passed.");
  175.97 +    }
  175.98 +}
  175.99 +
 175.100 +/**
 175.101 + * Thrown when the behavior being verified is found wrong.
 175.102 + */
 175.103 +class TestFailedException extends RuntimeException {
 175.104 +    TestFailedException(String msg) {
 175.105 +        super("Test failed: " + msg);
 175.106 +    }
 175.107 +}
 175.108 +
 175.109 +/**
 175.110 + * Thrown when an error not related to the behavior being verified is encountered.
 175.111 + */
 175.112 +class TestErrorException extends Error {
 175.113 +    TestErrorException(String msg) {
 175.114 +        super("Unexpected error: " + msg);
 175.115 +    }
 175.116 +}
 175.117 +
   176.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   176.2 +++ b/test/java/awt/Focus/CloseDialogActivateOwnerTest/java.policy	Tue Apr 14 04:21:02 2009 -0700
   176.3 @@ -0,0 +1,3 @@
   176.4 +grant {
   176.5 +	permission java.awt.AWTPermission "createRobot";
   176.6 +};
   177.1 --- a/test/java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java	Tue Apr 14 00:05:07 2009 -0700
   177.2 +++ b/test/java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java	Tue Apr 14 04:21:02 2009 -0700
   177.3 @@ -71,8 +71,14 @@
   177.4          testFrame.setVisible(true);
   177.5          Util.waitForIdle(robot);
   177.6  
   177.7 +        robot.delay(1000); // additional delay is required
   177.8 +
   177.9          if (!testButton.hasFocus()) {
  177.10 -            throw new TestErrorException("wrong initial focus");
  177.11 +            testButton.requestFocus();
  177.12 +            Util.waitForIdle(robot);
  177.13 +            if (!testButton.hasFocus()) {
  177.14 +                throw new TestErrorException("couldn't focus " + testButton);
  177.15 +            }
  177.16          }
  177.17  
  177.18          /*
   178.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   178.2 +++ b/test/java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java	Tue Apr 14 04:21:02 2009 -0700
   178.3 @@ -0,0 +1,88 @@
   178.4 +/*
   178.5 + * Copyright 2008-2009 Sun Microsystems, Inc.  All Rights Reserved.
   178.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   178.7 + *
   178.8 + * This code is free software; you can redistribute it and/or modify it
   178.9 + * under the terms of the GNU General Public License version 2 only, as
  178.10 + * published by the Free Software Foundation.
  178.11 + *
  178.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  178.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  178.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  178.15 + * version 2 for more details (a copy is included in the LICENSE file that
  178.16 + * accompanied this code).
  178.17 + *
  178.18 + * You should have received a copy of the GNU General Public License version
  178.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  178.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  178.21 + *
  178.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  178.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  178.24 + * have any questions.
  178.25 + */
  178.26 +
  178.27 +/*
  178.28 +  @test
  178.29 +  @bug       6542975
  178.30 +  @summary   Tests that switching focus from an owned window doesn't crash.
  178.31 +  @author    anton.tarasov@sun.com: area=awt-focus
  178.32 +  @library    ../../regtesthelpers
  178.33 +  @build     Util
  178.34 +  @run       main OwnedWindowFocusIMECrashTest
  178.35 +*/
  178.36 +
  178.37 +import java.awt.*;
  178.38 +import javax.swing.*;
  178.39 +import test.java.awt.regtesthelpers.Util;
  178.40 +
  178.41 +public class OwnedWindowFocusIMECrashTest {
  178.42 +    Robot robot;
  178.43 +    JFrame owner = new JFrame("Owner Frame");
  178.44 +    JFrame frame = new JFrame("Other Frame");
  178.45 +    JWindow window = new JWindow(owner);
  178.46 +    JButton button = new JButton("Button");
  178.47 +
  178.48 +    public static void main(String[] args) {
  178.49 +        OwnedWindowFocusIMECrashTest app = new OwnedWindowFocusIMECrashTest();
  178.50 +        app.init();
  178.51 +        app.start();
  178.52 +    }
  178.53 +
  178.54 +    public void init() {
  178.55 +        robot = Util.createRobot();
  178.56 +    }
  178.57 +
  178.58 +    public void start() {
  178.59 +        owner.setBounds(100, 100, 200, 100);
  178.60 +        window.setBounds(100, 250, 200, 100);
  178.61 +        frame.setBounds(350, 100, 200, 100);
  178.62 +        window.add(button);
  178.63 +
  178.64 +        owner.setVisible(true);
  178.65 +        frame.setVisible(true);
  178.66 +        window.setVisible(true);
  178.67 +
  178.68 +        Util.waitForIdle(robot);
  178.69 +
  178.70 +        test();
  178.71 +
  178.72 +        System.out.println("Test passed");
  178.73 +    }
  178.74 +
  178.75 +    void test() {
  178.76 +        Util.clickOnComp(button, robot);
  178.77 +        if (!button.hasFocus()) {
  178.78 +            throw new TestErrorException("the button couldn't be focused by click");
  178.79 +        }
  178.80 +        Util.clickOnTitle(frame, robot); // here there was a crash
  178.81 +    }
  178.82 +}
  178.83 +
  178.84 +/**
  178.85 + * Thrown when an error not related to the behavior being verified is encountered.
  178.86 + */
  178.87 +class TestErrorException extends RuntimeException {
  178.88 +    TestErrorException(String msg) {
  178.89 +        super("Unexpected error: " + msg);
  178.90 +    }
  178.91 +}
   179.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   179.2 +++ b/test/java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java	Tue Apr 14 04:21:02 2009 -0700
   179.3 @@ -0,0 +1,102 @@
   179.4 +/*
   179.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   179.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   179.7 + *
   179.8 + * This code is free software; you can redistribute it and/or modify it
   179.9 + * under the terms of the GNU General Public License version 2 only, as
  179.10 + * published by the Free Software Foundation.
  179.11 + *
  179.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  179.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  179.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  179.15 + * version 2 for more details (a copy is included in the LICENSE file that
  179.16 + * accompanied this code).
  179.17 + *
  179.18 + * You should have received a copy of the GNU General Public License version
  179.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  179.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  179.21 + *
  179.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  179.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  179.24 + * have any questions.
  179.25 + */
  179.26 +
  179.27 +/*
  179.28 +  @test
  179.29 +  @bug 6411406
  179.30 +  @summary Components automatically transfer focus on removal, even if developer requests focus elsewhere first
  179.31 +  @author oleg.sukhodolsky, anton.tarasov: area=awt.focus
  179.32 +  @library   ../../regtesthelpers
  179.33 +  @build Util
  179.34 +  @run main RemoveAfterRequest
  179.35 +*/
  179.36 +
  179.37 +/**
  179.38 + * RemoveAfterRequest.java
  179.39 + *
  179.40 + * summary: Components automatically transfer focus on removal, even if developer requests focus elsewhere first
  179.41 + */
  179.42 +
  179.43 +import java.awt.*;
  179.44 +import java.awt.event.*;
  179.45 +import test.java.awt.regtesthelpers.Util;
  179.46 +
  179.47 +public class RemoveAfterRequest {
  179.48 +    final static Frame frame = new Frame("test frame");
  179.49 +    final static Button btn1 = new Button("btn1");
  179.50 +    final static Button btn2 = new Button("btn2");
  179.51 +    final static Button btn3 = new Button("btn3");
  179.52 +
  179.53 +    public static void main(String[] args) {
  179.54 +        frame.setLayout(new GridLayout(3, 1));
  179.55 +        frame.add(btn1);
  179.56 +        frame.add(btn2);
  179.57 +        frame.add(btn3);
  179.58 +        frame.pack();
  179.59 +        frame.setVisible(true);
  179.60 +
  179.61 +        Util.waitForIdle(null);
  179.62 +
  179.63 +        if (!btn1.hasFocus()) {
  179.64 +            btn1.requestFocus();
  179.65 +            Util.waitForIdle(null);
  179.66 +            if (!btn1.hasFocus()) {
  179.67 +                throw new TestErrorException("couldn't focus " + btn1);
  179.68 +            }
  179.69 +        }
  179.70 +
  179.71 +        if (!Util.trackFocusGained(btn3, new Runnable() {
  179.72 +                public void run() {
  179.73 +                    btn3.requestFocus();
  179.74 +                    frame.remove(btn1);
  179.75 +                    frame.invalidate();
  179.76 +                                frame.validate();
  179.77 +                                frame.repaint();
  179.78 +                }
  179.79 +            }, 2000, true))
  179.80 +        {
  179.81 +            throw new TestFailedException("focus request on removal failed");
  179.82 +        }
  179.83 +
  179.84 +        System.out.println("Test passed.");
  179.85 +    }
  179.86 +}
  179.87 +
  179.88 +/**
  179.89 + * Thrown when the behavior being verified is found wrong.
  179.90 + */
  179.91 +class TestFailedException extends RuntimeException {
  179.92 +    TestFailedException(String msg) {
  179.93 +        super("Test failed: " + msg);
  179.94 +    }
  179.95 +}
  179.96 +
  179.97 +/**
  179.98 + * Thrown when an error not related to the behavior being verified is encountered.
  179.99 + */
 179.100 +class TestErrorException extends RuntimeException {
 179.101 +    TestErrorException(String msg) {
 179.102 +        super("Unexpected error: " + msg);
 179.103 +    }
 179.104 +}
 179.105 +
   180.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   180.2 +++ b/test/java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.html	Tue Apr 14 04:21:02 2009 -0700
   180.3 @@ -0,0 +1,20 @@
   180.4 +<html>
   180.5 +<!--
   180.6 +  @test
   180.7 +  @bug 6680988
   180.8 +  @summary verify that various shortcuts and accelerators work
   180.9 +  @author yuri.nesterenko : area=awt.keyboard
  180.10 +  @run applet/manual=yesno AcceleratorTest.html
  180.11 +  -->
  180.12 +<head>
  180.13 +<title> AcceleratorTest </title>
  180.14 +</head>
  180.15 +<body>
  180.16 +
  180.17 +<h1>AcceleratorTest<br>Bug ID: </h1>
  180.18 +
  180.19 +<p> See the dialog box (usually in upper left corner) for instructions</p>
  180.20 +
  180.21 +<APPLET CODE="AcceleratorTest.class" WIDTH=200 HEIGHT=200></APPLET>
  180.22 +</body>
  180.23 +</html>
   181.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   181.2 +++ b/test/java/awt/event/KeyEvent/AcceleratorTest/AcceleratorTest.java	Tue Apr 14 04:21:02 2009 -0700
   181.3 @@ -0,0 +1,305 @@
   181.4 +/*
   181.5 +  test
   181.6 +  @bug 6680988
   181.7 +  @summary verify that various shortcuts and accelerators work
   181.8 +  @author yuri.nesterenko : area=awt.keyboard
   181.9 +  @run applet/manual=yesno AcceleratorTest.html
  181.10 +*/
  181.11 +
  181.12 +/**
  181.13 + * AcceleratorTest.java
  181.14 + *
  181.15 + * summary:
  181.16 + */
  181.17 +
  181.18 +//import java.applet.Applet;
  181.19 +import javax.swing.*;
  181.20 +import java.awt.*;
  181.21 +import java.awt.event.*;
  181.22 +import java.util.Hashtable;
  181.23 +
  181.24 +
  181.25 +public class AcceleratorTest extends JApplet
  181.26 +{
  181.27 +    //Declare things used in the test, like buttons and labels here
  181.28 +    static int pressed = 0;
  181.29 +    Hashtable<String, Integer> cmdHash = new Hashtable<String, Integer>();
  181.30 +    String[] CMD = {
  181.31 +        "\u042E, keep me in focus",
  181.32 +        "Item Cyrl Be",
  181.33 +        "Item English Period",
  181.34 +        "Item English N",
  181.35 +        "\u0436"
  181.36 +    };
  181.37 +
  181.38 +    JFrame jfr;
  181.39 +
  181.40 +    public void init()
  181.41 +    {
  181.42 +        //Create instructions for the user here, as well as set up
  181.43 +        // the environment -- set the layout manager, add buttons,
  181.44 +        // etc.
  181.45 +        this.setLayout (new BorderLayout ());
  181.46 +
  181.47 +        String[] instructions =
  181.48 +        {
  181.49 +            " Ensure you have Russian keyboard layout as a currently active.",
  181.50 +            "(1) Press Ctrl+\u0411 (a key with \",<\" on it) ",
  181.51 +            "(2) Find a . (period) in this layout (perhaps \"/?\" or \"7&\" key).",
  181.52 +            "Press Ctrl+.",
  181.53 +            "(3) Press Crtl+ regular English . (period) key (on \".>\" )",
  181.54 +            "(4) Press Ctrl+ key with English N.",
  181.55 +            "(5) Press Alt+\u042E (key with \".>\")",
  181.56 +            "(6) Press Alt+\u0436 (key with \";:\")",
  181.57 +            "If all expected commands will be fired, look for message",
  181.58 +            "\"All tests passed\""
  181.59 +        };
  181.60 +        Sysout.createDialogWithInstructions( instructions );
  181.61 +        for(int i = 0; i < CMD.length; i++) {
  181.62 +            cmdHash.put(CMD[i], 0);
  181.63 +        }
  181.64 +
  181.65 +        jfr = new JFrame();
  181.66 +        JButton jbu;
  181.67 +        jfr.add((jbu = new JButton(CMD[0])));
  181.68 +        jbu.setMnemonic(java.awt.event.KeyEvent.getExtendedKeyCodeForChar('\u042E'));
  181.69 +        jbu.addActionListener( new ALi(CMD[0]));
  181.70 +
  181.71 +
  181.72 +        JMenuBar menuBar = new JMenuBar();
  181.73 +        jfr.setJMenuBar(menuBar);
  181.74 +        JMenu menu = new JMenu("Menu");
  181.75 +        menuBar.add(menu);
  181.76 +
  181.77 +        JMenuItem menuItem = new JMenuItem(CMD[1]);
  181.78 +        menuItem.setAccelerator(KeyStroke.getKeyStroke(java.awt.event.KeyEvent.getExtendedKeyCodeForChar('\u0431'),
  181.79 +                        InputEvent.CTRL_DOWN_MASK));
  181.80 +
  181.81 +        JMenuItem menuItemEnglish = new JMenuItem(CMD[2]);
  181.82 +        menuItemEnglish.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PERIOD,
  181.83 +                        InputEvent.CTRL_DOWN_MASK));
  181.84 +        JMenuItem menuItemE1 = new JMenuItem(CMD[3]);
  181.85 +        menuItemE1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
  181.86 +                        InputEvent.CTRL_DOWN_MASK));
  181.87 +        menuItem.addActionListener( new ALi(CMD[1]));
  181.88 +        menuItemEnglish.addActionListener( new ALi(CMD[2]));
  181.89 +        menuItemE1.addActionListener( new ALi(CMD[3]));
  181.90 +        menu.add(menuItem);
  181.91 +        menu.add(menuItemEnglish);
  181.92 +        menu.add(menuItemE1);
  181.93 +
  181.94 +        KeyStroke ks;
  181.95 +        InputMap im = new InputMap();
  181.96 +        ks = KeyStroke.getKeyStroke(KeyEvent.getExtendedKeyCodeForChar('\u0436'), java.awt.event.InputEvent.ALT_DOWN_MASK);
  181.97 +        im.put(ks, "pushAction");
  181.98 +        im.setParent(jbu.getInputMap(JComponent.WHEN_FOCUSED));
  181.99 +        jbu.setInputMap(JComponent.WHEN_FOCUSED, im);
 181.100 +
 181.101 +        jbu.getActionMap().put("pushAction",
 181.102 +            new AbstractAction("pushAction") {
 181.103 +                  public void actionPerformed(ActionEvent evt) {
 181.104 +                      if( evt.getActionCommand().equals(CMD[4])) {
 181.105 +                          cmdHash.put(CMD[4], 1);
 181.106 +                      }
 181.107 +                      boolean notYet = false;
 181.108 +                      for(int i = 0; i < CMD.length; i++) {
 181.109 +                          if(cmdHash.get(CMD[i]) == 0 ) notYet = true;
 181.110 +                      }
 181.111 +                      Sysout.println("Fired");
 181.112 +                      if( !notYet ) {
 181.113 +                          Sysout.println("All tests passed.");
 181.114 +                      }
 181.115 +                  }
 181.116 +            }
 181.117 +        );
 181.118 +
 181.119 +
 181.120 +        jfr.setBounds(650,0,200,200);
 181.121 +        jfr.setVisible(true);
 181.122 +
 181.123 +    }//End  init()
 181.124 +
 181.125 +    public void start ()
 181.126 +    {
 181.127 +        //Get things going.  Request focus, set size, et cetera
 181.128 +        setSize (200,200);
 181.129 +        setVisible(true);
 181.130 +        validate();
 181.131 +
 181.132 +    }// start()
 181.133 +    public class ALi implements ActionListener {
 181.134 +        String expectedCmd;
 181.135 +        public ALi( String eCmd ) {
 181.136 +            expectedCmd = eCmd;
 181.137 +        }
 181.138 +        public void actionPerformed(ActionEvent ae) {
 181.139 +            if( cmdHash.containsKey(ae.getActionCommand()) ) {
 181.140 +                cmdHash.put(expectedCmd, 1);
 181.141 +            }
 181.142 +            boolean notYet = false;
 181.143 +            for(int i = 0; i < CMD.length; i++) {
 181.144 +                if(cmdHash.get(CMD[i]) == 0 ) notYet = true;
 181.145 +                //Sysout.println(CMD[i]+":"+cmdHash.get(CMD[i]));
 181.146 +            }
 181.147 +            Sysout.println("FIRED");
 181.148 +            if( !notYet ) {
 181.149 +                Sysout.println("All tests passed.");
 181.150 +            }
 181.151 +        }
 181.152 +    }
 181.153 +
 181.154 +
 181.155 +}// class AcceleratorTest
 181.156 +
 181.157 +/* Place other classes related to the test after this line */
 181.158 +
 181.159 +
 181.160 +
 181.161 +
 181.162 +
 181.163 +/****************************************************
 181.164 + Standard Test Machinery
 181.165 + DO NOT modify anything below -- it's a standard
 181.166 +  chunk of code whose purpose is to make user
 181.167 +  interaction uniform, and thereby make it simpler
 181.168 +  to read and understand someone else's test.
 181.169 + ****************************************************/
 181.170 +
 181.171 +/**
 181.172 + This is part of the standard test machinery.
 181.173 + It creates a dialog (with the instructions), and is the interface
 181.174 +  for sending text messages to the user.
 181.175 + To print the instructions, send an array of strings to Sysout.createDialog
 181.176 +  WithInstructions method.  Put one line of instructions per array entry.
 181.177 + To display a message for the tester to see, simply call Sysout.println
 181.178 +  with the string to be displayed.
 181.179 + This mimics System.out.println but works within the test harness as well
 181.180 +  as standalone.
 181.181 + */
 181.182 +
 181.183 +class Sysout
 181.184 +{
 181.185 +    private static TestDialog dialog;
 181.186 +    private static boolean numbering = false;
 181.187 +    private static int messageNumber = 0;
 181.188 +
 181.189 +    public static void createDialogWithInstructions( String[] instructions )
 181.190 +    {
 181.191 +        dialog = new TestDialog( new Frame(), "Instructions" );
 181.192 +        dialog.printInstructions( instructions );
 181.193 +        dialog.setVisible(true);
 181.194 +        println( "Any messages for the tester will display here." );
 181.195 +    }
 181.196 +
 181.197 +    public static void createDialog( )
 181.198 +    {
 181.199 +        dialog = new TestDialog( new Frame(), "Instructions" );
 181.200 +        String[] defInstr = { "Instructions will appear here. ", "" } ;
 181.201 +        dialog.printInstructions( defInstr );
 181.202 +        dialog.setVisible(true);
 181.203 +        println( "Any messages for the tester will display here." );
 181.204 +    }
 181.205 +
 181.206 +    /* Enables message counting for the tester. */
 181.207 +    public static void enableNumbering(boolean enable){
 181.208 +        numbering = enable;
 181.209 +    }
 181.210 +
 181.211 +    public static void printInstructions( String[] instructions )
 181.212 +    {
 181.213 +        dialog.printInstructions( instructions );
 181.214 +    }
 181.215 +
 181.216 +
 181.217 +    public static void println( String messageIn )
 181.218 +    {
 181.219 +        if (numbering) {
 181.220 +            messageIn = "" + messageNumber + " " + messageIn;
 181.221 +            messageNumber++;
 181.222 +        }
 181.223 +        dialog.displayMessage( messageIn );
 181.224 +    }
 181.225 +
 181.226 +}// Sysout  class
 181.227 +
 181.228 +/**
 181.229 +  This is part of the standard test machinery.  It provides a place for the
 181.230 +   test instructions to be displayed, and a place for interactive messages
 181.231 +   to the user to be displayed.
 181.232 +  To have the test instructions displayed, see Sysout.
 181.233 +  To have a message to the user be displayed, see Sysout.
 181.234 +  Do not call anything in this dialog directly.
 181.235 +  */
 181.236 +class TestDialog extends Dialog
 181.237 +{
 181.238 +
 181.239 +    TextArea instructionsText;
 181.240 +    TextArea messageText;
 181.241 +    int maxStringLength = 80;
 181.242 +
 181.243 +    //DO NOT call this directly, go through Sysout
 181.244 +    public TestDialog( Frame frame, String name )
 181.245 +    {
 181.246 +        super( frame, name );
 181.247 +        int scrollBoth = TextArea.SCROLLBARS_BOTH;
 181.248 +        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
 181.249 +        add( "North", instructionsText );
 181.250 +
 181.251 +        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
 181.252 +        add("Center", messageText);
 181.253 +
 181.254 +        pack();
 181.255 +
 181.256 +        setVisible(true);
 181.257 +    }// TestDialog()
 181.258 +
 181.259 +    //DO NOT call this directly, go through Sysout
 181.260 +    public void printInstructions( String[] instructions )
 181.261 +    {
 181.262 +        //Clear out any current instructions
 181.263 +        instructionsText.setText( "" );
 181.264 +
 181.265 +        //Go down array of instruction strings
 181.266 +
 181.267 +        String printStr, remainingStr;
 181.268 +        for( int i=0; i < instructions.length; i++ )
 181.269 +        {
 181.270 +            //chop up each into pieces maxSringLength long
 181.271 +            remainingStr = instructions[ i ];
 181.272 +            while( remainingStr.length() > 0 )
 181.273 +            {
 181.274 +                //if longer than max then chop off first max chars to print
 181.275 +                if( remainingStr.length() >= maxStringLength )
 181.276 +                {
 181.277 +                    //Try to chop on a word boundary
 181.278 +                    int posOfSpace = remainingStr.
 181.279 +                        lastIndexOf( ' ', maxStringLength - 1 );
 181.280 +
 181.281 +                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
 181.282 +
 181.283 +                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
 181.284 +                    remainingStr = remainingStr.substring( posOfSpace + 1 );
 181.285 +                }
 181.286 +                //else just print
 181.287 +                else
 181.288 +                {
 181.289 +                    printStr = remainingStr;
 181.290 +                    remainingStr = "";
 181.291 +                }
 181.292 +
 181.293 +                instructionsText.append( printStr + "\n" );
 181.294 +
 181.295 +            }// while
 181.296 +
 181.297 +        }// for
 181.298 +
 181.299 +    }//printInstructions()
 181.300 +
 181.301 +    //DO NOT call this directly, go through Sysout
 181.302 +    public void displayMessage( String messageIn )
 181.303 +    {
 181.304 +        messageText.append( messageIn + "\n" );
 181.305 +        System.out.println(messageIn);
 181.306 +    }
 181.307 +
 181.308 +}// TestDialog  class
   182.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   182.2 +++ b/test/java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.html	Tue Apr 14 04:21:02 2009 -0700
   182.3 @@ -0,0 +1,20 @@
   182.4 +<html>
   182.5 +<!--  
   182.6 +  @test
   182.7 +  @bug 6730447
   182.8 +  @summary  Support for high resolution mouse wheel is still incomplete. AWT panel needs to be supported
   182.9 +  @author dmitry.cherepanov@...: area=awt.mouse
  182.10 +  @run applet/manual=yesno AWTPanelSmoothWheel.html
  182.11 +  -->
  182.12 +<head>
  182.13 +<title> AWTPanelSmoothWheel </title>
  182.14 +</head>
  182.15 +<body>
  182.16 +
  182.17 +<h1> AWTPanelSmoothWheel <br>Bug ID: 6730447</h1>
  182.18 +
  182.19 +<p> See the dialog box (usually in upper left corner) for instructions</p>
  182.20 +
  182.21 +<APPLET CODE="AWTPanelSmoothWheel.class" WIDTH=200 HEIGHT=200></APPLET>
  182.22 +</body>
  182.23 +</html>
   183.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   183.2 +++ b/test/java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.java	Tue Apr 14 04:21:02 2009 -0700
   183.3 @@ -0,0 +1,251 @@
   183.4 +/*
   183.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   183.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   183.7 + *
   183.8 + * This code is free software; you can redistribute it and/or modify it
   183.9 + * under the terms of the GNU General Public License version 2 only, as
  183.10 + * published by the Free Software Foundation.
  183.11 + *
  183.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  183.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  183.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  183.15 + * version 2 for more details (a copy is included in the LICENSE file that
  183.16 + * accompanied this code).
  183.17 + *
  183.18 + * You should have received a copy of the GNU General Public License version
  183.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  183.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  183.21 + *
  183.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  183.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  183.24 + * have any questions.
  183.25 + */
  183.26 +
  183.27 +/*
  183.28 +  test
  183.29 +  @bug 6730447
  183.30 +  @summary Support for high resolution mouse wheel is still incomplete. AWT panel needs to be supported
  183.31 +  @author dmitry.cherepanov@...: area=awt.mouse
  183.32 +  @run applet/manual=yesno AWTPanelSmoothWheel.html
  183.33 +*/
  183.34 +
  183.35 +/**
  183.36 + * AWTPanelSmoothWheel.java
  183.37 + *
  183.38 + * summary:
  183.39 + */
  183.40 +
  183.41 +import java.applet.Applet;
  183.42 +import java.awt.*;
  183.43 +import java.awt.event.*;
  183.44 +
  183.45 +//Manual tests should run as applet tests if possible because they
  183.46 +// get their environments cleaned up, including AWT threads, any
  183.47 +// test created threads, and any system resources used by the test
  183.48 +// such as file descriptors.  (This is normally not a problem as
  183.49 +// main tests usually run in a separate VM, however on some platforms
  183.50 +// such as the Mac, separate VMs are not possible and non-applet
  183.51 +// tests will cause problems).  Also, you don't have to worry about
  183.52 +// synchronisation stuff in Applet tests the way you do in main
  183.53 +// tests...
  183.54 +
  183.55 +
  183.56 +public class AWTPanelSmoothWheel extends Applet
  183.57 +{
  183.58 +    //Declare things used in the test, like buttons and labels here
  183.59 +
  183.60 +    public void init()
  183.61 +    {
  183.62 +        //Create instructions for the user here, as well as set up
  183.63 +        // the environment -- set the layout manager, add buttons,
  183.64 +        // etc.
  183.65 +        this.setLayout (new BorderLayout ());
  183.66 +
  183.67 +        String[] instructions =
  183.68 +        {
  183.69 +            " the test is relevant for windows platforms and ",
  183.70 +            " mouses with high-resolution wheel, please just press pass if it's not the case ",
  183.71 +            " place the mouse cursor above the green panel and rotate the mouse wheel " ,
  183.72 +            " the test will print all mouse wheel messages into the logging panel, ",
  183.73 +            " please make sure that some of the messages have non-zero 'wheelRotation' value ",
  183.74 +            " in this case the test passes, otherwise it fails, ",
  183.75 +            " please make sure the test works OK if the mouse wheel is rotated very slow  "
  183.76 +        };
  183.77 +        Sysout.createDialogWithInstructions( instructions );
  183.78 +
  183.79 +    }//End  init()
  183.80 +
  183.81 +    public void start ()
  183.82 +    {
  183.83 +        Panel panel = new Panel();
  183.84 +        panel.setBackground(Color.green);
  183.85 +        panel.addMouseWheelListener(new MouseWheelListener() {
  183.86 +            public void mouseWheelMoved(MouseWheelEvent e) {
  183.87 +                Sysout.println(e.toString());
  183.88 +            }
  183.89 +        });
  183.90 +
  183.91 +        //Get things going.  Request focus, set size, et cetera
  183.92 +        setSize (200,200);
  183.93 +        setLayout(new BorderLayout());
  183.94 +        add(panel, BorderLayout.CENTER);
  183.95 +        setVisible(true);
  183.96 +        validate();
  183.97 +
  183.98 +        //What would normally go into main() will probably go here.
  183.99 +        //Use System.out.println for diagnostic messages that you want
 183.100 +        // to read after the test is done.
 183.101 +        //Use Sysout.println for messages you want the tester to read.
 183.102 +
 183.103 +    }// start()
 183.104 +
 183.105 +    //The rest of this class is the actions which perform the test...
 183.106 +
 183.107 +    //Use Sysout.println to communicate with the user NOT System.out!!
 183.108 +    //Sysout.println ("Something Happened!");
 183.109 +
 183.110 +}// class ManualYesNoTest
 183.111 +
 183.112 +/* Place other classes related to the test after this line */
 183.113 +
 183.114 +
 183.115 +
 183.116 +
 183.117 +
 183.118 +/****************************************************
 183.119 + Standard Test Machinery
 183.120 + DO NOT modify anything below -- it's a standard
 183.121 +  chunk of code whose purpose is to make user
 183.122 +  interaction uniform, and thereby make it simpler
 183.123 +  to read and understand someone else's test.
 183.124 + ****************************************************/
 183.125 +
 183.126 +/**
 183.127 + This is part of the standard test machinery.
 183.128 + It creates a dialog (with the instructions), and is the interface
 183.129 +  for sending text messages to the user.
 183.130 + To print the instructions, send an array of strings to Sysout.createDialog
 183.131 +  WithInstructions method.  Put one line of instructions per array entry.
 183.132 + To display a message for the tester to see, simply call Sysout.println
 183.133 +  with the string to be displayed.
 183.134 + This mimics System.out.println but works within the test harness as well
 183.135 +  as standalone.
 183.136 + */
 183.137 +
 183.138 +class Sysout
 183.139 +{
 183.140 +    private static TestDialog dialog;
 183.141 +
 183.142 +    public static void createDialogWithInstructions( String[] instructions )
 183.143 +    {
 183.144 +        dialog = new TestDialog( new Frame(), "Instructions" );
 183.145 +        dialog.printInstructions( instructions );
 183.146 +        dialog.setVisible(true);
 183.147 +        println( "Any messages for the tester will display here." );
 183.148 +    }
 183.149 +
 183.150 +    public static void createDialog( )
 183.151 +    {
 183.152 +        dialog = new TestDialog( new Frame(), "Instructions" );
 183.153 +        String[] defInstr = { "Instructions will appear here. ", "" } ;
 183.154 +        dialog.printInstructions( defInstr );
 183.155 +        dialog.setVisible(true);
 183.156 +        println( "Any messages for the tester will display here." );
 183.157 +    }
 183.158 +
 183.159 +
 183.160 +    public static void printInstructions( String[] instructions )
 183.161 +    {
 183.162 +        dialog.printInstructions( instructions );
 183.163 +    }
 183.164 +
 183.165 +
 183.166 +    public static void println( String messageIn )
 183.167 +    {
 183.168 +        dialog.displayMessage( messageIn );
 183.169 +    }
 183.170 +
 183.171 +}// Sysout  class
 183.172 +
 183.173 +/**
 183.174 +  This is part of the standard test machinery.  It provides a place for the
 183.175 +   test instructions to be displayed, and a place for interactive messages
 183.176 +   to the user to be displayed.
 183.177 +  To have the test instructions displayed, see Sysout.
 183.178 +  To have a message to the user be displayed, see Sysout.
 183.179 +  Do not call anything in this dialog directly.
 183.180 +  */
 183.181 +class TestDialog extends Dialog
 183.182 +{
 183.183 +
 183.184 +    TextArea instructionsText;
 183.185 +    TextArea messageText;
 183.186 +    int maxStringLength = 80;
 183.187 +
 183.188 +    //DO NOT call this directly, go through Sysout
 183.189 +    public TestDialog( Frame frame, String name )
 183.190 +    {
 183.191 +        super( frame, name );
 183.192 +        int scrollBoth = TextArea.SCROLLBARS_BOTH;
 183.193 +        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
 183.194 +        add( "North", instructionsText );
 183.195 +
 183.196 +        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
 183.197 +        add("Center", messageText);
 183.198 +
 183.199 +        pack();
 183.200 +
 183.201 +        setVisible(true);
 183.202 +    }// TestDialog()
 183.203 +
 183.204 +    //DO NOT call this directly, go through Sysout
 183.205 +    public void printInstructions( String[] instructions )
 183.206 +    {
 183.207 +        //Clear out any current instructions
 183.208 +        instructionsText.setText( "" );
 183.209 +
 183.210 +        //Go down array of instruction strings
 183.211 +
 183.212 +        String printStr, remainingStr;
 183.213 +        for( int i=0; i < instructions.length; i++ )
 183.214 +        {
 183.215 +            //chop up each into pieces maxSringLength long
 183.216 +            remainingStr = instructions[ i ];
 183.217 +            while( remainingStr.length() > 0 )
 183.218 +            {
 183.219 +                //if longer than max then chop off first max chars to print
 183.220 +                if( remainingStr.length() >= maxStringLength )
 183.221 +                {
 183.222 +                    //Try to chop on a word boundary
 183.223 +                    int posOfSpace = remainingStr.
 183.224 +                        lastIndexOf( ' ', maxStringLength - 1 );
 183.225 +
 183.226 +                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
 183.227 +
 183.228 +                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
 183.229 +                    remainingStr = remainingStr.substring( posOfSpace + 1 );
 183.230 +                }
 183.231 +                //else just print
 183.232 +                else
 183.233 +                {
 183.234 +                    printStr = remainingStr;
 183.235 +                    remainingStr = "";
 183.236 +                }
 183.237 +
 183.238 +                instructionsText.append( printStr + "\n" );
 183.239 +
 183.240 +            }// while
 183.241 +
 183.242 +        }// for
 183.243 +
 183.244 +    }//printInstructions()
 183.245 +
 183.246 +    //DO NOT call this directly, go through Sysout
 183.247 +    public void displayMessage( String messageIn )
 183.248 +    {
 183.249 +        messageText.append( messageIn + "\n" );
 183.250 +        System.out.println(messageIn);
 183.251 +    }
 183.252 +
 183.253 +}// TestDialog  class
 183.254 +
   184.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   184.2 +++ b/test/sun/java2d/pipe/RegionOps.java	Tue Apr 14 04:21:02 2009 -0700
   184.3 @@ -0,0 +1,510 @@
   184.4 +/*
   184.5 + * @test %W% %E%
   184.6 + * @bug 6504874
   184.7 + * @summary This test verifies the operation (and performance) of the
   184.8 + *          various CAG operations on the internal Region class.
   184.9 + * @run main RegionOps
  184.10 + */
  184.11 +
  184.12 +import java.awt.Rectangle;
  184.13 +import java.awt.geom.Area;
  184.14 +import java.awt.geom.AffineTransform;
  184.15 +import java.awt.image.BufferedImage;
  184.16 +import java.util.Random;
  184.17 +import sun.java2d.pipe.Region;
  184.18 +
  184.19 +public class RegionOps {
  184.20 +    public static final int DEFAULT_NUMREGIONS = 50;
  184.21 +    public static final int DEFAULT_MINSUBRECTS = 1;
  184.22 +    public static final int DEFAULT_MAXSUBRECTS = 10;
  184.23 +
  184.24 +    public static final int MINCOORD = -20;
  184.25 +    public static final int MAXCOORD = 20;
  184.26 +
  184.27 +    public static boolean useArea;
  184.28 +
  184.29 +    static int numops;
  184.30 +    static int numErrors;
  184.31 +    static Random rand = new Random();
  184.32 +    static boolean skipCheck;
  184.33 +    static boolean countErrors;
  184.34 +
  184.35 +    static {
  184.36 +        // Instantiating BufferedImage initializes sun.java2d
  184.37 +        BufferedImage bimg =
  184.38 +            new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
  184.39 +    }
  184.40 +
  184.41 +    public static void usage(String error) {
  184.42 +        if (error != null) {
  184.43 +            System.err.println("Error: "+error);
  184.44 +        }
  184.45 +        System.err.println("Usage: java RegionOps "+
  184.46 +                           "[-regions N] [-rects M] "+
  184.47 +                           "[-[min|max]rects M] [-area]");
  184.48 +        System.err.println("                      "+
  184.49 +                           "[-add|union] [-sub|diff] "+
  184.50 +                           "[-int[ersect]] [-xor]");
  184.51 +        System.err.println("                      "+
  184.52 +                           "[-seed S] [-nocheck] [-count[errors]] [-help]");
  184.53 +        System.exit((error != null) ? 1 : 0);
  184.54 +    }
  184.55 +
  184.56 +    public static void error(RectListImpl a, RectListImpl b, String problem) {
  184.57 +        System.err.println("Operating on:  "+a);
  184.58 +        if (b != null) {
  184.59 +            System.err.println("and:  "+b);
  184.60 +        }
  184.61 +        if (countErrors) {
  184.62 +            System.err.println(problem);
  184.63 +            numErrors++;
  184.64 +        } else {
  184.65 +            throw new RuntimeException(problem);
  184.66 +        }
  184.67 +    }
  184.68 +
  184.69 +    public static void main(String argv[]) {
  184.70 +        int numregions = DEFAULT_NUMREGIONS;
  184.71 +        int minsubrects = DEFAULT_MINSUBRECTS;
  184.72 +        int maxsubrects = DEFAULT_MAXSUBRECTS;
  184.73 +        boolean doUnion = false;
  184.74 +        boolean doIntersect = false;
  184.75 +        boolean doSubtract = false;
  184.76 +        boolean doXor = false;
  184.77 +
  184.78 +        for (int i = 0; i < argv.length; i++) {
  184.79 +            String arg = argv[i];
  184.80 +            if (arg.equalsIgnoreCase("-regions")) {
  184.81 +                if (i+1 >= argv.length) {
  184.82 +                    usage("missing arg for -regions");
  184.83 +                }
  184.84 +                numregions = Integer.parseInt(argv[++i]);
  184.85 +            } else if (arg.equalsIgnoreCase("-rects")) {
  184.86 +                if (i+1 >= argv.length) {
  184.87 +                    usage("missing arg for -rects");
  184.88 +                }
  184.89 +                minsubrects = maxsubrects = Integer.parseInt(argv[++i]);
  184.90 +            } else if (arg.equalsIgnoreCase("-minrects")) {
  184.91 +                if (i+1 >= argv.length) {
  184.92 +                    usage("missing arg for -minrects");
  184.93 +                }
  184.94 +                minsubrects = Integer.parseInt(argv[++i]);
  184.95 +            } else if (arg.equalsIgnoreCase("-maxrects")) {
  184.96 +                if (i+1 >= argv.length) {
  184.97 +                    usage("missing arg for -maxrects");
  184.98 +                }
  184.99 +                maxsubrects = Integer.parseInt(argv[++i]);
 184.100 +            } else if (arg.equalsIgnoreCase("-area")) {
 184.101 +                useArea = true;
 184.102 +            } else if (arg.equalsIgnoreCase("-add") ||
 184.103 +                       arg.equalsIgnoreCase("-union"))
 184.104 +            {
 184.105 +                doUnion = true;
 184.106 +            } else if (arg.equalsIgnoreCase("-sub") ||
 184.107 +                       arg.equalsIgnoreCase("-diff"))
 184.108 +            {
 184.109 +                doSubtract = true;
 184.110 +            } else if (arg.equalsIgnoreCase("-int") ||
 184.111 +                       arg.equalsIgnoreCase("-intersect"))
 184.112 +            {
 184.113 +                doIntersect = true;
 184.114 +            } else if (arg.equalsIgnoreCase("-xor")) {
 184.115 +                doXor = true;
 184.116 +            } else if (arg.equalsIgnoreCase("-seed")) {
 184.117 +                if (i+1 >= argv.length) {
 184.118 +                    usage("missing arg for -seed");
 184.119 +                }
 184.120 +                rand.setSeed(Long.decode(argv[++i]).longValue());
 184.121 +            } else if (arg.equalsIgnoreCase("-nocheck")) {
 184.122 +                skipCheck = true;
 184.123 +            } else if (arg.equalsIgnoreCase("-count") ||
 184.124 +                       arg.equalsIgnoreCase("-counterrors"))
 184.125 +            {
 184.126 +                countErrors = true;
 184.127 +            } else if (arg.equalsIgnoreCase("-help")) {
 184.128 +                usage(null);
 184.129 +            } else {
 184.130 +                usage("Unknown argument: "+arg);
 184.131 +            }
 184.132 +        }
 184.133 +
 184.134 +        if (maxsubrects < minsubrects) {
 184.135 +            usage("maximum number of subrectangles less than minimum");
 184.136 +        }
 184.137 +
 184.138 +        if (minsubrects <= 0) {
 184.139 +            usage("minimum number of subrectangles must be positive");
 184.140 +        }
 184.141 +
 184.142 +        if (!doUnion && !doSubtract && !doIntersect && !doXor) {
 184.143 +            doUnion = doSubtract = doIntersect = doXor = true;
 184.144 +        }
 184.145 +
 184.146 +        long start = System.currentTimeMillis();
 184.147 +        RectListImpl rlist[] = new RectListImpl[numregions];
 184.148 +        int totalrects = 0;
 184.149 +        for (int i = 0; i < rlist.length; i++) {
 184.150 +            RectListImpl rli = RectListImpl.getInstance();
 184.151 +            int numsubrects =
 184.152 +                minsubrects + rand.nextInt(maxsubrects - minsubrects + 1);
 184.153 +            for (int j = 0; j < numsubrects; j++) {
 184.154 +                addRectTo(rli);
 184.155 +                totalrects++;
 184.156 +            }
 184.157 +            rlist[i] = rli;
 184.158 +        }
 184.159 +        long end = System.currentTimeMillis();
 184.160 +        System.out.println((end-start)+"ms to create "+
 184.161 +                           rlist.length+" regions containing "+
 184.162 +                           totalrects+" subrectangles");
 184.163 +
 184.164 +        start = System.currentTimeMillis();
 184.165 +        for (int i = 0; i < rlist.length; i++) {
 184.166 +            RectListImpl a = rlist[i];
 184.167 +            testTranslate(a);
 184.168 +            for (int j = i; j < rlist.length; j++) {
 184.169 +                RectListImpl b = rlist[j];
 184.170 +                if (doUnion) testUnion(a, b);
 184.171 +                if (doSubtract) testDifference(a, b);
 184.172 +                if (doIntersect) testIntersection(a, b);
 184.173 +                if (doXor) testExclusiveOr(a, b);
 184.174 +            }
 184.175 +        }
 184.176 +        end = System.currentTimeMillis();
 184.177 +        System.out.println(numops+" ops took "+(end-start)+"ms");
 184.178 +
 184.179 +        if (numErrors > 0) {
 184.180 +            throw new RuntimeException(numErrors+" errors encountered");
 184.181 +        }
 184.182 +    }
 184.183 +
 184.184 +    public static void addRectTo(RectListImpl rli) {
 184.185 +        int lox = MINCOORD + rand.nextInt(MAXCOORD - MINCOORD + 1);
 184.186 +        int hix = MINCOORD + rand.nextInt(MAXCOORD - MINCOORD + 1);
 184.187 +        int loy = MINCOORD + rand.nextInt(MAXCOORD - MINCOORD + 1);
 184.188 +        int hiy = MINCOORD + rand.nextInt(MAXCOORD - MINCOORD + 1);
 184.189 +        rli.addRect(lox, loy, hix, hiy);
 184.190 +    }
 184.191 +
 184.192 +    public static void checkEqual(RectListImpl a, RectListImpl b,
 184.193 +                                  String optype)
 184.194 +    {
 184.195 +        if (a.hashCode() != b.hashCode()) {
 184.196 +            error(a, b, "hashcode failed for "+optype);
 184.197 +        }
 184.198 +        if (!a.equals(b)) {
 184.199 +            error(a, b, "equals failed for "+optype);
 184.200 +        }
 184.201 +    }
 184.202 +
 184.203 +    public static void testTranslate(RectListImpl a) {
 184.204 +        RectListImpl maxTrans =
 184.205 +            a.getTranslation(Integer.MAX_VALUE, Integer.MAX_VALUE)
 184.206 +            .getTranslation(Integer.MAX_VALUE, Integer.MAX_VALUE)
 184.207 +            .getTranslation(Integer.MAX_VALUE, Integer.MAX_VALUE);
 184.208 +        if (!maxTrans.checkTransEmpty()) {
 184.209 +            error(maxTrans, null, "overflow translated RectList not empty");
 184.210 +        }
 184.211 +        RectListImpl minTrans =
 184.212 +            a.getTranslation(Integer.MIN_VALUE, Integer.MIN_VALUE)
 184.213 +            .getTranslation(Integer.MIN_VALUE, Integer.MIN_VALUE)
 184.214 +            .getTranslation(Integer.MIN_VALUE, Integer.MIN_VALUE);
 184.215 +        if (!minTrans.checkTransEmpty()) {
 184.216 +            error(minTrans, null, "overflow translated RectList not empty");
 184.217 +        }
 184.218 +        testTranslate(a, Integer.MAX_VALUE, Integer.MAX_VALUE, false,
 184.219 +                      MINCOORD, 0, MINCOORD, 0);
 184.220 +        testTranslate(a, Integer.MAX_VALUE, Integer.MIN_VALUE, false,
 184.221 +                      MINCOORD, 0, 0, MAXCOORD);
 184.222 +        testTranslate(a, Integer.MIN_VALUE, Integer.MAX_VALUE, false,
 184.223 +                      0, MAXCOORD, MINCOORD, 0);
 184.224 +        testTranslate(a, Integer.MIN_VALUE, Integer.MIN_VALUE, false,
 184.225 +                      0, MAXCOORD, 0, MAXCOORD);
 184.226 +        for (int dy = -100; dy <= 100; dy += 50) {
 184.227 +            for (int dx = -100; dx <= 100; dx += 50) {
 184.228 +                testTranslate(a, dx, dy, true,
 184.229 +                              MINCOORD, MAXCOORD,
 184.230 +                              MINCOORD, MAXCOORD);
 184.231 +            }
 184.232 +        }
 184.233 +    }
 184.234 +
 184.235 +    public static void testTranslate(RectListImpl a, int dx, int dy,
 184.236 +                                     boolean isNonDestructive,
 184.237 +                                     int xmin, int xmax,
 184.238 +                                     int ymin, int ymax)
 184.239 +    {
 184.240 +        RectListImpl theTrans = a.getTranslation(dx, dy); numops++;
 184.241 +        if (skipCheck) return;
 184.242 +        RectListImpl unTrans = theTrans.getTranslation(-dx, -dy);
 184.243 +        if (isNonDestructive) checkEqual(a, unTrans, "Translate");
 184.244 +        for (int x = xmin; x < xmax; x++) {
 184.245 +            for (int y = ymin; y < ymax; y++) {
 184.246 +                boolean inside = a.contains(x, y);
 184.247 +                if (theTrans.contains(x+dx, y+dy) != inside) {
 184.248 +                    error(a, null, "translation failed for "+
 184.249 +                          dx+", "+dy+" at "+x+", "+y);
 184.250 +                }
 184.251 +            }
 184.252 +        }
 184.253 +    }
 184.254 +
 184.255 +    public static void testUnion(RectListImpl a, RectListImpl b) {
 184.256 +        RectListImpl aUb = a.getUnion(b); numops++;
 184.257 +        RectListImpl bUa = b.getUnion(a); numops++;
 184.258 +        if (skipCheck) return;
 184.259 +        checkEqual(aUb, bUa, "Union");
 184.260 +        testUnion(a, b, aUb);
 184.261 +        testUnion(a, b, bUa);
 184.262 +    }
 184.263 +
 184.264 +    public static void testUnion(RectListImpl a, RectListImpl b,
 184.265 +                                 RectListImpl theUnion)
 184.266 +    {
 184.267 +        for (int x = MINCOORD; x < MAXCOORD; x++) {
 184.268 +            for (int y = MINCOORD; y < MAXCOORD; y++) {
 184.269 +                boolean inside = (a.contains(x, y) || b.contains(x, y));
 184.270 +                if (theUnion.contains(x, y) != inside) {
 184.271 +                    error(a, b, "union failed at "+x+", "+y);
 184.272 +                }
 184.273 +            }
 184.274 +        }
 184.275 +    }
 184.276 +
 184.277 +    public static void testDifference(RectListImpl a, RectListImpl b) {
 184.278 +        RectListImpl aDb = a.getDifference(b); numops++;
 184.279 +        RectListImpl bDa = b.getDifference(a); numops++;
 184.280 +        if (skipCheck) return;
 184.281 +        // Note that difference is not commutative so we cannot check equals
 184.282 +        // checkEqual(a, b, "Difference");
 184.283 +        testDifference(a, b, aDb);
 184.284 +        testDifference(b, a, bDa);
 184.285 +    }
 184.286 +
 184.287 +    public static void testDifference(RectListImpl a, RectListImpl b,
 184.288 +                                      RectListImpl theDifference)
 184.289 +    {
 184.290 +        for (int x = MINCOORD; x < MAXCOORD; x++) {
 184.291 +            for (int y = MINCOORD; y < MAXCOORD; y++) {
 184.292 +                boolean inside = (a.contains(x, y) && !b.contains(x, y));
 184.293 +                if (theDifference.contains(x, y) != inside) {
 184.294 +                    error(a, b, "difference failed at "+x+", "+y);
 184.295 +                }
 184.296 +            }
 184.297 +        }
 184.298 +    }
 184.299 +
 184.300 +    public static void testIntersection(RectListImpl a, RectListImpl b) {
 184.301 +        RectListImpl aIb = a.getIntersection(b); numops++;
 184.302 +        RectListImpl bIa = b.getIntersection(a); numops++;
 184.303 +        if (skipCheck) return;
 184.304 +        checkEqual(aIb, bIa, "Intersection");
 184.305 +        testIntersection(a, b, aIb);
 184.306 +        testIntersection(a, b, bIa);
 184.307 +    }
 184.308 +
 184.309 +    public static void testIntersection(RectListImpl a, RectListImpl b,
 184.310 +                                        RectListImpl theIntersection)
 184.311 +    {
 184.312 +        for (int x = MINCOORD; x < MAXCOORD; x++) {
 184.313 +            for (int y = MINCOORD; y < MAXCOORD; y++) {
 184.314 +                boolean inside = (a.contains(x, y) && b.contains(x, y));
 184.315 +                if (theIntersection.contains(x, y) != inside) {
 184.316 +                    error(a, b, "intersection failed at "+x+", "+y);
 184.317 +                }
 184.318 +            }
 184.319 +        }
 184.320 +    }
 184.321 +
 184.322 +    public static void testExclusiveOr(RectListImpl a, RectListImpl b) {
 184.323 +        RectListImpl aXb = a.getExclusiveOr(b); numops++;
 184.324 +        RectListImpl bXa = b.getExclusiveOr(a); numops++;
 184.325 +        if (skipCheck) return;
 184.326 +        checkEqual(aXb, bXa, "ExclusiveOr");
 184.327 +        testExclusiveOr(a, b, aXb);
 184.328 +        testExclusiveOr(a, b, bXa);
 184.329 +    }
 184.330 +
 184.331 +    public static void testExclusiveOr(RectListImpl a, RectListImpl b,
 184.332 +                                       RectListImpl theExclusiveOr)
 184.333 +    {
 184.334 +        for (int x = MINCOORD; x < MAXCOORD; x++) {
 184.335 +            for (int y = MINCOORD; y < MAXCOORD; y++) {
 184.336 +                boolean inside = (a.contains(x, y) != b.contains(x, y));
 184.337 +                if (theExclusiveOr.contains(x, y) != inside) {
 184.338 +                    error(a, b, "xor failed at "+x+", "+y);
 184.339 +                }
 184.340 +            }
 184.341 +        }
 184.342 +    }
 184.343 +
 184.344 +    public abstract static class RectListImpl {
 184.345 +        public static RectListImpl getInstance() {
 184.346 +            if (useArea) {
 184.347 +                return new AreaImpl();
 184.348 +            } else {
 184.349 +                return new RegionImpl();
 184.350 +            }
 184.351 +        }
 184.352 +
 184.353 +        public abstract void addRect(int lox, int loy, int hix, int hiy);
 184.354 +
 184.355 +        public abstract RectListImpl getTranslation(int dx, int dy);
 184.356 +
 184.357 +        public abstract RectListImpl getIntersection(RectListImpl rli);
 184.358 +        public abstract RectListImpl getExclusiveOr(RectListImpl rli);
 184.359 +        public abstract RectListImpl getDifference(RectListImpl rli);
 184.360 +        public abstract RectListImpl getUnion(RectListImpl rli);
 184.361 +
 184.362 +        // Used for making sure that 3xMAX translates yields an empty region
 184.363 +        public abstract boolean checkTransEmpty();
 184.364 +
 184.365 +        public abstract boolean contains(int x, int y);
 184.366 +
 184.367 +        public abstract int hashCode();
 184.368 +        public abstract boolean equals(RectListImpl other);
 184.369 +    }
 184.370 +
 184.371 +    public static class AreaImpl extends RectListImpl {
 184.372 +        Area theArea;
 184.373 +
 184.374 +        public AreaImpl() {
 184.375 +        }
 184.376 +
 184.377 +        public AreaImpl(Area a) {
 184.378 +            theArea = a;
 184.379 +        }
 184.380 +
 184.381 +        public void addRect(int lox, int loy, int hix, int hiy) {
 184.382 +            Area a2 = new Area(new Rectangle(lox, loy, hix-lox, hiy-loy));
 184.383 +            if (theArea == null) {
 184.384 +                theArea = a2;
 184.385 +            } else {
 184.386 +                theArea.add(a2);
 184.387 +            }
 184.388 +        }
 184.389 +
 184.390 +        public RectListImpl getTranslation(int dx, int dy) {
 184.391 +            AffineTransform at = AffineTransform.getTranslateInstance(dx, dy);
 184.392 +            return new AreaImpl(theArea.createTransformedArea(at));
 184.393 +        }
 184.394 +
 184.395 +        public RectListImpl getIntersection(RectListImpl rli) {
 184.396 +            Area a2 = new Area(theArea);
 184.397 +            a2.intersect(((AreaImpl) rli).theArea);
 184.398 +            return new AreaImpl(a2);
 184.399 +        }
 184.400 +
 184.401 +        public RectListImpl getExclusiveOr(RectListImpl rli) {
 184.402 +            Area a2 = new Area(theArea);
 184.403 +            a2.exclusiveOr(((AreaImpl) rli).theArea);
 184.404 +            return new AreaImpl(a2);
 184.405 +        }
 184.406 +
 184.407 +        public RectListImpl getDifference(RectListImpl rli) {
 184.408 +            Area a2 = new Area(theArea);
 184.409 +            a2.subtract(((AreaImpl) rli).theArea);
 184.410 +            return new AreaImpl(a2);
 184.411 +        }
 184.412 +
 184.413 +        public RectListImpl getUnion(RectListImpl rli) {
 184.414 +            Area a2 = new Area(theArea);
 184.415 +            a2.add(((AreaImpl) rli).theArea);
 184.416 +            return new AreaImpl(a2);
 184.417 +        }
 184.418 +
 184.419 +        // Used for making sure that 3xMAX translates yields an empty region
 184.420 +        public boolean checkTransEmpty() {
 184.421 +            // Area objects will actually survive 3 MAX translates so just
 184.422 +            // pretend that it had the intended effect...
 184.423 +            return true;
 184.424 +        }
 184.425 +
 184.426 +        public boolean contains(int x, int y) {
 184.427 +            return theArea.contains(x, y);
 184.428 +        }
 184.429 +
 184.430 +        public int hashCode() {
 184.431 +            // Area does not override hashCode...
 184.432 +            return 0;
 184.433 +        }
 184.434 +
 184.435 +        public boolean equals(RectListImpl other) {
 184.436 +            return theArea.equals(((AreaImpl) other).theArea);
 184.437 +        }
 184.438 +
 184.439 +        public String toString() {
 184.440 +            return theArea.toString();
 184.441 +        }
 184.442 +    }
 184.443 +
 184.444 +    public static class RegionImpl extends RectListImpl {
 184.445 +        Region theRegion;
 184.446 +
 184.447 +        public RegionImpl() {
 184.448 +        }
 184.449 +
 184.450 +        public RegionImpl(Region r) {
 184.451 +            theRegion = r;
 184.452 +        }
 184.453 +
 184.454 +        public void addRect(int lox, int loy, int hix, int hiy) {
 184.455 +            Region r2 = Region.getInstanceXYXY(lox, loy, hix, hiy);
 184.456 +            if (theRegion == null) {
 184.457 +                theRegion = r2;
 184.458 +            } else {
 184.459 +                theRegion = theRegion.getUnion(r2);
 184.460 +            }
 184.461 +        }
 184.462 +
 184.463 +        public RectListImpl getTranslation(int dx, int dy) {
 184.464 +            return new RegionImpl(theRegion.getTranslatedRegion(dx, dy));
 184.465 +        }
 184.466 +
 184.467 +        public RectListImpl getIntersection(RectListImpl rli) {
 184.468 +            Region r2 = ((RegionImpl) rli).theRegion;
 184.469 +            r2 = theRegion.getIntersection(r2);
 184.470 +            return new RegionImpl(r2);
 184.471 +        }
 184.472 +
 184.473 +        public RectListImpl getExclusiveOr(RectListImpl rli) {
 184.474 +            Region r2 = ((RegionImpl) rli).theRegion;
 184.475 +            r2 = theRegion.getExclusiveOr(r2);
 184.476 +            return new RegionImpl(r2);
 184.477 +        }
 184.478 +
 184.479 +        public RectListImpl getDifference(RectListImpl rli) {
 184.480 +            Region r2 = ((RegionImpl) rli).theRegion;
 184.481 +            r2 = theRegion.getDifference(r2);
 184.482 +            return new RegionImpl(r2);
 184.483 +        }
 184.484 +
 184.485 +        public RectListImpl getUnion(RectListImpl rli) {
 184.486 +            Region r2 = ((RegionImpl) rli).theRegion;
 184.487 +            r2 = theRegion.getUnion(r2);
 184.488 +            return new RegionImpl(r2);
 184.489 +        }
 184.490 +
 184.491 +        // Used for making sure that 3xMAX translates yields an empty region
 184.492 +        public boolean checkTransEmpty() {
 184.493 +            // Region objects should be empty after 3 MAX translates...
 184.494 +            return theRegion.isEmpty();
 184.495 +        }
 184.496 +
 184.497 +        public boolean contains(int x, int y) {
 184.498 +            return theRegion.contains(x, y);
 184.499 +        }
 184.500 +
 184.501 +        public int hashCode() {
 184.502 +            return theRegion.hashCode();
 184.503 +        }
 184.504 +
 184.505 +        public boolean equals(RectListImpl other) {
 184.506 +            return theRegion.equals(((RegionImpl) other).theRegion);
 184.507 +        }
 184.508 +
 184.509 +        public String toString() {
 184.510 +            return theRegion.toString();
 184.511 +        }
 184.512 +    }
 184.513 +}