PatchSet 6836 
Date: 2005/08/17 22:38:17
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Ressynced with GNU Classpath: qt peers updated, awt, swing fixes

Members: 
        ChangeLog:1.4360->1.4361 
        include/Makefile.am:1.110->1.111 
        include/Makefile.in:1.239->1.240 
        kaffe/kaffevm/boehm-gc/boehm/acinclude.m4:1.2->1.3 
        
libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c:1.6->1.7
 
        
libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c:1.8->1.9
 
        
libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c:1.7->1.8
 
        
libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c:1.7->1.8
 
        
libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c:1.14->1.15
 
        
libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:1.22->1.23
 
        libraries/clib/awt/classpath-qt/Makefile.am:1.2->1.3 
        libraries/clib/awt/classpath-qt/Makefile.in:1.2->1.3 
        libraries/clib/awt/classpath-qt/eventmethods.cpp:1.1->1.2(DEAD) 
        libraries/clib/awt/classpath-qt/eventmethods.h:INITIAL->1.1 
        libraries/clib/awt/classpath-qt/keybindings.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/keybindings.h:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtbuttonpeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtcanvaspeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtcheckboxpeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtchoicepeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtcomponent.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtcomponentpeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtdialogpeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtembeddedwindowpeer.cpp:INITIAL->1.1 
        libraries/clib/awt/classpath-qt/qtframepeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtgraphics.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtimage.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtlabelpeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtlistpeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtmenupeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtpanelpeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtscrollbarpeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtscrollpanepeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qttextareapeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qttextfieldpeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/qtwindowpeer.cpp:1.1->1.2 
        libraries/clib/awt/classpath-qt/slotcallbacks.cpp:1.2->1.3 
        libraries/clib/awt/classpath-qt/slotcallbacks.h:1.1->1.2 
        libraries/javalib/Makefile.am:1.382->1.383 
        libraries/javalib/Makefile.in:1.472->1.473 
        libraries/javalib/all.files:1.152->1.153 
        libraries/javalib/gnu/java/awt/ClasspathToolkit.java:1.12->1.13 
        libraries/javalib/gnu/java/awt/peer/gtk/GtkClipboard.java:1.5->1.6 
        
libraries/javalib/gnu/java/awt/peer/gtk/GtkClipboardNotifier.java:INITIAL->1.1 
        libraries/javalib/gnu/java/awt/peer/gtk/GtkContainerPeer.java:1.6->1.7 
        
libraries/javalib/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java:1.9->1.10 
        libraries/javalib/gnu/java/awt/peer/gtk/GtkFramePeer.java:1.11->1.12 
        libraries/javalib/gnu/java/awt/peer/gtk/GtkImage.java:1.10->1.11 
        libraries/javalib/gnu/java/awt/peer/gtk/GtkSelection.java:INITIAL->1.1 
        libraries/javalib/gnu/java/awt/peer/gtk/GtkToolkit.java:1.20->1.21 
        libraries/javalib/gnu/java/awt/peer/gtk/GtkWindowPeer.java:1.11->1.12 
        libraries/javalib/gnu/java/awt/peer/qt/QtButtonPeer.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtCheckboxPeer.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtChoicePeer.java:1.1->1.2 
        
libraries/javalib/gnu/java/awt/peer/qt/QtComponentGraphics.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtComponentPeer.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtContainerPeer.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtDialogPeer.java:1.1->1.2 
        
libraries/javalib/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java:INITIAL->1.1 
        libraries/javalib/gnu/java/awt/peer/qt/QtFontPeer.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtFramePeer.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtGraphics.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtImage.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtImageGraphics.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtListPeer.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtMenuBarPeer.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtMenuItemPeer.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtMenuPeer.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtScrollbarPeer.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtTextAreaPeer.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtTextFieldPeer.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtToolkit.java:1.1->1.2 
        libraries/javalib/gnu/java/awt/peer/qt/QtWindowPeer.java:1.1->1.2 
        libraries/javalib/java/awt/Component.java:1.58->1.59 
        libraries/javalib/java/awt/Container.java:1.40->1.41 
        libraries/javalib/java/awt/EventQueue.java:1.18->1.19 
        libraries/javalib/java/awt/FontMetrics.java:1.18->1.19 
        libraries/javalib/java/awt/Frame.java:1.28->1.29 
        libraries/javalib/java/awt/TextComponent.java:1.7->1.8 
        libraries/javalib/java/awt/Window.java:1.35->1.36 
        libraries/javalib/java/lang/Character.java:1.26->1.27 
        libraries/javalib/javax/swing/JComponent.java:1.27->1.28 
        libraries/javalib/javax/swing/JList.java:1.13->1.14 
        libraries/javalib/javax/swing/JPasswordField.java:1.7->1.8 
        libraries/javalib/javax/swing/JTree.java:1.26->1.27 
        libraries/javalib/javax/swing/plaf/basic/BasicLabelUI.java:1.7->1.8 
        
libraries/javalib/javax/swing/plaf/basic/BasicLookAndFeel.java:1.22->1.23 
        libraries/javalib/javax/swing/plaf/basic/BasicTableUI.java:1.13->1.14 
        libraries/javalib/javax/swing/plaf/basic/BasicTextUI.java:1.18->1.19 
        libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java:1.17->1.18 
        libraries/javalib/javax/swing/text/BoxView.java:1.1->1.2 
        libraries/javalib/javax/swing/text/ComponentView.java:1.3->1.4 
        libraries/javalib/javax/swing/text/CompositeView.java:1.1->1.2 
        libraries/javalib/javax/swing/text/GlyphView.java:1.1->1.2 
        libraries/javalib/javax/swing/text/IconView.java:1.1->1.2 
        libraries/javalib/javax/swing/text/PasswordView.java:1.4->1.5 
        libraries/javalib/javax/swing/text/PlainView.java:1.9->1.10 
        libraries/javalib/javax/swing/text/View.java:1.11->1.12 
        
libraries/javalib/javax/swing/tree/DefaultTreeCellRenderer.java:1.10->1.11 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4360 kaffe/ChangeLog:1.4361
--- kaffe/ChangeLog:1.4360      Wed Aug 17 00:17:34 2005
+++ kaffe/ChangeLog     Wed Aug 17 22:38:17 2005
@@ -1,3 +1,329 @@
+2005-08-18  Dalibor Topic  <[EMAIL PROTECTED]>
+
+       Resynced with GNU Classpath.
+
+       2005-08-17  Anthony Balkissoon  <[EMAIL PROTECTED]>
+
+        * javax/swing/JList.java:
+        (indexToLocation): Implemented.
+        (getLastVisibleIndex): If the last index in the list is showing and
+        there is extra room at the bottom, return the last index, not -1.
+
+       2005-08-17  Lillian Angel <[EMAIL PROTECTED]>
+
+        * javax/swing/plaf/basic/BasicTreeUI.java
+        (getCellLocation): Added in check if node is a leaf.
+        Shouldnt call getChildCount if a leaf. May cause NPE.
+        (paintRecursive): Likewise.
+        (paintControlIcons): Likewise.
+        (findNode): Likewise.
+        (getNextNode): Likewise.
+        (getPreviousNode): Likewise.
+        (getNextSibling): Likewise.
+        (getPreviousSibling): Likewise.
+
+       2005-08-17  Lillian Angel  <[EMAIL PROTECTED]>
+
+        * javax/swing/tree/DefaultTreeCellRenderer.java
+        (paint): paints the background and border of cell.
+
+       2005-08-17  Roman Kennke  <[EMAIL PROTECTED]>
+
+        Reported by Ingo Proetel  <[EMAIL PROTECTED]>
+        * java/awt/image/DirectColorModel.java
+        (createCompatibleWritableRaster): Added argument check.
+
+       2005-08-17  Roman Kennke  <[EMAIL PROTECTED]>
+
+        * java/awt/FontMetrics.java
+        (charWidth(int)): Correctly map Unicode indices to char[] here.
+
+       2005-08-17  Roman Kennke  <[EMAIL PROTECTED]>
+
+        * java/lang/Character.java
+        (toChars(int)): New JDK1.5 method.
+        (toChars(int, char[], int)): New JDK1.5 method.
+        (charCount): New JDK1.5 method.
+        (isSupplementaryCodePoint): New JDK1.5 method.
+        (isValidCodePoint): New JDK1.5 method.
+
+       2005-08-17  Lillian Angel  <[EMAIL PROTECTED]>
+
+        * java/awt/FontMetrics.java
+        (charWidth): Reversed Roman's patch, was not compiling.
+        * javax/swing/tree/DefaultTreeCellRenderer.java
+        (getTreeCellRendererComponent): Set Opaque to true for
+        painting reasons.
+
+       2005-08-17  Mark Wielaard  <[EMAIL PROTECTED]>
+
+        * gnu/java/awt/peer/qt/QtFramePeer.java (setIcon): Mark non-native
+        and add FIXME.
+        (setMaximizedBounds): Likewise.
+        * include/gnu_java_awt_peer_qt_QtFramePeer.h: Regenerated.
+        * native/jni/qt-peer/.cvsignore: New file.
+        * native/jni/qt-peer/Makefile.am (libqtpeer_la_SOURCES):
+        Remove eventmethods.h.
+
+       2005-08-17  Roman Kennke  <[EMAIL PROTECTED]>
+
+        * javax/swing/plaf/basic/BasicLabelUI.java
+        (paint): Don't paint the border here. If there is a border to
+        be painted, this is usually performed in JComponent.paint().
+
+       2005-08-17  Roman Kennke  <[EMAIL PROTECTED]>
+
+        * java/awt/FontMetrics.java
+        (charWidth(int)): Correctly map Unicode indices to char[] here.
+
+       2005-08-17  Roman Kennke  <[EMAIL PROTECTED]>
+
+        * java/awt/Component.java
+        This applies to various variants of the repaint() methods:
+        (repaint): If the component is not showing, forward repaint
+        request to the parent.
+
+       2005-08-17  Roman Kennke  <[EMAIL PROTECTED]>
+
+        * javax/swing/plaf/basic/BasicLabelUI.java
+        (paint): Don't fill the background here. If the label is opaque
+        then the background is filled in ComponentUI.update(), otherwise
+        it must not be touched.
+
+       2005-08-17  Thomas Fitzsimmons  <[EMAIL PROTECTED]>
+
+        * gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
+        (setComponentBounds): Don't post COMPONENT_RESIZED event.
+
+        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
+        (setBoundsCallbackID): Remove variable.
+        (cp_gtk_window_init_jni): Don't initialize setBoundsCallbackID.
+        (setBoundsCallback): Remove method.
+        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
+        (setMenuBarPeer): Check if menubar is NULL.
+        (setMenuBarWidth): Likewise.
+        * java/awt/Window.java (dispatchEventImpl): Validate upon
+        receiving a COMPONENT_RESIZED event.
+        (setBoundsCallback): Remove method.
+        * include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Regenerate.
+        * gnu/java/awt/peer/gtk/GtkWindowPeer.java (setBoundsCallback):
+        Remove method declaration.
+        (postConfigureEvent): Separate handling of resizes and moves.
+        Call setSize and post COMPONENT_RESIZED event.
+        * gnu/java/awt/peer/gtk/GtkFramePeer.java (postConfigureEvent):
+        Separate handling of resizes and moves.  Call setSize.
+        * gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
+        (setComponentBounds): Call setSize and post COMPONENT_RESIZED
+        event.
+        * gnu/java/awt/peer/gtk/GtkContainerPeer.java (isValidating):
+        Remove field.
+
+       2005-08-16  Sven de Marothy  <[EMAIL PROTECTED]>
+
+        * gnu/java/awt/peer/qt/QtButtonPeer.java
+        * gnu/java/awt/peer/qt/QtCheckboxPeer.java
+        * gnu/java/awt/peer/qt/QtChoicePeer.java
+        * gnu/java/awt/peer/qt/QtComponentGraphics.java
+        * gnu/java/awt/peer/qt/QtComponentPeer.java
+        * gnu/java/awt/peer/qt/QtContainerPeer.java
+        * gnu/java/awt/peer/qt/QtDialogPeer.java
+        * gnu/java/awt/peer/qt/QtFontPeer.java
+        * gnu/java/awt/peer/qt/QtFramePeer.java
+        * gnu/java/awt/peer/qt/QtGraphics.java
+        * gnu/java/awt/peer/qt/QtImage.java
+        * gnu/java/awt/peer/qt/QtImageGraphics.java
+        * gnu/java/awt/peer/qt/QtListPeer.java
+        * gnu/java/awt/peer/qt/QtMenuBarPeer.java
+        * gnu/java/awt/peer/qt/QtMenuItemPeer.java
+        * gnu/java/awt/peer/qt/QtMenuPeer.java
+        * gnu/java/awt/peer/qt/QtScrollbarPeer.java
+        * gnu/java/awt/peer/qt/QtTextAreaPeer.java
+        * gnu/java/awt/peer/qt/QtTextFieldPeer.java
+        * gnu/java/awt/peer/qt/QtToolkit.java
+        * gnu/java/awt/peer/qt/QtWindowPeer.java
+        * native/jni/qt-peer/keybindings.cpp
+        * native/jni/qt-peer/keybindings.h
+        * native/jni/qt-peer/qtbuttonpeer.cpp
+        * native/jni/qt-peer/qtcanvaspeer.cpp
+        * native/jni/qt-peer/qtcheckboxpeer.cpp
+        * native/jni/qt-peer/qtchoicepeer.cpp
+        * native/jni/qt-peer/qtcomponent.cpp
+        * native/jni/qt-peer/qtcomponentpeer.cpp
+        * native/jni/qt-peer/qtdialogpeer.cpp
+        * native/jni/qt-peer/qtframepeer.cpp
+        * native/jni/qt-peer/qtgraphics.cpp
+        * native/jni/qt-peer/qtimage.cpp
+        * native/jni/qt-peer/qtlabelpeer.cpp
+        * native/jni/qt-peer/qtlistpeer.cpp
+        * native/jni/qt-peer/qtmenupeer.cpp
+        * native/jni/qt-peer/qtpanelpeer.cpp
+        * native/jni/qt-peer/qtscrollbarpeer.cpp
+        * native/jni/qt-peer/qtscrollpanepeer.cpp
+        * native/jni/qt-peer/qttextareapeer.cpp
+        * native/jni/qt-peer/qttextfieldpeer.cpp
+        * native/jni/qt-peer/qtwindowpeer.cpp
+        * native/jni/qt-peer/slotcallbacks.cpp
+        * native/jni/qt-peer/slotcallbacks.h
+        Reindented, Transmogrified and Wielaardituded.
+        * gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java
+        * native/jni/qt-peer/eventmethods.h
+        * native/jni/qt-peer/qtembeddedwindowpeer.cpp
+        * native/jni/qt-peer/slotcallbacks.moc.h
+        New files
+        * native/jni/qt-peer/eventmethods.cpp
+        * native/jni/qt-peer/slotcallbacks.moc
+        Removed.
+
+       2005-08-16  Lillian Angel  <[EMAIL PROTECTED]>
+
+        * javax/swing/text/PasswordView.java
+        (drawUnselectedText): Fixed so the password is drawn correctly
+        in the text box and no * characters are drawn before anything
+        was typed.
+
+       2005-08-16  Mark Wielaard  <[EMAIL PROTECTED]>
+
+        * gnu/java/awt/peer/gtk/GtkClipboard.java: Reimplemented.
+        * gnu/java/awt/peer/gtk/GtkClipboardNotifier.java: New class.
+        * gnu/java/awt/peer/gtk/GtkSelection.java: New class.
+        * gnu/java/awt/peer/gtk/GtkImage.java (GtkImage(Pointer)): New
+        constructor.
+        (createFromPixbuf): New private native method.
+        * gnu/java/awt/peer/gtk/GtkToolkit.java (systemClipboard): Removed.
+        (getSystemClipboard): Do security check and return
+        GtkClipboard.getInstance().
+        * include/Makefile.am: Add gnu_java_awt_peer_gtk_GtkSelection.h.
+        * include/gnu_java_awt_peer_gtk_GtkClipboard.h: Regenerated.
+        * include/gnu_java_awt_peer_gtk_GtkImage.h: Regenerated.
+        * include/gnu_java_awt_peer_gtk_GtkSelection.h: New header file.
+        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c:
+        Reimplemented.
+        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
+        (Java_gnu_java_awt_peer_gtk_GtkImage_createFromPixbuf): New
+
+       2005-08-16  Anthony Balkissoon  <[EMAIL PROTECTED]>
+
+        * javax/swing/plaf/basic/BasicTableUI.java:
+        (ActionListenerProxy): Replaced type TableAction with parent type
+        ActionListener to avoid Semantic errors.
+
+       2005-08-16  Anthony Balkissoon  <[EMAIL PROTECTED]>
+
+        * javax/swing/plaf/basic/BasicLookAndFeel.java:
+        (initComponentDefaults): Fixed typo.
+        * javax/swing/plaf/basic/BasicTableUI.java:
+        (installKeyboardActions): Replaced calls to registerKeyboardAction with
+        additions to an explicit InputMap-ActionMap pair and then set this
+        pair as the parent pair to the JTable's.  This matches the JDK where
+        the UI Input-Action pairs are the parents of the component's.
+        (ActionListenerProxy): New class.
+
+       2005-08-16  Mark Wielaard  <[EMAIL PROTECTED]>
+
+        * examples/gnu/classpath/examples/datatransfer/Demo.java:
+        Document and implement ItemListener and FlavorListener.
+        (flavors): New field.
+        (details): New field.
+        (Demo): Add more space, add the flavors panel and flavor listener.
+        (createTextPanel): Smaller and wider.
+        (createFlavorsPanel): New private method.
+        (flavorsChanged): New public method.
+        (itemStateChanged): Likewise.
+        (ImageComponent.ImageComponent): Smaller default.
+        (ObjectComponent.ObjectComponent): Make wider.
+        (FlavorsComponent): New static class.
+        (FlavorDetailsComponent): Likewise.
+
+       2005-08-16  Lillian Angel  <[EMAIL PROTECTED]>
+
+        * javax/swing/plaf/basic/BasicLookAndFeel.java:
+        Changed font for PasswordField because textbox was
+        being drawn at an awkward height.
+        * javax/swing/text/PasswordView.java
+        (getPreferredSpan): Implemented
+        (modelToView): likewise.
+        (viewToModel): partially implemented.
+
+       2005-08-16  Jeroen Frijters  <[EMAIL PROTECTED]>
+
+        * java/awt/Component.java
+        (dispatchEventImpl): Always call peer.handleEvent().
+
+       2005-08-16  Jeroen Frijters  <[EMAIL PROTECTED]>
+
+        * java/awt/Container.java
+        (addImpl, remove): Only repaint if the container is showing.
+
+       2005-08-16  Mark Wielaard  <[EMAIL PROTECTED]>
+
+        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+        (Java_gnu_java_awt_peer_gtk_GtkToolkit_nativeQueueEmpty): Removed.
+
+       2005-08-15  Lillian Angel  <[EMAIL PROTECTED]>
+
+        * javax/swing/JPasswordField.java
+        (getText): Fixed the length of the string to retrieve.
+
+       2005-08-15  Sven de Marothy  <[EMAIL PROTECTED]>
+
+        * java/awt/TextComponent.java
+        (select): Fix typo.
+
+       2005-08-15  Anthony Balkissoon  <[EMAIL PROTECTED]>
+
+        * javax/swing/JComponent.java:
+        (processKeyEvent): Added functionality for processing key events in
+        non-focused components using the WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
+        field.
+        * javax/swing/plaf/basic/BasicTableUI.java:
+        (installKeyboardActions): Changed key bindings to be registered as
+        WHEN_ANCESTOR_OF_FOCUSED_COMPONENT rather than as WHEN_FOCUSED.
+        (TableAction.actionPerformed): If the key action is anything besides
+        "start editing" then we stop editing if we are doing so.  Repaint the
+        table at the end of this method.
+
+       2005-08-15  Lillian Angel  <[EMAIL PROTECTED]>
+
+        * javax/swing/JPasswordField.java
+        (echoCharIsSet): Fixed this to work according to API.
+        (getText): Implemented
+        (getText): Implemented
+        (getPassword): Implemented
+        (paramString): Implemented
+
+       2005-08-15  Thomas Fitzsimmons  <[EMAIL PROTECTED]>
+
+        * gnu/java/awt/ClasspathToolkit.java (nativeQueueEmpty): Remove
+        method.
+        (wakeNativeQueue): Likewise.
+        (iterateNativeQueue): Likewise.
+        * gnu/java/awt/peer/gtk/GtkToolkit.java (static): Start GTK main
+        thread.
+        (nativeQueueEmpty): Remove method.
+        (wakeNativeQueue): Likewise.
+        (iterateNativeQueue): Likewise.
+        (gtkMain): New method.
+        * include/gnu_java_awt_peer_gtk_GtkToolkit.h: Regenerate.
+        * java/awt/EventQueue.java: Remove references to ClasspathToolkit.
+        * java/awt/Frame.java (fireDummyEvent): Remove method.
+        Remove calls to fireDummyEvent.
+        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
+        (dispose): Don't wake up main thread.
+        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c: Remove
+        single-thread code.
+
+       2005-08-15  Lillian Angel  <[EMAIL PROTECTED]>
+
+        * javax/swing/JTree.java
+        (expandPath): called fireTreeWillExpand and fireTreeExpanded
+        since it is not required that the calling class fires these
+        events.
+        (collapsePath): Likewise.
+        * javax/swing/plaf/basic/BasicTreeUI.java
+        (mouseClicked): Took out code that called fireTreeWillExpand/
+        fireTreeWillCollapse and fireTreeExpanded/fireTreeCollapsed.
+        (keyPressed): Likewise.
+
 2005-08-17  Andreas Tobler  <[EMAIL PROTECTED]>
 
        * m4/acx_pthread.m4: Detect -pthreads first. Fixes
Index: kaffe/include/Makefile.am
diff -u kaffe/include/Makefile.am:1.110 kaffe/include/Makefile.am:1.111
--- kaffe/include/Makefile.am:1.110     Sat Aug 13 15:38:52 2005
+++ kaffe/include/Makefile.am   Wed Aug 17 22:38:20 2005
@@ -177,6 +177,7 @@
        gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h \
        gnu_java_awt_peer_gtk_GtkScrollbarPeer.h \
        gnu_java_awt_peer_gtk_GtkScrollPanePeer.h \
+       gnu_java_awt_peer_gtk_GtkSelection.h \
        gnu_java_awt_peer_gtk_GtkTextAreaPeer.h \
        gnu_java_awt_peer_gtk_GtkTextFieldPeer.h \
        gnu_java_awt_peer_gtk_GtkToolkit.h \
@@ -198,6 +199,7 @@
         gnu_java_awt_peer_qt_QtComponentPeer.h \
         gnu_java_awt_peer_qt_QtContainerPeer.h \
         gnu_java_awt_peer_qt_QtDialogPeer.h \
+       gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h \
         gnu_java_awt_peer_qt_QtFileDialogPeer.h \
         gnu_java_awt_peer_qt_QtFontMetrics.h \
         gnu_java_awt_peer_qt_QtFontPeer.h \
Index: kaffe/include/Makefile.in
diff -u kaffe/include/Makefile.in:1.239 kaffe/include/Makefile.in:1.240
--- kaffe/include/Makefile.in:1.239     Sat Aug 13 15:38:52 2005
+++ kaffe/include/Makefile.in   Wed Aug 17 22:38:22 2005
@@ -541,6 +541,7 @@
        gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h \
        gnu_java_awt_peer_gtk_GtkScrollbarPeer.h \
        gnu_java_awt_peer_gtk_GtkScrollPanePeer.h \
+       gnu_java_awt_peer_gtk_GtkSelection.h \
        gnu_java_awt_peer_gtk_GtkTextAreaPeer.h \
        gnu_java_awt_peer_gtk_GtkTextFieldPeer.h \
        gnu_java_awt_peer_gtk_GtkToolkit.h \
@@ -562,6 +563,7 @@
         gnu_java_awt_peer_qt_QtComponentPeer.h \
         gnu_java_awt_peer_qt_QtContainerPeer.h \
         gnu_java_awt_peer_qt_QtDialogPeer.h \
+       gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h \
         gnu_java_awt_peer_qt_QtFileDialogPeer.h \
         gnu_java_awt_peer_qt_QtFontMetrics.h \
         gnu_java_awt_peer_qt_QtFontPeer.h \
Index: kaffe/kaffe/kaffevm/boehm-gc/boehm/acinclude.m4
diff -u kaffe/kaffe/kaffevm/boehm-gc/boehm/acinclude.m4:1.2 
kaffe/kaffe/kaffevm/boehm-gc/boehm/acinclude.m4:1.3
--- kaffe/kaffe/kaffevm/boehm-gc/boehm/acinclude.m4:1.2 Tue Aug 24 17:59:44 2004
+++ kaffe/kaffe/kaffevm/boehm-gc/boehm/acinclude.m4     Wed Aug 17 22:38:23 2005
@@ -17,7 +17,7 @@
 # [0-9]+[.][0-9]+(alpha[0.9]+)? 
 # in lex syntax; if there is no alpha number, GC_ALPHA_VERSION is empty
 #
-AC_DEFUN(GC_SET_VERSION, [
+AC_DEFUN([GC_SET_VERSION], [
   AC_MSG_CHECKING(GC version numbers)
   GC_VERSION_MAJOR=`echo $PACKAGE_VERSION | sed 
's/^\([[0-9]][[0-9]]*\)[[.]].*$/\1/g'`
   GC_VERSION_MINOR=`echo $PACKAGE_VERSION | sed 
's/^[[^.]]*[[.]]\([[0-9]][[0-9]]*\).*$/\1/g'`
Index: 
kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
diff -u 
kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c:1.6
 
kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c:1.7
--- 
kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c:1.6
    Tue Jul 26 16:22:02 2005
+++ 
kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
        Wed Aug 17 22:38:23 2005
@@ -1,5 +1,5 @@
 /* gtkclipboard.c
-   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2005 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -36,169 +36,739 @@
 exception statement from your version. */
 
 
+#include "jcl.h"
 #include "gtkpeer.h"
 #include "gnu_java_awt_peer_gtk_GtkClipboard.h"
+#include "gnu_java_awt_peer_gtk_GtkSelection.h"
 
-static jmethodID stringSelectionReceivedID;
-static jmethodID stringSelectionHandlerID;
-static jmethodID selectionClearID;
-
-static void selection_received_cb (GtkWidget *, GtkSelectionData *,
-                                   guint, gpointer);
-static void selection_get_cb (GtkWidget *, GtkSelectionData *, guint,
-                              guint, gpointer);
-static gint selection_clear_cb (GtkWidget *, GdkEventSelection *);
+#define OBJECT_TARGET 1
+#define TEXT_TARGET   2
+#define IMAGE_TARGET  3
+#define URI_TARGET    4
 
-static GtkWidget *clipboard;
-static jobject cb_obj;
+static GtkClipboard *clipboard;
 
-JNIEXPORT void JNICALL 
-Java_gnu_java_awt_peer_gtk_GtkClipboard_initNativeState (JNIEnv *env, 
-                                                        jobject obj)
+/* Simple id to keep track of the selection we are currently managing. */
+static int current_selection = 0;
+
+/* Whether we "own" the clipboard. And may clear it. */
+static int owner = 0;
+
+static jclass gtk_clipboard_class;
+static jmethodID setSystemContentsID;
+
+static jobject gtk_clipboard_instance = NULL;
+static jmethodID provideContentID;
+static jmethodID provideTextID;
+static jmethodID provideImageID;
+static jmethodID provideURIsID;
+
+static jstring stringTarget;
+static jstring imageTarget;
+static jstring filesTarget;
+
+static void
+cp_gtk_clipboard_owner_change (GtkClipboard *clipboard __attribute__((unused)),
+                              GdkEvent *event __attribute__((unused)),
+                              gpointer user_data __attribute__((unused)))
 {
+  /* These are only interesting when we are not the owner. Otherwise
+     we will have the set and clear functions doing the updating. */
+  JNIEnv *env = cp_gtk_gdk_env ();
+  if (!owner)
+    (*env)->CallStaticVoidMethod (env, gtk_clipboard_class,
+                                 setSystemContentsID);
+}
+
+JNIEXPORT jboolean JNICALL 
+Java_gnu_java_awt_peer_gtk_GtkClipboard_initNativeState (JNIEnv *env,
+                                                        jclass gtkclipboard,
+                                                        jstring string,
+                                                        jstring image,
+                                                        jstring files)
+{
+  GdkDisplay* display;
+  jboolean can_cache;
+
+  gtk_clipboard_class = gtkclipboard;
+  setSystemContentsID = (*env)->GetStaticMethodID (env, gtk_clipboard_class,
+                                                  "setSystemContents",
+                                                  "()V");
+  if (setSystemContentsID == NULL)
+    return JNI_FALSE;
+
+  stringTarget = (*env)->NewGlobalRef(env, string);
+  imageTarget = (*env)->NewGlobalRef(env, image);
+  filesTarget = (*env)->NewGlobalRef(env, files);
+
   gdk_threads_enter ();
+  clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
 
-  if (!stringSelectionReceivedID)
+  display = gtk_clipboard_get_display (clipboard);
+  if (gdk_display_supports_selection_notification (display))
     {
-      jclass gtkclipboard;
-
-      gtkclipboard = (*env)->FindClass (env, 
-                                       "gnu/java/awt/peer/gtk/GtkClipboard");
-      stringSelectionReceivedID = (*env)->GetMethodID (env, gtkclipboard,
-                                                   "stringSelectionReceived",
-                                                   "(Ljava/lang/String;)V");
-      stringSelectionHandlerID = (*env)->GetMethodID (env, gtkclipboard,
-                                                     "stringSelectionHandler",
-                                                     "()Ljava/lang/String;");
-      selectionClearID = (*env)->GetMethodID (env, gtkclipboard,
-                                             "selectionClear", "()V");
+      g_signal_connect (clipboard, "owner-change",
+                       G_CALLBACK (cp_gtk_clipboard_owner_change), NULL);
+      gdk_display_request_selection_notification (display,
+                                                 GDK_SELECTION_CLIPBOARD);
+      can_cache = JNI_TRUE;
     }
+  else
+    can_cache = JNI_FALSE;
+  gdk_threads_leave ();
 
-  cb_obj = (*env)->NewGlobalRef (env, obj);
-
-  clipboard = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  return can_cache;
+}
 
-  g_signal_connect (G_OBJECT(clipboard), "selection_received",
-                    G_CALLBACK (selection_received_cb), NULL);
+static void
+cp_gtk_clipboard_get_func (GtkClipboard *clipboard __attribute__((unused)),
+                          GtkSelectionData *selection,
+                          guint info,
+                          gpointer user_data __attribute__((unused)))
+{
+  JNIEnv *env = cp_gtk_gdk_env ();
+  
+  if (info == OBJECT_TARGET)
+    {
+      const gchar *target_name;
+      jstring target_string;
+      jbyteArray bytes;
+      jint len;
+      jbyte *barray;
+
+      target_name = gdk_atom_name (selection->target);
+      if (target_name == NULL)
+       return;
+      target_string = (*env)->NewStringUTF (env, target_name);
+      if (target_string == NULL)
+       return;
+      bytes = (*env)->CallObjectMethod(env,
+                                      gtk_clipboard_instance,
+                                      provideContentID,
+                                      target_string);
+      if (bytes == NULL)
+       return;
+      len = (*env)->GetArrayLength(env, bytes);
+      if (len <= 0)
+       return;
+      barray = (*env)->GetByteArrayElements(env, bytes, NULL);
+      if (barray == NULL)
+       return;
+      gtk_selection_data_set (selection, selection->target, 8,
+                             (guchar *) barray, len);
 
-  g_signal_connect (G_OBJECT(clipboard), "selection_clear_event",
-                    G_CALLBACK (selection_clear_cb), NULL);
+      (*env)->ReleaseByteArrayElements(env, bytes, barray, 0);
 
-  gtk_selection_add_target (clipboard, GDK_SELECTION_PRIMARY, 
-                           GDK_TARGET_STRING, 0);
+    }
+  else if (info == TEXT_TARGET)
+    {
+      jstring string;
+      const gchar *text;
+      int len;
+      string = (*env)->CallObjectMethod(env,
+                                       gtk_clipboard_instance,
+                                       provideTextID);
+      if (string == NULL)
+       return;
+      len = (*env)->GetStringUTFLength (env, string);
+      if (len == -1)
+       return;
+      text = (*env)->GetStringUTFChars (env, string, NULL);
+      if (text == NULL)
+       return;
 
-  g_signal_connect (G_OBJECT(clipboard), "selection_get",
-                    G_CALLBACK (selection_get_cb), NULL);
+      gtk_selection_data_set_text (selection, text, len);
+      (*env)->ReleaseStringUTFChars (env, string, text);
+    }
+  else if (info == IMAGE_TARGET)
+    {
+      jobject gtkimage;
+      GdkPixbuf *pixbuf = NULL;
+      
+      gtkimage = (*env)->CallObjectMethod(env,
+                                         gtk_clipboard_instance,
+                                         provideImageID);
+      if (gtkimage == NULL)
+       return;
+      
+      pixbuf = cp_gtk_image_get_pixbuf (env, gtkimage);
+      if (pixbuf != NULL)
+       {
+         gtk_selection_data_set_pixbuf (selection, pixbuf);
+
+         /* if the GtkImage is offscreen, this is a temporary pixbuf
+            which should be thrown out. */
+         if(cp_gtk_image_is_offscreen (env, gtkimage) == JNI_TRUE)
+           gdk_pixbuf_unref (pixbuf);
+       }
+    }
+  else if (info == URI_TARGET)
+    {
+      jobjectArray uris;
+      jint count;
+      int i;
+      gchar **list;
+
+      uris = (*env)->CallObjectMethod(env,
+                                     gtk_clipboard_instance,
+                                     provideURIsID);
+      if (uris == NULL)
+       return;
+      count = (*env)->GetArrayLength (env, uris);
+      if (count <= 0)
+       return;
+
+      list = (gchar **) JCL_malloc (env, (count + 1) * sizeof (gchar *));
+      for (i = 0; i < count; i++)
+       {
+         const char *text;
+         jstring uri;
+         
+         /* Mark NULL in so case of some error we can find the end. */
+         list[i] = NULL;
+         uri = (*env)->GetObjectArrayElement (env, uris, i);
+         if (uri == NULL)
+           break;
+         text = (*env)->GetStringUTFChars (env, uri, NULL);
+         if (text == NULL)
+           break;
+         list[i] = strdup (text);
+         (*env)->ReleaseStringUTFChars (env, uri, text);
+       }
+
+      if (i == count)
+       {
+         list[count] = NULL;
+         gtk_selection_data_set_uris (selection, list);
+       }
+
+      for (i = 0; list[i] != NULL; i++)
+       free (list[i]);
+      JCL_free (env, list);
+    }
+}
 
-  gdk_threads_leave ();
+static void
+cp_gtk_clipboard_clear_func (GtkClipboard *clipboard __attribute__((unused)),
+                            gpointer user_data)
+{
+  if (owner && (int) user_data == current_selection)
+    {
+      JNIEnv *env = cp_gtk_gdk_env();
+      owner = 0;
+      (*env)->CallStaticVoidMethod (env, gtk_clipboard_class,
+                                   setSystemContentsID);
+    }
 }
 
 JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkClipboard_requestStringConversion
-  (JNIEnv *env __attribute__((unused)), jclass clazz __attribute__((unused)))
+Java_gnu_java_awt_peer_gtk_GtkClipboard_advertiseContent
+(JNIEnv *env,
+ jobject instance,
+ jobjectArray mime_array,
+ jboolean add_text,
+ jboolean add_images __attribute__((unused)),
+ jboolean add_uris __attribute__((unused)))
 {
+  GtkTargetList *target_list;
+  GList *list;
+  GtkTargetEntry *targets;
+  gint n, i;
+
   gdk_threads_enter ();
+  target_list = gtk_target_list_new (NULL, 0);
+
+  if (mime_array != NULL)
+    {
+      n = (*env)->GetArrayLength (env, mime_array);
+      for (i = 0; i < n; i++)
+       {
+         const char *text;
+         jstring target;
+         GdkAtom atom;
+
+         target = (*env)->GetObjectArrayElement (env, mime_array, i);
+         if (target == NULL)
+           break;
+         text = (*env)->GetStringUTFChars (env, target, NULL);
+         if (text == NULL)
+           break;
 
-  gtk_selection_convert (clipboard, GDK_SELECTION_PRIMARY, 
-                        GDK_TARGET_STRING, GDK_CURRENT_TIME);
+         atom = gdk_atom_intern (text, FALSE);
+         gtk_target_list_add (target_list, atom, 0, OBJECT_TARGET);
 
+         (*env)->ReleaseStringUTFChars (env, target, text);
+       }
+    }
+
+  /* Add extra targets that gtk+ can provide/translate for us. */
+  if (add_text)
+    gtk_target_list_add_text_targets (target_list, TEXT_TARGET);
+  if (add_images)
+    gtk_target_list_add_image_targets (target_list, IMAGE_TARGET, TRUE);
+  if (add_uris)
+    gtk_target_list_add_uri_targets (target_list, URI_TARGET);
+
+  /* Turn list into a target table. */
+  n = g_list_length (target_list->list);
+  if (n > 0)
+    {
+      targets = g_new (GtkTargetEntry, n);
+      for (list = target_list->list, i = 0;
+          list != NULL;
+          list = list->next, i++)
+       {
+         GtkTargetPair *pair = (GtkTargetPair *) list->data;
+         targets[i].target = gdk_atom_name (pair->target);
+         targets[i].flags = pair->flags;
+         targets[i].info = pair->info;
+       }
+
+      /* Set the targets plus callback functions and ask for the clipboard
+        to be stored when the application exists. */
+      current_selection++;
+      if (gtk_clipboard_set_with_data (clipboard, targets, n,
+                                      cp_gtk_clipboard_get_func,
+                                      cp_gtk_clipboard_clear_func,
+                                      (gpointer) current_selection))
+       {
+         owner = 1;
+         if (gtk_clipboard_instance == NULL)
+           {
+             JNIEnv *env = cp_gtk_gdk_env ();
+             gtk_clipboard_instance =  (*env)->NewGlobalRef(env, instance);
+
+             provideContentID
+               = (*env)->GetMethodID (env, gtk_clipboard_class,
+                                      "provideContent",
+                                      "(Ljava/lang/String;)[B");
+             if (provideContentID == NULL)
+               return;
+
+             provideTextID
+               = (*env)->GetMethodID (env, gtk_clipboard_class,
+                                      "provideText", "()Ljava/lang/String;");
+             if (provideTextID == NULL)
+               return;
+
+             provideImageID
+               = (*env)->GetMethodID (env, gtk_clipboard_class,
+                                      "provideImage",
+                                      "()Lgnu/java/awt/peer/gtk/GtkImage;");
+             if (provideImageID == NULL)
+               return;
+
+             provideURIsID
+               = (*env)->GetMethodID (env, gtk_clipboard_class,
+                                      "provideURIs",
+                                      "()[Ljava/lang/String;");
+             if (provideURIsID == NULL)
+               return;
+           }
+         gtk_clipboard_set_can_store (clipboard, NULL, 0);
+       }
+      else
+       {
+         owner = 0;
+         (*env)->CallStaticVoidMethod (env, gtk_clipboard_class,
+                                       setSystemContentsID);
+       }
+
+      for (i = 0; i < n; i++)
+       g_free (targets[i].target);
+      g_free (targets);
+    }
+  else if (owner)
+    {
+      gtk_clipboard_clear (clipboard);
+      owner = 0;
+    }
+
+  gtk_target_list_unref (target_list);
   gdk_threads_leave ();
 }
 
+
+/* GtkSelection native methods. Put here for convenience since they
+   need access to the current clipboard. */
+
+static jmethodID mimeTypesAvailableID;
+
+/* Note this is actually just a GtkClipboardReceivedFunc, not a real
+   GtkClipboardTargetsReceivedFunc, see requestMimeTypes. */
 static void
-selection_received_cb (GtkWidget *widget __attribute__((unused)),
-                       GtkSelectionData *selection_data 
__attribute__((unused)),
-                       guint time __attribute__((unused)),
-                       gpointer data __attribute__((unused)))
+cp_gtk_clipboard_targets_received (GtkClipboard *clipboard
+                                  __attribute__((unused)),
+                                  GtkSelectionData *target_data,
+                                  gpointer selection)
 {
-  /* Check to see if retrieval succeeded  */
-  if (selection_data->length < 0
-      || selection_data->type != GDK_SELECTION_TYPE_STRING)
+  GdkAtom *targets = NULL;
+  gint targets_len = 0;
+  gchar **target_strings = NULL;
+  jobjectArray strings = NULL;
+  int strings_len = 0;
+  gboolean include_text = FALSE;
+  gboolean include_image = FALSE;
+  gboolean include_uris = FALSE;
+  jobject selection_obj = (jobject) selection;
+  JNIEnv *env = cp_gtk_gdk_env ();
+
+  if (target_data != NULL && target_data->length > 0)
     {
-      gdk_threads_leave ();
+      include_text = gtk_selection_data_targets_include_text (target_data);
+      include_image = gtk_selection_data_targets_include_image (target_data,
+                                                               TRUE);
+      if (gtk_selection_data_get_targets (target_data, &targets, &targets_len))
+       {
+         int i;
+         GdkAtom uri_list_atom = gdk_atom_intern ("text/uri-list", FALSE);
+         target_strings = g_new (gchar*, targets_len);
+         if (target_strings != NULL)
+           for (i = 0; i < targets_len; i++)
+             {
+               gchar *name =  gdk_atom_name (targets[i]);
+               if (strchr (name, '/') != NULL)
+                 {
+                   target_strings[i] = name;
+                   strings_len++;
+                   if (! include_uris && targets[i] == uri_list_atom)
+                     include_uris = TRUE;
+                 }
+               else
+                 target_strings[i] = NULL;
+             }
+       }
+
+      if (target_strings != NULL)
+       {
+         int i = 0, j = 0;
+         jclass stringClass;
+         
+         if (include_text)
+           strings_len++;
+         if (include_image)
+           strings_len++;
+         if (include_uris)
+           strings_len++;
+         
+         stringClass = (*env)->FindClass (env, "java/lang/String");
+         strings = (*env)->NewObjectArray (env, strings_len, stringClass,
+                                           NULL);
+         if (strings != NULL)
+           {
+             if (include_text)
+               (*env)->SetObjectArrayElement (env, strings, i++,
+                                              stringTarget);
+             if (include_image)
+               (*env)->SetObjectArrayElement (env, strings, i++,
+                                              imageTarget);
+             if (include_uris)
+               (*env)->SetObjectArrayElement (env, strings, i++,
+                                              filesTarget);
+             
+             while(i < strings_len)
+               {
+                 if (target_strings[j] == NULL)
+                   j++;
+                 else
+                   {
+                     jstring string;
+                     string = (*env)->NewStringUTF (env,

*** Patch too long, truncated ***

_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to