aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu/java/awt/peer
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/java/awt/peer')
-rw-r--r--libjava/gnu/java/awt/peer/EmbeddedWindowPeer.java1
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java18
2 files changed, 17 insertions, 2 deletions
diff --git a/libjava/gnu/java/awt/peer/EmbeddedWindowPeer.java b/libjava/gnu/java/awt/peer/EmbeddedWindowPeer.java
index a178768..95a56d1 100644
--- a/libjava/gnu/java/awt/peer/EmbeddedWindowPeer.java
+++ b/libjava/gnu/java/awt/peer/EmbeddedWindowPeer.java
@@ -43,4 +43,5 @@ import java.awt.peer.FramePeer;
public interface EmbeddedWindowPeer extends FramePeer
{
+ void embed (long handle);
}
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java
index b9cdb66..9ee41c9 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java
@@ -45,11 +45,25 @@ import gnu.java.awt.peer.EmbeddedWindowPeer;
public class GtkEmbeddedWindowPeer extends GtkFramePeer
implements EmbeddedWindowPeer
{
- native void create(int window_id);
+ native void create (long socket_id);
void create ()
{
- create (((EmbeddedWindow) awtComponent).getHandle());
+ create (((EmbeddedWindow) awtComponent).getHandle ());
+ }
+
+ native void construct (long socket_id);
+
+ // FIXME: embed doesn't work right now, though I believe it should.
+ // This means that you can't call setVisible (true) on an
+ // EmbeddedWindow before calling setHandle with a valid handle. The
+ // problem is that somewhere after the call to
+ // GtkEmbeddedWindow.create and before the call to
+ // GtkEmbeddedWindow.construct, the GtkPlug peer is being realized.
+ // GtkSocket silently fails to embed an already-realized GtkPlug.
+ public void embed (long handle)
+ {
+ construct (handle);
}
public GtkEmbeddedWindowPeer (EmbeddedWindow w)