From 0bb7d5dd21151639a1fcbd90387713934560b503 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 25 Jan 2009 03:42:17 +0000 Subject: [PATCH] make gdm greeter work again --- gtk2.spec | 8 ++++- imcontext-reset.patch | 70 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 imcontext-reset.patch diff --git a/gtk2.spec b/gtk2.spec index 66525af..9184007 100644 --- a/gtk2.spec +++ b/gtk2.spec @@ -16,7 +16,7 @@ Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X Name: gtk2 Version: %{base_version} -Release: 2%{?dist} +Release: 3%{?dist} License: LGPLv2+ Group: System Environment/Libraries Source: http://download.gnome.org/sources/gtk+/2.15/gtk+-%{version}.tar.bz2 @@ -32,6 +32,8 @@ Patch2: workaround.patch Patch3: default_printer.patch # fixed upstream Patch4: activatable-toolitem.patch +# fixed upstream +Patch5: imcontext-reset.patch BuildRequires: atk-devel >= %{atk_version} BuildRequires: pango-devel >= %{pango_version} @@ -120,6 +122,7 @@ GTK+ widget toolkit. %patch2 -p1 -b .workaround %patch3 -p0 -b .default-printer %patch4 -p0 -b .activatable-toolitem +%patch5 -p0 -b .imcontext-reset %build libtoolize --force --copy @@ -297,6 +300,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/gtk-2.0 %changelog +* Sat Jan 24 2009 Matthias Clasen - 2.15.1-3 +- Avoid triggering an assertion that makes the gdm greeter nonfunctional + * Sat Jan 24 2009 Matthias Clasen - 2.15.1-2 - Fix blank toolbuttons in the evolution composer diff --git a/imcontext-reset.patch b/imcontext-reset.patch new file mode 100644 index 0000000..c995d8a --- /dev/null +++ b/imcontext-reset.patch @@ -0,0 +1,70 @@ +Index: gtk/gtktextview.c +=================================================================== +--- gtk/gtktextview.c (revision 22213) ++++ gtk/gtktextview.c (working copy) +@@ -2076,8 +2076,7 @@ + */ + area.width = 0; + +- if (GTK_WIDGET_REALIZED (text_view)) +- gtk_im_context_set_cursor_location (text_view->im_context, &area); ++ gtk_im_context_set_cursor_location (text_view->im_context, &area); + } + + static gboolean +@@ -3840,7 +3839,7 @@ + } + + /* Ensure updating the spot location. */ +- gtk_text_view_update_im_spot_location(text_view); ++ gtk_text_view_update_im_spot_location (text_view); + } + + static void +Index: gtk/gtkimmulticontext.c +=================================================================== +--- gtk/gtkimmulticontext.c (revision 22213) ++++ gtk/gtkimmulticontext.c (working copy) +@@ -226,7 +226,7 @@ + if (!multicontext->slave) + { + GtkIMContext *slave; +- ++ + g_free (multicontext->context_id); + + if (multicontext->priv->context_id) +@@ -258,18 +258,14 @@ + GdkWindow *window) + { + GtkIMMulticontext *multicontext = GTK_IM_MULTICONTEXT (context); +- GtkIMContext *slave; + GdkScreen *screen; + GtkSettings *settings; + gboolean connected; + + multicontext->priv->client_window = window; + +- slave = gtk_im_multicontext_get_slave (multicontext); ++ gtk_im_multicontext_set_slave (multicontext, NULL, FALSE); + +- if (slave) +- gtk_im_context_set_client_window (slave, window); +- + if (window == NULL) + return; + +Index: gtk/gtkimmodule.c +=================================================================== +--- gtk/gtkimmodule.c (revision 22213) ++++ gtk/gtkimmodule.c (working copy) +@@ -671,9 +671,6 @@ + GdkScreen *screen; + GtkSettings *settings; + +- /* assertion to make sure all of the unexpected invocation is really gone. */ +- g_return_val_if_fail (client_window != NULL, SIMPLE_ID); +- + if (!contexts_hash) + gtk_im_module_initialize (); +