This implements some of the new 1.5 stuff for AWT.
- changes to Image (accelerationPriority)
- always-on-top Window (and GTK peer support)
- MouseInfo and PointerInfo classes and the necessary
peers and Toolkit changes.
- GTK implementation of MouseInfoPeer.

(Note that the getMouseInfoPeer method is not abstract
in Toolkit and is allowed to throw UnsupportedOpException,
so I made that the default. Toolkit implementations should
obviously overload this if possible. That means you, Roman ;))

/Sven

2006-07-15  Sven de Marothy  <[EMAIL PROTECTED]>

        * gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java,
        * java/awt/MouseInfo.java,
        * java/awt/PointerInfo.java,
        * java/awt/peer/MouseInfoPeer.java:
        New files.

        * java/awt/Image.java
        (accelerationPriority): New field.
        (setAccelerationPriority, getAccelerationPriority): New methods..

        * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h,
        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c,
        * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java:
        (getMouseCoordinates): New method.

        * gnu/java/awt/peer/gtk/GtkFramePeer.java
        (updateAlwaysOnTop): Remove stub overload.

        * gnu/java/awt/ClasspathToolkit.java,
        * gnu/java/awt/peer/gtk/GtkToolkit.java,
        * include/gnu_java_awt_peer_gtk_GtkToolkit.h,
        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c:
        (getMouseInfoPeer): New method.
        (getMouseNumberOfButtons): New method.
        
        * gnu/java/awt/peer/gtk/GtkWindowPeer.java
        * include/gnu_java_awt_peer_gtk_GtkWindowPeer.h
        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
        (gtkWindowSetAlwaysOnTop): New method.
        (updateAlwaysOnTop): Implement.

        * java/awt/Toolkit.java,
        (getMouseInfoPeer): New method.

        * java/awt/Window.java
        (alwaysOnTop): New field.
        (isAlwaysOnTop, setAlwaysOnTop): New methods.

        * java/awt/peer/WindowPeer.java: Doc fix.


Index: gnu/java/awt/ClasspathToolkit.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/java/awt/ClasspathToolkit.java,v
retrieving revision 1.20
diff -U3 -r1.20 ClasspathToolkit.java
--- gnu/java/awt/ClasspathToolkit.java	30 Jun 2006 18:20:06 -0000	1.20
+++ gnu/java/awt/ClasspathToolkit.java	15 Jul 2006 07:41:21 -0000
@@ -1,5 +1,5 @@
 /* ClasspathToolkit.java -- Abstract superclass for Classpath toolkits.
-   Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -52,6 +52,7 @@
 import java.awt.GraphicsDevice;
 import java.awt.GraphicsEnvironment;
 import java.awt.Image;
+import java.awt.Point;
 import java.awt.Toolkit;
 import java.awt.font.FontRenderContext;
 import java.awt.image.ColorModel;
@@ -188,6 +189,9 @@
    */
   public abstract Font createFont(int format, InputStream stream);
 
+  /**
+   * Creates a RobotPeer on a given GraphicsDevice.
+   */
   public abstract RobotPeer createRobot (GraphicsDevice screen)
     throws AWTException;
 
@@ -201,8 +205,24 @@
 
   /**
    * Used to register ImageIO SPIs provided by the toolkit.
+   *
+   * Our default implementation does nothing.
    */
    public void registerImageIOSpis(IIORegistry reg)
    {
    }
+
+   /**
+    * Returns the number of mouse buttons.
+    * (used by java.awt.MouseInfo).
+    *
+    * This dummy implementation returns -1 (no mouse).
+    * toolkit implementors should overload this method if possible.
+    * @since 1.5
+    */
+   public int getMouseNumberOfButtons() 
+   {
+     return -1;
+   }
 }
+
Index: gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,v
retrieving revision 1.13
diff -U3 -r1.13 GdkGraphicsEnvironment.java
--- gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java	6 Jun 2006 10:57:37 -0000	1.13
+++ gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java	15 Jul 2006 07:41:21 -0000
@@ -134,5 +134,9 @@
   {
     throw new java.lang.UnsupportedOperationException ();
   }
-  
+
+  /**
+   * Used by GtkMouseInfoPeer.
+   */ 
+  native int[] getMouseCoordinates();
 }
Index: gnu/java/awt/peer/gtk/GtkFramePeer.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java,v
retrieving revision 1.46
diff -U3 -r1.46 GtkFramePeer.java
--- gnu/java/awt/peer/gtk/GtkFramePeer.java	30 Mar 2006 18:58:56 -0000	1.46
+++ gnu/java/awt/peer/gtk/GtkFramePeer.java	15 Jul 2006 07:41:21 -0000
@@ -218,11 +218,7 @@
     // TODO Auto-generated method stub
     
   }
-  public void updateAlwaysOnTop()
-  {
-    // TODO Auto-generated method stub
-    
-  }
+
   public boolean requestWindowFocus()
   {
     // TODO Auto-generated method stub
Index: gnu/java/awt/peer/gtk/GtkToolkit.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java,v
retrieving revision 1.90
diff -U3 -r1.90 GtkToolkit.java
--- gnu/java/awt/peer/gtk/GtkToolkit.java	6 Jul 2006 19:50:24 -0000	1.90
+++ gnu/java/awt/peer/gtk/GtkToolkit.java	15 Jul 2006 07:41:21 -0000
@@ -102,6 +102,7 @@
 import java.awt.peer.ListPeer;
 import java.awt.peer.MenuBarPeer;
 import java.awt.peer.MenuItemPeer;
+import java.awt.peer.MouseInfoPeer;
 import java.awt.peer.MenuPeer;
 import java.awt.peer.PanelPeer;
 import java.awt.peer.PopupMenuPeer;
@@ -653,4 +654,12 @@
   }
 
   public static native void gtkMain();
+
+  protected MouseInfoPeer getMouseInfoPeer()
+  {
+    return new GtkMouseInfoPeer();
+  }
+
+  public native int getMouseNumberOfButtons();
+
 } // class GtkToolkit
Index: gnu/java/awt/peer/gtk/GtkWindowPeer.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java,v
retrieving revision 1.48
diff -U3 -r1.48 GtkWindowPeer.java
--- gnu/java/awt/peer/gtk/GtkWindowPeer.java	30 Mar 2006 18:58:56 -0000	1.48
+++ gnu/java/awt/peer/gtk/GtkWindowPeer.java	15 Jul 2006 07:41:21 -0000
@@ -70,7 +70,7 @@
   native void gtkWindowSetTitle (String title);
   native void gtkWindowSetResizable (boolean resizable);
   native void gtkWindowSetModal (boolean modal);
-
+  native void gtkWindowSetAlwaysOnTop ( boolean alwaysOnTop );
   native void realize ();
 
   /** Returns the cached width of the AWT window component. */
@@ -275,10 +275,13 @@
     else
       q().postEvent (new WindowEvent ((Window) awtComponent, id, opposite));
   }
+
+  /**
+   * Update the always-on-top status of the native window.
+   */
   public void updateAlwaysOnTop()
   {
-    // TODO Auto-generated method stub
-    
+    gtkWindowSetAlwaysOnTop( ((Window)awtComponent).isAlwaysOnTop() );
   }
 
   protected void postExposeEvent (int x, int y, int width, int height)
Index: include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h
===================================================================
RCS file: /sources/classpath/classpath/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h,v
retrieving revision 1.4
diff -U3 -r1.4 gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h
--- include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h	6 Jun 2006 10:04:14 -0000	1.4
+++ include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h	15 Jul 2006 07:41:21 -0000
@@ -16,6 +16,7 @@
 JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetDefaultScreenDevice (JNIEnv *env, jobject);
 JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetNumFontFamilies (JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetFontFamilies (JNIEnv *env, jobject, jobjectArray);
+JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_getMouseCoordinates (JNIEnv *env, jobject);
 
 #ifdef __cplusplus
 }
Index: include/gnu_java_awt_peer_gtk_GtkToolkit.h
===================================================================
RCS file: /sources/classpath/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h,v
retrieving revision 1.11
diff -U3 -r1.11 gnu_java_awt_peer_gtk_GtkToolkit.h
--- include/gnu_java_awt_peer_gtk_GtkToolkit.h	30 Apr 2006 10:37:36 -0000	1.11
+++ include/gnu_java_awt_peer_gtk_GtkToolkit.h	15 Jul 2006 07:41:21 -0000
@@ -17,6 +17,7 @@
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_sync (JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_loadSystemColors (JNIEnv *env, jobject, jintArray);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkMain (JNIEnv *env, jclass);
+JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_getMouseNumberOfButtons (JNIEnv *env, jobject);
 
 #ifdef __cplusplus
 }
Index: include/gnu_java_awt_peer_gtk_GtkWindowPeer.h
===================================================================
RCS file: /sources/classpath/classpath/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h,v
retrieving revision 1.22
diff -U3 -r1.22 gnu_java_awt_peer_gtk_GtkWindowPeer.h
--- include/gnu_java_awt_peer_gtk_GtkWindowPeer.h	30 Apr 2006 10:37:36 -0000	1.22
+++ include/gnu_java_awt_peer_gtk_GtkWindowPeer.h	15 Jul 2006 07:41:21 -0000
@@ -13,6 +13,7 @@
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetTitle (JNIEnv *env, jobject, jstring);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetResizable (JNIEnv *env, jobject, jboolean);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetModal (JNIEnv *env, jobject, jboolean);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetAlwaysOnTop(JNIEnv *env, jobject, jboolean);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_realize (JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create (JNIEnv *env, jobject, jint, jboolean, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisibleNative (JNIEnv *env, jobject, jboolean);
Index: java/awt/Image.java
===================================================================
RCS file: /sources/classpath/classpath/java/awt/Image.java,v
retrieving revision 1.14
diff -U3 -r1.14 Image.java
--- java/awt/Image.java	3 May 2006 19:31:45 -0000	1.14
+++ java/awt/Image.java	15 Jul 2006 07:41:21 -0000
@@ -1,5 +1,5 @@
 /* Image.java -- superclass for images
-   Copyright (C) 1999, 2002, 2004, 2005  Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2004, 2005, 2006  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -50,7 +50,7 @@
  *
  * @author Aaron M. Renn ([EMAIL PROTECTED])
  * @since 1.0
- * @status updated to 1.4
+ * @status updated to 1.5
  */
 public abstract class Image
 {
@@ -102,6 +102,12 @@
   public static final int SCALE_AREA_AVERAGING = 16;
 
   /**
+   * The acceleration priority of the image
+   * @since 1.5
+   */
+  protected float accelerationPriority;
+
+  /**
    * A default constructor for subclasses.
    */
   public Image()
@@ -205,4 +211,32 @@
    * includes the actual image data.
    */
   public abstract void flush();
+
+  /**
+   * Sets the acceleration priority of the image.
+   * This is a value from 0 (lowest) to 1 (highest), which may
+   * be used as a hint for image acceleration. 
+   * E.g. higher priority images may be stored in video memory.
+   * @param priority - the priority
+   * @throws IllegalArgumentException if priority is not >= 0 and <= 1.
+   *
+   * @since 1.5
+   */
+  public void setAccelerationPriority(float priority)
+  {
+    if( priority < 0f || priority > 1f)
+      throw new IllegalArgumentException("Invalid priority value.");
+    accelerationPriority = priority;
+  }
+
+  /**
+   * Returns the acceleration priority of the image.
+   *
+   * @see #setAccelerationPriority(float)
+   * @since 1.5
+   */
+  public float getAccelerationPriority()
+  {
+    return accelerationPriority;
+  }
 } // class Image
Index: java/awt/Toolkit.java
===================================================================
RCS file: /sources/classpath/classpath/java/awt/Toolkit.java,v
retrieving revision 1.42
diff -U3 -r1.42 Toolkit.java
--- java/awt/Toolkit.java	20 Jun 2006 11:36:23 -0000	1.42
+++ java/awt/Toolkit.java	15 Jul 2006 07:41:21 -0000
@@ -70,6 +70,7 @@
 import java.awt.peer.MenuBarPeer;
 import java.awt.peer.MenuItemPeer;
 import java.awt.peer.MenuPeer;
+import java.awt.peer.MouseInfoPeer;
 import java.awt.peer.PanelPeer;
 import java.awt.peer.PopupMenuPeer;
 import java.awt.peer.ScrollPanePeer;
@@ -332,6 +333,18 @@
   protected abstract MenuItemPeer createMenuItem(MenuItem target);
 
   /**
+   * Returns a MouseInfoPeer. 
+   * The default implementation of this method throws
+   * UnsupportedOperationException.
+   *
+   * Toolkit implementations should overload this if possible, however.
+   */
+  protected MouseInfoPeer getMouseInfoPeer()
+  {
+    throw new UnsupportedOperationException("No mouse info peer.");
+  }
+
+  /**
    * Creates a peer object for the specified <code>FileDialog</code>.
    *
    * @param target The <code>FileDialog</code> to create the peer for.
Index: java/awt/Window.java
===================================================================
RCS file: /sources/classpath/classpath/java/awt/Window.java,v
retrieving revision 1.72
diff -U3 -r1.72 Window.java
--- java/awt/Window.java	30 May 2006 16:38:11 -0000	1.72
+++ java/awt/Window.java	15 Jul 2006 07:41:21 -0000
@@ -80,6 +80,8 @@
   private int state = 0;
   /** @since 1.4 */
   private boolean focusableWindowState = true;
+  /** @since 1.5 */
+  private boolean alwaysOnTop = false;
 
   // A list of other top-level windows owned by this window.
   private transient Vector ownedWindows = new Vector();
@@ -420,13 +422,17 @@
   /**
    * Sends this window to the back so that all other windows display in
    * front of it.
+   *
+   * If the window is set to be always-on-top, this will remove its
+   * always-on-top status.
    */
   public void toBack()
   {
     if (peer != null)
       {
-	WindowPeer wp = (WindowPeer) peer;
-	wp.toBack();
+	if( alwaysOnTop )
+	  setAlwaysOnTop( false );
+	( (WindowPeer) peer ).toBack();
       }
   }
 
@@ -437,10 +443,7 @@
   public void toFront()
   {
     if (peer != null)
-      {
-        WindowPeer wp = (WindowPeer) peer;
-        wp.toFront();
-      }
+      ( (WindowPeer) peer ).toFront();
   }
 
   /**
@@ -1236,6 +1239,55 @@
   }
 
   /**
+   * Returns whether the Windows is an always-on-top window,
+   * meaning whether the window can be obscured by other windows or not.
+   *
+   * @return <code>true</code> if the windows is always-on-top,
+   * <code>false</code> otherwise.
+   * @since 1.5
+   */
+  public final boolean isAlwaysOnTop()
+  {
+    return alwaysOnTop;
+  }
+
+  /**
+   * Sets the always-on-top state of this window (if supported).
+   *
+   * Setting a window to always-on-top means it will not be obscured
+   * by any other windows (with the exception of other always-on-top 
+   * windows). Not all platforms may support this.
+   *
+   * If an window's always-on-top status is changed to false, the window
+   * will remain at the front but not be anchored there.
+   *
+   * Calling toBack() on an always-on-top window will change its
+   * always-on-top status to false.
+   *
+   * @since 1.5
+   */
+  public final void setAlwaysOnTop(boolean alwaysOnTop)
+  {
+    SecurityManager sm = System.getSecurityManager();
+    if (sm != null)
+      sm.checkPermission( new AWTPermission("setWindowAlwaysOnTop") );
+
+    if( this.alwaysOnTop == alwaysOnTop )
+      return;
+    
+    if( alwaysOnTop )
+      toFront();
+
+    firePropertyChange("alwaysOnTop", this.alwaysOnTop, alwaysOnTop );
+    this.alwaysOnTop = alwaysOnTop;
+
+    if (peer != null) 
+      ( (WindowPeer) peer).updateAlwaysOnTop();
+    else
+      System.out.println("Null peer?!");
+  }
+
+  /**
    * Generate a unique name for this window.
    *
    * @return A unique name for this window.
Index: java/awt/peer/WindowPeer.java
===================================================================
RCS file: /sources/classpath/classpath/java/awt/peer/WindowPeer.java,v
retrieving revision 1.10
diff -U3 -r1.10 WindowPeer.java
--- java/awt/peer/WindowPeer.java	19 Aug 2005 01:29:26 -0000	1.10
+++ java/awt/peer/WindowPeer.java	15 Jul 2006 07:41:21 -0000
@@ -1,5 +1,5 @@
 /* WindowPeer.java -- Interface for window peers
-   Copyright (C) 1999 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2006 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,7 +44,8 @@
   void toFront();
   
   /**
-   * FIXME: unknown.
+   * Update the always-on-top status of the Window.
+   *
    * @since 1.5
    */
   void updateAlwaysOnTop();
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
===================================================================
RCS file: /sources/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c,v
retrieving revision 1.6
diff -U3 -r1.6 gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c	6 Jun 2006 10:04:15 -0000	1.6
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c	15 Jul 2006 07:41:22 -0000
@@ -241,3 +241,35 @@
 
     return defaultDevice;	
 }
+
+JNIEXPORT jintArray JNICALL
+Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_getMouseCoordinates
+(JNIEnv *env, jobject obj)
+{
+  jintArray retArray;
+  jint *values;
+  GdkDisplay *display;
+  gint x, y, screenIndex;
+  GdkScreen *screen;
+
+  display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, obj);
+  g_assert (display != NULL);
+  
+  gdk_threads_enter ();
+  
+  gdk_display_get_pointer (display, &screen, &x, &y, NULL);
+  screenIndex = gdk_screen_get_number( screen );
+
+  gdk_threads_leave ();
+	
+  retArray = (*env)->NewIntArray (env, 3);
+  values = (*env)->GetIntArrayElements (env, retArray, NULL);
+  
+  values[0] = screenIndex;
+  values[1] = x;
+  values[2] = y;
+
+  (*env)->ReleaseIntArrayElements (env, retArray, values, 0);
+
+  return retArray;
+}
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
===================================================================
RCS file: /sources/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c,v
retrieving revision 1.26
diff -U3 -r1.26 gnu_java_awt_peer_gtk_GtkToolkit.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c	25 May 2006 15:29:36 -0000	1.26
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c	15 Jul 2006 07:41:22 -0000
@@ -387,6 +387,37 @@
   return res;
 }
 
+/**
+ * Report the number of mouse buttons
+ * Returns the number of buttons of the first mouse found, or -1 if no mouse
+ * seems to be connected.
+ */
+JNIEXPORT jint JNICALL 
+Java_gnu_java_awt_peer_gtk_GtkToolkit_getMouseNumberOfButtons
+  (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
+{
+  jint res = -1;
+  GList *devices;
+  GdkDevice *d;
+
+  gdk_threads_enter ();
+
+  // FIXME: Why doesn't this return the correct number?
+  devices = gdk_devices_list();
+
+  while( res == -1 && devices != NULL )
+    {
+      d = GDK_DEVICE( devices->data );
+      if( d->source == GDK_SOURCE_MOUSE )
+	res = d->num_keys;
+      devices = devices->next;
+    }
+
+  gdk_threads_leave ();
+
+  return res;
+}
+
 #define CONVERT(type, state) \
   gdk_color_to_java_color (style->type[GTK_STATE_ ## state])
 
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
===================================================================
RCS file: /sources/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c,v
retrieving revision 1.67
diff -U3 -r1.67 gnu_java_awt_peer_gtk_GtkWindowPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c	18 Jun 2006 03:45:28 -0000	1.67
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c	15 Jul 2006 07:41:22 -0000
@@ -1245,6 +1245,21 @@
 }
 
 JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetAlwaysOnTop
+  (JNIEnv *env, jobject obj, jboolean alwaysOnTop)
+{
+  void *ptr;
+
+  gdk_threads_enter ();
+
+  ptr = NSA_GET_PTR (env, obj);
+
+  gtk_window_set_keep_above (GTK_WINDOW (ptr), alwaysOnTop);
+
+  gdk_threads_leave ();
+}
+
+JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisibleNative
   (JNIEnv *env, jobject obj, jboolean visible)
 {

Reply via email to