commit 89761b7271c7b4dd21de190373a853f3449d4635
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Dec 10 15:34:40 2015 -0500

    2.28.29

 NEWS         | 20 ++++++++++++++++++++
 configure.ac |  4 ++--
 2 files changed, 22 insertions(+), 2 deletions(-)

commit 3b65a6a42ed2d4d2ecdcec94163ce0b748e707fc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Oct 25 14:09:03 2015 -0400

    Translate GDK_KEY_KP_Decimal according to locale

    It makes sense that you should be able to type numbers that are
    correctly formatted and parsable according to the current locale,
    using just the keypad. This patch makes it so by translating
    GDK_KEY_KP_Decimal to the decimal separator for the current locale,
    instead of hardcoding a '.'.

    https://bugzilla.gnome.org/show_bug.cgi?id=756751

 gdk/gdkkeyuni.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit 4ba1fbfdb15fdf31643b7c88ca457b0eb71a0c00
Author: David Lechner <david@lechnology.com>
Date:   Fri Oct 2 13:45:00 2015 +0000

    Bug 753992 - im-quartz discard_preedit segmentation fault

    Replace checking if the NSView is really a GdkWindow, which will crash
    in the likely event it's not a GObject, with ensuring that the parent
    GdkWindow is really a GdkWindowQuartz.

 modules/input/imquartz.c | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

commit b3ff8bbe313a59d76ae63012f407fc0037ae3989
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sat Sep 26 19:19:14 2015 +0200

    Add Language headers to po files

    Future versions of gettext will fail if this header is missing.

    GTK+ 2 is not going away anytime soon, and some projects (e.g. GIMP)
    want to compile it with the latest gettext.

    Based on a patch by Sven Claussner <sclaussner@src.gnome.org>.

 po-properties/af.po          | 1 +
 po-properties/am.po          | 1 +
 po-properties/ang.po         | 1 +
 po-properties/ar.po          | 1 +
 po-properties/as.po          | 1 +
 po-properties/ast.po         | 1 +
 po-properties/az.po          | 1 +
 po-properties/az_IR.po       | 1 +
 po-properties/be.po          | 1 +
 po-properties/be@latin.po    | 1 +
 po-properties/bg.po          | 1 +
 po-properties/bn.po          | 1 +
 po-properties/bn_IN.po       | 1 +
 po-properties/br.po          | 1 +
 po-properties/bs.po          | 1 +
 po-properties/ca.po          | 1 +
 po-properties/ca@valencia.po | 1 +
 po-properties/crh.po         | 1 +
 po-properties/da.po          | 1 +
 po-properties/dz.po          | 1 +
 po-properties/el.po          | 1 +
 po-properties/en@shaw.po     | 1 +
 po-properties/en_CA.po       | 1 +
 po-properties/eo.po          | 1 +
 po-properties/es.po          | 1 +
 po-properties/et.po          | 1 +
 po-properties/eu.po          | 1 +
 po-properties/fa.po          | 1 +
 po-properties/fi.po          | 1 +
 po-properties/fr.po          | 1 +
 po-properties/ga.po          | 1 +
 po-properties/gu.po          | 1 +
 po-properties/he.po          | 1 +
 po-properties/hi.po          | 1 +
 po-properties/hr.po          | 1 +
 po-properties/hu.po          | 2 +-
 po-properties/hy.po          | 1 +
 po-properties/ia.po          | 1 +
 po-properties/id.po          | 1 +
 po-properties/io.po          | 1 +
 po-properties/is.po          | 1 +
 po-properties/ja.po          | 1 +
 po-properties/ka.po          | 1 +
 po-properties/kk.po          | 1 +
 po-properties/kn.po          | 1 +
 po-properties/ko.po          | 2 +-
 po-properties/ku.po          | 1 +
 po-properties/li.po          | 1 +
 po-properties/lv.po          | 1 +
 po-properties/mai.po         | 1 +
 po-properties/mi.po          | 1 +
 po-properties/mk.po          | 1 +
 po-properties/ml.po          | 1 +
 po-properties/mn.po          | 1 +
 po-properties/mr.po          | 1 +
 po-properties/ms.po          | 1 +
 po-properties/my.po          | 1 +
 po-properties/nb.po          | 2 +-
 po-properties/nds.po         | 1 +
 po-properties/ne.po          | 1 +
 po-properties/nl.po          | 1 +
 po-properties/nn.po          | 1 +
 po-properties/nso.po         | 1 +
 po-properties/or.po          | 1 +
 po-properties/pa.po          | 1 +
 po-properties/ps.po          | 1 +
 po-properties/pt.po          | 1 +
 po-properties/pt_BR.po       | 1 +
 po-properties/ru.po          | 1 +
 po-properties/rw.po          | 1 +
 po-properties/si.po          | 1 +
 po-properties/sk.po          | 1 +
 po-properties/sl.po          | 1 +
 po-properties/sq.po          | 1 +
 po-properties/sr.po          | 1 +
 po-properties/sr@ije.po      | 1 +
 po-properties/sr@latin.po    | 1 +
 po-properties/sv.po          | 1 +
 po-properties/ta.po          | 1 +
 po-properties/te.po          | 1 +
 po-properties/th.po          | 1 +
 po-properties/tk.po          | 1 +
 po-properties/tr.po          | 1 +
 po-properties/tt.po          | 1 +
 po-properties/ug.po          | 1 +
 po-properties/uk.po          | 1 +
 po-properties/ur.po          | 1 +
 po-properties/uz.po          | 1 +
 po-properties/uz@cyrillic.po | 1 +
 po-properties/vi.po          | 1 +
 po-properties/wa.po          | 1 +
 po-properties/xh.po          | 1 +
 po-properties/yi.po          | 1 +
 po-properties/zh_CN.po       | 1 +
 po-properties/zh_HK.po       | 1 +
 po-properties/zh_TW.po       | 1 +
 po/am.po                     | 1 +
 po/ang.po                    | 1 +
 po/as.po                     | 1 +
 po/ast.po                    | 1 +
 po/az.po                     | 1 +
 po/az_IR.po                  | 1 +
 po/be@latin.po               | 1 +
 po/bg.po                     | 1 +
 po/bn.po                     | 1 +
 po/bn_IN.po                  | 1 +
 po/br.po                     | 1 +
 po/bs.po                     | 1 +
 po/ca.po                     | 1 +
 po/ca@valencia.po            | 1 +
 po/crh.po                    | 1 +
 po/da.po                     | 1 +
 po/de.po                     | 2 +-
 po/dz.po                     | 1 +
 po/en@shaw.po                | 1 +
 po/en_CA.po                  | 1 +
 po/eo.po                     | 1 +
 po/es.po                     | 1 +
 po/et.po                     | 1 +
 po/eu.po                     | 1 +
 po/fa.po                     | 1 +
 po/fi.po                     | 1 +
 po/fr.po                     | 1 +
 po/ga.po                     | 1 +
 po/gu.po                     | 1 +
 po/hi.po                     | 1 +
 po/hr.po                     | 1 +
 po/hu.po                     | 2 +-
 po/hy.po                     | 1 +
 po/id.po                     | 1 +
 po/io.po                     | 1 +
 po/is.po                     | 1 +
 po/ja.po                     | 1 +
 po/ka.po                     | 1 +
 po/kn.po                     | 1 +
 po/ko.po                     | 2 +-
 po/ku.po                     | 2 +-
 po/li.po                     | 1 +
 po/lv.po                     | 1 +
 po/mai.po                    | 1 +
 po/mi.po                     | 1 +
 po/mk.po                     | 1 +
 po/ml.po                     | 1 +
 po/mn.po                     | 1 +
 po/mr.po                     | 1 +
 po/ms.po                     | 1 +
 po/my.po                     | 1 +
 po/nb.po                     | 2 +-
 po/nds.po                    | 1 +
 po/ne.po                     | 1 +
 po/nn.po                     | 1 +
 po/nso.po                    | 1 +
 po/or.po                     | 1 +
 po/pa.po                     | 1 +
 po/ps.po                     | 1 +
 po/pt.po                     | 1 +
 po/pt_BR.po                  | 1 +
 po/ru.po                     | 1 +
 po/rw.po                     | 1 +
 po/si.po                     | 1 +
 po/sk.po                     | 1 +
 po/sl.po                     | 1 +
 po/sq.po                     | 1 +
 po/sr.po                     | 1 +
 po/sr@ije.po                 | 1 +
 po/sr@latin.po               | 1 +
 po/sv.po                     | 1 +
 po/ta.po                     | 1 +
 po/te.po                     | 1 +
 po/tk.po                     | 1 +
 po/tr.po                     | 1 +
 po/tt.po                     | 1 +
 po/ug.po                     | 1 +
 po/uk.po                     | 1 +
 po/ur.po                     | 1 +
 po/uz.po                     | 1 +
 po/uz@cyrillic.po            | 1 +
 po/vi.po                     | 1 +
 po/wa.po                     | 1 +
 po/xh.po                     | 1 +
 po/yi.po                     | 1 +
 po/zh_HK.po                  | 1 +
 182 files changed, 182 insertions(+), 8 deletions(-)

commit c4d8fba4552348bf7108d89366c3faf86fe4426b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 25 23:46:58 2015 -0400

    Annotate GtkColorButton get_color

    This is a backport of the corresponding change in gtk+ 3.

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

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

commit 46c28bd54d274c1d8c7d75795b043e21122749eb
Author: Ting-Wei Lan <lantw@src.gnome.org>
Date:   Wed Aug 19 10:38:39 2015 +0800

    Makefiles: Fix parallel installation for MinGW

    Make sure that the destination exists before installing files.

    https://bugzilla.gnome.org/show_bug.cgi?id=753691

 gdk/Makefile.am                             | 2 ++
 gtk/Makefile.am                             | 2 ++
 modules/other/gail/libgail-util/Makefile.am | 2 ++
 3 files changed, 6 insertions(+)

commit f3a34856c5e4d0e4ebfd615abd1dbd5a457ffd7d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 18 15:42:56 2015 -0400

    multipress: Only emit preedit signals if needed

    When clearing the compose buffer, don't emit preedit-changed
    unconditionally. This triggers a recursion which leads to
    a crash.

    https://bugzilla.gnome.org/show_bug.cgi?id=753644

 modules/input/gtkimcontextmultipress.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit 783afbd64f60fbefe6255d50e7843020f1df1b85
Author: Paolo Borelli <pborelli@gnome.org>
Date:   Mon Aug 17 18:31:15 2015 +0200

    print operation: let subclasses use a custom paginate

    GtkPrintOperation was emitting paginate only if a signal was
    connected, this meant that subclassing and overriding the
    paginate vfunc lead to the unexpected result that paginate did
    not run.
    Instead we always emit the signal and use a custom accumulator:
    if there is a signal we just run that and avoid the default
    handler, otherwise we run the default handler which can be the
    one by the subclass or the default handler that just skips
    pagination.

    Patch by Yevgen Muntyan, fixes #345345

 gtk/gtkprintoperation.c | 36 +++++++++++++++++++++++++++---------
 1 file changed, 27 insertions(+), 9 deletions(-)

commit b2a79ef73c3857888f937bb37e36d8c3cc775cf2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Thu Jul 30 21:58:07 2015 -0400

    File chooser: Fix a crash on dnd in sidebar

    We were crashing when reordering the sidebar by dnd.

    https://bugzilla.gnome.org/show_bug.cgi?id=745127

 gtk/gtkfilechooserdefault.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

commit 5c92821ace1264ea3362a452b22d8edd41b5e665
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 26 02:17:44 2015 -0400

    quartz: Implement NO_TARGET drag result

    This is necessary to make notebook tab DND work.

    https://bugzilla.gnome.org/show_bug.cgi?id=752638

 gtk/gtkdnd-quartz.c | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

commit 2ac4fe1b6609c3c2495ee8db0f39033999238422
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sun Jul 26 02:15:31 2015 -0400

    quartz: Check if a drag ends inside a known window

    If a drag ends inside a known window, set the dest_window field
    in the drag context. This information is needed to implemented
    notebook tab dragging.

    https://bugzilla.gnome.org/show_bug.cgi?id=752638

 gdk/quartz/GdkQuartzWindow.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit 50bd9dd9f39e719735ccfdb5834d21f628071319
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 17 21:27:02 2015 -0400

    Remove an unused variable

    Pointed out by coverity.

 gdk/gdkwindow.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 7ee8b1fd9af52842e87c26465b9aa8921e62ec90
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Jul 17 21:20:10 2015 -0400

    Fix a wrong function call

    cairo_region_destroy can't handle GdkRegions. We need to call
    gdk_region_destroy. Found by coverity.

 gdk/gdkwindow.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b2d60ff8cb63de52febd8f3fa76b4ae53ca5f067
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Jul 17 17:13:42 2015 +0800

    MSVC Builds: Update GUID of "Install" Project

    The GUID of the "Install" project files happen to be the same
    as Pango's
    "install" projects, so we need to update the GUID here so that
    the projects
    can cooperate with each other when used in an all-in-one build for
    the GTK+
    stack.

 build/win32/vs10/gtk+.sln            | 18 +++++++++---------
 build/win32/vs10/gtk-install.vcxproj |  2 +-
 build/win32/vs9/gtk+.sln             | 18 +++++++++---------
 build/win32/vs9/gtk-install.vcproj   |  2 +-
 4 files changed, 20 insertions(+), 20 deletions(-)

commit 93f9c220abed53cf1f10c62787571463c6ff0309
Author: Tom Schoonjans <Tom.Schoonjans@bam.de>
Date:   Mon Jul 6 17:34:37 2015 +0200

    gdkwindow-quartz: partial aspect ratio support

    Support was added for GDK_HINT_ASPECT in
    gdk_quartz_window_set_geometry_hints though with one restriction:
    min_aspect and max_aspect have to be equal, which I believe
    corresponds
    to the most common usage. A warning will be printed if this
    condition is
    not met but min_aspect will be used anyway.

 gdk/quartz/gdkwindow-quartz.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 7d93d6f59a8866bf671d5d163ce179bd041556d8
Author: Cédric Valmary <cvalmary@yahoo.fr>
Date:   Fri May 29 20:56:52 2015 +0000

    Updated Occitan translation

 po/oc.po | 8219
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 4341 insertions(+), 3878 deletions(-)

commit 29da0d99aae55b3fec1128ba7f7dc73539069155
Author: Kylie McClain <somasissounds@gmail.com>
Date:   Tue May 19 20:53:00 2015 +0000

    Fix AM_PATH_GTK_2_0 for cross compilation

    With the current code used in the m4 macro, gtk-2.0.m4 can't find
    a prefixed pkg-config. This presents issue when cross compiling, as
    pkg-config needs to be prefixed to work with the target being compiled
    for.

    Change the macro to use PKG_PROG_PKG_CONFIG rather than custom
    detection code.

    https://bugzilla.gnome.org/show_bug.cgi?id=749507

 m4macros/gtk-2.0.m4 | 15 ++-------------
 1 file changed, 2 insertions(+), 13 deletions(-)

commit 8d907370a6d08055a55bc4fc286fb48c3cd165b0
Author: Cédric Valmary <cvalmary@yahoo.fr>
Date:   Fri May 15 16:33:27 2015 +0000

    Updated Occitan translation

 po-properties/oc.po | 10073
 ++++++++++++++++++++++++++++++--------------------
 1 file changed, 6104 insertions(+), 3969 deletions(-)

commit b5b055721378ffe0269613e49ab5741a315eeb00
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 13 08:53:48 2015 -0400

    Update NEWS

 NEWS | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 86a9348dc4b20dfba9ee38b2dda0b6aaa09d8f21
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed May 13 07:25:53 2015 -0400

    2.24.28

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

commit d63bee09e0ba4ddd94c26bed97522896dc9be5c6
Author: Marek Kasik <mkasik@redhat.com>
Date:   Fri Jul 11 11:35:35 2014 +0200

    printing: Check connection to remote CUPS server on correct port

    Add parameter for specification of port to
    gtk_cups_connection_cups_new().
    Use default port returned by ippPort() if the given port is lower
    than 0.

    https://bugzilla.gnome.org/show_bug.cgi?id=693738

 modules/printbackends/cups/gtkcupsutils.c        | 8 ++++++--
 modules/printbackends/cups/gtkcupsutils.h        | 3 ++-
 modules/printbackends/cups/gtkprintbackendcups.c | 8 +++++---
 3 files changed, 13 insertions(+), 6 deletions(-)

commit 1f74f12d9f8ecec321d7e662ff37127ca01c57c1
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Mon May 4 15:32:22 2015 +0000

    Use GDK_KEY_KP_Decimal instead of GDK_KP_Decimal

    Fixes the FTBFS introduced in cb3eb7cd777b6cea239898efde3239c39144a955

 gdk/win32/gdkkeys-win32.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit cb3eb7cd777b6cea239898efde3239c39144a955
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri May 1 07:32:47 2015 -0400

    win32: Support the decimal point on the keypad

    Based on a patch by John Emmas.

 gdk/win32/gdkkeys-win32.c | 2 ++
 1 file changed, 2 insertions(+)

commit 92fb170917468b4e8946e3f0b94c5a3eeb0b33d9
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Thu Apr 16 23:11:14 2015 +0000

    W32: Support horizontal mouse wheel scrolling

    https://bugzilla.gnome.org/show_bug.cgi?id=748014
    (cherry picked from commit c0e0a1508be3ccf349717497af2e8a4d77027649)

 gdk/win32/gdkevents-win32.c  | 10 ++++++++--
 gdk/win32/gdkmain-win32.c    |  1 +
 gdk/win32/gdkprivate-win32.h |  3 +++
 3 files changed, 12 insertions(+), 2 deletions(-)

commit 3da748930fdcb19aaae32ae2fc6cb2d802857752
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 1 21:58:34 2013 -0500

    Avoid perl warnings

    Apparently, defined is not cool anymore.

 demos/gtk-demo/geninclude.pl.in | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit a4bffe01bb78e6088ce787be71bf79e9cd080818
Author: Ignacio Casal Quinteiro <icq@gnome.org>
Date:   Fri Mar 27 18:29:08 2015 +0100

    Fix missing field po file

 po/zh_TW.po | 1 +
 1 file changed, 1 insertion(+)

commit 0edc775d1aa78988506a4baa5a6af35a138ea5c4
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Thu Mar 26 17:12:01 2015 +0000

    Revert "W32: correctly guess max window size from the size of the
    workarea of the screen it's on"

    This is only needed for CSDs. GKT+-2.x has no CSDs, so this
    code is completely unnecessary.

    This reverts commit d9122d13795e58bd96ff75e933b00f38d1b24aac.

 gdk/win32/gdkevents-win32.c | 23 ++---------------------
 1 file changed, 2 insertions(+), 21 deletions(-)

commit 88f3b248d6298af5ed08fd344c19bce40b05a2b7
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Thu Mar 26 17:11:13 2015 +0000

    Revert "W32: Correctly set maximized window position"

    This is only needed for CSDs. GKT+-2.x has no CSDs, so this
    code is completely unnecessary.

    This reverts commit 2fdd8627ddeca60ff6fdb84cd8071580a0d1ba74.

 gdk/win32/gdkevents-win32.c | 2 --
 1 file changed, 2 deletions(-)

commit 2fdd8627ddeca60ff6fdb84cd8071580a0d1ba74
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Thu Mar 26 15:22:07 2015 +0000

    W32: Correctly set maximized window position

    Use screen workarea to *also* set the position of a maximized window,
    not just its size. Without this the window position defaults to 0:0
    (the topleft corner), which is wrong when taskbar is position
    along the
    top or left edge of the screen.

    https://bugzilla.gnome.org/show_bug.cgi?id=746821

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

commit d9122d13795e58bd96ff75e933b00f38d1b24aac
Author: Руслан Ижбулатов <lrn1986@gmail.com>
Date:   Thu Apr 10 20:05:19 2014 +0000

    W32: correctly guess max window size from the size of the workarea
    of the screen it's on

    Get monitor on which the most of the window is located (nearest
    monitor if
    window is not on screen), get its work area (area not occupied by
    taskbar or
    any other bars) and use that for maxsize.

    Previous default of 30000 meant that windows maximized onto full
    screen,
    even covering the area where taskbar is.

    https://bugzilla.gnome.org/show_bug.cgi?id=726592

 gdk/win32/gdkevents-win32.c | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

commit dd882f5b8033286c0e24883569527953f8ee08fa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Aug 10 00:31:46 2010 -0400

    Fix a sporadic segfault in treeview keynav

    If a a treeview has frequent periodic additions and removals of
    rows, it is possible that a page down keypress moves the cursor
    out of the height of the treeview. In some of these cases, we
    can be tricked into dereferencing a  NULL pointer.

    Bug 612919.

    https://bugzilla.gnome.org/show_bug.cgi?id=746269

 gtk/gtktreeview.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit ba48b465741ce49518e51942983832a96288d896
Author: John Lindgren <john.lindgren@aol.com>
Date:   Wed Mar 11 22:12:38 2015 -0400

    Fix problems with sticky handling (backport of 01320e57737).

    Reading a card32 property into a long may lead to undefined high bits,
    so mask
    them off. Also, make the conditions for setting and unsetting the
    stick flag
    opposites, to avoid unintended changes.

    https://bugzilla.gnome.org/show_bug.cgi?id=746064

 gdk/x11/gdkevents-x11.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit df09ce5e87202dde843d5b8ab1a95a999695a141
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Mar 6 16:56:19 2015 +0800

    MSVC Builds: Rename "Install" Projects

    Rename the install projects as gtk-install, to ease the integration
    of the
    projects in a grand solution that may be used to build, for example,
    the
    entire GTK+ stack.

 build/win32/vs10/Makefile.am         |   2 +-
 build/win32/vs10/gtk+.sln            |   2 +-
 build/win32/vs10/gtk-install.vcxproj | 128
 +++++++++++++++++++++++++++++++++++
 build/win32/vs10/install.vcxproj     | 128
 -----------------------------------
 build/win32/vs11/Makefile.am         |   2 +-
 build/win32/vs12/Makefile.am         |   2 +-
 build/win32/vs9/Makefile.am          |   2 +-
 build/win32/vs9/gtk+.sln             |   2 +-
 build/win32/vs9/gtk-install.vcproj   |  77 +++++++++++++++++++++
 build/win32/vs9/install.vcproj       |  77 ---------------------
 10 files changed, 211 insertions(+), 211 deletions(-)

commit bf92167b01ddebf4eb9ff499721fce6d6a5f8020
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Mar 6 15:21:52 2015 +0800

    MSVC Builds: "Install" the .pdb Files

    "Install" the .pdb files to help people use them to debug the GTK+
    stack,
    or for their GTK-using applications, as they are already generated
    for all
    builds.

    Also update the copying of the DLLs, LIBs and EXEs so that we
    ensure that
    we only copy the items from GTK+-2.x, without accidently copying
    items that
    are not meant to be copied, or make extra copies of items in the wrong
    places, such as when the projects here are used in parts of grand
    solutions
    used to build the entire GTK+ stack.

 build/win32/vs10/gtk-install.props  | 16 +++++++++++-----
 build/win32/vs9/gtk-install.vsprops | 16 +++++++++++-----
 2 files changed, 22 insertions(+), 10 deletions(-)

commit e129c9417106068b6297621e8ee4eec9b2c2eeea
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Mar 6 15:16:39 2015 +0800

    MSVC 2010+ Builds: Fix .pdb Generation

    The .pdb file name must be specified for Visual Studio 2010+ later
    in order
    fo match the output filename if the output filename is different
    from the
    project name.  Update the projects as necessary.

 build/win32/vs10/gailutil.vcxproj | 4 ++++
 build/win32/vs10/gdk.vcxprojin    | 4 ++++
 build/win32/vs10/gtk.vcxprojin    | 5 ++++-
 3 files changed, 12 insertions(+), 1 deletion(-)

commit 8995a3e19cb96762b287b26d69d30d1293138d41
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Mar 6 11:16:52 2015 +0800

    MSVC 2010+ Builds: Clean up gtk-install.props

    Remove empty lines, they aren't really necessary.

 build/win32/vs10/gtk-install.props | 277
 -------------------------------------
 1 file changed, 277 deletions(-)

commit e6333a1a374591fef456f7fe73942226b5b8b388
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Feb 24 20:54:38 2015 -0500

    2.24.27

 NEWS         | 24 ++++++++++++++++++++++++
 configure.ac |  4 ++--
 2 files changed, 26 insertions(+), 2 deletions(-)

commit 22eb70adab72a5c14f063ea15f8195087ff1dcd8
Author: Colin Walters <walters@verbum.org>
Date:   Fri Dec 17 15:36:51 2010 -0500

    gdkwindow: Fix event unref iteration

    We were double looping previously which caused a NULL deref.

    (cherry picked from commit d08ff485f28f23427bff1b3aac64ab3f77a8664d)

 gdk/gdkwindow.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

commit 5efefdb6550b3f00d5ca159c2ff74326bfd0e94b
Author: Christophe Fergeau <cfergeau@redhat.com>
Date:   Tue Mar 3 15:37:41 2015 +0100

    gdk: Fix GdkWindowFilter internal refcounting

    Running gnome-shell under valgrind, I saw the attached invalid write.
    Basically we can destroy a window during event processing, and the old
    window_remove_filters simply called g_free() on the filter, ignoring
    the refcount.  Then later in event processing we call
    filter->refcount--,
    which is writing to free()d memory.

    Fix this by centralizing list mutation and refcount handling inside
    a new shared _gdk_window_filter_unref() function, and using that
    everywhere.

    ==13876== Invalid write of size 4
    ==13876==    at 0x446B181: gdk_event_apply_filters
    (gdkeventsource.c:86)
    ==13876==    by 0x446B411: _gdk_events_queue (gdkeventsource.c:188)
    ==13876==    by 0x44437EF: gdk_display_get_event (gdkdisplay.c:410)
    ==13876==    by 0x446B009: gdk_event_source_dispatch
    (gdkeventsource.c:317)
    ==13876==    by 0x4AB7159: g_main_context_dispatch (gmain.c:2436)
    ==13876==    by 0x4AB7957: g_main_context_iterate.clone.5
    (gmain.c:3087)
    ==13876==    by 0x4AB806A: g_main_loop_run (gmain.c:3295)
    ==13876==    by 0x8084D6B: main (main.c:722)
    ==13876==  Address 0x1658bcac is 12 bytes inside a block of size
    16 free'd
    ==13876==    at 0x4005EAD: free (vg_replace_malloc.c:366)
    ==13876==    by 0x4ABE515: g_free (gmem.c:263)
    ==13876==    by 0x444BCC9: window_remove_filters (gdkwindow.c:1873)
    ==13876==    by 0x4454BA3: _gdk_window_destroy_hierarchy
    (gdkwindow.c:2043)
    ==13876==    by 0x447BF6E: gdk_window_destroy_notify
    (gdkwindow-x11.c:1115)
    ==13876==    by 0x43588E2: _gtk_socket_windowing_filter_func
    (gtksocket-x11.c:518)
    ==13876==    by 0x446B170: gdk_event_apply_filters
    (gdkeventsource.c:79)
    ==13876==    by 0x446B411: _gdk_events_queue (gdkeventsource.c:188)
    ==13876==    by 0x44437EF: gdk_display_get_event (gdkdisplay.c:410)
    ==13876==    by 0x446B009: gdk_event_source_dispatch
    (gdkeventsource.c:317)
    ==13876==    by 0x4AB7159: g_main_context_dispatch (gmain.c:2436)
    ==13876==    by 0x4AB7957: g_main_context_iterate.clone.5
    (gmain.c:3087)

    https://bugzilla.gnome.org/show_bug.cgi?id=637464

    Backport of 806c04411d306680353cf90cffee98ce73e122f2 to
    the gtk-2-24 branch. 806c0441 was authored by Colin Walters
    <walters@verbum.org>

    Without this patch, the spotify linux client was crashing during
    playback of some songs when using gtk+ 2.24.26

    https://bugzilla.gnome.org/show_bug.cgi?id=745536

 gdk/gdkinternals.h      |  3 +++
 gdk/gdkwindow.c         | 68
 +++++++++++++++++++++++++++++++++++--------------
 gdk/x11/gdkevents-x11.c | 35 ++++++++++++-------------
 3 files changed, 70 insertions(+), 36 deletions(-)

commit de7ec7a0a9bcde801c529a08e9f094034f75e671
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Mar 3 18:40:32 2015 +0800

    MSVC 2008 Builds: Speed Up Release Builds

    Use the /MP compiler option, where the build time for release
    builds can
    be cut down by quite a bit.  This will however cause a brief
    warning with
    debug builds due to the use of /Gm, but the code will otherwise build
    normally.  Unlike the Visual Studio 2010+ builds, we can't use
    /d2Zi+ as
    Visual Studio 2008 does not support that, so we can't get a better
    debugging experience for release builds here.

 build/win32/vs9/gtk-build-defines.vsprops | 1 +
 1 file changed, 1 insertion(+)

commit 639845d21edbefb61f728a8b2d054ae146b0c821
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Mar 3 14:07:26 2015 +0800

    MSVC Builds: Improve Build Speed and Debugging

    Use Multiprocessor compilation which can cut down build times by
    quite a
    bit and use the /d2Zi+ flag to have better debugging info being
    logged to
    the .pdb for release builds.

    These are only applicable for Visual Studio 2010/2012 and later.

 build/win32/vs10/gtk-build-defines.props | 2 ++
 1 file changed, 2 insertions(+)

commit c5afe319ad87840dc579b75806121434f02dd14e
Author: Daniel Drake <drake@endlessm.com>
Date:   Mon Feb 23 14:49:08 2015 -0600

    icontheme: allow directories with mtime 0

    In order to provide a constant mtime between OS build and deploy time,
    while also maintaining a hardlink content-addressed model independent
    of
    timestamps, ostree sets all mtimes to 0.

    The icon cache code currently ignores directories with mtime 0,
    assuming
    they don't exist.

    Track directory existence in a more precise way.

    https://bugzilla.gnome.org/show_bug.cgi?id=745052

 gtk/gtkicontheme.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

commit e01cc5bf5f2d1e9c0b0d1878aa6bf2cf6ad4f8ce
Author: Arnav Singh <arnavion@gmail.com>
Date:   Sat Feb 21 15:57:25 2015 +0100

    statusicon: fix crash storing pointer in UINT

    https://bugzilla.gnome.org/show_bug.cgi?id=696505

 gtk/gtkstatusicon.c | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

commit 79c05314c60bc1fc45f80f8a2c54b9e1d309f04b
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Feb 20 20:49:14 2015 +0100

    gdkcairo: Don't leak pixel data

    If we fail to attach pixel data to a cairo surface, free it
    immediately.
    We still want to cairo_set_source() the surface to popagate the error.

    Spotted by Christian Boxdörfer

 gdk/gdkcairo.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit eb0e67217ebe6274b08a6b14b90283c498117ccc
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 16 13:17:34 2015 -0500

    2.24.26

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

commit 9169b6aa69292bc1ff1d0cdef8faf1de2ef793d4
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Feb 16 10:31:46 2015 -0500

    Fix distcheck

 docs/reference/gtk/Makefile.am | 2 ++
 1 file changed, 2 insertions(+)

commit dea9eae3af525adc69849dea60b653ceaa19766e
Author: Ting-Wei Lan <lantw@src.gnome.org>
Date:   Tue Jan 27 15:45:24 2015 +0800

    Support automake 1.15

    https://bugzilla.gnome.org/show_bug.cgi?id=743544

 autogen.sh | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit 5364ede826b2e5b96b8d22c18634a6ad2ebdce68
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 13 13:40:46 2015 -0500

    gailbutton: Avoid a possible NULL dereference

    We were using widget->window before checking widget for being NULL.

    Pointed out by Sami Farin,
    https://bugzilla.redhat.com/show_bug.cgi?id=1140414

 modules/other/gail/gailbutton.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit 69319811142665613cbf2f4c9d8c5874ac2628c9
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 13 13:39:47 2015 -0500

    label: Avoid a possible NULL dereference

    We were setting attr->start before checking attr for being NULL.

    Pointed out by Sami Farin,
    https://bugzilla.redhat.com/show_bug.cgi?id=1140414

 gtk/gtklabel.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit ee95f3d7259c0859ce41189b781b4339b4cd64aa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Feb 13 13:12:39 2015 -0500

    Make gdk_event_apply_filters safe against changes in filter list

    An event filter may add or remove filters itself. This patch does
    two things to address this case. The first is to take a temporary
    reference to the filter while it is being used. The second is
    to wait until after the filter function is run before determining
    the next node in the list to process. This guards against
    changes to the next node. It also does not run functions
    that have been marked as removed. Though I'm not sure if this
    case can arise.

    https://bugzilla.gnome.org/show_bug.cgi?id=635380

    Backport of 323df2b2800383832ed3c2e43626f2c6821c33ec to
    the gtk-2-24 branch by Wolfgang Ulbrich.

 gdk/gdkinternals.h            |  6 +++++
 gdk/gdkwindow.c               | 30 +++++++++++++++--------
 gdk/quartz/gdkevents-quartz.c | 55
 ++++++++++++++++++++++++++++++-------------
 gdk/win32/gdkevents-win32.c   | 37 ++++++++++++++++++++++-------
 gdk/x11/gdkevents-x11.c       | 37 ++++++++++++++++++++++-------
 5 files changed, 122 insertions(+), 43 deletions(-)

commit 436fe38cae8f035f737aad28781183a0becdcec9
Author: Lars Uebernickel <lars@uebernic.de>
Date:   Tue Feb 3 11:21:59 2015 +0100

    Add support for loading gtk2-only modules

    Introduce GTK2_MODULES environment variable for modules that
    don't work
    in gtk3. The list of modules is now $GTK2_MODULES:$GTK_MODULES.

    https://bugzilla.gnome.org/show_bug.cgi?id=743917

 docs/reference/gtk/running.sgml | 14 ++++++++++++--
 gtk/gtkmain.c                   | 13 ++++++++++++-
 2 files changed, 24 insertions(+), 3 deletions(-)

commit e48ae6f85bc9411344aa935562571181a7753398
Author: Holin <holin@iki.fi>
Date:   Sun Dec 28 10:46:13 2014 -0800

    Bug 741959 - text input broken on OS X 10.5 from 2.24.19 onwards

    Alias insertText:replacementRange: to insertText: for SDK > 10.6,
    and implement insertText: for SDK < 10.6.

