GtkTextAreaPeer.java (gtkTextGetSize): Remove unused parameters.
authorThomas Fitzsimmons <fitzsim@redhat.com>
Tue, 7 Oct 2003 21:33:29 +0000 (21:33 +0000)
committerThomas Fitzsimmons <fitzsim@gcc.gnu.org>
Tue, 7 Oct 2003 21:33:29 +0000 (21:33 +0000)
2003-10-07  Thomas Fitzsimmons  <fitzsim@redhat.com>

* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java (gtkTextGetSize):
Remove unused parameters.
* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java (gtkEntryGetSize):
Likewise.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
(keyevent_state_to_awt_mods): Export function.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c
(getCaretPosition): Fix TextArea case.
(textcomponent_commit_cb): Get exact event time and modifier
state.
* jni/gtk-peer/gtkpeer.h: Declare keyevent_state_to_awt_mods.

From-SVN: r72202

libjava/ChangeLog
libjava/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c
libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
libjava/jni/gtk-peer/gtkpeer.h

index ce16a0a..5d84c73 100644 (file)
@@ -1,3 +1,17 @@
+2003-10-07  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+       * gnu/java/awt/peer/gtk/GtkTextAreaPeer.java (gtkTextGetSize):
+       Remove unused parameters.
+       * gnu/java/awt/peer/gtk/GtkTextFieldPeer.java (gtkEntryGetSize):
+       Likewise.
+       * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
+       (keyevent_state_to_awt_mods): Export function.
+       * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c
+       (getCaretPosition): Fix TextArea case.
+       (textcomponent_commit_cb): Get exact event time and modifier
+       state.
+       * jni/gtk-peer/gtkpeer.h: Declare keyevent_state_to_awt_mods.
+
 2003-10-02  Guilhem Lavaux  <guilhem@kaffe.org>
 
        * java/net/InetSocketAddress.java
index b8973fd..ef48a4a 100644 (file)
@@ -55,8 +55,7 @@ public class GtkTextAreaPeer extends GtkTextComponentPeer
     create (((TextArea)awtComponent).getScrollbarVisibility ());
   }
 
-  // native void create (Object parent, String text, int scroll);
-  native void gtkTextGetSize (int rows, int cols, int dims[]);
+  native void gtkTextGetSize (int dims[]);
 
   public GtkTextAreaPeer (TextArea ta)
   {
@@ -70,7 +69,7 @@ public class GtkTextAreaPeer extends GtkTextComponentPeer
   {
     int dims[] = new int[2];
 
-    gtkTextGetSize (rows, cols, dims);
+    gtkTextGetSize (dims);
 
     return (new Dimension (dims[0], dims[1]));
   }
@@ -79,7 +78,7 @@ public class GtkTextAreaPeer extends GtkTextComponentPeer
   {
     int dims[] = new int[2];
 
-    gtkTextGetSize (rows, cols, dims);
+    gtkTextGetSize (dims);
 
     return (new Dimension (dims[0], dims[1]));
   }
index 20f61aa..b65354b 100644 (file)
@@ -53,7 +53,7 @@ public class GtkTextFieldPeer extends GtkTextComponentPeer
 
   native void create ();
 
-  native void gtkEntryGetSize (int cols, int dims[]);
+  native void gtkEntryGetSize (int dims[]);
 
   native void gtkSetFont(String xlfd, int size);
 
@@ -69,7 +69,7 @@ public class GtkTextFieldPeer extends GtkTextComponentPeer
   {
     int dims[] = new int[2];
 
-    gtkEntryGetSize (cols, dims);
+    gtkEntryGetSize (dims);
 
     return (new Dimension (dims[0], dims[1]));
   }
@@ -78,7 +78,7 @@ public class GtkTextFieldPeer extends GtkTextComponentPeer
   {
     int dims[] = new int[2];
 
-    gtkEntryGetSize (cols, dims);
+    gtkEntryGetSize (dims);
 
     return (new Dimension (dims[0], dims[1]));
   }
index 481fadf..90ff6f4 100644 (file)
@@ -91,7 +91,7 @@ state_to_awt_mods (guint state)
    key press event with modifiers=Shift, and a key release event with
    no modifiers.  GDK's key events behave in the exact opposite way,
    so this translation code is needed. */
-static jint
+jint
 keyevent_state_to_awt_mods (GdkEvent *event)
 {
   jint result = 0;
index 9a62c1a..77b4ae7 100644 (file)
@@ -54,13 +54,11 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
   sw = gtk_scrolled_window_new (NULL, NULL);
   gtk_container_add (GTK_CONTAINER (sw), text);
 
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), 
-
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
      /* horizontal scrollbar */
      (scroll == AWT_TEXTAREA_SCROLLBARS_BOTH
       || scroll == AWT_TEXTAREA_SCROLLBARS_HORIZONTAL_ONLY) ? 
        GTK_POLICY_ALWAYS : GTK_POLICY_NEVER,
-
      /* vertical scrollbar */
      (scroll == AWT_TEXTAREA_SCROLLBARS_BOTH
       || scroll == AWT_TEXTAREA_SCROLLBARS_VERTICAL_ONLY) ? 
@@ -73,12 +71,11 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
 
 JNIEXPORT void JNICALL 
 Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkTextGetSize
-  (JNIEnv *env, jobject obj, jint rows, jint cols, jintArray jdims)
+  (JNIEnv *env, jobject obj, jintArray jdims)
 {
   void *ptr;
   jint *dims;
   GtkWidget *text;
-/*   GtkScrolledWindow *sw; */
   GtkRequisition requisition;
 
   ptr = NSA_GET_PTR (env, obj);
@@ -89,7 +86,6 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkTextGetSize
   gdk_threads_enter ();
 
   text = GTK_WIDGET (TEXT_FROM_SW (ptr));
-  /*   sw = GTK_SCROLLED_WINDOW (ptr); */
 
   gtk_widget_size_request(GTK_WIDGET (text), &requisition);
   dims[0] = requisition.width;
index 29689fb..b964ffd 100644 (file)
@@ -37,6 +37,7 @@ exception statement from your version. */
 
 
 #include "gtkpeer.h"
+#include "gnu_java_awt_peer_gtk_GtkComponentPeer.h"
 #include "gnu_java_awt_peer_gtk_GtkTextComponentPeer.h"
 
 static void textcomponent_commit_cb (GtkIMContext *context,
@@ -149,7 +150,6 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_setCaretPosition
   GtkEditable *editable;    // type of GtkEntry    (TextField)
   GtkWidget *text = NULL;   // type of GtkTextView (TextArea)
   GtkTextBuffer *buf;
-  GtkTextMark *mark;
   GtkTextIter iter;
 
   ptr = NSA_GET_PTR (env, obj);
@@ -174,9 +174,8 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_setCaretPosition
       if (text)
        {
          buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
-         mark = gtk_text_buffer_get_insert (buf);
-         gtk_text_buffer_get_iter_at_mark (buf, &iter, mark);
-         gtk_text_iter_set_offset (&iter, pos);
+         gtk_text_buffer_get_iter_at_offset (buf, &iter, pos);
+         gtk_text_buffer_place_cursor (buf, &iter);
        }
     }
 
@@ -417,7 +416,6 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_setText
   const char *str;
   GtkWidget *text = NULL;   // type of GtkTextView (TextArea)
   GtkTextBuffer *buf;
-  jobject *obj_ptr;
 
   ptr = NSA_GET_PTR (env, obj);
   str = (*env)->GetStringUTFChars (env, contents, NULL);
@@ -458,27 +456,24 @@ textcomponent_commit_cb (GtkIMContext *context,
 {
   /* str is a \0-terminated UTF-8 encoded character. */
   gunichar2 *jc = g_utf8_to_utf16 (str, -1, NULL, NULL, NULL);
+  GdkEvent *event = gtk_get_current_event ();
 
   if (jc)
     (*gdk_env)->CallVoidMethod (gdk_env, peer,
                                 postKeyEventID,
                                 (jint) AWT_KEY_TYPED,
-                                /* We don't have access to the event
-                                   that caused this commit signal to
-                                   be fired.  So approximate the event
-                                   time... */
-                                (jlong) gdk_event_get_time (NULL),
-                                /* ... and assume no modifiers. */
-                                0,
+                                (jlong) event->key.time,
+                                keyevent_state_to_awt_mods (event),
                                 VK_UNDEFINED,
                                 (jchar) jc[0],
                                 AWT_KEY_LOCATION_UNKNOWN);
   g_free (jc);
+  gdk_event_free (event);
 }
 
 static void
 textcomponent_changed_cb (GtkEditable *editable,
-                      jobject peer)
+                         jobject peer)
 {
   (*gdk_env)->CallVoidMethod (gdk_env, peer, postTextEventID);
 }
index ee6132d..b075a69 100644 (file)
@@ -54,7 +54,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_create
 
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkEntryGetSize
-  (JNIEnv *env, jobject obj, jint cols, jintArray jdims)
+  (JNIEnv *env, jobject obj, jintArray jdims)
 {
   void *ptr;
   jint *dims;
index 8f38953..29414e1 100644 (file)
@@ -380,6 +380,8 @@ GtkLayout *find_gtk_layout (GtkWidget *parent);
 void setup_window (JNIEnv *env, jobject obj, GtkWidget *window, jint width, 
                   jint height, jboolean visible);
 
+jint keyevent_state_to_awt_mods (GdkEvent *event);
+
 struct item_event_hook_info
 {
   jobject peer_obj;