* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
(pre_event_handler): Set all insets to 0 when a Configure event
is received for a GtkPlug.
* gnu/java/awt/EmbeddedWindow.java (window_id): Rename handle.
Make handle long, not int.
(EmbeddedWindow()): New constructor.
(EmbeddedWindow(int)): Rename window_id to handle. Make handle
long, not int.
(setHandle): New method.
(getHandle): Return long, not int.
* gnu/java/awt/peer/EmbeddedWindowPeer.java (embed): New method
declaration.
* gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c:
(create(long)): Take long parameter, not int. Cast gtk_plug_new
argument to GdkNativeWindow.
(construct): New method.
(embed): New method.
From-SVN: r75447
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
(pre_event_handler): Handle GtkButton widgets differently as events
go to its event_window.
(connect_awt_hook): Remove compiler warning.
From-SVN: r74704
2003-12-12 Fernando Nasser <fnasser@redhat.com>
* jni/gtk-peer/gtkpeer.h: Extend NSA set of macros to handle a second
native state table -- native_global_ref_table.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c: Define
native_global_ref_table pointer.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
(Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose): Make sure JNI
global reference is deleted and memory allocated for pointer freed.
(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals): Use saved
JNI global reference instead of JNI local reference.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
(pre_event_handler): Remove compilation warning.
(connect_awt_hook): Use saved JNI global reference instead of creating
a new one.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
(Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create): Save JNI global
reference to the Java object.
(Java_gnu_java_awt_peer_gtk_GtkButtonPeer_connectSignals): Remove
unused variable declaration and add comment.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c
(Java_gnu_java_awt_peer_gtk_GtkCanvasPeer_create): Save JNI global
reference to the Java object.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c
(Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_create): Ditto.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeCreate): Ditto.
(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_connectSignals): Use saved
JNI global reference instead of JNI local reference.
(item_toggled): Add debug statement.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
(Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create): Save JNI global
reference to the Java object.
(connect_choice_item_selectable_hook): Use saved JNI global references
instead of JNI local reference.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
(Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create): Save JNI
global reference to the Java object.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
(Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_create): Save JNI global
reference to the Java object.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
(Java_gnu_java_awt_peer_gtk_GtkLabelPeer_create): Ditto.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c
(Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_create): Ditto.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
(Java_gnu_java_awt_peer_gtk_GtkMenuPeer_create): Ditto.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c
(Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_create): Ditto.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
(Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create): Ditto.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
(Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_create): Ditto.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
(Java_gnu_java_awt_peer_gtk_GtkListPeer_create): Ditto.
(Java_gnu_java_awt_peer_gtk_GtkListPeer_connectSignals): Use saved
JNI global reference instead of JNI local reference.
(item_selected): Add debug statement.
(item_unselected): Add debug statement.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
(Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_create): Save JNI global
reference to the Java object.
Connect "activate" signal handler using global JNI reference.
(connect_activate_hook): Removed in favor of inline code.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c
(Java_gnu_java_awt_peer_gtk_GtkPanelPeer_create): Save JNI global
reference to the Java object.
(Java_gnu_java_awt_peer_gtk_GtkPanelPeer_connectSignals): Use saved
JNI global reference instead of JNI local reference. Add FIXME comment.
(Java_gnu_java_awt_peer_gtk_GtkPanelPeer_gtkPanelNew): Save JNI global
reference to the Java object. Add FIXME comment.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c
(Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create): Save JNI global
reference to the Java object.
(Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectSignals): Use saved
JNI global reference instead of JNI local reference.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c
(Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_connectSignals): Use
saved JNI global reference instead of JNI local reference.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
(Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create): Save JNI global
reference to the Java object.
(Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectSignals): Use saved
JNI global reference instead of JNI local reference.
From-SVN: r74593
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-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-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
2003-10-02 Thomas Fitzsimmons <fitzsim@redhat.com>
* gnu/java/awt/peer/gtk/GtkComponentPeer.java (insets): New
field.
(initializeInsets): New method.
(GtkComponentPeer): Call initializeInsets. Call setCursor and
setBounds unconditionally.
(setBounds): Convert coordinates if parent is a Window.
* gnu/java/awt/peer/gtk/GtkContainerPeer.java (insets): Move
field to GtkComponentPeer.
(GtkContainerPeer): Don't initialize insets.
* gnu/java/awt/peer/gtk/GtkDialogPeer.java (initializeInsets):
New method.
(create): Call new GtkWindowPeer create method.
* gnu/java/awt/peer/gtk/GtkFramePeer.java (initializeInsets):
New method.
(create): Call new GtkWindowPeer create method.
(setBounds): Remove method.
(postConfigureEvent): Likewise.
* gnu/java/awt/peer/gtk/GtkWindowPeer.java: Replace GTK window
type constants with GDK window type constants.
(create(int,boolean,int,int,GtkWindowPeer)): New method.
(create(int,boolean)): Likewise.
(create()): Call create(int,boolean).
(nativeSetBounds): New native method declaration.
(setBounds): Call native method declaration.
(setSize): New native method declaration.
(setBoundsCallback): Likewise.
(postConfigureEvent): Handle change in insets. Call setSize and
setBoundsCallback methods.
* java/awt/Window.java (Window): Set visible to false.
(setBoundsCallback): New method.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
(gtkWidgetGetLocationOnScreen): If this component is not a
container, adjust the location returned based on the peer's
allocation.
(set(String,boolean)): Revert change from 2003-09-19.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
(awt_event_handler): Fix inset calculation.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c: Add JNI
glue for Window.setBoundsCallback.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (create):
Set up stacking order, window decorations and window manager
hints.
(setBoundsCallback): New method.
(setSize): New method.
(nativeSetBounds): New method.
* jni/gtk-peer/gtkpeer.h: Declare setBoundsCallbackID.
From-SVN: r72043