diff options
author | Thomas Fitzsimmons <fitzsim@redhat.com> | 2005-08-25 02:26:48 +0000 |
---|---|---|
committer | Thomas Fitzsimmons <fitzsim@redhat.com> | 2005-08-25 02:26:48 +0000 |
commit | 9c85e59ae904ce20cbbe235e0ee034b4d1e0e3ef (patch) | |
tree | 932632dfb7aed523e301d1908be56eb726073349 /gnu/java/awt/peer/gtk/GtkWindowPeer.java | |
parent | 31185edfe29ebe915402699c80025b0c55e35578 (diff) | |
download | classpath-9c85e59ae904ce20cbbe235e0ee034b4d1e0e3ef.tar.gz |
2005-08-24 Thomas Fitzsimmons <fitzsim@redhat.com>
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
(beginNativeRepaintID): Remove variable.
(endNativeRepaintID): Likewise.
(cp_gtk_button_init_jni): Don't look up beginNativeRepaint and
endNativeRepaint methods.
* gnu/java/awt/peer/gtk/GtkFramePeer.java (resizing): Remove
field.
* gnu/java/awt/peer/gtk/GtkWindowPeer.java,
native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
(resizing): Remove field.
* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java (hiding): Remove
field.
(setVisible): Don't override.
* gnu/java/awt/peer/gtk/GtkChoicePeer.java,
native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
(selectNative): New method.
(selectNativeUnlocked): Likewise.
(select): Call setNativeUnlocked if in the GTK main thread,
selectNative otherwise.
* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
(gtkWidgetSetCursorUnlocked): New method.
(setCursor(Cursor)): Call gtkWidgetSetCursorUnlocked if in the GTK
main thread, gtkWidgetSetCursor otherwise.
(setVisibleNative): New method.
(setVisibleNativeUnlocked): Likewise.
(setVisible): Call setVisibleNativeUnlocked if in the GTK main
thread, setVisibleNative otherwise.
(hide): Call setVisible(false).
(show): Call setVisible(true).
Diffstat (limited to 'gnu/java/awt/peer/gtk/GtkWindowPeer.java')
-rw-r--r-- | gnu/java/awt/peer/gtk/GtkWindowPeer.java | 44 |
1 files changed, 12 insertions, 32 deletions
diff --git a/gnu/java/awt/peer/gtk/GtkWindowPeer.java b/gnu/java/awt/peer/gtk/GtkWindowPeer.java index 9fe46fa4c..e203de788 100644 --- a/gnu/java/awt/peer/gtk/GtkWindowPeer.java +++ b/gnu/java/awt/peer/gtk/GtkWindowPeer.java @@ -60,8 +60,6 @@ public class GtkWindowPeer extends GtkContainerPeer private boolean hasBeenShown = false; private int oldState = Frame.NORMAL; - private boolean resizing = false; - native void gtkWindowSetTitle (String title); native void gtkWindowSetResizable (boolean resizable); native void gtkWindowSetModal (boolean modal); @@ -124,11 +122,9 @@ public class GtkWindowPeer extends GtkContainerPeer { // prevent window_configure_cb -> awtComponent.setSize -> // peer.setBounds -> nativeSetBounds self-deadlock on GDK lock. - if (resizing && Thread.currentThread() == GtkToolkit.mainThread) - { - resizing = false; - return; - } + if (Thread.currentThread() == GtkToolkit.mainThread) + return; + nativeSetBounds (x, y, width - insets.left - insets.right, height - insets.top - insets.bottom); @@ -167,6 +163,8 @@ public class GtkWindowPeer extends GtkContainerPeer insets.right = right; } + // called back by native side: window_configure_cb + // only called from GTK thread protected void postConfigureEvent (int x, int y, int width, int height) { int frame_width = width + insets.left + insets.right; @@ -174,10 +172,7 @@ public class GtkWindowPeer extends GtkContainerPeer if (frame_width != awtComponent.getWidth() || frame_height != awtComponent.getHeight()) - { - resizing = true; - awtComponent.setSize(frame_width, frame_height); - } + awtComponent.setSize(frame_width, frame_height); int frame_x = x - insets.left; int frame_y = y - insets.top; @@ -189,30 +184,15 @@ public class GtkWindowPeer extends GtkContainerPeer } } - native void nativeSetVisible (boolean b); - public void setVisible (boolean b) - { - // Prevent the window manager from automatically placing this - // window when it is shown. - if (b) - setBounds (awtComponent.getX(), - awtComponent.getY(), - awtComponent.getWidth(), - awtComponent.getHeight()); - nativeSetVisible (b); - } - - native void nativeSetVisibleUnlocked (boolean b); - public void setVisibleUnlocked (boolean b) + public void show () { // Prevent the window manager from automatically placing this // window when it is shown. - if (b) - setBoundsUnlocked (awtComponent.getX(), - awtComponent.getY(), - awtComponent.getWidth(), - awtComponent.getHeight()); - nativeSetVisibleUnlocked (b); + setBounds (awtComponent.getX(), + awtComponent.getY(), + awtComponent.getWidth(), + awtComponent.getHeight()); + setVisible (true); } void postWindowEvent (int id, Window opposite, int newState) |