+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.
+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.
+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.
+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.
+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.
+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.
+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.
+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
==================================
#
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
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
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/'`
/**
* gdk_colormap_ref:
- * @image: a #GdkColormap
+ * @cmap: a #GdkColormap
*
* Deprecated function; use g_object_ref() instead.
*
/**
* 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)
* @gc: a #GdkGC
*
* Deprecated function; use g_object_unref() instead.
- *
- * Return value: the gc.
**/
void
gdk_gc_unref (GdkGC *gc)
* @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
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,
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;
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)
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
*/
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 |
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);
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
/**
* 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
**/
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));
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;
}
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().
**/
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));
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;
}
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);
}
}
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 |
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);