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(+)