diff options
Diffstat (limited to 'libjava/gnu/java/awt/peer')
-rw-r--r-- | libjava/gnu/java/awt/peer/EmbeddedWindowPeer.java | 1 | ||||
-rw-r--r-- | libjava/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java | 18 |
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) |