(peekData): Throw SocketTimeoutException instead of
InterruptedIOException on timeout.
(receive): Likewise.
* gnu/java/net/natPlainSocketImplPosix.cc
(read): Made a minor exception text case change.
From-SVN: r74714
(write): Removed diagnostic trace.
* gnu/java/nio/natSelectorImplPosix.cc: Added
includes for java.lang.Thread and java.io.InterruptedIOException.
(helper_put_filedescriptors): Don't put invalid file descriptors
in select set.
(helper_get_filedescriptors): Clear invalid file descriptors
from select set.
(helper_reset): New method for clearing our file descriptor
array.
(implSelect): Correctly calculate timeout if specified and
legal.
Intercept and deal with any java.io.InterruptedIOException
thrown by _Jv_select().
From-SVN: r74537
2003-12-08 Fernando Nasser <fnasser@redhat.com>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (awt_event_handler):
Most coded moved to pre_event_handler, with the modifications
mentioned below.
(pre_event_handler): New function. Called on the Gtk "event" signal.
Do not retrieve the jobject from the window property as it is already
available as user data in the signal.
Do not try and find the grab widget as it is already done by Gtk at
this point.
Do not search for Window ancestor as Gtk already sends the signal to it. Do not meddle with the activation state of peer widgets on each
key press or release.
Add CList to the special handling when looking for the focused widget.
* jni/gtk-peer/gtkpeer.h: Add declaration for pre_event_handler.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c (connectJObject):
New function.
(connectSignals): New function.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c (connectHooks):
Rename to...
(connectSignals): New name. Get rid of NewGlobalRef call.
Use g_signal_connect instead of deprecated gtk_signal_connect.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
(connect_choice_item_selectable_hook): Use g_signal_connect instead of
deprecated gtk_signal_connect.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
(Java_gnu_java_awt_peer_gtk_GtkClipboard_initNativeState): Ditto.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectHooks): Remove
function.
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectJObject): New
function.
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals): New
function.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectHooks): Remove
function.
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectJObject): New
function.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectHooks): Remove
function.
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectJObject): New
function.
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals): New
function.
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_old_create): Remove dead
code.
(item_select): Remove indirection.
(item_unselect): Ditto.
(connect_selectable_hook): Folded into connectSignals.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectHooks): Remove
function.
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectJObject): New
function.
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals): New
function.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c: Ditto.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectHooks): Remove
function.
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals): New
function.
* gnu/java/awt/peer/gtk/GtkComponentPeer.java: Declare and call
connectJObject and connectSignals instead of connectHooks.
* gnu/java/awt/peer/gtk/GtkButtonPeer.java: Declare connectJObject and
connectSignals.
* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java: Declare connectSignals
and not connectHooks.
* gnu/java/awt/peer/gtk/GtkTextComponentPeer.java: Ditto.
* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java: Declare connectJObject
and not connectHooks.
* gnu/java/awt/peer/gtk/GtkListPeer.java: Declare connectJObject and
connectSignals instead of connectHooks.
* gnu/java/awt/peer/gtk/GtkPanelPeer.java: Ditto.
* gnu/java/awt/peer/gtk/GtkScrollbarPeer.java: Ditto.
* gnu/java/awt/peer/gtk/GtkWindowPeer.java: Ditto.
From-SVN: r74536
2003-12-08 Kim Ho <kho@redhat.com>
Fix for Checkbox states.
* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java:
(currentState): New field.
(nativeCreate): Add initial state parameter.
(create): Changed to reflect new parameter.
(setState): Fire only on changed states.
(postItemEvent): Fire only on changed states. Also change the
Java Checkbox to reflect new state.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c:
(nativeCreate): Add parameter and set active state.
From-SVN: r74459
* java/net/DatagramPacket.java
(length): Made packge-private to make it accessible via CNI.
(maxlen): New field.
(DatagramPacket): Cleaned up.
(setSocketAddress): Add message to exception.
(setData): Call other setData().
(setData): Call setLength().
(setLength): Initialize maxlen too.
* gnu/java/net/natPlainDatagramSocketImplPosix.cc (peekData):
Get maximal length from maxlen field, set length field directly.
(receive): Likewise.
* gnu/java/net/natPlainDatagramSocketImplWin32.cc (peekData):
Get maximal length from maxlen field, set length field directly.
(receive): Likewise.
From-SVN: r74278
2003-12-02 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java: Make
BufferedImageBuilder class static.
From-SVN: r74195
2003-12-02 Fernando Nasser <fnasser@redhat.com>
* gnu/java/awt/peer/gtk/GtkListPeer.java (handleEvent): New
method. Handle mouse and key events that must generate
ActionEvents.
* java/awt/List.java (getSelectedIndex): Return -1
if no list element is selected.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (awt_event_handler):
Correct handling of mouse and key events so that List receives them.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
(Java_gnu_java_awt_peer_gtk_GtkListPeer_delItems): Fix removal of
multiple list elements.
From-SVN: r74189
2003-12-02 Michael Koch <konqueror@gmx.de>
* gnu/java/net/protocol/file/Connection.java:
Some reformating.
(file): Renamed from fileIn.
(getPermission): Moved around.
From-SVN: r74179
* gnu/java/net/protocol/jar/Connection.java
(Connection): Made class final, merged documentation with classpath.
(file_cache): Made private.
(jar_file): Renamed from jarfile.
From-SVN: r74178
2003-12-01 Michael Koch <konqueror@gmx.de>
* gnu/java/net/natPlainSocketImplPosix.cc
bind(): Dont set SockedImpl.address field on succesful bind.
* gnu/java/net/natPlainSocketImplWin32.cc
bind(): Likewise.
From-SVN: r74102
* gnu/java/net/natPlainDatagramSocketImplPosix.cc
(peekData): Use offset and maximal free space in datagram packet.
(receive): Likewise.
(send): Use offset in datagram packet.
From-SVN: r73843
* gnu/java/nio/DatagramChannelImpl.java
(getNativeFD): Use getPlainDatagramSocketImpl().
* gnu/java/nio/NIODatagramSocket.java
(getPlainDatagramSocketImpl): Renamed from getImpl().
* gnu/java/nio/NIOSocket.java
(getPlainSocketImpl): Renamed from getImpl().
(setChannel): Use getPlainSocketImpl().
* gnu/java/nio/SocketChannelImpl.java
(SocketChannelImpl): Use getPlainSocketImpl().
(getPlainSocketImpl): Renamed from getImpl().
(getNativeFD): Use getPlainSocketImpl().
From-SVN: r73840
2003-11-17 Graydon Hoare <graydon@redhat.com>
* gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.java: New file.
* gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java
(GdkFontLineMetrics): New inner class.
(getLineMetrics): Return new GdkFontLineMetrics.
(getFontMetrics): Return new GdkClasspathFontPeerMetrics.
(layoutGlyphVector): Create GdkGlyphVector.
* gnu/java/awt/peer/gtk/GdkGraphics2D.java (stateStack): New member.
(GdkGraphics2D): Initialize state via mathod calls.
(cairoSetMatrix, cairoShowGlyphs): Simplify native calls.
(cairoTranslate, cairoScale, cairoRotate): Remove.
(various methods): use setTransform for special transform cases.
(DrawState): New inner class.
(stateSave): New method.
(stateRestore): New method.
(various methods): use stateSave, stateRestore.
(getClipInDevSpace): New method.
(clip, clipRect, setClip, getClip, getClipBounds):
Follow spec more closely.
(getTransform): Return clone of transform.
(setStroke): Set linewidth to passed width / 2.0.
(setPaintMode): Set SrcOver rather than Xor.
(setColor): Set paint to passed color.
(drawRaster, drawImage, PainterThread, drawPixels): Take affine
transform from image to user space.
(drawRenderedImage, drawRenderableImage): Implement.
(getFontRenderContext, getFontMetrics, drawString, getFont):
Implement
(drawArc, drawOval, drawRoundRect, fillArc, fillOval, fillRoundRect):
Implement.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:
Match changes to java side.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c:
Release resources.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c:
Don't use pango for metrics.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c:
New file.
From-SVN: r73776
* include/win32.h (_Jv_platform_close_on_exec): Changed
signature and declared extern.
* win32.cc (_Jv_platform_close_on_exec): Implemented.
* gnu/java/net/natPlainDatagramSocketImplWin32.cc
(create): Use new signature of _Jv_platform_close_on_exec.
* gnu/java/net/natPlainSocketImplWin32.cc
(create): Eliminated a few typecasts
Use new signature of _Jv_platform_close_on_exec.
(accept): Eliminated a few typecasts
Use new signature of _Jv_platform_close_on_exec.
* java/io/natFileDescriptorWin32.cc (open): Use
_Jv_platform_close_on_exec.
From-SVN: r73325
2003-10-24 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/awt/peer/gtk/GtkDialogPeer.java (handleEvent):
Remove method.
* gnu/java/awt/peer/gtk/GtkWindowPeer.java (postWindowEvent):
New method.
* java/awt/Window.java (Window(Window,GraphicsConfiguration),
show, hide, dispose, getOwnedWindows): Synchronize on tree lock.
(dispose): Post WINDOW_CLOSED event.
(addWindowFocusListener, addWindowStateListener): Assign result
of multicaster add back to window listener.
(removeWindowFocusListener, removeWindowStateListener): Assign
result of multicaster remove back to window listener.
(dispatchEventImpl): Add null checks for focus and state
listeners.
(processWindowEvent): Handle case where windowListener is null
but state or focus listeners exist.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c: Add JNI
glue for postWindowEvent.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
(window_delete_cb, window_destroy_cb, window_show_cb,
window_focus_in_cb, window_focus_out_cb, window_window_state_cb,
window_get_new_state): New functions.
* jni/gtk-peer/gtkpeer.h: Define window event and frame state
macros. Declare postWindowEventID.
From-SVN: r72906
2003-10-21 Michael Koch <konqueror@gmx.de>
* gnu/java/net/PlainDatagramSocketImpl.java,
gnu/java/net/PlainSocketImpl.java,
gnu/java/net/natPlainDatagramSocketImplPosix.cc,
gnu/java/net/natPlainDatagramSocketImplWin32.cc,
gnu/java/net/natPlainSocketImplPosix.cc,
gnu/java/net/natPlainSocketImplWin32.cc:
Renamed fnum to native_fd to match classpath more.
From-SVN: r72746
2003-10-18 Michael Koch <konqueror@gmx.de>
* gnu/java/net/protocol/file/Connection.java,
gnu/java/net/protocol/file/Handler.java,
gnu/java/net/protocol/http/Connection.java,
gnu/java/net/protocol/http/Handler.java,
gnu/java/net/protocol/jar/Connection.java,
gnu/java/net/protocol/jar/Handler.java:
Merged copyright text from classpath to make
it possible to merge the classes.
From-SVN: r72638
* gnu/java/nio/PipeImpl.java
(SourceChannelImpl): New inner class.
(SinkChannelImpl): New inner class.
(sink): New member variable.
(source): New member variable.
(PipeImpl): Add SelectorProvider argument, implemented.
(nativeInit): New method.
(sink): Return sink channel.
(source): Return source channel.
* gnu/java/nio/SelectorProviderImpl.java
(openPipe): Give provider as argument to PipeImpl constructor.
* java/nio/channels/spi/SelectorProvider.java
(pr): Removed.
(systemDefaultProvider): New member variable.
(provider): Made it synchronized, use property
java.nio.channels.spi.SelectorProvider.
* gnu/java/nio/natPipeImpl.cc: New file.
* Makefile.am (nat_source_files): Added gnu/java/nio/natPipeImpl.cc.
* Makefile.in: Regenerated.
From-SVN: r72397
2003-10-09 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/SelectorImpl.java (register):
Use ServerSocketChannelSelectionKey for server socket channels,
removed unneeded comments.
* gnu/java/nio/ServerSocketChannelImpl.java
(ServerSocketChannelImpl): Made class public final.
(impl): New member variable.
(ServerSocketChannelImpl): Initialize member variables correctly.
(initServerSocket): New method.
(getNativeFD): Likewise.
* gnu/java/nio/ServerSocketChannelSelectionKey.java,
gnu/java/nio/natServerSocketChannelImpl.cc: New files.
* Makefile.am (ordinary_java_source_files):
Added gnu/java/nio/ServerSocketChannelSelectionKey.java.
(nat_source_files): Added gnu/java/nio/natServerSocketChannelImpl.cc.
* Makefile.in: Regenrated.
From-SVN: r72277
2003-10-08 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/awt/peer/gtk/GtkButtonPeer.java (handleEvent): Remove
modality check.
* gnu/java/awt/peer/gtk/GtkDialogPeer.java (initializeInsets):
Initialize insets to use latest insets.
* gnu/java/awt/peer/gtk/GtkFramePeer.java: Likewise.
* gnu/java/awt/peer/gtk/GtkWindowPeer.java (latestInsets): New
field.
(postConfigureEvent): Update latestInsets field when insets
change. Remove call to setSize. Move validate call outside of
if blocks.
(setVisible): Call setBounds before showing window.
(nativeSetVisible): New native method.
* java/awt/Window.java (show): Show visible owned windows.
(hide): Hide visible owned windows.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
(awt_event_handler): Implement modality using GTK grabs.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c
(global_gtk_window_group): New global variable.
(gtkInit): Initialize global_gtk_window_group.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (create):
Clamp width and height values to at least 1. Add this window to
the global GTK window group.
(setVisible): Rename to nativeSetVisible.
(setup_window): Remove function.
(setSize): Clamp width and height values to at least 1.
(nativeSetBounds): Likewise.
(gdk_window_get_root_geometry): Remove function.
* jni/gtk-peer/gtkpeer.h: Remove gdk_window_get_root_geometry
and setup_window declarations. Declare global_gtk_window_group.
From-SVN: r72252