summaryrefslogtreecommitdiff
path: root/gnu/java/awt/peer/gtk/GtkWindowPeer.java
diff options
context:
space:
mode:
authorThomas Fitzsimmons <fitzsim@redhat.com>2005-08-25 02:26:48 +0000
committerThomas Fitzsimmons <fitzsim@redhat.com>2005-08-25 02:26:48 +0000
commit9c85e59ae904ce20cbbe235e0ee034b4d1e0e3ef (patch)
tree932632dfb7aed523e301d1908be56eb726073349 /gnu/java/awt/peer/gtk/GtkWindowPeer.java
parent31185edfe29ebe915402699c80025b0c55e35578 (diff)
downloadclasspath-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.java44
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)