Hello community, here is the log from the commit of package gtk2 for openSUSE:Factory checked in at Tue Oct 6 04:59:01 CEST 2009. -------- --- GNOME/gtk2/gtk2.changes 2009-10-03 01:34:21.000000000 +0200 +++ gtk2/gtk2.changes 2009-10-05 23:32:55.000000000 +0200 @@ -1,0 +2,14 @@ +Mon Oct 5 23:15:24 CEST 2009 - vuntz@opensuse.org + +- Add gtk2-git-c5d08611.patch: this groups the various code changes + in GTK+ git since 2.18.1. Those are all important fixes: + + Move SIGPIPE suppression to gtk_init and document it, instead + of having it in the lpr backend + + Call XReconfigureWMWindow with proper screen (code error with + compiler warning) + + Fix DirectFB backend compilation + + Plug a memory leak + + bgo#597386: Cannot click buttons more than once + + bgo#588059: Fix notification icon not always visible + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- gtk2-git-c5d08611.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gtk2.spec ++++++ --- /var/tmp/diff_new_pack.AGmAu9/_old 2009-10-06 04:58:37.000000000 +0200 +++ /var/tmp/diff_new_pack.AGmAu9/_new 2009-10-06 04:58:37.000000000 +0200 @@ -39,7 +39,7 @@ # PreReq: /usr/bin/touch /bin/rm /bin/rmdir Version: 2.18.1 -Release: 1 +Release: 2 # FIXME: when updating to next version, check whether we can remove the workaround for bgo#596977 below (removing -fomit-frame-pointer) Summary: Library for Creation of Graphical User Interfaces (version 2) Source: ftp://ftp.gnome.org/pub/GNOME/sources/%{_name}/2.12/%{_name}-%{version}.tar.bz2 @@ -60,6 +60,8 @@ Patch24: gtk2-bnc130159-bgo319483-async-selection-in-gtk-font-selection.diff # PATCH-FIX-UPSTREAM gtk2-build-fix.patch bgo597026 vuntz@novell.com -- Add missing include Patch25: gtk2-build-fix.patch +# PATCH-FIX-UPSTREAM gtk2-git-c5d08611.patch vuntz@opensuse.org -- Various fixes taken from git (this is nearly the diff between 2.18.1 and what will be 2.18.2) +Patch26: gtk2-git-c5d08611.patch # Patches taken from upstream or slated to go upstream. We can expect these to become obsolete # in future releases. # Please don't delete this comment even if this section is empty -- "# empty" should @@ -164,6 +166,7 @@ %patch23 -p1 %patch24 -p1 %patch25 -p1 +%patch26 -p1 %patch53 # gnome-patch-translation-update ++++++ gtk2-git-c5d08611.patch ++++++ diff --git a/README b/README index bc2f857..84d6329 100644 --- a/README +++ b/README @@ -44,6 +44,11 @@ Release notes for 2.18 GDK_NATIVE_WINDOWS makes GDK create a native X11 window for each GDK window, which might make problematic applications work better. +* GTK+ calls signal (SIGPIPE, SIG_IGN) during initialization, to ignore + SIGPIPE signals, since these are almost never wanted in graphical + applications. If you do need to handle SIGPIPE for some reason, reset + the handler after gtk_init(), but notice that other libraries (e.g. + libdbus or gvfs) might do similar things. Release notes for 2.16 ====================== diff --git a/gdk/directfb/gdkwindow-directfb.c b/gdk/directfb/gdkwindow-directfb.c index c0ff8e1..30ec834 100644 --- a/gdk/directfb/gdkwindow-directfb.c +++ b/gdk/directfb/gdkwindow-directfb.c @@ -2077,7 +2077,8 @@ GdkWindow * _gdk_windowing_window_at_pointer (GdkDisplay *display, gint *win_x, gint *win_y, - GdkModifierType *mask) + GdkModifierType *mask, + gboolean get_toplevel) { GdkWindow *retval; gint wx, wy; @@ -2137,7 +2138,8 @@ _gdk_windowing_get_pointer (GdkDisplay *display, gdk_directfb_window_get_pointer (_gdk_windowing_window_at_pointer (display, NULL, NULL, - NULL), + NULL, + FALSE), x, y, mask); } diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 7f3572f..2bb5551 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -2624,6 +2624,8 @@ gdk_window_end_implicit_paint (GdkWindow *window) /* Reset clip region of the cached GdkGC */ gdk_gc_set_clip_region (tmp_gc, NULL); } + else + gdk_region_destroy (paint->region); g_object_unref (paint->pixmap); g_free (paint); diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index f98290b..a8dd83b 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -1726,7 +1726,7 @@ gdk_window_x11_restack_toplevel (GdkWindow *window, changes.stack_mode = above ? Above : Below; XReconfigureWMWindow (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window), - GDK_WINDOW_SCREEN (window), + gdk_screen_get_number (GDK_WINDOW_SCREEN (window)), CWStackMode | CWSibling, &changes); } @@ -3252,12 +3252,15 @@ _gdk_windowing_window_at_pointer (GdkDisplay *display, while (xwindow) { xwindow_last = xwindow; - if (get_toplevel && - (window = gdk_window_lookup_for_display (display, xwindow)) != NULL && - GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN) - break; XQueryPointer (xdisplay, xwindow, &root, &xwindow, &rootx, &rooty, &winx, &winy, &xmask); + if (get_toplevel && + (window = gdk_window_lookup_for_display (display, xwindow_last)) != NULL && + GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN) + { + xwindow = xwindow_last; + break; + } } } else @@ -3315,16 +3318,16 @@ _gdk_windowing_window_at_pointer (GdkDisplay *display, while (xwindow) { xwindow_last = xwindow; - if (get_toplevel && - (window = gdk_window_lookup_for_display (display, xwindow)) != NULL && - GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN) - break; gdk_error_trap_push (); XQueryPointer (xdisplay, xwindow, &root, &xwindow, &rootx, &rooty, &winx, &winy, &xmask); gdk_flush (); if (gdk_error_trap_pop ()) break; + if (get_toplevel && + (window = gdk_window_lookup_for_display (display, xwindow_last)) != NULL && + GDK_WINDOW_TYPE (window) != GDK_WINDOW_FOREIGN) + break; } } diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index e47e1be..2bbc96d 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -686,6 +686,8 @@ do_post_parse_initialization (int *argc, gettext_initialization (); + signal (SIGPIPE, SIG_IGN); + if (g_fatal_warnings) { GLogLevelFlags fatal_mask; @@ -985,6 +987,15 @@ gtk_init_check (int *argc, * the GUI for some reason. If you want your program to fall back to a * textual interface you want to call gtk_init_check() instead. * </para></note> + * + * <note><para> + * Since 2.18, GTK+ calls <literal>signal (SIGPIPE, SIG_IGN)</literal> + * during initialization, to ignore SIGPIPE signals, since these are + * almost never wanted in graphical applications. If you do need to + * handle SIGPIPE for some reason, reset the handler after gtk_init(), + * but notice that other libraries (e.g. libdbus or gvfs) might do + * similar things. + * </para></note> **/ void gtk_init (int *argc, char ***argv) diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index c0815a9..36c5a65 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -5648,6 +5648,13 @@ gtk_window_compute_configure_request_size (GtkWindow *window, if (info->resize_height > 0) *height = info->resize_height; } + + /* Don't ever request zero width or height, its not supported by + gdk. The size allocation code will round it to 1 anyway but if + we do it then the value returned from this function will is + not comparable to the size allocation read from the GtkWindow. */ + *width = MAX (*width, 1); + *height = MAX (*height, 1); } static GtkWindowPosition diff --git a/modules/printbackends/lpr/gtkprintbackendlpr.c b/modules/printbackends/lpr/gtkprintbackendlpr.c index eeaaa99..72d9c33 100644 --- a/modules/printbackends/lpr/gtkprintbackendlpr.c +++ b/modules/printbackends/lpr/gtkprintbackendlpr.c @@ -278,8 +278,6 @@ lpr_write (GIOChannel *source, { gsize bytes_written; - signal (SIGPIPE, SIG_IGN); - g_io_channel_write_chars (ps->in, buf, bytes_read, ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org