Package: gtk+2.0 / 2.24.32-3

Metadata

Package Version Patches format
gtk+2.0 2.24.32-3 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
configure Move all includes to the first argument of AC_T.patch | (download)

configure.ac | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 configure: move all includes to the first argument of ac_try_link

Putting includes in the second argument of AC_TRY_LINK is not safe. If
a header having inline functions is included inside the main function,
it becomes a nested function. This is not supported by clang.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=792720
gtk queryimmodules.c Make the output deterministic.patch | (download)

gtk/queryimmodules.c | 10 8 + 2 - 0 !
1 file changed, 8 insertions(+), 2 deletions(-)

 gtk/queryimmodules.c: make the output deterministic.

Whilst working on the Reproducible Builds effort [0], we noticed that
queryimmodules generates non-reproducible output as it iterates over the
filesystem without sorting.

Patch attached.

 [0] https://reproducible-builds.org/

Signed-off-by: Chris Lamb <lamby@debian.org>

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=786528
Bug-Debian: https://bugs.debian.org/872729
Revert Fix abicheck.patch | (download)

gtk/abicheck.sh | 2 1 + 1 - 0 !
gtk/gtk.symbols | 9 0 + 9 - 0 !
2 files changed, 1 insertion(+), 10 deletions(-)

 revert "fix abicheck"

This reverts commit 331877fe367f9c4e9472f5a211499b4225ef2513.

The newly visible symbols were the result of a bug in the Python port of
glib-genmarshal, which was fixed in GLib 2.54.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=793057
calendar Use the new OB format if supported.patch | (download)

gtk/gtkcalendar.c | 19 17 + 2 - 0 !
1 file changed, 17 insertions(+), 2 deletions(-)

 calendar: use the new "%ob" format if supported

Due to the recent changes introduced in glibc 2.27 "%OB" is the
correct format to obtain a month name as used in the calendar
header.  The same rule has been working in BSD family (including
OS X) since 1990s.  This simple hack checks whether "%OB" is supported
at runtime and uses it if it is, falls back to the old "%B" otherwise.

Bug: #9

gtkprintbackendcups.c fix n at end of a debugging note.patch | (download)

modules/printbackends/cups/gtkprintbackendcups.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 gtkprintbackendcups.c: fix \n at end of a debugging note

GDK W32 Always process all available messages.patch | (download)

gdk/win32/gdkevents-win32.c | 3 1 + 2 - 0 !
1 file changed, 1 insertion(+), 2 deletions(-)

 gdk w32: always process all available messages

The GLib main loop blocks on MsgWaitForMultipleObjectsEx to
determine if there are any incoming messages while also allowing
for background tasks to run. If all available messages are not
processed after MsgWaitForMultipleObjectsEx has signaled that
there are available, CPU usage will skyrocket.

From my limited understanding (by inspection of profiling
under Visual Studio):
Key is pressed - MsgWaitForMultipleObjectsEx unblocks, and
sends message to GDK's event handler. Some event is now queued.

g_poll unblocks, calls the g_event_dispatch which finally
resolves to gdk_event_dispatch. This then calls
_gdk_win32_display_queue_events, but since a message is already
queued, it fails to call PeekMessage and returns immediately.

At the next iteration, g_poll again calls MsgWaitForMultipleObjectsEx
which queues yet another event and returns almost immediately, since
there are events available which haven't been processed by PeekMessage.

The dispatch function is then called and the process repeats.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=771568
GDK W32 Ignore autorepeated key presses on modifier keys.patch | (download)

gdk/win32/gdkevents-win32.c | 8 8 + 0 - 0 !
1 file changed, 8 insertions(+)

 gdk w32: ignore autorepeated key presses on modifier keys

The X11 backend does not send autorepeated messages for modifier keys,
and doing so prevents motion compression from working.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=771568
Make gtk 2.24.31 compatible with the changed API of glib .patch | (download)

gtk/gtk.symbols | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 make gtk+-2.24.31 compatible with the changed api of glib-2.54.3

glib-2.54.3 changed API, compared to glib-2.52.3 and gtk+-2.24.31's
 expectations.  This commit fixes the resulting issue in a backwards
 compatible way.

See-Also: https://bugs.gentoo.org/650536
m4macros Set a serial number.patch | (download)

m4macros/gtk-2.0.m4 | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

 m4macros: set a serial number

When a project has a bundled copy of our macro included in tarball
source releases, typically in a m4/ or aclocal/ directory, aclocal
uses the serial number to determine whether the system copy in
/usr/share/aclocal is newer or older than the bundled copy. Without
a serial number, the bundled copy will always be used and will not
be overwritten, even if it is outdated.

Signed-off-by: Simon McVittie <smcv@debian.org>
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895018
gdk do not deactivate surface on keyboard grabs.patch | (download)

gdk/x11/gdkevents-x11.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 gdk: do not deactivate surface on keyboard grabs

When pressing e.g. a window manager shortcut, which acquires keyboard grab,
Xorg would send FocusOut NotifyGrab then FocusIn NotifyUngrab.  Currently
gdk would then deactivate the current surface, which makes accessibility
screen readers think that we have switched to a non-accessible application
and came back again, and thus reannounce the application frame etc. which we
don't want when e.g. just raising volume.

And actually, receiving FocusOut NotifyGrab does not mean losing the
X focus, it only means an application aqcuired a grab, i.e. it is
temporarily stealing keyboard events. On Wayland, this isn't even
notified actually.

This commit makes gdk only deactivate surfaces when there was an actual
focus switch to another window, as determined by has_focus_window (instead
of just has_focus), which happens either normally through FocusOut with
NotifyNormal, or during grabs through FocusOut with NotifyWhileGrabbed.

Bug: #85

Fix incorrect optimization in find_builtin_icon.patch | (download)

gtk/gtkicontheme.c | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 fix incorrect optimization in find_builtin_icon().

When we found an icon with exactly the requested size, we'd stop
searching immediately (good), but we'd neglect to set the returned
Fix compiler warnings with GCC 8.1.patch | (download)

gtk/gtkfilechooserbutton.h | 14 7 + 7 - 0 !
gtk/gtkstatusicon.h | 4 2 + 2 - 0 !
2 files changed, 9 insertions(+), 9 deletions(-)

 fix compiler warnings with gcc 8.1.
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

GCC 8.1 added some new warnings, including warning about parentheses
with no effect in variable declarations.  GTK2 headers have a few of
these, which produce a lot of warnings in projects using GTK2.

The warnings look like:
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:59:8: warning:
unnecessary parentheses in declaration of ‘__gtk_reserved1’ [-Wparentheses]
   void (*__gtk_reserved1);
        ^

Removing the parentheses is harmless and fixes the warnings.

gdk activate window on keyboard grabs.patch | (download)

gdk/x11/gdkevents-x11.c | 20 10 + 10 - 0 !
1 file changed, 10 insertions(+), 10 deletions(-)

 gdk: activate window on keyboard grabs

In 01455399e83a ("gdk: do not deactivate surface on keyboard grabs"), we
made gdk avoid deactivating surfaces when another application takes a
keyboard grab, by using has_focus_window instead of has_focus. That however
broke activating surfaces when the gdk application acquired a grab itself,
in which case has_focus_window is false but has_focus is true.

We thus actually need to use both: surfaces should be activated either
because we have normal keyboard focus, or because we grabbed the keyboard.

This also renames HAS_FOCUS to APPEARS_FOCUSED to better reflect its
role.

Bug: #85

FileChooserDefault Avoid printf ing a NULL char.patch | (download)

gtk/gtkfilechooserdefault.c | 9 8 + 1 - 0 !
1 file changed, 8 insertions(+), 1 deletion(-)

 filechooserdefault: avoid printf()ing a null char*

If the name of the bookmark is NULL, using it with the printf %s format
specifier is undefined behaviour per the C Standard. Besides, it would
result in a completely unhelpful tooltip even if it were well-defined.

We already have an else case for when nothing is selected, which avoids
trying to use the name, so ensure we go there if it's NULL or empty too.

Bug: https://gitlab.gnome.org/GNOME/gtk/issues/1169
modules other gail gailtreeview.c Fix Waddress warning.patch | (download)

modules/other/gail/gailtreeview.c | 5 1 + 4 - 0 !
1 file changed, 1 insertion(+), 4 deletions(-)

 modules/other/gail/gailtreeview.c: fix -waddress warning

modules other gail gailtreeview.c Fix Wunused but set var.patch | (download)

modules/other/gail/gailtreeview.c | 6 0 + 6 - 0 !
1 file changed, 6 deletions(-)

 modules/other/gail/gailtreeview.c: fix -wunused-but-set-variable
 warning

modules other gail gailtreeview.c Incorporate review sugg.patch | (download)

modules/other/gail/gailtreeview.c | 15 10 + 5 - 0 !
1 file changed, 10 insertions(+), 5 deletions(-)

 modules/other/gail/gailtreeview.c: incorporate review suggestions

Incorporate review suggestions by Emmanuele Bassi.

Consistently use g_stat and GStatBuf.patch | (download)

demos/pixbuf-init.c | 8 3 + 5 - 0 !
gtk/gtkfilesel.c | 30 15 + 15 - 0 !
gtk/gtkiconcache.c | 4 2 + 2 - 0 !
gtk/gtkicontheme.c | 6 3 + 3 - 0 !
gtk/gtkrc.c | 4 2 + 2 - 0 !
gtk/gtkrecentmanager.c | 4 2 + 2 - 0 !
gtk/tests/pixbuf-init.c | 8 3 + 5 - 0 !
gtk/updateiconcache.c | 4 2 + 2 - 0 !
tests/testfilechooser.c | 10 5 + 5 - 0 !
tests/testgtk.c | 6 3 + 3 - 0 !
tests/testtext.c | 6 3 + 3 - 0 !
11 files changed, 43 insertions(+), 47 deletions(-)

 consistently use g_stat and gstatbuf

Replace "stat struct" with "GStatBuf" and "stat" with "g_stat" where
appropriate to fix cross-platform issues, specifically on Windows.

Code should be identical on *nix but fixes some serious issues
on Windows:
- Field widths of "struct stat" are not constant on Windows.
  If the stat function does not match the stat struct used
  it will cause overwrites and undefined behavior
- The Windows stat function needs a properly encoded filename.
  In many places we pass an UTF-8 encoded value which breaks as soon
  as non-ASCII characters are involved.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=787772
001_static linking dont query immodules.patch | (download)

configure.ac | 1 1 + 0 - 0 !
modules/input/Makefile.am | 17 16 + 1 - 0 !
2 files changed, 17 insertions(+), 1 deletion(-)

 don't query immodules for the local tree under --disable-shared

[mbiebl: follow upstream and use immodules.cache instead of gtk.immodules]

Bug: http://bugzilla.gnome.org/show_bug.cgi?id=346531
002_static linking dont build perf.patch | (download)

Makefile.am | 7 6 + 1 - 0 !
1 file changed, 6 insertions(+), 1 deletion(-)

 don't build perf measurement tools in static builds

Bug: http://bugzilla.gnome.org/show_bug.cgi?id=346559

003_gdk.pc_privates.patch | (download)

configure.ac | 14 9 + 5 - 0 !
gdk-2.0.pc.in | 1 1 + 0 - 0 !
2 files changed, 10 insertions(+), 5 deletions(-)

 generate correct requires.private for gdk-2.0.pc

This contains all necessary dependencies for static linking, moving them
out of Requires.

Based on a GTK+ 3 commit by Matthias Clasen.

004_gtk+ ximian gtk2 filesel navbutton 5.patch | (download)

gtk/gtkfilesel.c | 291 264 + 27 - 0 !
gtk/stock-icons/ximian-icons.h | 825 825 + 0 - 0 !
2 files changed, 1089 insertions(+), 27 deletions(-)

 ximian patch to improve the gtkfilesel ui

Requested by Ross Burton in 2003.

TODO: What does this patch do and why do we have it?

[Jonathan Brandmeyer: Use ~/Desktop instead of ~/.gnome2-desktop]

005_support_disabling_x11_extensions.patch | (download)

configure.ac | 23 19 + 4 - 0 !
1 file changed, 19 insertions(+), 4 deletions(-)

 support disabling x11 extensions

We want this in Debian as we build GTK+ with extensions enabled for the
normal build, but disable them for the special build that will be used
in the graphical installer, because it needs to be as small as possible.

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=612918
015_default fallback icon theme.patch | (download)

gtk/gtksettings.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 set the default gtk-fallback-icon-theme

[jbicha: Use Adwaita instead of gnome to match gtk3]

Similar to GTK+ 3 commit 2488b954f24c01f99995ff22898628c57b4aedc1 in
3.13.2.

Bug-Debian: https://bugs.debian.org/421353

022_disable viqr im for vi locale.patch | (download)

modules/input/imviqr.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 do not use viqr input method for vi locale by default
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

In the Vietnamese Quoted-Readable input method, punctuation following a
base letter is converted into diacritical marks, for example a( → ă.
(See <https://en.wikipedia.org/wiki/Vietnamese_Quoted-Readable>.)
A 2008 bug report in Ubuntu argued that this is a problematic default,
particularly when typing passwords, where the effect of the punctuation
is non-obvious.

According to the bug reporter, VIQR is popular with Vietnamese users
living elsewhere in the world, where Vietnamese keyboards are unlikely
to be readily available, but is not a popular choice within Vietnam,
where the Telex or VNI input modes are preferred.

[smcv: Add a summary of the Ubuntu bug]
Bug-Debian: https://bugs.debian.org/895043
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gtk+2.0/+bug/191451
042_treeview_single focus.patch | (download)

gtk/gtktreeview.c | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

 don't select the focused item for gtk_selection_single type
 treeviews

This allows the fix in 040_filechooser_single-click.patch to work.

044_tracker_fts.patch | (download)

gtk/gtksearchenginetracker.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 enable tracker full text search

Tracker in Debian is compiled with FTS support, so we make use of that in
GTK3's file selector dialog.
This way files can be found by their content and not only their file name.

060_ignore random icons.patch | (download)

gtk/updateiconcache.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 don't list images from unknown directories in icon cache

After GTK+ 2.12.0, gtk-update-icon-cache fails if there is a PNG file
placed directly in /usr/share/icons/hicolor (not in a correct
subdirectory like 48x48/apps).

061_use_pdf_as_default_printing_standard.patch | (download)

modules/printbackends/lpr/gtkprintbackendlpr.c | 4 3 + 1 - 0 !
1 file changed, 3 insertions(+), 1 deletion(-)

 use pdf as default printing standard

Original author unknown. https://wiki.ubuntu.com/PDFasStandardPrintJobFormat

098_multiarch_module_path.patch | (download)

gtk/gtkmodules.c | 13 8 + 5 - 0 !
1 file changed, 8 insertions(+), 5 deletions(-)

 fall back to the hard-coded pre-multiarch module directory

Include /usr/lib/gtk-2.0 in the path as a fallback when building for
multiarch, to maintain compatibility with packages installing modules to
the old directories.

As of April 2018 this is still required by:
- gtk2-engines-cleanice
- gtk2-engines-magicchicken
- gtk2-engines-moblin
- gtk2-engines-nodoka
- gtk2-engines-wonderland
- sugar-artwork-0.88 (no longer in unstable)
- tamil-gtk2im

The equivalent patch in GTK+ 3 was removed in 3.18.0-1.