]> Pileus Git - ~andy/gtk/commitdiff
1.3.12, interface, binary age 0.
authorOwen Taylor <otaylor@redhat.com>
Sun, 23 Dec 2001 22:59:30 +0000 (22:59 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Sun, 23 Dec 2001 22:59:30 +0000 (22:59 +0000)
Sat Dec 22 12:38:03 2001  Owen Taylor  <otaylor@redhat.com>

        * configure.in: 1.3.12, interface, binary age 0.

        * configure.in: Require new versions of Glib, Pango, ATK.

        * NEWS: Updated.

        * configure.in: Make explicit what libtool we are executing.
        (Tomas Ogren)

        * gdk/gdkcolor.c gdk/gdkgc.c gdk/gdkwindow.c: Doc fixes.

        * gtk/gtkwidget.c (gtk_widget_[class]path) gtkrc.h : Fix
        parameter names for docs.

Sat Dec 22 22:35:29 2001  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkwindow.c (gtk_window_realize)
          gtk/gtkplug.c (gtk_plug_realize): Include GDK_KEY_RELEASE_MASK.

        * gtk/gtkentry.c (gtk_entry_key_release)
          gtk/gtktextview.c (gtk_text_view_key_release_event): Pass
        key release events to the input method.

        * gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress):
        Handle release of Control/Shift to end hex sequence.

        * modules/input/gtkimcontextxim.c (gtk_im_context_xim_filter_keypress):         Handle key releases as well as presses.

20 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
NEWS
configure.in
gdk/gdkcolor.c
gdk/gdkgc.c
gdk/gdkwindow.c
gtk/gtkentry.c
gtk/gtkimcontextsimple.c
gtk/gtkplug.c
gtk/gtkrc.h
gtk/gtktextview.c
gtk/gtkwidget.c
gtk/gtkwindow.c
modules/input/gtkimcontextxim.c

index c6df1c1ea3a69ab196f337e674023e54eed5ac33..8dc6c09b3b9b03b0c32017ec953a58d74ebae6db 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,34 @@
+Sat Dec 22 12:38:03 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * configure.in: 1.3.12, interface, binary age 0.
+
+       * configure.in: Require new versions of Glib, Pango, ATK.
+
+       * NEWS: Updated.
+
+       * configure.in: Make explicit what libtool we are executing.
+       (Tomas Ogren)
+
+       * gdk/gdkcolor.c gdk/gdkgc.c gdk/gdkwindow.c: Doc fixes.
+
+       * gtk/gtkwidget.c (gtk_widget_[class]path) gtkrc.h : Fix 
+       parameter names for docs.
+
+Sat Dec 22 22:35:29 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkwindow.c (gtk_window_realize) 
+         gtk/gtkplug.c (gtk_plug_realize): Include GDK_KEY_RELEASE_MASK.
+
+       * gtk/gtkentry.c (gtk_entry_key_release)
+         gtk/gtktextview.c (gtk_text_view_key_release_event): Pass
+       key release events to the input method.
+
+       * gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress): 
+       Handle release of Control/Shift to end hex sequence.
+
+       * modules/input/gtkimcontextxim.c (gtk_im_context_xim_filter_keypress): 
+       Handle key releases as well as presses.
+
 2001-12-21  Matthias Clasen  <matthiasc@poet.de>
 
        * gtk/gtktoolbar.c (gtk_toolbar_insert_element): Trivial doc adjustment.
index c6df1c1ea3a69ab196f337e674023e54eed5ac33..8dc6c09b3b9b03b0c32017ec953a58d74ebae6db 100644 (file)
@@ -1,3 +1,34 @@
+Sat Dec 22 12:38:03 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * configure.in: 1.3.12, interface, binary age 0.
+
+       * configure.in: Require new versions of Glib, Pango, ATK.
+
+       * NEWS: Updated.
+
+       * configure.in: Make explicit what libtool we are executing.
+       (Tomas Ogren)
+
+       * gdk/gdkcolor.c gdk/gdkgc.c gdk/gdkwindow.c: Doc fixes.
+
+       * gtk/gtkwidget.c (gtk_widget_[class]path) gtkrc.h : Fix 
+       parameter names for docs.
+
+Sat Dec 22 22:35:29 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkwindow.c (gtk_window_realize) 
+         gtk/gtkplug.c (gtk_plug_realize): Include GDK_KEY_RELEASE_MASK.
+
+       * gtk/gtkentry.c (gtk_entry_key_release)
+         gtk/gtktextview.c (gtk_text_view_key_release_event): Pass
+       key release events to the input method.
+
+       * gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress): 
+       Handle release of Control/Shift to end hex sequence.
+
+       * modules/input/gtkimcontextxim.c (gtk_im_context_xim_filter_keypress): 
+       Handle key releases as well as presses.
+
 2001-12-21  Matthias Clasen  <matthiasc@poet.de>
 
        * gtk/gtktoolbar.c (gtk_toolbar_insert_element): Trivial doc adjustment.
index c6df1c1ea3a69ab196f337e674023e54eed5ac33..8dc6c09b3b9b03b0c32017ec953a58d74ebae6db 100644 (file)
@@ -1,3 +1,34 @@
+Sat Dec 22 12:38:03 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * configure.in: 1.3.12, interface, binary age 0.
+
+       * configure.in: Require new versions of Glib, Pango, ATK.
+
+       * NEWS: Updated.
+
+       * configure.in: Make explicit what libtool we are executing.
+       (Tomas Ogren)
+
+       * gdk/gdkcolor.c gdk/gdkgc.c gdk/gdkwindow.c: Doc fixes.
+
+       * gtk/gtkwidget.c (gtk_widget_[class]path) gtkrc.h : Fix 
+       parameter names for docs.
+
+Sat Dec 22 22:35:29 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkwindow.c (gtk_window_realize) 
+         gtk/gtkplug.c (gtk_plug_realize): Include GDK_KEY_RELEASE_MASK.
+
+       * gtk/gtkentry.c (gtk_entry_key_release)
+         gtk/gtktextview.c (gtk_text_view_key_release_event): Pass
+       key release events to the input method.
+
+       * gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress): 
+       Handle release of Control/Shift to end hex sequence.
+
+       * modules/input/gtkimcontextxim.c (gtk_im_context_xim_filter_keypress): 
+       Handle key releases as well as presses.
+
 2001-12-21  Matthias Clasen  <matthiasc@poet.de>
 
        * gtk/gtktoolbar.c (gtk_toolbar_insert_element): Trivial doc adjustment.
index c6df1c1ea3a69ab196f337e674023e54eed5ac33..8dc6c09b3b9b03b0c32017ec953a58d74ebae6db 100644 (file)
@@ -1,3 +1,34 @@
+Sat Dec 22 12:38:03 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * configure.in: 1.3.12, interface, binary age 0.
+
+       * configure.in: Require new versions of Glib, Pango, ATK.
+
+       * NEWS: Updated.
+
+       * configure.in: Make explicit what libtool we are executing.
+       (Tomas Ogren)
+
+       * gdk/gdkcolor.c gdk/gdkgc.c gdk/gdkwindow.c: Doc fixes.
+
+       * gtk/gtkwidget.c (gtk_widget_[class]path) gtkrc.h : Fix 
+       parameter names for docs.
+
+Sat Dec 22 22:35:29 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkwindow.c (gtk_window_realize) 
+         gtk/gtkplug.c (gtk_plug_realize): Include GDK_KEY_RELEASE_MASK.
+
+       * gtk/gtkentry.c (gtk_entry_key_release)
+         gtk/gtktextview.c (gtk_text_view_key_release_event): Pass
+       key release events to the input method.
+
+       * gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress): 
+       Handle release of Control/Shift to end hex sequence.
+
+       * modules/input/gtkimcontextxim.c (gtk_im_context_xim_filter_keypress): 
+       Handle key releases as well as presses.
+
 2001-12-21  Matthias Clasen  <matthiasc@poet.de>
 
        * gtk/gtktoolbar.c (gtk_toolbar_insert_element): Trivial doc adjustment.
index c6df1c1ea3a69ab196f337e674023e54eed5ac33..8dc6c09b3b9b03b0c32017ec953a58d74ebae6db 100644 (file)
@@ -1,3 +1,34 @@
+Sat Dec 22 12:38:03 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * configure.in: 1.3.12, interface, binary age 0.
+
+       * configure.in: Require new versions of Glib, Pango, ATK.
+
+       * NEWS: Updated.
+
+       * configure.in: Make explicit what libtool we are executing.
+       (Tomas Ogren)
+
+       * gdk/gdkcolor.c gdk/gdkgc.c gdk/gdkwindow.c: Doc fixes.
+
+       * gtk/gtkwidget.c (gtk_widget_[class]path) gtkrc.h : Fix 
+       parameter names for docs.
+
+Sat Dec 22 22:35:29 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkwindow.c (gtk_window_realize) 
+         gtk/gtkplug.c (gtk_plug_realize): Include GDK_KEY_RELEASE_MASK.
+
+       * gtk/gtkentry.c (gtk_entry_key_release)
+         gtk/gtktextview.c (gtk_text_view_key_release_event): Pass
+       key release events to the input method.
+
+       * gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress): 
+       Handle release of Control/Shift to end hex sequence.
+
+       * modules/input/gtkimcontextxim.c (gtk_im_context_xim_filter_keypress): 
+       Handle key releases as well as presses.
+
 2001-12-21  Matthias Clasen  <matthiasc@poet.de>
 
        * gtk/gtktoolbar.c (gtk_toolbar_insert_element): Trivial doc adjustment.
index c6df1c1ea3a69ab196f337e674023e54eed5ac33..8dc6c09b3b9b03b0c32017ec953a58d74ebae6db 100644 (file)
@@ -1,3 +1,34 @@
+Sat Dec 22 12:38:03 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * configure.in: 1.3.12, interface, binary age 0.
+
+       * configure.in: Require new versions of Glib, Pango, ATK.
+
+       * NEWS: Updated.
+
+       * configure.in: Make explicit what libtool we are executing.
+       (Tomas Ogren)
+
+       * gdk/gdkcolor.c gdk/gdkgc.c gdk/gdkwindow.c: Doc fixes.
+
+       * gtk/gtkwidget.c (gtk_widget_[class]path) gtkrc.h : Fix 
+       parameter names for docs.
+
+Sat Dec 22 22:35:29 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkwindow.c (gtk_window_realize) 
+         gtk/gtkplug.c (gtk_plug_realize): Include GDK_KEY_RELEASE_MASK.
+
+       * gtk/gtkentry.c (gtk_entry_key_release)
+         gtk/gtktextview.c (gtk_text_view_key_release_event): Pass
+       key release events to the input method.
+
+       * gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress): 
+       Handle release of Control/Shift to end hex sequence.
+
+       * modules/input/gtkimcontextxim.c (gtk_im_context_xim_filter_keypress): 
+       Handle key releases as well as presses.
+
 2001-12-21  Matthias Clasen  <matthiasc@poet.de>
 
        * gtk/gtktoolbar.c (gtk_toolbar_insert_element): Trivial doc adjustment.
index c6df1c1ea3a69ab196f337e674023e54eed5ac33..8dc6c09b3b9b03b0c32017ec953a58d74ebae6db 100644 (file)
@@ -1,3 +1,34 @@
+Sat Dec 22 12:38:03 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * configure.in: 1.3.12, interface, binary age 0.
+
+       * configure.in: Require new versions of Glib, Pango, ATK.
+
+       * NEWS: Updated.
+
+       * configure.in: Make explicit what libtool we are executing.
+       (Tomas Ogren)
+
+       * gdk/gdkcolor.c gdk/gdkgc.c gdk/gdkwindow.c: Doc fixes.
+
+       * gtk/gtkwidget.c (gtk_widget_[class]path) gtkrc.h : Fix 
+       parameter names for docs.
+
+Sat Dec 22 22:35:29 2001  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtkwindow.c (gtk_window_realize) 
+         gtk/gtkplug.c (gtk_plug_realize): Include GDK_KEY_RELEASE_MASK.
+
+       * gtk/gtkentry.c (gtk_entry_key_release)
+         gtk/gtktextview.c (gtk_text_view_key_release_event): Pass
+       key release events to the input method.
+
+       * gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress): 
+       Handle release of Control/Shift to end hex sequence.
+
+       * modules/input/gtkimcontextxim.c (gtk_im_context_xim_filter_keypress): 
+       Handle key releases as well as presses.
+
 2001-12-21  Matthias Clasen  <matthiasc@poet.de>
 
        * gtk/gtktoolbar.c (gtk_toolbar_insert_element): Trivial doc adjustment.
diff --git a/NEWS b/NEWS
index db3014be5e42fa11163d1c96a7d3c346ffb9ca60..dd56f34117240340572edc58938363cd2fa115a1 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,33 @@
+Overview of Changes in GTK+ 1.3.12
+==================================
+
+* Fix problems with PNG saving [Michael Natterer]
+* Cleanups of deprecated usages [Sebastian Wilhelmi]
+* Win32 fixes [Tor Lillqvist]
+* Documentation improvements [Matthias Clasen, Havoc Pennington, 
+  Vitaly Tishkov]
+* Frame buffer port fixes [Manish Singh]
+* GtkTextView bug fixes [Havoc Pennington, Chris Phelps]
+* Menu behavior improvements [Kristian Rietveld]
+* Make focus line width configurable, focus color work on 
+  dark themes. [Bill Haneman, Owen Taylor]
+* Add state argument to gtk_paint_focus() [Bill]
+* Added incremental revalidation to tree view, for better apparent speed 
+  [Jonathan Blandford]
+* Remove useless gtk_tree_view_column_cell_event() [Jonathan]
+* Display XIM status in a separate window [HideToshi Tajima]
+* Add GDK_DEBUG=nograbs to disable pointer, keyboard grabs [Jacob Berkman]
+* Add menu of Unicode control characters to GtkEntry, GtkTextView 
+  [Dov Grobgeld, Havoc]
+* Pass key releases along to input methods [Owen]
+* Many bug fixes
+
+Other contributors: Darin Adler, Fabrice Bellet, Chris Blizzard, 
+  Hans Breuer, Anders Carlsson, Damon Chaplin, Murray Cumming, Jeff Franks, 
+  James Henstridge, Tim Janik, Alex Larsson, George Lebl, Kjartan, Maraas, 
+  Sven Neumann, Seth Nickell, Padraig O'Briain, Soeren Sandmann, Manish Singh, 
+  Matt Wilson
+
 Overview of Changes in GTK+ 1.3.11
 ==================================
 
index 32dc7373cd1c8c2cfc1d76de6aebad650773fb45..55fee588cd0fe5680141a628a470a012ccacdde8 100644 (file)
@@ -34,7 +34,7 @@ GLIB_AC_DIVERT_BEFORE_HELP([
 #
 GTK_MAJOR_VERSION=1
 GTK_MINOR_VERSION=3
-GTK_MICRO_VERSION=11
+GTK_MICRO_VERSION=12
 GTK_INTERFACE_AGE=0
 GTK_BINARY_AGE=0
 GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION
@@ -80,9 +80,9 @@ AC_SUBST(GDK_PIXBUF_MICRO)
 AC_SUBST(GDK_PIXBUF_VERSION)
 
 ## Versions of dependencies
-GLIB_REQUIRED_VERSION=1.3.11
-PANGO_REQUIRED_VERSION=0.22
-ATK_REQUIRED_VERSION=0.7
+GLIB_REQUIRED_VERSION=1.3.12
+PANGO_REQUIRED_VERSION=0.23
+ATK_REQUIRED_VERSION=0.8
 
 # For automake.
 VERSION=$GTK_VERSION
@@ -573,7 +573,7 @@ fi
 dnl Now we check to see if our libtool supports shared lib deps
 dnl (in a rather ugly way even)
 if $dynworks; then
-   pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} libtool --config"
+   pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
    pixbuf_deplibs_check=`$pixbuf_libtool_config | \
       grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
       sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
index fdf7ae0e0779d50da9abe62d2d3760a262151689..f1f587f2b9ca675d69dd8ebf71ba2b17b5101b7c 100644 (file)
@@ -31,7 +31,7 @@
 
 /**
  * gdk_colormap_ref:
- * @image: a #GdkColormap
+ * @cmap: a #GdkColormap
  *
  * Deprecated function; use g_object_ref() instead.
  *
@@ -45,11 +45,9 @@ gdk_colormap_ref (GdkColormap *cmap)
 
 /**
  * gdk_colormap_unref:
- * @image: a #GdkColormap
+ * @cmap: a #GdkColormap
  *
  * Deprecated function; use g_object_ref() instead.
- *
- * Return value: the colormap
  **/
 void
 gdk_colormap_unref (GdkColormap *cmap)
index e1033abfb5fc7cafbdacaee39f69c4a3fd9de3fe..0c69e10851e9b9ae1f4584691654a104c3eafdf2 100644 (file)
@@ -141,8 +141,6 @@ gdk_gc_ref (GdkGC *gc)
  * @gc: a #GdkGC
  *
  * Deprecated function; use g_object_unref() instead.
- *
- * Return value: the gc.
  **/
 void
 gdk_gc_unref (GdkGC *gc)
index 7a871ed6c73a9b1f0d821ab05d5a8bd19efde114..28c2b26fefa32019120babb1864c7e807ea2db65 100644 (file)
@@ -2157,7 +2157,7 @@ gdk_window_invalidate_rect   (GdkWindow    *window,
  * @region: a #GdkRegion
  * @child_func: function to use to decide if to recurse to a child,
  *              %NULL means never recurse.
- * @child_func_data: data passed to @child_func
+ * @user_data: data passed to @child_func
  *
  * Adds @region to the update area for @window. The update area is the
  * region that needs to be redrawn, or "dirty region." The call
index 2e2f9f317b71315642e9778114c083cba30c4176..77c04a902020b174938c9f09284fb51e1f02d8aa 100644 (file)
@@ -137,6 +137,8 @@ static gint   gtk_entry_motion_notify        (GtkWidget        *widget,
                                              GdkEventMotion   *event);
 static gint   gtk_entry_key_press            (GtkWidget        *widget,
                                              GdkEventKey      *event);
+static gint   gtk_entry_key_release          (GtkWidget        *widget,
+                                             GdkEventKey      *event);
 static gint   gtk_entry_focus_in             (GtkWidget        *widget,
                                              GdkEventFocus    *event);
 static gint   gtk_entry_focus_out            (GtkWidget        *widget,
@@ -399,6 +401,7 @@ gtk_entry_class_init (GtkEntryClass *class)
   widget_class->button_release_event = gtk_entry_button_release;
   widget_class->motion_notify_event = gtk_entry_motion_notify;
   widget_class->key_press_event = gtk_entry_key_press;
+  widget_class->key_release_event = gtk_entry_key_release;
   widget_class->focus_in_event = gtk_entry_focus_in;
   widget_class->focus_out_event = gtk_entry_focus_out;
   widget_class->grab_focus = gtk_entry_grab_focus;
@@ -1567,6 +1570,24 @@ gtk_entry_key_press (GtkWidget   *widget,
   return FALSE;
 }
 
+static gint
+gtk_entry_key_release (GtkWidget   *widget,
+                      GdkEventKey *event)
+{
+  GtkEntry *entry = GTK_ENTRY (widget);
+
+  if (!entry->editable)
+    return FALSE;
+
+  if (gtk_im_context_filter_keypress (entry->im_context, event))
+    {
+      entry->need_im_reset = TRUE;
+      return TRUE;
+    }
+  else
+    return GTK_WIDGET_CLASS (parent_class)->key_release_event (widget, event);
+}
+
 static gint
 gtk_entry_focus_in (GtkWidget     *widget,
                    GdkEventFocus *event)
index 8fe5a4cd7aebb32def4d599da137803cb3884e72..e9a69d7e03748a1728d1ef325b74583427f551be 100644 (file)
@@ -1116,9 +1116,20 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
   int n_compose = 0;
   int i;
 
-  /* FIXME? 14755 says you have to commit the char on release of the shift/control
-   * keys. But instead we wait for the user to type another char, or to lose focus.
-   */
+  if (event->type == GDK_KEY_RELEASE)
+    {
+      if (context_simple->in_hex_sequence &&
+         (event->keyval == GDK_Control_L || event->keyval == GDK_Control_R ||
+          event->keyval == GDK_Shift_L || event->keyval == GDK_Shift_R))
+       {
+         gtk_im_context_simple_commit_char (context, context_simple->tentative_match);
+         context_simple->compose_buffer[0] = 0;
+
+         return TRUE;
+       }
+      else
+       return FALSE;
+    }
   
   /* Ignore modifier key presses
    */
index c04aa81ab9a0a8a43a40a652e1ad5f27ffd9513b..d46738826a7755e4de1398f5965fecfe9e192471 100644 (file)
@@ -422,6 +422,7 @@ gtk_plug_realize (GtkWidget *widget)
   attributes.event_mask = gtk_widget_get_events (widget);
   attributes.event_mask |= (GDK_EXPOSURE_MASK |
                            GDK_KEY_PRESS_MASK |
+                           GDK_KEY_RELEASE_MASK |
                            GDK_ENTER_NOTIFY_MASK |
                            GDK_LEAVE_NOTIFY_MASK |
                            GDK_FOCUS_CHANGE_MASK |
index b62db65bb1fa111f48565d48a9c394bac2f451ee..4bc0940e58ab003a036433e82422f11cf951dacd 100644 (file)
@@ -126,7 +126,7 @@ GtkStyle* gtk_rc_get_style_by_paths     (GtkSettings *settings,
 
 gboolean gtk_rc_reparse_all_for_settings (GtkSettings *settings,
                                          gboolean     force_load);
-gchar*   gtk_rc_find_pixmap_in_path (GtkSettings  *context,
+gchar*   gtk_rc_find_pixmap_in_path (GtkSettings  *settings,
                                     GScanner     *scanner,
                                     const gchar  *pixmap_file);
 
index e1e055f43468e37390da08c405095a7b28ae69ec..8297329f660a1841a412716d605b04ea21e1a67f 100644 (file)
@@ -3412,7 +3412,23 @@ gtk_text_view_key_press_event (GtkWidget *widget, GdkEventKey *event)
 static gint
 gtk_text_view_key_release_event (GtkWidget *widget, GdkEventKey *event)
 {
-  return FALSE;
+  GtkTextView *text_view = GTK_TEXT_VIEW (widget);
+  GtkTextMark *insert;
+  GtkTextIter iter;
+
+  if (text_view->layout == NULL || get_buffer (text_view) == NULL)
+    return FALSE;
+      
+  insert = gtk_text_buffer_get_insert (get_buffer (text_view));
+  gtk_text_buffer_get_iter_at_mark (get_buffer (text_view), &iter, insert);
+  if (gtk_text_iter_can_insert (&iter, text_view->editable) &&
+      gtk_im_context_filter_keypress (text_view->im_context, event))
+    {
+      text_view->need_im_reset = TRUE;
+      return TRUE;
+    }
+  else
+    return GTK_WIDGET_CLASS (parent_class)->key_release_event (widget, event);
 }
 
 static gint
index 2f3229081a71c003c3dfef5ea26c28a51370654a..10f6241f1a90233d4ad231bc446ec1cc4864291f 100644 (file)
@@ -6167,9 +6167,9 @@ gtk_widget_style_get (GtkWidget   *widget,
 /**
  * gtk_widget_path:
  * @widget: a #GtkWidget
- * @path_length_p: location to store length of the path, or %NULL
- * @path_p: location to store allocated path string, or %NULL 
- * @path_reversed_p: location to store allocated reverse path string, or %NULL
+ * @path_length: location to store length of the path, or %NULL
+ * @path: location to store allocated path string, or %NULL 
+ * @path_reversed: location to store allocated reverse path string, or %NULL
  *
  * Obtains the full path to @widget. The path is simply the name of a
  * widget and all its parents in the container hierarchy, separated by
@@ -6187,12 +6187,12 @@ gtk_widget_style_get (GtkWidget   *widget,
  **/
 void
 gtk_widget_path (GtkWidget *widget,
-                guint     *path_length_p,
-                gchar    **path_p,
-                gchar    **path_reversed_p)
+                guint     *path_length,
+                gchar    **path,
+                gchar    **path_reversed)
 {
   static gchar *rev_path = NULL;
-  static guint  path_len = 0;
+  static guint tmp_path_len = 0;
   guint len;
   
   g_return_if_fail (GTK_IS_WIDGET (widget));
@@ -6207,10 +6207,10 @@ gtk_widget_path (GtkWidget *widget,
       
       string = gtk_widget_get_name (widget);
       l = strlen (string);
-      while (path_len <= len + l + 1)
+      while (tmp_path_len <= len + l + 1)
        {
-         path_len += INIT_PATH_SIZE;
-         rev_path = g_realloc (rev_path, path_len);
+         tmp_path_len += INIT_PATH_SIZE;
+         rev_path = g_realloc (rev_path, tmp_path_len);
        }
       s = string + l - 1;
       d = rev_path + len;
@@ -6227,23 +6227,23 @@ gtk_widget_path (GtkWidget *widget,
     }
   while (widget);
   
-  if (path_length_p)
-    *path_length_p = len - 1;
-  if (path_reversed_p)
-    *path_reversed_p = g_strdup (rev_path);
-  if (path_p)
+  if (path_length)
+    *path_length = len - 1;
+  if (path_reversed)
+    *path_reversed = g_strdup (rev_path);
+  if (path)
     {
-      *path_p = g_strdup (rev_path);
-      g_strreverse (*path_p);
+      *path = g_strdup (rev_path);
+      g_strreverse (*path);
     }
 }
 
 /**
  * gtk_widget_class_path:
  * @widget: a #GtkWidget
- * @path_length_p: location to store the length of the class path, or %NULL
- * @path_p: location to store the class path as an allocated string, or %NULL
- * @path_reversed_p: location to store the reverse class path as an allocated string, or %NULL
+ * @path_length: location to store the length of the class path, or %NULL
+ * @path: location to store the class path as an allocated string, or %NULL
+ * @path_reversed: location to store the reverse class path as an allocated string, or %NULL
  *
  * Same as gtk_widget_path(), but always uses the name of a widget's type,
  * never uses a custom name set with gtk_widget_set_name().
@@ -6251,12 +6251,12 @@ gtk_widget_path (GtkWidget *widget,
  **/
 void
 gtk_widget_class_path (GtkWidget *widget,
-                      guint     *path_length_p,
-                      gchar    **path_p,
-                      gchar    **path_reversed_p)
+                      guint     *path_length,
+                      gchar    **path,
+                      gchar    **path_reversed)
 {
   static gchar *rev_path = NULL;
-  static guint  path_len = 0;
+  static guint tmp_path_len = 0;
   guint len;
   
   g_return_if_fail (GTK_IS_WIDGET (widget));
@@ -6271,10 +6271,10 @@ gtk_widget_class_path (GtkWidget *widget,
       
       string = gtk_type_name (GTK_WIDGET_TYPE (widget));
       l = strlen (string);
-      while (path_len <= len + l + 1)
+      while (tmp_path_len <= len + l + 1)
        {
-         path_len += INIT_PATH_SIZE;
-         rev_path = g_realloc (rev_path, path_len);
+         tmp_path_len += INIT_PATH_SIZE;
+         rev_path = g_realloc (rev_path, tmp_path_len);
        }
       s = string + l - 1;
       d = rev_path + len;
@@ -6291,14 +6291,14 @@ gtk_widget_class_path (GtkWidget *widget,
     }
   while (widget);
   
-  if (path_length_p)
-    *path_length_p = len - 1;
-  if (path_reversed_p)
-    *path_reversed_p = g_strdup (rev_path);
-  if (path_p)
+  if (path_length)
+    *path_length = len - 1;
+  if (path_reversed)
+    *path_reversed = g_strdup (rev_path);
+  if (path)
     {
-      *path_p = g_strdup (rev_path);
-      g_strreverse (*path_p);
+      *path = g_strdup (rev_path);
+      g_strreverse (*path);
     }
 }
 
index 6c165a946a428a77eb9779c0326ebfa9d806a8a2..a518a30cb9975068a61fff05baef6248830df864 100644 (file)
@@ -3222,6 +3222,7 @@ gtk_window_realize (GtkWidget *widget)
   attributes.event_mask = gtk_widget_get_events (widget);
   attributes.event_mask |= (GDK_EXPOSURE_MASK |
                            GDK_KEY_PRESS_MASK |
+                           GDK_KEY_RELEASE_MASK |
                            GDK_ENTER_NOTIFY_MASK |
                            GDK_LEAVE_NOTIFY_MASK |
                            GDK_FOCUS_CHANGE_MASK |
index 9b0240148f0cdb84be034f42478390de322f65d8..ec7565aeefd5dfcea4c6e30b0ff15b425e746f91 100644 (file)
@@ -339,7 +339,7 @@ gtk_im_context_xim_filter_keypress (GtkIMContext *context,
   if (!ic)
     return FALSE;
 
-  xevent.type = KeyPress;
+  xevent.type = (event->type == GDK_KEY_PRESS) ? KeyPress : KeyRelease;
   xevent.serial = 0;           /* hope it doesn't matter */
   xevent.send_event = event->send_event;
   xevent.display = GDK_DRAWABLE_XDISPLAY (event->window);