[kaffe]
CVS kaffe (robilad): Resynced with GNU Classpath: awt, swing,
io, xml, gtk, net fixes
Kaffe CVS
cvs-commits at kaffe.org
Sun Jul 3 09:34:28 PDT 2005
PatchSet 6688
Date: 2005/07/03 16:28:26
Author: robilad
Branch: HEAD
Tag: (none)
Log:
Resynced with GNU Classpath: awt, swing, io, xml, gtk, net fixes
Members:
ChangeLog:1.4213->1.4214
configure:1.464->1.465
configure.ac:1.148->1.149
libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:1.13->1.14
libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c:1.6->1.7
libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c:1.9->1.10
libraries/clib/awt/classpath-gtk/gtk-peer/gtkcairopeer.h:1.2->1.3
libraries/clib/fdlibm/Makefile.am:1.5->1.6
libraries/clib/fdlibm/Makefile.in:1.7->1.8
libraries/clib/fdlibm/s_finite.c:INITIAL->1.1
libraries/javalib/Makefile.am:1.367->1.368
libraries/javalib/Makefile.in:1.457->1.458
libraries/javalib/all.files:1.138->1.139
libraries/javalib/gnu/java/awt/AWTUtilities.java:INITIAL->1.1
libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics2D.java:1.21->1.22
libraries/javalib/gnu/java/awt/peer/gtk/GtkComponentPeer.java:1.14->1.15
libraries/javalib/gnu/java/locale/LocaleHelper.java:1.2->1.3
libraries/javalib/gnu/java/nio/DatagramChannelImpl.java:1.10->1.11
libraries/javalib/gnu/java/nio/DatagramChannelSelectionKey.java:1.1->1.2
libraries/javalib/gnu/java/nio/ServerSocketChannelImpl.java:INITIAL->1.10
libraries/javalib/gnu/java/nio/ServerSocketChannelSelectionKey.java:1.1->1.2
libraries/javalib/gnu/java/nio/SocketChannelImpl.java:INITIAL->1.17
libraries/javalib/gnu/java/nio/SocketChannelSelectionKey.java:1.1->1.2
libraries/javalib/gnu/xml/dom/DomDocument.java:INITIAL->1.13
libraries/javalib/gnu/xml/dom/DomNamedNodeMap.java:INITIAL->1.11
libraries/javalib/gnu/xml/dom/DomNode.java:1.14->1.15
libraries/javalib/gnu/xml/dom/html2/DomHTMLCollection.java:1.2->1.3
libraries/javalib/gnu/xml/dom/html2/DomHTMLElement.java:1.2->1.3
libraries/javalib/gnu/xml/dom/html2/DomHTMLTableElement.java:1.1->1.2
libraries/javalib/gnu/xml/dom/html2/DomHTMLTableRowElement.java:1.1->1.2
libraries/javalib/gnu/xml/dom/html2/DomHTMLTableSectionElement.java:1.1->1.2
libraries/javalib/gnu/xml/transform/AbstractNumberNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/ApplyImportsNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/ApplyTemplatesNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/AttributeNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/CallTemplateNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/ChooseNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/CommentNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/CopyNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/CopyOfNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/ElementNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/ForEachNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/IfNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/LiteralNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/MessageNode.java:1.2->1.3
libraries/javalib/gnu/xml/transform/NodeNumberNode.java:1.4->1.5
libraries/javalib/gnu/xml/transform/NumberNode.java:1.4->1.5
libraries/javalib/gnu/xml/transform/OtherwiseNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/ParameterNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/ProcessingInstructionNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/StreamSerializer.java:1.5->1.6
libraries/javalib/gnu/xml/transform/Stylesheet.java:1.6->1.7
libraries/javalib/gnu/xml/transform/Template.java:1.5->1.6
libraries/javalib/gnu/xml/transform/TemplateNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/TextNode.java:1.3->1.4
libraries/javalib/gnu/xml/transform/TransformerImpl.java:1.6->1.7
libraries/javalib/gnu/xml/transform/ValueOfNode.java:1.4->1.5
libraries/javalib/gnu/xml/transform/WhenNode.java:1.3->1.4
libraries/javalib/gnu/xml/xpath/NameTest.java:1.7->1.8
libraries/javalib/gnu/xml/xpath/NamespaceTest.java:1.3->1.4
libraries/javalib/java/awt/Container.java:INITIAL->1.33
libraries/javalib/java/awt/Font.java:INITIAL->1.26
libraries/javalib/java/awt/RenderingHints.java:INITIAL->1.4
libraries/javalib/java/awt/event/AWTEventListener.java:INITIAL->1.4
libraries/javalib/java/awt/event/AWTEventListenerProxy.java:1.2->1.3
libraries/javalib/java/awt/event/InputMethodListener.java:INITIAL->1.3
libraries/javalib/java/awt/event/ItemListener.java:INITIAL->1.5
libraries/javalib/java/awt/event/MouseWheelEvent.java:INITIAL->1.4
libraries/javalib/java/awt/event/TextEvent.java:INITIAL->1.8
libraries/javalib/java/awt/event/WindowEvent.java:INITIAL->1.9
libraries/javalib/java/awt/event/WindowListener.java:INITIAL->1.5
libraries/javalib/java/awt/image/DataBuffer.java:INITIAL->1.4
libraries/javalib/java/awt/image/DataBufferByte.java:INITIAL->1.6
libraries/javalib/java/awt/image/DataBufferDouble.java:1.4->1.5
libraries/javalib/java/awt/image/DataBufferFloat.java:1.4->1.5
libraries/javalib/java/awt/image/DataBufferInt.java:INITIAL->1.6
libraries/javalib/java/awt/image/DataBufferShort.java:1.5->1.6
libraries/javalib/java/awt/image/DataBufferUShort.java:INITIAL->1.7
libraries/javalib/java/lang/Integer.java:INITIAL->1.26
libraries/javalib/javax/swing/Box.java:1.5->1.6
libraries/javalib/javax/swing/BoxLayout.java:1.7->1.8
libraries/javalib/javax/swing/DefaultListSelectionModel.java:1.9->1.10
libraries/javalib/javax/swing/JComponent.java:1.23->1.24
libraries/javalib/javax/swing/JEditorPane.java:1.8->1.9
libraries/javalib/javax/swing/JLayeredPane.java:1.8->1.9
libraries/javalib/javax/swing/JScrollPane.java:1.13->1.14
libraries/javalib/javax/swing/JTable.java:1.20->1.21
libraries/javalib/javax/swing/JTextPane.java:1.2->1.3
libraries/javalib/javax/swing/JTree.java:1.17->1.18
libraries/javalib/javax/swing/package.html:1.1->1.2
libraries/javalib/javax/swing/border/package.html:1.1->1.2
libraries/javalib/javax/swing/colorchooser/package.html:1.1->1.2
libraries/javalib/javax/swing/event/TableModelEvent.java:1.2->1.3
libraries/javalib/javax/swing/event/package.html:1.1->1.2
libraries/javalib/javax/swing/filechooser/package.html:1.1->1.2
libraries/javalib/javax/swing/plaf/ColorUIResource.java:1.1->1.2
libraries/javalib/javax/swing/plaf/ListUI.java:1.2->1.3
libraries/javalib/javax/swing/plaf/package.html:1.1->1.2
libraries/javalib/javax/swing/plaf/basic/BasicInternalFrameUI.java:1.6->1.7
libraries/javalib/javax/swing/plaf/basic/BasicLabelUI.java:1.3->1.4
libraries/javalib/javax/swing/plaf/basic/BasicListUI.java:1.13->1.14
libraries/javalib/javax/swing/plaf/basic/BasicMenuBarUI.java:1.5->1.6
libraries/javalib/javax/swing/plaf/basic/BasicOptionPaneUI.java:1.10->1.11
libraries/javalib/javax/swing/plaf/basic/BasicPanelUI.java:1.1->1.2
libraries/javalib/javax/swing/plaf/basic/BasicPopupMenuUI.java:1.8->1.9
libraries/javalib/javax/swing/plaf/basic/BasicRootPaneUI.java:1.4->1.5
libraries/javalib/javax/swing/plaf/basic/BasicScrollBarUI.java:1.14->1.15
libraries/javalib/javax/swing/plaf/basic/BasicSeparatorUI.java:1.2->1.3
libraries/javalib/javax/swing/plaf/basic/BasicSpinnerUI.java:1.3->1.4
libraries/javalib/javax/swing/plaf/basic/BasicSplitPaneUI.java:1.8->1.9
libraries/javalib/javax/swing/plaf/basic/BasicTabbedPaneUI.java:1.11->1.12
libraries/javalib/javax/swing/plaf/basic/BasicTableUI.java:1.6->1.7
libraries/javalib/javax/swing/plaf/basic/BasicTreeUI.java:1.4->1.5
libraries/javalib/javax/swing/plaf/basic/package.html:1.1->1.2
libraries/javalib/javax/swing/plaf/metal/MetalLookAndFeel.java:1.11->1.12
libraries/javalib/javax/swing/plaf/metal/MetalTheme.java:1.3->1.4
libraries/javalib/javax/swing/plaf/metal/package.html:1.1->1.2
libraries/javalib/javax/swing/table/AbstractTableModel.java:1.2->1.3
libraries/javalib/javax/swing/table/DefaultTableModel.java:1.5->1.6
libraries/javalib/javax/swing/table/JTableHeader.java:1.8->1.9
libraries/javalib/javax/swing/table/TableModel.java:1.4->1.5
libraries/javalib/javax/swing/table/package.html:1.1->1.2
libraries/javalib/javax/swing/tree/AbstractLayoutCache.java:1.3->1.4
libraries/javalib/javax/swing/tree/DefaultTreeCellRenderer.java:1.3->1.4
libraries/javalib/javax/swing/tree/DefaultTreeModel.java:1.4->1.5
libraries/javalib/javax/swing/tree/DefaultTreeSelectionModel.java:1.9->1.10
libraries/javalib/javax/swing/tree/FixedHeightLayoutCache.java:1.2->1.3
libraries/javalib/javax/swing/tree/VariableHeightLayoutCache.java:1.2->1.3
libraries/javalib/javax/swing/tree/package.html:1.1->1.2
libraries/javalib/javax/swing/undo/UndoManager.java:1.2->1.3
libraries/javalib/javax/swing/undo/UndoableEditSupport.java:1.3->1.4
libraries/javalib/javax/swing/undo/package.html:1.1->1.2
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4213 kaffe/ChangeLog:1.4214
--- kaffe/ChangeLog:1.4213 Sun Jul 3 15:10:25 2005
+++ kaffe/ChangeLog Sun Jul 3 16:28:26 2005
@@ -2,6 +2,610 @@
Resynced with GNU Classpath.
+ 2005-07-01 David Gilbert <david.gilbert at object-refinery.com>
+
+ * javax/swing/undo/UndoManager.java: fixed API doc links,
+ * javax/swing/undo/UndoableEditSupport.java: likewise.
+
+ 2005-07-01 David Gilbert <david.gilbert at object-refinery.com>
+
+ * java/awt/RenderingHints.java: API doc updates.
+
+ 2005-07-01 Chris Burdess <dog at gnu.org>
+
+ * gnu/xml/dom/DomNode.java,
+ gnu/xml/dom/html2/DomHTMLCollection.java,
+ gnu/xml/dom/html2/DomHTMLElement.java,
+ gnu/xml/dom/html2/DomHTMLTableElement.java,
+ gnu/xml/dom/html2/DomHTMLTableRowElement.java,
+ gnu/xml/dom/html2/DomHTMLTableSectionElement.java,
+ gnu/xml/transform/NodeNumberNode.java,
+ gnu/xml/transform/Stylesheet.java,
+ gnu/xml/transform/TemplateNode.java,
+ gnu/xml/xpath/NameTest.java,
+ gnu/xml/xpath/NamespaceTest.java: Corrections for cases where
+ elements/attributes might have been created in non-namespace-aware mode.
+ * gnu/xml/transform/StreamSerializer.java: Only apply HTML attribute
+ reduction when attribute is defined as a boolean in the HTML DTD.
+ * gnu/xml/transform/TransformerImpl.java: Add support for output indenting
+ and cdata-section-elements output instruction.
+
+ 2005-07-01 David Gilbert <david.gilbert at object-refinery.com>
+
+ * javax/swing/table/JTableHeader.java: added some API docs,
+ * javax/swing/table/TableModel.java: fixed link in API docs,
+ * javax/swing/table/package.html: added package description.
+
+ 2005-07-01 David Gilbert <david.gilbert at object-refinery.com>
+
+ * javax/swing/plaf/ListUI.java
+ (locationToIndex): match parameter name to API docs.
+
+ 2005-07-01 Roman Kennke <roman at kennke.org>
+
+ * javax/swing/JLayeredPane.java
+ (getLayer): Also search through the components parents to find
+ the one that is actually directly contained in the JLayeredPane.
+
+ 2005-07-01 David Gilbert <david.gilbert at object-refinery.com>
+
+ * java/awt/image/DataBuffer.java: fixed API doc typos;
+ * java/awt/image/DataBufferByte.java: added description to API docs;
+ * java/awt/image/DataBufferDouble.java: added description to API docs,
+ (setElem(int, int)): removed unnecessary cast;
+ (setElem(int, int, int)): likewise.
+ * java/awt/image/DataBufferFloat.java: added description to API docs;
+ (setElem(int, int)): removed unnecessary cast;
+ (setElem(int, int, int)): likewise.
+ * java/awt/image/DataBufferInt.java: added description to API docs;
+ * java/awt/image/DataBufferShort.java: likewise;
+ * java/awt/image/DataBufferUShort.java: likewise.
+
+ 2005-06-30 Roman Kennke <roman at kennke.org>
+
+ * javax/swing/plaf/basic/BasicMenuBarUI.java
+ (installDefaults): Made JMenuBar opaque.
+ * javax/swing/plaf/basic/BasicOptionPaneUI.java
+ (installDefaults): Made JOptionPane opaque.
+ * javax/swing/plaf/basic/BasicPanelUI.java
+ (installUI): Also call installDefaults().
+ (installDefaults): New method. Made JPanel opaque.
+ * javax/swing/plaf/basic/BasicRootPaneUI.java
+ (installDefaults): Made JRootPane opaque.
+ * javax/swing/plaf/basic/BasicSeparatorUI.java
+ (installDefaults): Made JSeparator opaque.
+ * javax/swing/plaf/basic/BasicSpinnerUI.java
+ (installDefaults): Made JSpinner opaque.
+ * javax/swing/plaf/basic/BasicSplitPaneUI.java
+ (installDefaults): Made JSplitPane opaque.
+ * javax/swing/plaf/basic/BasicTabbedPaneUI.java
+ (installDefaults): Made JSplitPane opaque.
+
+ 2005-07-01 David Gilbert <david.gilbert at object-refinery.com>
+
+ * javax/swing/plaf/metal/MetalLookAndFeel.java
+ (isNativeLookAndFeel): fixed return value,
+ * javax/swing/plaf/metal/MetalTheme.java
+ (getMenuDisabledForeground): fixed return value.
+
+ 2005-07-01 David Gilbert <david.gilbert at object-refinery.com>
+
+ * javax/swing/event/TableModelEvent.java:
+ (TableModelEvent(TableModel): set lastRowIndex to Integer.MAX_VALUE.
+
+ 2005-06-30 Chris Burdess <dog at gnu.org>
+
+ * gnu/xml/dom/DomDocument.java: Add support for adopting nodes from
+ other implementations.
+ * gnu/xml/dom/DomNamedNodeMap.java: Fix for nodes created outside a
+ namespace context.
+ * gnu/xml/transform/AbstractNumberNode.java,
+ gnu/xml/transform/ApplyImportsNode.java,
+ gnu/xml/transform/ApplyTemplatesNode.java,
+ gnu/xml/transform/AttributeNode.java,
+ gnu/xml/transform/CallTemplateNode.java,
+ gnu/xml/transform/ChooseNode.java,
+ gnu/xml/transform/CommentNode.java,
+ gnu/xml/transform/CopyNode.java,
+ gnu/xml/transform/CopyOfNode.java,
+ gnu/xml/transform/ElementNode.java,
+ gnu/xml/transform/ForEachNode.java,
+ gnu/xml/transform/IfNode.java,
+ gnu/xml/transform/LiteralNode.java,
+ gnu/xml/transform/MessageNode.java,
+ gnu/xml/transform/NodeNumberNode.java,
+ gnu/xml/transform/NumberNode.java,
+ gnu/xml/transform/OtherwiseNode.java,
+ gnu/xml/transform/ParameterNode.java,
+ gnu/xml/transform/ProcessingInstructionNode.java,
+ gnu/xml/transform/StreamSerializer.java,
+ gnu/xml/transform/Stylesheet.java,
+ gnu/xml/transform/Template.java,
+ gnu/xml/transform/TemplateNode.java,
+ gnu/xml/transform/TextNode.java,
+ gnu/xml/transform/ValueOfNode.java,
+ gnu/xml/transform/WhenNode.java: Parsing and serialisation design
+ changes to minimise the number of virtual machine stack frames used.
+
+ 2005-06-30 Anthony Balkissoon <abalkiss at redhat.com>
+
+ * javax/swing/JTable.java:
+ (initializeLocalVars): Set dragEnabled to true by default to comply
+ with reference implementations.
+ (getSelectionModel): Don't return null if row selection is disabled,
+ still return selectionModel. This complies with reference
+ implemenations.
+ (changeSelection): New method.
+ * javax/swing/plaf/basic/BasicTableUI.java: Added a MouseMotionListener
+ so that MouseDragged events register properly.
+ (MouseInputHandler.updateSelection): Added boolean parameter for
+ Control being pressed and added functionality for this (multiple
+ selection).
+
+ 2005-06-30 Roman Kennke <roman at kennke.org>
+
+ * javax/swing/JComponent.java:
+ Removed all calls to repaint() and revalidate(). These are likely
+ causing infinite loops with the RepaintManager.
+
+ 2005-06-30 Roman Kennke <roman at kennke.org>
+
+ * javax/swing/plaf/basic/BasicListUI.java
+ (damageLayout): Removed call to revalidate(). This caused an
+ infinite loop with the RepaintManager and is not necessary.
+
+ 2005-06-30 Roman Kennke <roman at kennke.org>
+
+ * javax/swing/plaf/basic/BasicScrollBarUI.java:
+ Removed all calls to layoutContainer() in this file.
+ (installDefaults): Set this as LayoutManager for the JScrollBar.
+ This way the layoutContainer() method is called when it should be.
+
+ 2005-06-30 Anthony Balkissoon <abalkiss at redhat.com>
+
+ * javax/swing/DefaultListSelectionModel.java:
+ (addSelectionInterval): Don't clear the selection state if JList's
+ selection mode is SINGLE_SELECTION_INTERVAL and index0 and index1
+ correspond to an interval adjacent to an already selected interval.
+ (removeSelectionInterval): Added check for a middle interval being
+ removed when selection mode is SINGLE_SELECTION_INTERVAL.
+ * javax/swing/plaf/basic/BasicListUI.java:
+ (KeyHandler.keyPressed): Added check for scrolling past bottom of list.
+ (MouseHandler.mouseClicked): Added check for shift key being
+ pressed.
+
+ 2005-06-30 Andrew John Hughes <gnu_andrew at member.fsf.org>
+
+ * gnu/java/locale/LocaleHelper.java:
+ Fixed to use new property files.
+
+ 2005-06-30 Lillian Angel <langel at redhat.com>
+
+ * javax/swing/JTree.java:
+ (valueChanged): repaint everytime something is selected in the
+ tree.
+ (setSelectionModel): set TreeSelectionListeners
+ (isRowSelected): isRowSelected uses isPathSelected
+ * javax/swing/plaf/basic/BasicTreeUI.java
+ (setSelectionModel): works with JTree to set the selection model
+ (getPathForRow): took out unneeded lines
+ (mouseClicked): switched if statements, should check if already
+ selected first.
+ (paintLeaf): checked selection of Leaf and paint selected
+ differently than not selected cells
+ (paintNonLeaf): checked selection of nonLeaf and paint selected
+ differently than not selected cells
+ (paintRecursive): updated to work with other paint functions
+ * javax/swing/tree/DefaultTreeSelectionModel.java:
+ (addSelectionPath): fire change, so selection is registered to
+ listener
+ (addSelectionPaths): fire change, so selection is registered to
+ listener
+ (removeSelectionPath): fire change, so selection is registered
+ to listener
+ (removeSelectionPaths): fire change, so selection is registered
+ to listener
+ (isPathSelected): took out unneeded lines
+ (getTreeSelectionListeners): made more logical to call
+ getListeners
+ (fireValueChanged): fixed loop to be more logical
+
+ 2005-06-30 Mark Wielaard <mark at klomp.org>
+
+ * javax/swing/JEditorPane.java (getEditorKit): Call
+ createDefaultEditorKit() and setEditorKit() when editorKit == null.
+ * javax/swing/JTextPane.java: Call super for all methods where
+ possible.
+
+ 2005-06-29 Thomas Fitzsimmons <fitzsim at redhat.com>
+
+ * INSTALL: Drop GTK requirement to 2.4.
+ * NEWS: Likewise.
+ * configure.ac: Likewise.
+
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c:
+ Re-add GTK 2.4 support.
+
+ 2005-06-29 Christian Thalinger <twisti at complang.tuwien.ac.at>
+
+ * native/fdlibm/Makefile.am: Added s_finite.c
+ * native/fdlibm/s_finite.c: Added
+
+ 2005-06-29 Anthony Balkissoon <abalkiss at redhat.com>
+
+ * javax/swing/DefaultListSelectionModel.java:
+ (addSelectionInterval):
+ (clearSelection):
+ (removeSelectionInterval):
+ (setLeadSelectionIndex):
+ (setSelectionInterval): Check that the selection model actually
+ changes before calling fireValueChanged.
+
+ 2005-06-29 Roman Kennke <roman at kennke.org>
+
+ * javax/swing/plaf/basic/BasicLabelUI.java
+ (installDefaults): Do not set the border here.
+ (uninstallDefaults): Do not unset the border here.
+
+ 2005-06-29 Roman Kennke <roman at kennke.org>
+
+ * javax/swing/JComponent.java
+ (getComponentGraphics): Do not replicate the Graphics at this
+ point. This is moved into paintComponent.
+ (paintComponent): Replicate the Graphics object before going into
+ the tree. This makes sure that the state is preserved and is
+ what is specified in the JDKs API docs.
+
+ 2005-06-29 Lillian Angel <langel at redhat.com>
+
+ * javax/swing/plaf/basic/BasicTreeUI.java:
+ (BasicTreeUI): Initalization of listeners and instances.
+ (createUI): Implementation
+ (getHashColor): Implementation
+ (setLeftChildIndent): Implementation
+ (getLeftChildIndent): Implementation
+ (setRightChildIndent): Implementation
+ (getRightChildIndent): Implementation
+ (setExpandedIcon): Implementation
+ (getExpandedIcon): Implementation
+ (setCollapsedIcon): Implementation
+ (getCollapsedIcon): Implementation
+ (setLargeModel): Implementation
+ (isLargeModel): Implementation
+ (setRowHeight): Implementation
+ (getRowHeight): Implementation
+ (setCellRenderer): Implementation
+ (getCellRenderer): Implementation
+ (setModel): Implementation
+ (getModel): Implementation
+ (setRootVisible): Implementation
+ (isRootVisible): Implementation
+ (setShowsRootHandles): Implementation
+ (getShowsRootHandles): Implementation
+ (setCellEditor): Implementation
+ (getCellEditor): Implementation
+ (setEditable): Implementation
+ (isEditable): Implementation
+ (setSelectionModel): Implementation
+ (getSelectionModel): Implementation
+ (getPathForRow): Implementation
+ (getRowForPath): Implementation
+ (getRowCount): Implementation
+ (getClosestPathForLocation): Implementation
+ (createPropertyChangeListener): Implementation
+ (createMouseListener): Implementation
+ (createFocusListener): Implementation
+ (createKeyListener): Implementation
+ (createSelectionModelPropertyChangeListener): Implementation
+ (createTreeSelectionListener): Implementation
+ (createCellEditorListener): Implementation
+ (createComponentListener): Implementation
+ (createTreeExpansionListener): Implementation
+ (createLayoutCache): Implementation
+ (createCellRendererPane): Implementation
+ (createDefaultCellEditor): Implementation
+ (createDefaultCellRenderer): Implementation
+ (createTreeModelListener): Implementation
+ (uninstallListeners): Implementation
+ (getLastChildPath): Implementation
+ (configureLayoutCache): Implementation
+ (installDefaults): Implementation
+ (installListeners): Implementation
+ (installUI): Implementation
+ (uninstallDefaults): Implementation
+ (uninstallUI): Implementation
+ (paint): moderate changes, so painting works with new changes
+ (MouseInputHandler.mouseClicked): Implementation
+ (paintLeaf): made private
+ (paintNonLeaf): made private
+ (paintRecursive): made private
+ Several variables, instances and methods were adding according
+ to the API. The methods that were added and not in the list
+ above, have not been implemented yet. All JavaDoc is updated,
+ as well as formatting.
+ * javax/swing/JTree.java:
+ (createChildren): checked that children is not null.
+ * javax/swing/tree/AbstractLayoutCache.java:
+ (getNodeDimensions): slight modifications to return initialized
+ Rectangle when the bounds are null. Implementation not complete.
+ * javax/swing/tree/DefaultTreeSelectionModel.java:
+ (addSelectionPath): Implementation
+ (addSelectionPaths): Implementation
+ (removeSelectionPath): Implementation
+ (removeSelectionPaths): Implementation
+ (getSelectionPaths): returned the selection array
+ (clearSelection): set the selection array to null
+ * javax/swing/tree/FixedHeightLayoutCache.java:
+ (setModel): removed this method because it is defined in the
+ abstract parent.
+ (setRootVisible): removed this method because it is defined in
+ the abstract parent.
+ (setRowHeight): removed this method because it is defined in
+ the abstract parent.
+ Also, some formatting was updated.
+ * javax/swing/tree/VariableHeightLayoutCache.java:
+ (setRowHeight): removed this method because it is defined in
+ the abstract parent.
+ * javax/swing/tree/DefaultTreeModel.java:
+ (DefaultTreeModel): Needed to initialize root if it was passed
+ into the constructor as null.
+
+ 2005-06-29 David Gilbert <david.gilbert at object-refinery.com>
+
+ * javax/swing/event/TableModelEvent.java: updated API docs all over.
+
+ 2005-06-29 Roman Kennke <roman at kennke.org>
+
+ * gnu/java/awt/AWTUtilities.java
+ (VisibleComponentList): Added List implementation that iterates over
+ the child components of a Container and only returns Components
+ that are actually visible.
+ (getVisibleChildren): Now returns a List instead of an array. This
+ list is cached. This greatly decreases allocations in
+ LayoutManagers.
+ * javax/swing/BoxLayout.java:
+ Updated to use the new AWTUtilities.getVisibleChildren() method.
+
+ 2005-06-29 David Gilbert <david.gilbert at object-refinery.com>
+
+ * javax/swing/package.html: added package description,
+ * javax/swing/border/package.html: likewise,
+ * javax/swing/colorchooser/package.html: likewise,
+ * javax/swing/event/package.html: likewise,
+ * javax/swing/filechooser/package.html: likewise,
+ * javax/swing/plaf/package.html: likewise,
+ * javax/swing/plaf/basic/package.html: likewise,
+ * javax/swing/plaf/metal/package.html: likewise,
+ * javax/swing/tree/package.html: likewise,
+ * javax/swing/undo/package.html: likewise.
+
+ 2005-06-29 David Gilbert <david.gilbert at object-refinery.com>
+
+ * java/awt/Font.java: fixed API doc links.
+
+ 2005-06-28 David Gilbert <david.gilbert at object-refinery.com>
+
+ * java/awt/event/AWTEventListener.java: added imports to fix links
+ in API docs,
+ * java/awt/event/AWTEventListenerProxy.java: likewise,
+ * java/awt/event/InputMethodListener.java: likewise,
+ * java/awt/event/ItemListener.java: likewise,
+ * java/awt/event/MouseWheelEvent.java: likewise,
+ * java/awt/event/TextEvent.java: likewise,
+ * java/awt/event/WindowEvent.java: likewise,
+ * java/awt/event/WindowListener.java: likewise.
+
+2005-06-28 David Gilbert <david.gilbert at object-refinery.com>
+
+ * javax/swing/table/AbstractTableModel.java: updated API docs,
+ * javax/swing/table/DefaultTableModel.java: fixed API docs.
+
+ 2005-06-28 Jeroen Frijters <jeroen at frijters.net>
+
+ * gnu/java/nio/DatagramChannelImpl.java
+ (getNativeFD): Removed.
+ * gnu/java/nio/DatagramChannelSelectionKey.java
+ (getNativeFD): Modified to extract the native fd via the
+ PlainDatagramSocketImpl.
+ * gnu/java/nio/ServerSocketChannelImpl.java
+ (getNativeFD): Removed.
+ * gnu/java/nio/ServerSocketChannelSelectionKey.java
+ (getNativeFD): Modified to extract the native fd via the
+ PlainSocketImpl.
+ * gnu/java/nio/SocketChannelImpl.java
+ (getNativeFD): Removed.
+ * gnu/java/nio/SocketChannelSelectionKey.java
+ (getNativeFD): Modified to extract the native fd via the
+ PlainSocketImpl.
+
+ 2005-06-27 Ziga Mahkovec <ziga.mahkovec at klika.si>
+
+ * gnu/java/awt/peer/gtk/GdkGraphics2D.java (constructors): Default to
+ a transparent background instead of black.
+ (drawImage): When drawing a raster, pass live data to avoid copying.
+ * gnu/java/awt/peer/gtk/GtkComponentPeer.java (createImage): Return
+ a BufferedImage when using Graphics2D.
+ * javax/swing/JComponent.java (getComponentGraphics): Avoid copying
+ Graphics2D instances.
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
+ (Java_gnu_java_awt_peer_gtk_GdkGraphics2D_copyState): Copy the pixel
+ buffer and initialize a new cairo context in MODE_JAVA_ARRAY.
+ (Java_gnu_java_awt_peer_gtk_GdkGraphics2D_drawPixels): Revert
+ previous transformation patch.
+
+ 2005-06-27 Ziga Mahkovec <ziga.mahkovec at klika.si>
+
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
+ (Java_gnu_java_awt_peer_gtk_GdkGraphics2D_copyState):
+ (Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState___3III):
+ (Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState__II):
+ (Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState__Lgnu_java_awt_peer_gtk_GtkComponentPeer_2):
+ Remove gdk_cairo_create calls.
+ Obtain dimension for the cairo surface.
+ (init_graphics2d_as_renderable): Fix cairo_xlib_surface_create
+ invocation by passing dimension.
+ (Java_gnu_java_awt_peer_gtk_GdkGraphics2D_drawPixels): Fix translation
+ matrix sign.
+ Use cairo_set_source for applying patterns.
+ (Java_gnu_java_awt_peer_gtk_GdkGraphics2D_gdkDrawDrawable): Fix
+ cairo_set_source_surface invocation by passing position instead of
+ dimension.
+ (Java_gnu_java_awt_peer_gtk_GdkGraphics2D_initState___3III):
+ (begin_drawing_operation):
+ (end_drawing_operation): In MODE_JAVA_ARRAY mode, only initialize the
+ cairo context once. Use GetPrimitiveArrayCritical for pinning down
+ pixel buffers and maintain a buffer copy if necessary.
+ * native/jni/gtk-peer/gtkcairopeer.h (javabuf_copy): New field.
+
+ 2005-06-27 Mark Wielaard <mark at klomp.org>
+
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+ (glog_func): New static function.
+ (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Install glog_func as
+ default log handler.
+ * native/jni/gtk-peer/Makefile.am (libgtkpeer_la_LIBADD): Add jcl.
+
+ 2005-06-27 Roman Kennke <roman at kennke.org>
+
+ * javax/swing/JComponent.java
+ (getPreferredSize): Don't let the UI replace a manually set preferred
+ size.
+
+ 2005-06-27 Roman Kennke <roman at kennke.org>
+
+ * javax/swing/Box.java
+ (createGlue): Return Short.MAX_VALUE instead of Integer.MAX_VALUE as
+ dimension in the Filler component.
+ (createHorizontalGlue): Return a new Filler object with the correct
+ value instead of relying on createGlue(). The object returned by
+ createHorizontalGlue must not have a vertical dimension.
+
+ 2005-06-27 Roman Kennke <roman at kennke.org>
+
+ * javax/swing/BoxLayout.java
+ (Direction): New inner interface. This abstracts the layout algorithm
+ from the layout direction.
+ (Horizontal): Implementation for the above interface for the
+ horizontal direction.
+ (Vertical): Implementation for the above interface for the
+ vertical direction.
+ (SizeReq): An inner helper class that holds size requirements for
+ Components that are laid out. This is similar but not equal to
+ the SizeRequirements class in javax.swing.
+ (layoutContainer): Removed the actual algorithm into a new method,
+ using the Direction interface.
+ (layoutAlgorithm): This is the new layout algorithm. This uses
+ the Direction interface, so that the algorithm is not duplicated
+ and can be expressed more readable.
+ (distributeSpace): A new helper method that distributes excess
+ space over a set of components. This is the actual 'worker' in
+ BoxLayout.
+
+2005-07-03 Dalibor Topic <robilad at kaffe.org>
+
+ Resynced with GNU Classpath.
+
+ 2005-06-27 Tom Tromey <tromey at redhat.com>
+
+ * java/lang/Integer.java:
+ (valueOf(int)): Implemented.
+ (bitCount(int)): Implemented.
+ (rotateLeft(int,int)): Implemented.
+ (rotateRight(int,int)): Implemented.
+ (highestOneBit(int)): Implemented.
+ (numberOfLeadingZeros(int)): Implemented.
+ (lowestOneBit(int)): Implemented.
+ (numberOfTrailingZeros(int)): Implemented.
+ (signum(int)): Implmented.
+ (reverseBytes(int)): Implemented.
+ (reverse(int)): Implemented.
+
+ 2005-06-24 David Gilbert <david.gilbert at object-refinery.com>
+
+ * javax/swing/plaf/ColorUIResource.java: documented
+ IllegalArgumentExceptions in constructors;
+
+ 2005-06-24 David Gilbert <david.gilbert at object-refinery.com>
+
+ * javax/swing/table/AbstractTableModel.java:
+ (getColumnName): eliminated temp index to fix very minor bug,
+ (findColumn): throw NullPointerException for null argument,
+ (fireTableDataChanged): set correct row indices.
+ * javax/swing/table/DefaultTableModel.java:
+ (setDataVector): replace null argument with empty vector then call
+ setColumnIdentifiers() to set up column names,
+ (setColumnCount): call fireTableStructureChanged() rather than
+ fireTableDataChanged(),
+ (addColumn(Object, Object[])): call fireTableStructureChanged() rather
+ than fireTableDataChanged(),
+ (addRow(Vector)): fixed row indices in TableModelEvent,
+ (moveRow): fixed row indices in TableModelEvent,
+ (getColumnName): for a column index beyond the number of columns in
+ the model, pass control to the superclass.
+
+ 2005-06-24 Anthony Balkissoon <abalkiss at redhat.com>
+
+ * java/awt/Container.java:
+ (LightweightDispatcher.acquireComponentForMouseEvent):
+ Use temp variable to set lastComponentEntered to null _before_
+ dispatching MOUSE_EXITED events to avoid infinite loop.
+ * javax/swing/plaf/basic/BasicPopupMenuUI.java:
+ (MouseInputHandler.acquireComponentForMouseEvent):
+ Use temp variable to set lastComponentEntered to null _before_
+ dispatching MOUSE_EXITED events to avoid infinite loop.
+
+ 2005-06-24 Anthony Balkissoon <abalkiss at redhat.com>
+
+ * javax/swing/JScrollPane.java
+ (JScrollPane): Add Viewport at index 0 rather than after the
+ JScrollBars. This complies with reference implementations.
+
+ 2005-05-14 Chris Burdess <dog at gnu.org>
+
+ * gnu/xml/aelfred2/XmlParser.java: ensure that charset parameter of
+ external MIME entity is trimmed.
+ * gnu/xml/dom/DomDocument.java: DomNsNodes retrieved via
+ createElement/createAttribute should not have localNames.
+
+ 2005-06-24 Anthony Balkissoon <abalkiss at redhat.com>
+
+ * javax/swing/plaf/basic/BasicInternalFrameUI.java:
+ (GlassPaneDispatcher.acquireComponentForMouseEvent): Use
+ temp variable to set lastComponentEntered to null _before_
+ dispatching MOUSE_EXITED events, otherwise we get infinite
+ loop.
+
+ 2005-06-24 Roman Kennke <roman at kennke.org>
+
+ * gnu/java/awt/AWTUtilities.java:
+ Added new utility class. This provides a method for fetching
+ the visible children of a Container.
+ * javax/swing/BoxLayout.java:
+ Use AWTUtilities.getVisibleChildren() instead of
+ Container.getComponents(). LayoutManagers must not layout invisible
+ children.
+
+ 2005-06-24 Roman Kennke <roman at kennke.org>
+
+ * javax/swing/JTable.java
+ (constructor): Call setModel() instead of setting the model directly.
+ This makes sure that listeners and the columnModel are set up
+ correctly.
+ (initializeLocalVars): Set up tableHeader before the columnModel.
+ This way we already have a tableHeader when setColumnModel is called
+ and it can be updated accordingly.
+ (tableChanged): Update the columnModel when the table structure
+ changes.
+ (setColumnModel): Also set the columnModel of the tableHeader here.
+ This is specified in Sun's API documentation.
+ * javax/swing/table/DefaultTableModel.java
+ (setDataVector): Fire a structureChanged event, so that the
+ columnModel and header columnModel are updated correctly.
+
+2005-07-03 Dalibor Topic <robilad at kaffe.org>
+
+ Resynced with GNU Classpath.
+
2005-06-23 Sven de Marothy <sven at physto.se>
* gnu/java/awt/peer/gtk/GtkImage.java: Don't draw 0 size images.
Index: kaffe/configure
diff -u kaffe/configure:1.464 kaffe/configure:1.465
--- kaffe/configure:1.464 Wed Jun 29 09:42:30 2005
+++ kaffe/configure Sun Jul 3 16:28:29 2005
@@ -48244,23 +48244,23 @@
else
PKG_CONFIG_MIN_VERSION=0.9.0
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
- echo "$as_me:$LINENO: checking for gtk+-2.0 >= 2.6 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0" >&5
-echo $ECHO_N "checking for gtk+-2.0 >= 2.6 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0... $ECHO_C" >&6
+ echo "$as_me:$LINENO: checking for gtk+-2.0 >= 2.4 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0" >&5
+echo $ECHO_N "checking for gtk+-2.0 >= 2.4 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0... $ECHO_C" >&6
- if $PKG_CONFIG --exists "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0" ; then
+ if $PKG_CONFIG --exists "gtk+-2.0 >= 2.4 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0" ; then
echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
succeeded=yes
echo "$as_me:$LINENO: checking GTK_CFLAGS" >&5
echo $ECHO_N "checking GTK_CFLAGS... $ECHO_C" >&6
- GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0"`
+ GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.4 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0"`
echo "$as_me:$LINENO: result: $GTK_CFLAGS" >&5
echo "${ECHO_T}$GTK_CFLAGS" >&6
echo "$as_me:$LINENO: checking GTK_LIBS" >&5
echo $ECHO_N "checking GTK_LIBS... $ECHO_C" >&6
- GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0"`
+ GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.4 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0"`
echo "$as_me:$LINENO: result: $GTK_LIBS" >&5
echo "${ECHO_T}$GTK_LIBS" >&6
else
@@ -48268,7 +48268,7 @@
GTK_LIBS=""
## If we have a custom action on failure, don't print errors, but
## do set a variable so people can do so.
- GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= 2.6 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0"`
+ GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= 2.4 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0"`
echo $GTK_PKG_ERRORS
fi
@@ -48283,8 +48283,8 @@
if test $succeeded = yes; then
:
else
- { { echo "$as_me:$LINENO: error: Library requirements (gtk+-2.0 >= 2.6 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5
-echo "$as_me: error: Library requirements (gtk+-2.0 >= 2.6 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;}
+ { { echo "$as_me:$LINENO: error: Library requirements (gtk+-2.0 >= 2.4 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5
+echo "$as_me: error: Library requirements (gtk+-2.0 >= 2.4 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;}
{ (exit 1); exit 1; }; }
fi
Index: kaffe/configure.ac
diff -u kaffe/configure.ac:1.148 kaffe/configure.ac:1.149
--- kaffe/configure.ac:1.148 Wed Jun 29 09:42:42 2005
+++ kaffe/configure.ac Sun Jul 3 16:28:31 2005
@@ -1804,7 +1804,7 @@
AC_CHECK_LIB([Xtst], [XTestQueryExtension], [true],
[AC_MSG_ERROR([libXtst NOT found, required for GdkRobot])],
[${X_LIBS}])
- PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.6 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0)
+ PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.4 gthread-2.0 >= 2.2 libart-2.0 gdk-pixbuf-2.0)
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
Index: kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
diff -u kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:1.13 kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:1.14
--- kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:1.13 Sat Jun 11 22:55:59 2005
+++ kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c Sun Jul 3 16:28:32 2005
@@ -203,9 +203,9 @@
gdk_pixbuf_get_height (gr->drawbuf),
gdk_pixbuf_get_rowstride (gr->drawbuf));
g_assert (gr->surface != NULL);
- g_assert (gr->cr != NULL);
gr->mode = MODE_DRAWABLE_NO_RENDER;
- cairo_destroy (gr->cr);
+ if (gr->cr != NULL)
+ cairo_destroy (gr->cr);
gr->cr = cairo_create (gr->surface);
}
@@ -230,13 +230,11 @@
vis = gdk_x11_visual_get_xvisual (gdk_drawable_get_visual (gr->drawable));
g_assert (vis != NULL);
- gr->surface = cairo_xlib_surface_create (dpy, draw, vis,
- CAIRO_FORMAT_ARGB32,
- DefaultColormap (dpy, DefaultScreen (dpy)));
+ gr->surface = cairo_xlib_surface_create (dpy, draw, vis, gr->width, gr->height);
g_assert (gr->surface != NULL);
- g_assert (gr->cr != NULL);
gr->mode = MODE_DRAWABLE_WITH_RENDER;
- cairo_destroy (gr->cr);
+ if (gr->cr != NULL)
+ cairo_destroy (gr->cr);
gr->cr = cairo_create (gr->surface);
}
@@ -275,16 +273,18 @@
break;
case MODE_JAVA_ARRAY:
- gr->javabuf = (*env)->GetIntArrayElements (env, gr->jarray, &gr->isCopy);
- gr->surface = cairo_image_surface_create_for_data ((unsigned char *) gr->javabuf,
- CAIRO_FORMAT_ARGB32,
- gr->width,
- gr->height,
- gr->width * 4);
- g_assert(gr->surface != NULL);
- g_assert(gr->cr != NULL);
- cairo_destroy (gr->cr);
- gr->cr = cairo_create (gr->surface);
+ {
+ jboolean isCopy;
+ gr->javabuf = (*env)->GetPrimitiveArrayCritical (env, gr->jarray, &isCopy);
+ gr->isCopy |= isCopy;
+ if (gr->isCopy)
+ {
+ /* Make sure that the pixel buffer copy is already initalized,
+ i.e. we already failed to get direct access in initState. */
+ g_assert (gr->javabuf_copy != NULL);
+ memcpy (gr->javabuf_copy, gr->javabuf, gr->width * gr->height * 4);
+ }
+ }
break;
}
}
@@ -323,13 +323,9 @@
break;
case MODE_JAVA_ARRAY:
- /*
- * FIXME: Perhaps this should use the isCopy flag to try to avoid
- * tearing down the cairo surface.
- */
- cairo_surface_destroy (gr->surface);
- gr->surface = NULL;
- (*env)->ReleaseIntArrayElements (env, gr->jarray, gr->javabuf, JNI_COMMIT);
+ if (gr->isCopy)
+ memcpy (gr->javabuf, gr->javabuf_copy, gr->width * gr->height * 4);
+ (*env)->ReleasePrimitiveArrayCritical (env, gr->jarray, gr->javabuf, JNI_COMMIT);
}
}
@@ -382,21 +378,33 @@
g->debug = g_old->debug;
g->mode = g_old->mode;
+ g->width = g_old->width;
+ g->height = g_old->height;
+
if (g_old->mode == MODE_JAVA_ARRAY)
{
- g->width = g_old->width;
- g->height = g_old->height;
- g->jarray = (*env)->NewGlobalRef(env, g_old->jarray);
+ jint size = g->width * g->height * 4;
+
+ g->jarray = (*env)->NewGlobalRef (env, g_old->jarray);
+ g->javabuf = (*env)->GetIntArrayElements (env, g->jarray, &g->isCopy);
+ g->isCopy = JNI_TRUE;
+ g->javabuf_copy = (jint *) malloc (size);
+ memcpy (g->javabuf_copy, g->javabuf, size);
+ g->surface = cairo_image_surface_create_for_data ((unsigned char *) g->javabuf,
+ CAIRO_FORMAT_ARGB32,
+ g->width,
+ g->height,
+ g->width * 4);
+ g_assert (g->surface != NULL);
+ g->cr = cairo_create (g->surface);
+ g_assert (g->cr != NULL);
+ (*env)->ReleaseIntArrayElements (env, g->jarray, g->javabuf, JNI_ABORT);
}
else
{
g->drawable = g_old->drawable;
-
g_object_ref (g->drawable);
- g->cr = gdk_cairo_create (g->drawable);
- g_assert (g->cr != NULL);
-
if (x_server_has_render_extension ())
init_graphics2d_as_renderable (g);
else
@@ -416,6 +424,7 @@
(JNIEnv *env, jobject obj, jintArray jarr, jint width, jint height)
{
struct graphics2d *gr;
+ jint *cairobuf;
gdk_threads_enter();
gr = (struct graphics2d *) malloc (sizeof (struct graphics2d));
@@ -426,13 +435,35 @@
if (gr->debug) printf ("constructing java-backed image of size (%d,%d)\n",
width, height);
-
- gr->cr = gdk_cairo_create (gr->drawable);
- g_assert (gr->cr != NULL);
gr->width = width;
gr->height = height;
gr->jarray = (*env)->NewGlobalRef(env, jarr);
+ gr->javabuf = (*env)->GetPrimitiveArrayCritical (env, gr->jarray, &gr->isCopy);
+ if (gr->isCopy)
+ {
+ /* We didn't get direct access to the pixel buffer, so we'll have to
+ maintain a separate copy for Cairo. */
+ jint size = gr->width * gr->height * 4;
+ gr->javabuf_copy = (jint *) malloc (size);
+ memcpy (gr->javabuf_copy, gr->javabuf, size);
+ cairobuf = gr->javabuf_copy;
+ }
+ else
+ {
+ /* Have Cairo write directly to the Java array. */
+ cairobuf = gr->javabuf;
+ }
+ gr->surface = cairo_image_surface_create_for_data ((unsigned char *) cairobuf,
+ CAIRO_FORMAT_ARGB32,
+ gr->width,
+ gr->height,
+ gr->width * 4);
+ g_assert (gr->surface != NULL);
+ gr->cr = cairo_create (gr->surface);
+ g_assert (gr->cr != NULL);
+ (*env)->ReleasePrimitiveArrayCritical (env, gr->jarray, gr->javabuf, JNI_COMMIT);
+
gr->mode = MODE_JAVA_ARRAY;
if (gr->debug) printf ("constructed java-backed image of size (%d,%d)\n",
@@ -462,8 +493,8 @@
gdk_rgb_get_visual ()->depth);
g_assert (gr->drawable != NULL);
- gr->cr = gdk_cairo_create (gr->drawable);
- g_assert (gr->cr != NULL);
+ gr->width = width;
+ gr->height = height;
if (x_server_has_render_extension ())
*** Patch too long, truncated ***
More information about the kaffe
mailing list