commit e64947662a8f8c9e8f3e2b5565295d8f8ff3746b
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 21 10:17:09 2016 -0500

    3.89.2

 NEWS         | 80
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 81 insertions(+), 1 deletion(-)

commit a2f0c860ee8be497829df4c14a87ea0225db8d4d
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 21 14:12:17 2016 -0500

    Fix distcheck

 gsk/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 924efd988d510a47629fa9d889e4eab9b4e044a2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 21 12:03:05 2016 -0500

    Fixes for the gdk docs

 docs/reference/gdk/Makefile.am       |  3 +++
 docs/reference/gdk/gdk-docs.sgml     |  1 +
 docs/reference/gdk/gdk4-sections.txt | 47
 +++++++++++++++++++-----------------
 3 files changed, 29 insertions(+), 22 deletions(-)

commit 961286b7cd25ad6567ba77086bebdb8dd79274d2
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 21 10:58:10 2016 -0500

    Make gsk docs build

 docs/reference/gsk/gsk-docs.xml | 1 -
 1 file changed, 1 deletion(-)

commit a571e534912fc22ee63570f9685170f7dde4c562
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Wed Dec 21 18:16:34 2016 +0100

    snapshot: Fix some annoations

 gtk/gtksnapshot.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

commit 2b4dfeec7c089c1bed36f357ad93095a664054eb
Author: Rico Tzschichholz <ricotz@ubuntu.com>
Date:   Wed Dec 21 18:15:50 2016 +0100

    gsk: Fix build of 22110ef5a480fbddf9d20f510a64f4524a52718f

 gsk/gskvulkanrenderpass.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 230d27b079c4b98b1eb5000a0e70ca95a937c9c5
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Dec 21 12:20:56 2016 +0100

    GskRenderNode: Use C99 flexible arrays to avoid extra allocation

    Instead of a separate allocation for any arrays in the render node
    we allocate these as part of the render node itself, using C99
    flexible arrays.

    This leads to less allocations, which is nice, but the major reason
    for this is that it allows us to change the allocation scheme further
    in the future. For instance, we want to do stack-like allocation so
    that all the render-nodes for an entire frame are allocated in one
    (or a few) chunks.

 gsk/gskrendernode.c        |  8 +++----
 gsk/gskrendernodeimpl.c    | 54
 ++++++++++++++++++++--------------------------
 gsk/gskrendernodeprivate.h |  2 +-
 3 files changed, 28 insertions(+), 36 deletions(-)

commit 22110ef5a480fbddf9d20f510a64f4524a52718f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Dec 21 11:21:38 2016 +0100

    gsk: Add bounds member to RenderNode

    Instead of constantly recalculating this (especially recursively for
    parents!) we do it only on construction, because everything is
    immutable anyway. Also, most nodes had a bounds already and can
    use the new parent member instead.

    We also do direct access to the node bounds rather than calling
    gsk_render_node_get_bounds in various places, which means
    we do less copying.

 gsk/gskglrenderer.c        |  24 ++--
 gsk/gskrendernode.c        |  18 +--
 gsk/gskrendernodeimpl.c    | 275
 +++++++++++----------------------------------
 gsk/gskrendernodeprivate.h |   4 +-
 gsk/gskvulkanrenderpass.c  |  24 ++--
 5 files changed, 90 insertions(+), 255 deletions(-)

commit 2d4b46f4f95025be01ffa5cf0f5abfe354d79a93
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Dec 21 11:00:18 2016 +0100

    gsk: Drop gsk_render_node_make_immutable, nodes are always immutable

 gsk/gskrenderer.c          |   3 +-
 gsk/gskrendernode.c        |  25 +---------
 gsk/gskrendernodeimpl.c    | 122
 ---------------------------------------------
 gsk/gskrendernodeprivate.h |   6 ---
 4 files changed, 3 insertions(+), 153 deletions(-)

commit 4ee45b76cad0204a0d78a0279f31f8a79eeaff7f
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Dec 21 10:59:35 2016 +0100

    gsk docs: gsk_render_node_iter_get_type doesn't exist anymore

 docs/reference/gsk/gsk4.types | 1 -
 1 file changed, 1 deletion(-)

commit cfade394599e6ba592fb2406de2e2c9dc08a8566
Author: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Date:   Wed Dec 21 10:56:38 2016 +0000

    Update Kazakh translation

 po/kk.po | 1901
 ++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 908 insertions(+), 993 deletions(-)

commit 24eeea46faf4ce7dddb0ce45fb84868960118427
Author: Christian Kirbach <Christian.Kirbach@gmail.com>
Date:   Tue Dec 20 19:11:29 2016 +0000

    Update German translation
    (cherry picked from commit e0856226c580191805f58d0df10260df6b293df9)

 po/de.po | 457
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 231 insertions(+), 226 deletions(-)

commit def94f03e240babfd589c8ba8e7cc4961a3d6aab
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 20 19:20:02 2016 +0100

    debug: Add GTK_DEBUG=snapshot

    This causes the snapshotting algorithm to dump all widget nodes into
    their own container node. We then name that group accordingly (ie
    "GtkSwitch<0xdeadbeef>") so you can easily see which node belongs
    where.

    The feature is toggleable in the inspector's visual tab.

    There's a few problems with it, becuse GtkSnapshot optimized container
    nodes away if they are not needed, so we are losing some widgets...

 docs/reference/gtk/running.sgml |  4 ++++
 gtk/gtkdebug.h                  |  3 ++-
 gtk/gtkmain.c                   |  3 ++-
 gtk/gtkwidget.c                 |  6 ++++++
 gtk/inspector/visual.c          | 16 ++++++++++++++++
 gtk/inspector/visual.ui         | 35 +++++++++++++++++++++++++++++++++++
 6 files changed, 65 insertions(+), 2 deletions(-)

commit acaa04c031f131d3bd1febe704668cf66dc566ae
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 20 19:06:07 2016 +0100

    revealer: Implement snapshot()

    The revealer needs to clip the child during animations, whcih
    draw() did
    automatically, but snapshot() does not.

 gtk/gtkrevealer.c | 44 ++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 40 insertions(+), 4 deletions(-)

commit c4065b9ee0db4ed03eb925234f528ebfc874e4cf
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 20 19:00:07 2016 +0100

    API: Export gtk_container_snapshot_child()

    It's equivalent to gtk_container_propagate_draw() and then one is
    public, too.

 docs/reference/gtk/gtk4-sections.txt |  1 +
 gtk/gtkcontainer.c                   | 20 ++++++++++++++++++++
 gtk/gtkcontainer.h                   |  4 ++++
 gtk/gtkcontainerprivate.h            |  4 ----
 gtk/gtknotebook.c                    |  1 -
 5 files changed, 25 insertions(+), 5 deletions(-)

commit 22a657004b9c591cef7f4dd6b845192e7fc28529
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 20 18:30:14 2016 +0100

    debug: Remove pixel-cache debug categories

    We have no more pixel cache, so they are kind of useless.

 docs/reference/gtk/running.sgml | 12 ------------
 gtk/gtkdebug.h                  | 12 +++++-------
 gtk/gtkmain.c                   |  2 --
 gtk/inspector/visual.c          | 22 ----------------------
 gtk/inspector/visual.ui         | 35 -----------------------------------
 5 files changed, 5 insertions(+), 78 deletions(-)

commit 2cbe0573513b1253a3dca2d43d626bc07e48efc3
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Tue Dec 20 12:55:41 2016 +0100

    flowbox: Don't emit child-activated while dragging the pointer

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

 gtk/gtkflowbox.c | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 1b553478f6e0a0fa5c333409cb81f603aff0e8a3
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 23:30:02 2016 +0100

    cssimageradial: Handle "partial" gradients correctly

    When the first/last color stop is not at 0%/100%, we need to start the
    repeating at their offsets and not at 0%/100%.

    Attached reftest demonstrates the problem.

 gtk/gtkcssimageradial.c                                       |  2 +-
 testsuite/reftests/Makefile.am                                |  3 +++
 testsuite/reftests/repeating-radial-gradient-at-beginning.css |
 11 +++++++++++
 .../reftests/repeating-radial-gradient-at-beginning.ref.ui    |
 11 +++++++++++
 testsuite/reftests/repeating-radial-gradient-at-beginning.ui  |
 10 ++++++++++
 5 files changed, 36 insertions(+), 1 deletion(-)

commit 6c20ddc119b1491bdcb28216a60d79f71d094019
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 20:04:52 2016 +0100

    searchbar: Implement snapshot()

 gtk/gtksearchbar.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

commit 0dbdf0c42858c0a2245ad755b164c5bede55f953
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 19:45:34 2016 +0100

    gadget: Remove gtk_css_gadget_draw()

    And with it, remove the draw func from custom gadgets, that has been
    NULL everywhere.

    All gadgets are snapshot now.

 gtk/gtkactionbar.c              |   1 -
 gtk/gtkbbox.c                   |   1 -
 gtk/gtkbox.c                    |   1 -
 gtk/gtkboxgadget.c              |  30 --------
 gtk/gtkbuiltinicon.c            |  20 -----
 gtk/gtkbutton.c                 |   1 -
 gtk/gtkcellview.c               |   1 -
 gtk/gtkcolorswatch.c            |   1 -
 gtk/gtkcombobox.c               |   1 -
 gtk/gtkcsscustomgadget.c        |  34 +--------
 gtk/gtkcsscustomgadgetprivate.h |   9 ---
 gtk/gtkcssgadget.c              | 161
 +---------------------------------------
 gtk/gtkcssgadgetprivate.h       |   8 --
 gtk/gtkentry.c                  |   2 -
 gtk/gtkflowbox.c                |   2 -
 gtk/gtkframe.c                  |   1 -
 gtk/gtkgrid.c                   |   1 -
 gtk/gtkheaderbar.c              |   1 -
 gtk/gtkimage.c                  |   1 -
 gtk/gtklabel.c                  |   1 -
 gtk/gtklevelbar.c               |   2 -
 gtk/gtklistbox.c                |   2 -
 gtk/gtkmenubar.c                |   1 -
 gtk/gtkmenuitem.c               |   1 -
 gtk/gtkmodelbutton.c            |   1 -
 gtk/gtknotebook.c               |   3 -
 gtk/gtkpaned.c                  |   2 -
 gtk/gtkprogressbar.c            |   4 -
 gtk/gtkrange.c                  |   5 +-
 gtk/gtkscale.c                  |   6 --
 gtk/gtkscrolledwindow.c         |   1 -
 gtk/gtkseparator.c              |   1 -
 gtk/gtkseparatortoolitem.c      |   1 -
 gtk/gtkstack.c                  |   1 -
 gtk/gtkswitch.c                 |   2 -
 gtk/gtktoolbar.c                |   1 -
 gtk/gtkviewport.c               |   1 -
 37 files changed, 6 insertions(+), 307 deletions(-)

commit 613194a2461558abbc08d4f4fdecbcef836450eb
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 19:30:55 2016 +0100

    colorswatch: Implement snapshot

 gtk/gtkcolorswatch.c | 54
 ++++++++++++++++++++++++++++++----------------------
 1 file changed, 31 insertions(+), 23 deletions(-)

commit 4d9eedafcd13423d4ccb3530fad29bda75701879
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 19:19:15 2016 +0100

    roundedbox: Add gtk_rounded_boxes_init_for_style()

    Instead of making people intiialize a rectangle and then applying
    border
    radius manually, provide a constructor that does it for them.
    While doing that, also allow people to instead request the padding box
    or the content box.

    Refactor all relevant code to use this new constructor.

 docs/reference/gtk/Makefile.am |  1 -
 gtk/Makefile.am                |  1 -
 gtk/gtkcolorscale.c            |  1 -
 gtk/gtkcolorswatch.c           | 18 +++++++++++------
 gtk/gtkcssimagebuiltin.c       |  1 -
 gtk/gtkcssshadowvalue.c        |  1 -
 gtk/gtkpopover.c               |  7 ++++---
 gtk/gtkrender.c                | 45
 ------------------------------------------
 gtk/gtkrenderbackground.c      | 36 +++++----------------------------
 gtk/gtkrenderborder.c          |  6 ++----
 gtk/gtkrenderprivate.h         | 34 -------------------------------
 gtk/gtkroundedbox.c            | 40 ++++++++++++++++++++++++++++++++++---
 gtk/gtkroundedboxprivate.h     | 11 ++++++++---
 13 files changed, 68 insertions(+), 134 deletions(-)

commit 95a2a5c54c6480b62be482145ee40c58a15b4bd8
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 18:46:24 2016 +0100

    gtk: Remove GtkJunctionSides

 docs/reference/gtk/gtk4-sections.txt |  3 --
 gtk/gtkcssgadget.c                   | 12 +++-----
 gtk/gtkcssnode.c                     | 13 --------
 gtk/gtkcssnodedeclaration.c          | 25 ---------------
 gtk/gtkcssnodedeclarationprivate.h   |  3 --
 gtk/gtkcssnodeprivate.h              |  3 --
 gtk/gtkcustompaperunixdialog.c       |  4 ---
 gtk/gtkenums.h                       | 26 ----------------
 gtk/gtkplacessidebar.c               |  1 -
 gtk/gtkpopover.c                     |  3 +-
 gtk/gtkrender.c                      | 60
 +++++++-----------------------------
 gtk/gtkrenderbackground.c            | 15 ++++-----
 gtk/gtkrenderbackgroundprivate.h     |  6 ++--
 gtk/gtkrenderborder.c                | 30 +++++++++---------
 gtk/gtkrenderborderprivate.h         |  6 ++--
 gtk/gtkroundedbox.c                  | 21 ++++++-------
 gtk/gtkroundedboxprivate.h           |  6 ++--
 gtk/gtksnapshot.c                    |  6 ++--
 gtk/gtkstylecontext.c                | 45 ---------------------------
 gtk/gtkstylecontext.h                |  6 ----
 20 files changed, 53 insertions(+), 241 deletions(-)

commit f2f5941d651c1f6339f07410ca419c2a08f06169
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 18:21:59 2016 +0100

    testgtk: Remove resize grips example

    Resize grips are gone. And just showing an empty window is not
    terribly
    exciting.

 tests/testgtk.c | 185
 --------------------------------------------------------
 1 file changed, 185 deletions(-)

commit 3f75b11982e0b193b23270e88545d6183f7b07fe
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 17:42:27 2016 +0100

    frame: Implement snapshot()

 gtk/gtkframe.c | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

commit c87db76cb5841cbee49364f0ab0cf7592b6722bd
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 17:16:09 2016 +0100

    iconview: Implement snapshot()

 gtk/gtkiconview.c | 162
 +++++++++++++++++++++++++++---------------------------
 1 file changed, 80 insertions(+), 82 deletions(-)

commit 94e906c802748505dffd9a1f05bbc07a02bdd984
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 16:34:25 2016 +0100

    cellview: Implement snapshot()

    This also adds gtk_cell_area_snapshot().

 gtk/gtkcellarea.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 gtk/gtkcellarea.h |  9 +++++++++
 gtk/gtkcellview.c | 26 ++++++++++++--------------
 3 files changed, 69 insertions(+), 14 deletions(-)

commit 2034e83a20aaf8d408eada9458aa0d3a7ab65af8
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 15:39:43 2016 +0100

    gsk: Add GskOutsetShadowNode

 docs/reference/gsk/gsk4-sections.txt   |   1 +
 gsk/gskenums.h                         |   2 +
 gsk/gskrendernode.h                    |   7 ++
 gsk/gskrendernodeimpl.c                | 220
 ++++++++++++++++++++++++++++++++-
 gtk/gtkcssshadowvalue.c                |  33 ++---
 gtk/inspector/gtktreemodelrendernode.c |   1 +
 gtk/inspector/recorder.c               |   2 +
 7 files changed, 248 insertions(+), 18 deletions(-)

commit fcc1f554d6ae5169c6156ce33ea7d2a916992b2a
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 05:13:42 2016 +0100

    gsk: Add GskInsetShadowNode

    And again lots of shadow code gets copied to GSK. But we're now almost
    at a stage where widget-factory does not use cairo nodes anymore.

 docs/reference/gsk/gsk4-sections.txt   |   1 +
 gsk/gskenums.h                         |   2 +
 gsk/gskrendernode.h                    |   8 +
 gsk/gskrendernodeimpl.c                | 469
 +++++++++++++++++++++++++++++++++
 gtk/gtkcssshadowvalue.c                |  26 +-
 gtk/inspector/gtktreemodelrendernode.c |   1 +
 gtk/inspector/recorder.c               |   2 +
 7 files changed, 499 insertions(+), 10 deletions(-)

commit 4fc64ae3dd5dde99b0a47e184b9428635012825c
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 04:39:33 2016 +0100

    gsk: Add contains/intersect functions for GskRoundedRect

    ... and use them.

 docs/reference/gsk/gsk4-sections.txt |   3 +
 gsk/gskroundedrect.c                 | 120
 ++++++++++++++++++++++++++++++++++-
 gsk/gskroundedrect.h                 |  11 +++-
 gtk/gtkcssshadowvalue.c              |   4 +-
 gtk/gtkroundedbox.c                  |  47 --------------
 gtk/gtkroundedboxprivate.h           |  10 ---
 6 files changed, 134 insertions(+), 61 deletions(-)

commit 2480e0d57530b72a8efa4fefeff98971b61e16da
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 00:45:35 2016 +0100

    gsk: Add GskShadowNode

    ... and make the icon rendering code use it.

    This requires moving even more shadow renering code into GSK, but
    so be
    it. At least the "shadows not implemented" warning is now gone!

 docs/reference/gsk/gsk4-sections.txt   |   2 +
 gsk/gskcairoblur.c                     | 118 +++++++++++++++++++++++
 gsk/gskcairoblurprivate.h              |  10 +-
 gsk/gskenums.h                         |   2 +
 gsk/gskrendernode.h                    |  15 +++
 gsk/gskrendernodeimpl.c                | 170
 +++++++++++++++++++++++++++++++++
 gsk/gskrendernodeprivate.h             |   4 +
 gtk/gtkcssshadowsvalue.c               |  19 ++++
 gtk/gtkcssshadowsvalueprivate.h        |   3 +
 gtk/gtkcssshadowvalue.c                |  11 +++
 gtk/gtkcssshadowvalueprivate.h         |   2 +
 gtk/gtkrendericon.c                    |  42 ++++----
 gtk/gtksnapshot.c                      |  61 ++++++++++++
 gtk/gtksnapshot.h                      |   6 ++
 gtk/inspector/gtktreemodelrendernode.c |   4 +
 gtk/inspector/recorder.c               |   2 +
 16 files changed, 454 insertions(+), 17 deletions(-)

commit 071c9a8221b53ab3e3586349187119221621d00a
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 22:31:18 2016 +0100

    API: gdk: Add gdk_rgba_is_clear() and gdk_rgba_is_opaque()

    I want to use these inside GSK, and I'm not a fan of putting GdkRGBA
    APIs into it or duplicating it into GTK.

    So public API it is.

 docs/reference/gdk/gdk4-sections.txt |  2 ++
 gdk/gdkrgba.c                        | 34
 ++++++++++++++++++++++++++++++++++
 gdk/gdkrgba.h                        |  5 +++++
 gtk/gtkcssshadowvalue.c              | 10 +++++-----
 gtk/gtkcsstypesprivate.h             |  4 ----
 gtk/gtkrenderbackground.c            |  6 +++---
 gtk/gtkwindow.c                      |  4 +---
 7 files changed, 50 insertions(+), 15 deletions(-)

commit 15e8a22f0803297cfce64adb5c1ebd95f7518b6c
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 21:45:15 2016 +0100

    gsk: Move gtk/gtkcairoblur.c to gsk/gskcairoblur.c

 docs/reference/gtk/Makefile.am                     |  1 -
 gsk/Makefile.am                                    |  2 +
 gtk/gtkcairoblur.c => gsk/gskcairoblur.c           | 27 +++++------
 .../gskcairoblurprivate.h                          | 22 ++++-----
 gtk/Makefile.am                                    |  2 -
 gtk/gtkcssshadowsvalue.c                           |  1 -
 gtk/gtkcssshadowvalue.c                            | 52
 +++++++++++-----------
 tests/Makefile.am                                  |  2 +-
 tests/blur-performance.c                           |  4 +-
 9 files changed, 56 insertions(+), 57 deletions(-)

commit 6e31fc43002a7865664ff3682b9401614865dd46
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 18:17:17 2016 +0100

    inspector: Print node type in node properties

 gtk/inspector/recorder.c | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

commit 75b76af2214277856efe9629939859deebcf914d
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 18:14:53 2016 +0100

    gsk: Add GskBorderNode

    The node draws a solid CSS border, which can be used to cover
    everything
    but dashed and dotted borders (double, groove, inset, ...).

    For different border styles, we overlay multiple nodes and set their
    colors to transparent for sides with non-matching styles.

 docs/reference/gsk/gsk4-sections.txt   |   1 +
 gsk/gskenums.h                         |   2 +
 gsk/gskrendernode.h                    |   5 +
 gsk/gskrendernodeimpl.c                | 186
 +++++++++++++++++++++++++++++
 gsk/gskrendernodeprivate.h             |   4 +
 gtk/gtkrenderborder.c                  | 209
 +++++++++++++++++++++++++++++----
 gtk/gtkrenderborderprivate.h           |   4 +-
 gtk/inspector/gtktreemodelrendernode.c |   1 +
 8 files changed, 389 insertions(+), 23 deletions(-)

commit 9af468cdec1c8b4dc603ff36c286288b2c85eb9e
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 17:52:47 2016 +0100

    gtk: Remove unused argument from function

 gtk/gtkcssgadget.c           |  1 -
 gtk/gtkrender.c              |  4 +---
 gtk/gtkrenderborder.c        | 29 +++++------------------------
 gtk/gtkrenderborderprivate.h |  1 -
 4 files changed, 6 insertions(+), 29 deletions(-)

commit a9809e5d30fbf4d5e3b555b5489d75102d5d30d0
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 17:10:45 2016 +0100

    gsk: Add gsk_rounded_rect_shrink()

    ... and replace _gtk_rounded_box_grow() and _gtk_rounded_box_shrink()
    with it.

 docs/reference/gsk/gsk4-sections.txt |  1 +
 gsk/gskroundedrect.c                 | 72
 ++++++++++++++++++++++++++++++++++++
 gsk/gskroundedrect.h                 |  6 +++
 gtk/gtkcssshadowvalue.c              |  8 ++--
 gtk/gtkrender.c                      |  2 +-
 gtk/gtkrenderbackground.c            |  4 +-
 gtk/gtkrenderborder.c                | 10 ++---
 gtk/gtkroundedbox.c                  | 62 -------------------------------
 gtk/gtkroundedboxprivate.h           | 11 ------
 9 files changed, 91 insertions(+), 85 deletions(-)

commit 1760e0d3f3d9f447bfdb1c29675497d23a60fd4f
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 07:08:37 2016 +0100

    vulkan: Get rid of color in push constants

    The color comes in instance data now, no need to abuse push constants
    for it.

 gsk/resources/vulkan/color.frag.glsl |   5 -----
 gsk/resources/vulkan/color.frag.spv  | Bin 672 -> 444 bytes
 2 files changed, 5 deletions(-)

commit 1b90ce6b334f77e4bc48a9db18332962c4e342a8
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 07:07:02 2016 +0100

    vulkan: Remove color from push constants

    It's now handled by the color pipeline.

 gsk/gskvulkanpushconstants.c        | 17 ++++-------------
 gsk/gskvulkanpushconstantsprivate.h |  8 ++------
 gsk/gskvulkanrenderpass.c           | 21 +--------------------
 3 files changed, 7 insertions(+), 39 deletions(-)

commit b04eecf860e8f6fe2503101d6bc8112c262939d9
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 06:54:48 2016 +0100

    vulkan: Pass color rects in instance data

    This way, we don't need push constants or per-vertex data, we
    can render
    colored rectangles completely via instance data.

 gsk/gskvulkancolorpipeline.c         |  49
 +++++++++++++++++++++--------------
 gsk/gskvulkancolorpipelineprivate.h  |   3 ++-
 gsk/gskvulkanrenderpass.c            |   3 ++-
 gsk/resources/vulkan/color.frag.glsl |   4 +--
 gsk/resources/vulkan/color.frag.spv  | Bin 804 -> 672 bytes
 gsk/resources/vulkan/color.vert.glsl |  16 ++++++++++--
 gsk/resources/vulkan/color.vert.spv  | Bin 948 -> 1632 bytes
 7 files changed, 49 insertions(+), 26 deletions(-)

commit 4c74695a859b2826bced79af71c316ff673dca7a
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 05:59:56 2016 +0100

    vulkan: Don't pass texture coordinates to the color pipeline

 gsk/gskvulkancolorpipeline.c         |  22 +++++++---------------
 gsk/resources/vulkan/color.frag.glsl |   2 --
 gsk/resources/vulkan/color.frag.spv  | Bin 892 -> 804 bytes
 gsk/resources/vulkan/color.vert.glsl |   4 ----
 gsk/resources/vulkan/color.vert.spv  | Bin 1104 -> 948 bytes
 5 files changed, 7 insertions(+), 21 deletions(-)

commit 5dfb74c70cafc2e7fad980646a97dc13a27220aa
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 05:33:16 2016 +0100

    vulkan: Get vertex description from pipeline subclass

 gsk/gskvulkanblendpipeline.c   | 39
 +++++++++++++++++++++++++++++++++++++++
 gsk/gskvulkancolorpipeline.c   | 39
 +++++++++++++++++++++++++++++++++++++++
 gsk/gskvulkanpipeline.c        | 27 +--------------------------
 gsk/gskvulkanpipelineprivate.h |  3 +++
 4 files changed, 82 insertions(+), 26 deletions(-)

commit b4f04d0c1dcc4d61ebdc9e3840fc3a3c6151c382
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 02:18:01 2016 +0100

    vulkan: Split color and blend pipelines

 gsk/Makefile.am                     |  2 +
 gsk/gskvulkancolorpipeline.c        | 81
 +++++++++++++++++++++++++++++++++++++
 gsk/gskvulkancolorpipelineprivate.h | 31 ++++++++++++++
 gsk/gskvulkanrender.c               | 15 ++++---
 gsk/gskvulkanrenderpass.c           | 46 +++++++++++++++++++--
 5 files changed, 165 insertions(+), 10 deletions(-)

commit e68b18aa4e38c86b934710d3004115833c651334
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 01:45:07 2016 +0100

    vulkan: Move vertex data tracking to the pipeline subclass

    That way, different pipelines can draw different kinds of data.

 gsk/gskvulkanblendpipeline.c        | 46 +++++++++++++++++++-
 gsk/gskvulkanblendpipelineprivate.h | 11 ++++-
 gsk/gskvulkanpipeline.c             |  2 +-
 gsk/gskvulkanrender.c               | 38 +++++++---------
 gsk/gskvulkanrenderpass.c           | 87
 ++++++++++++++++++++++++-------------
 gsk/gskvulkanrenderpassprivate.h    |  9 ++--
 gsk/gskvulkanrenderprivate.h        |  9 ----
 7 files changed, 133 insertions(+), 69 deletions(-)

commit 9aecd6dd569200d305607e79731f5dd2e9f34104
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 00:57:37 2016 +0100

    vulkan: Add GskVulkanBlendPipeline

    So far that's just a simple pipeline that doesn't do anything.

 gsk/Makefile.am                     |  2 ++
 gsk/gskvulkanblendpipeline.c        | 37
 +++++++++++++++++++++++++++++++++++++
 gsk/gskvulkanblendpipelineprivate.h | 22 ++++++++++++++++++++++
 gsk/gskvulkanpipeline.c             |  6 ++++--
 gsk/gskvulkanpipelineprivate.h      |  3 ++-
 gsk/gskvulkanrender.c               |  7 ++++---
 6 files changed, 71 insertions(+), 6 deletions(-)

commit 453478719d9db8d7a61d75c9cec8041f85547587
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 00:33:53 2016 +0100

    vulkan: Make GskVulkanPipeline derivable

 gsk/gskvulkanpipeline.c        | 41
 +++++++++++++++++++++++++----------------
 gsk/gskvulkanpipelineprivate.h |  7 ++++++-
 2 files changed, 31 insertions(+), 17 deletions(-)

commit 65e9894450538b070ea1ab5d407b675354870f44
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 17 20:46:25 2016 +0100

    menu: Implement snapshot() for the menu code

 gtk/gtkcheckmenuitem.c | 34 ++++++++++++++++------------------
 gtk/gtkcheckmenuitem.h |  6 +++---
 gtk/gtkmenu.c          | 40 +++++++++++++++++++++-------------------
 gtk/gtkmenubar.c       | 24 +++++++++++-------------
 gtk/gtkmenuitem.c      | 20 +++++++++-----------
 gtk/gtkmodelmenuitem.c |  8 ++++----
 6 files changed, 64 insertions(+), 68 deletions(-)

commit e492a63e4c13c0d43d18416e5687a93d1e5115b0
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 17 20:29:41 2016 +0100

    paned: Implement snapshot()

 gtk/gtkpaned.c | 75
 ++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 41 insertions(+), 34 deletions(-)

commit 8ad7c435ca4b457f4c4e7934586780fcce6a1000
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 17 08:07:29 2016 +0100

    cssimage: Implement snapshot() for cross-fade

 gtk/gtkcssimagecrossfade.c | 73
 +++++++++++++++++++++++++++-------------------
 1 file changed, 43 insertions(+), 30 deletions(-)

commit 9822fe81a3c81f9ef2f37b64a44774c6a27a24d4
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 17 08:06:59 2016 +0100

    snapshot: Implement gtk_snapshot_push_opacity()

    Use it in GtkWidget's opacity handling.

 gtk/gtksnapshot.c | 52
 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 gtk/gtksnapshot.h |  5 +++++
 gtk/gtkwidget.c   | 14 ++------------
 3 files changed, 59 insertions(+), 12 deletions(-)

commit 6b29dbf26a28497048857938b5bc4bcb033b859b
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 17 08:03:43 2016 +0100

    snapshot: Handle NULL returns in pop_and_append()

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

commit 30438c6e8be4ca4a6142b4386f8596c6eb4068c8
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 17 07:44:10 2016 +0100

    gsk: Add cross-fade node

    And implement stack crossfades with it.

 docs/reference/gsk/gsk4-sections.txt   |   1 +
 gsk/gskenums.h                         |   4 +-
 gsk/gskrendernode.h                    |   5 ++
 gsk/gskrendernodeimpl.c                | 136
 +++++++++++++++++++++++++++++++++
 gsk/gskrendernodeprivate.h             |   4 +
 gtk/gtkstack.c                         |  52 +++++++------
 gtk/inspector/gtktreemodelrendernode.c |   9 +++
 7 files changed, 186 insertions(+), 25 deletions(-)

commit 3e4fd32b54a9df53749b339fff587bfc5aaafdc9
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 17 04:54:19 2016 +0100

    vulkan: Batch upload image barriers together

    Doesn't seem to help much though...

 gsk/gskvulkanimage.c        | 357
 ++++++++++++++++++++++++--------------------
 gsk/gskvulkanimageprivate.h |   1 +
 gsk/gskvulkanrender.c       |   2 +
 3 files changed, 199 insertions(+), 161 deletions(-)

commit 7b9ace488b01e4f2d68e9c06659f8eed4a9b76ca
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 17 04:22:44 2016 +0100

    vulkan: Add GskVulkanUploader

    It's the thing that makes sure pixels end up on the GPU.

 gsk/gskvulkanimage.c             | 121
 +++++++++++++++++++++++++--------------
 gsk/gskvulkanimageprivate.h      |  11 +++-
 gsk/gskvulkanrender.c            |   9 ++-
 gsk/gskvulkanrenderer.c          |   9 ++-
 gsk/gskvulkanrendererprivate.h   |   2 +-
 gsk/gskvulkanrenderpass.c        |  14 ++---
 gsk/gskvulkanrenderpassprivate.h |   2 +-
 7 files changed, 108 insertions(+), 60 deletions(-)

commit 85559d1fd9bb47484467b92d1d97411567841bfc
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 16 06:10:24 2016 +0100

    vulkan: Split out command pool

    This way we can pass the command pool around.
    And that allows us to allocate and submitcustom buffers.
    And that is necessary to make staging images work.

 gsk/Makefile.am                   |   2 +
 gsk/gskvulkancommandpool.c        | 104
 ++++++++++++++++++++++++++++++++++++++
 gsk/gskvulkancommandpoolprivate.h |  22 ++++++++
 gsk/gskvulkanimage.c              |  69 +++++++++++++++----------
 gsk/gskvulkanimageprivate.h       |   4 +-
 gsk/gskvulkanrender.c             |  89 +++++++-------------------------
 gsk/gskvulkanrenderer.c           |  10 ++--
 gsk/gskvulkanrendererprivate.h    |   2 +-
 gsk/gskvulkanrenderpass.c         |  22 ++++----
 gsk/gskvulkanrenderpassprivate.h  |   3 +-
 10 files changed, 210 insertions(+), 117 deletions(-)

commit ba7ac637bccb06d356fad7a1c1a23cdec8e5372e
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 16 00:22:23 2016 +0100

    vulkan: Implement staging-buffer image upload

    This is not enabled by default. Use GSK_RENDERING_MODE=staging-buffer
    to
    use the code.

 gsk/gskdebug.c               |   1 +
 gsk/gskdebugprivate.h        |   9 ++--
 gsk/gskvulkanbuffer.c        |  26 +++++++--
 gsk/gskvulkanbufferprivate.h |   2 +
 gsk/gskvulkanimage.c         | 123
 +++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 152 insertions(+), 9 deletions(-)

commit 81297857cc1f767e9275b268387eea35ce74d3cc
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 15 10:09:41 2016 +0100

    snapshot: Convert Range, Scale, ColorScale

    And of course Scrollbar, but that one does no drawing itself.

 gtk/gtkcolorscale.c        | 26 ++++++++---------
 gtk/gtkcolorscaleprivate.h | 12 ++++----
 gtk/gtkrange.c             | 38 ++++++++++++-------------
 gtk/gtkscale.c             | 70
 ++++++++++++++++++++++++----------------------
 4 files changed, 73 insertions(+), 73 deletions(-)

commit 3ef03c8bc0bed418406418127061ffc489aa938e
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 15 10:08:46 2016 +0100

    gsk: Check for NULL in calls to gsk_cairo_node_get_surface()

    That function does actually sometimes return NULL and is documented to
    do so, so handle that case in the renderers (by omitting the node).

 gsk/gskglrenderer.c       | 3 +++
 gsk/gskvulkanrenderpass.c | 9 ++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

commit e8cd71228ad47b241ac43d0b9754d57615f28fff
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 15 05:42:31 2016 +0100

    gsk: Implement linear gradient render nodes

 docs/reference/gsk/gsk4-sections.txt   |   2 +
 gsk/gskenums.h                         |   5 ++
 gsk/gskrendernode.h                    |  20 +++++
 gsk/gskrendernodeimpl.c                | 156
 +++++++++++++++++++++++++++++++++
 gtk/gtkcssimagelinear.c                |  63 +++++++------
 gtk/inspector/gtktreemodelrendernode.c |   2 +
 6 files changed, 222 insertions(+), 26 deletions(-)

commit cf520b7a1f932100a0b87e85a4501d56e30762cc
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 15 04:24:37 2016 +0100

    gsk: Add blend nodes

    Implement blend mode support in GTK background compositing with it.

 docs/reference/gsk/gsk4-sections.txt   |   4 +-
 gsk/gskenums.h                         |   4 +-
 gsk/gskglrenderer.c                    |   2 +-
 gsk/gskrendernode.c                    |  41 --------
 gsk/gskrendernode.h                    |   5 +-
 gsk/gskrendernodeimpl.c                | 178
 +++++++++++++++++++++++++++++++++
 gsk/gskrendernodeprivate.h             |  10 +-
 gtk/gtkrenderbackground.c              |  46 +++++++--
 gtk/inspector/gtktreemodelrendernode.c |  11 ++
 gtk/inspector/recorder.c               |  19 ----
 10 files changed, 240 insertions(+), 80 deletions(-)

commit 3e26fadb2463c7e44b4b9efbb37c0f55201e59b7
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 15 04:20:35 2016 +0100

    css: Replace custom blend modes with GskBlendMode

 gtk/gtkcssenumvalue.c         | 38 +++++++++++++++++++-------------------
 gtk/gtkcssenumvalueprivate.h  |  4 ++--
 gtk/gtkcssstylepropertyimpl.c |  2 +-
 gtk/gtkcsstypes.c             | 34 +++++++++++++++++-----------------
 gtk/gtkcsstypesprivate.h      | 22 ++--------------------
 gtk/gtkrenderbackground.c     |  6 +++---
 6 files changed, 44 insertions(+), 62 deletions(-)

commit 2118f394d258554be67614e1fccb550795a69753
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 15 04:19:03 2016 +0100

    gsk: Add missing blend modes

    This brings GSK blend modes in line with the CSS spec.

 gsk/gskenums.h | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit 08a2a29c26f12c7a856a5c24d1083a05f687a484
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Dec 14 09:40:15 2016 +0100

    vulkan: Add infrastructure for multiple pipelines

    And use it to draw solid colors with a 2nd pipeline.

 gsk/gskvulkanrender.c                |  35
 +++++++++++++++++++++++++++--------
 gsk/gskvulkanrenderpass.c            |  30 ++++++++++++++++++++++++++++++
 gsk/gskvulkanrenderprivate.h         |   9 +++++++++
 gsk/resources/vulkan/color.frag.glsl |  17 +++++++++++++++++
 gsk/resources/vulkan/color.frag.spv  | Bin 0 -> 892 bytes
 gsk/resources/vulkan/color.vert.glsl |  19 +++++++++++++++++++
 gsk/resources/vulkan/color.vert.spv  | Bin 0 -> 1104 bytes
 7 files changed, 102 insertions(+), 8 deletions(-)

commit 7d837a2ae662ebfdc4202db63dcc0cd4b96ca5f3
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Dec 14 08:00:58 2016 +0100

    vulkan: Split PipelineLayout into its own object

    This way, we can share the layout between different pipelines.

 gsk/gskvulkanpipeline.c          | 151
 ++++++++++++++++++++++++++-------------
 gsk/gskvulkanpipelineprivate.h   |  21 ++++--
 gsk/gskvulkanrender.c            |  11 ++-
 gsk/gskvulkanrenderpass.c        |   8 +--
 gsk/gskvulkanrenderpassprivate.h |   2 +-
 5 files changed, 129 insertions(+), 64 deletions(-)

commit f4f0dba5c6cc545707e554445006c57f23995e20
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Dec 14 07:34:18 2016 +0100

    vulkan: Split render ops into seperate structs

    This makes it a lot clearer which members are relevant for each
    different operation.

 gsk/gskvulkanrenderpass.c | 111
 ++++++++++++++++++++++++++--------------------
 1 file changed, 63 insertions(+), 48 deletions(-)

commit 62eb9d42aac9807a9a1b811f839e4a668aac3a62
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Dec 14 07:21:21 2016 +0100

    vulkan: Add infrastructure for push constants

    THe code includes fragment push constants for colors, but that code is
    so far unused.

 gsk/Makefile.am                     |   2 +
 gsk/gskvulkanpipeline.c             |  11 ++--
 gsk/gskvulkanpushconstants.c        | 101
 ++++++++++++++++++++++++++++++++++++
 gsk/gskvulkanpushconstantsprivate.h |  46 ++++++++++++++++
 gsk/gskvulkanrenderpass.c           |  64 +++++++++++++----------
 5 files changed, 188 insertions(+), 36 deletions(-)

commit 58b2c1d009ef621256ea5109255be981b95ce9cb
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Dec 14 04:55:24 2016 +0100

    cssimage: Port a few more simple ones to snapshots

 gtk/gtkcssimageicontheme.c | 36 +++++++++++++++++++++++-------------
 gtk/gtkcssimagescaled.c    | 12 ++++++------
 gtk/gtkcssimageurl.c       | 12 ++++++------
 3 files changed, 35 insertions(+), 25 deletions(-)

commit cd68c93b4c938314c4b18bd8825395d05c694b52
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Dec 14 00:08:29 2016 +0100

    render: Fall back later when rendering backgrounds

    We can now render most backgrounds fine.

 gtk/gtkrenderbackground.c | 260
 ++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 250 insertions(+), 10 deletions(-)

commit 3d5173d4acaa754edd8270546bdcb4304744cffd
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Dec 14 00:06:01 2016 +0100

    gtk: Fix memleaks

    It turns out, some simple getters - such as
    gdk_drawing_context_get_clip() - love copying things before returning
    them.

    I guess somebody has to burn cycles...

 gtk/gtkwidget.c          | 6 +++++-
 gtk/inspector/recorder.c | 5 ++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

commit dd1cf1ac0f1f35f1d5810cbfbd445d8241f76414
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 23:00:26 2016 +0100

    css: An opaque background does not allow omitting push_group

    When the background-clip of the background is smaller than the
    background-clip of blended images, not pushing a group is wrong.

    Test testing exactly that included.

 gtk/gtkrenderbackground.c                          |  9 --------
 testsuite/reftests/Makefile.am                     |  3 +++
 .../background-blend-mode-clip-interaction.css     | 24
 ++++++++++++++++++++++
 .../background-blend-mode-clip-interaction.ref.ui  | 17 +++++++++++++++
 .../background-blend-mode-clip-interaction.ui      | 16 +++++++++++++++
 5 files changed, 60 insertions(+), 9 deletions(-)

commit 23e35706b49c0266765f5de017c206db40a062b1
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 21:59:28 2016 +0100

    gsk: Add support for rounded clip rectangles

    Also add support to GtkSnapshot, so people can push rounded clips.

 docs/reference/gsk/gsk4-sections.txt   |   2 +
 docs/reference/gtk/gtk4-sections.txt   |   1 +
 gsk/gskrendernode.h                    |   7 ++
 gsk/gskrendernodeimpl.c                | 124
 +++++++++++++++++++++++++++++++++
 gsk/gskrendernodeprivate.h             |   2 +
 gtk/gtksnapshot.c                      |  68 ++++++++++++++++++
 gtk/gtksnapshot.h                      |   5 ++
 gtk/inspector/gtktreemodelrendernode.c |   4 ++
 8 files changed, 213 insertions(+)

commit f96f16899d7bf137593efe6b09571f44150ec67d
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 21:00:28 2016 +0100

    roundedbox: Remove _gtk_rounded_box_path()

    Use gsk_rounded_rect_path() instead.

    That's a private GSK function, be we can just include its header.

 gtk/gtkcssshadowvalue.c    | 10 ++++++----
 gtk/gtkpopover.c           |  4 +++-
 gtk/gtkrender.c            |  4 +++-
 gtk/gtkrenderbackground.c  |  6 ++++--
 gtk/gtkrenderborder.c      |  8 +++++---
 gtk/gtkroundedbox.c        | 34 ----------------------------------
 gtk/gtkroundedboxprivate.h |  2 --
 7 files changed, 21 insertions(+), 47 deletions(-)

commit fa9b0f9965d51327139745a2536a7f2fb002b01d
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 20:51:57 2016 +0100

    roundedbox: Remove _gtk_rounded_box_move()

    Use gsk_rounded_rect_offset() instead.

 gtk/gtkcssshadowvalue.c    | 2 +-
 gtk/gtkroundedbox.c        | 9 ---------
 gtk/gtkroundedboxprivate.h | 3 ---
 3 files changed, 1 insertion(+), 13 deletions(-)

commit e26f84fca0446eebea1cfc5606ac5541db6bfcd6
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 20:48:58 2016 +0100

    gtk: Remove GtkRoundedBox struct

    Use GskRoundedRect instead.

 gtk/gtkcssshadowsvalue.c        |   6 +--
 gtk/gtkcssshadowsvalueprivate.h |   6 +--
 gtk/gtkcssshadowvalue.c         |  22 ++++----
 gtk/gtkcssshadowvalueprivate.h  |   6 +--
 gtk/gtkpopover.c                |   2 +-
 gtk/gtkrender.c                 |   2 +-
 gtk/gtkrenderbackground.c       |   4 +-
 gtk/gtkrenderborder.c           |  52 +++++++++----------
 gtk/gtkroundedbox.c             | 108
 +++++++++++++++++++-------------------
 gtk/gtkroundedboxprivate.h      | 112
 ++++++++++++++++++++--------------------
 10 files changed, 159 insertions(+), 161 deletions(-)

commit a2dfb1e93f7356d3d787429a382260660d714c26
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 20:36:00 2016 +0100

    roundedbox: typedef to GskRoundedRect

 gtk/gtkcssshadowvalue.c    |  80 ++++++++--------
 gtk/gtkrenderbackground.c  |   6 +-
 gtk/gtkroundedbox.c        | 232
 ++++++++++++++++++++++-----------------------
 gtk/gtkroundedboxprivate.h |   8 +-
 4 files changed, 160 insertions(+), 166 deletions(-)

commit c04bece131ad7afec609c336b3f4735a9e1af279
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 20:15:01 2016 +0100

    roundedbox: Use a graphene_size_t for the corners

    Obviously, I'm trying to port GtkRoundedBox to GskRoundedRect.

    This is the second step on that path.

 gtk/gtkcssshadowvalue.c    |  26 ++--
 gtk/gtkroundedbox.c        | 316
 ++++++++++++++++++++++-----------------------
 gtk/gtkroundedboxprivate.h |   8 +-
 3 files changed, 172 insertions(+), 178 deletions(-)

commit 6d012fb4ea1900d02161378a8aaa0467e915feb2
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 19:54:40 2016 +0100

    gtk: Get rid of GtkCssCorner

    We have GskCorner now which is identical.

 gtk/gtkcssshadowvalue.c    |  22 ++--
 gtk/gtkcsstypesprivate.h   |   7 -
 gtk/gtkrender.c            |  24 ++--
 gtk/gtkroundedbox.c        | 312
 ++++++++++++++++++++++-----------------------
 gtk/gtkroundedboxprivate.h |   1 +
 5 files changed, 180 insertions(+), 186 deletions(-)

commit 59d638a09fc4f72efb47560d103b2adbc00ce30a
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 19:02:12 2016 +0100

    gsk: Add GskRoundedRect

    It's essentially a port of GtkRoundedBox to graphene.

 docs/reference/gsk/gsk4-sections.txt |  12 ++
 gsk/Makefile.am                      |   3 +
 gsk/gsk.h                            |   1 +
 gsk/gskenums.h                       |  20 ++-
 gsk/gskroundedrect.c                 | 298
 +++++++++++++++++++++++++++++++++++
 gsk/gskroundedrect.h                 |  96 +++++++++++
 gsk/gskroundedrectprivate.h          |  15 ++
 7 files changed, 444 insertions(+), 1 deletion(-)

commit 0a0cbcdcb65b710fd2cce87f923d61d282892faa
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 16:19:14 2016 +0100

    viewport: implement snapshot()

 gtk/gtkviewport.c | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

commit b0175421f2293cdfc1b295d8939b52dc7f36027f
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 09:45:09 2016 +0100

    stack: Implement snapshot()

    This uses the new push()/pop() mechanism to its fullest extent when
    implementing transitions. It's fun to inspect the results in the
    inspector.

    Crossfades don't work yet, they continue using a Cairo fallback.

    A side effect of the stack conversion is that widget-factory now uses
    snapshots for a lot more things.

 gtk/gtkstack.c | 157
 ++++++++++++++++++++++++++++-----------------------------
 1 file changed, 76 insertions(+), 81 deletions(-)

commit 1137483d156a9062a746b07a6958a4057c115f6c
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 09:40:24 2016 +0100

    snapshot: Work on pushing and popping again

    It is now possible to call push() subfunctions for simple container
    nodes with just a single child. So you can for example
    gtk_snapshot_push_clip() a clip region that all the nodes that get
    appended later will then obey.

    gtk_snapshot_pop() will then not return a container node, but a clip
    node containing the container node (and similar for the transform
    example).

    This is implemented internally by providing a "collect function" when
    pushing that is called when popping to collects all the accumulated
    nodes and combine them into the single node that gets returned.

    To simplify things even more, gtk_snapshot_pop_and_append() has been
    added, which pops the currently pushed node and appends it to the
    parent.

    The icon rendering code has been converted to this approach.

 docs/reference/gtk/gtk4-sections.txt |   3 +
 gtk/gtkrendericon.c                  |  37 ++----
 gtk/gtksnapshot.c                    | 240
 ++++++++++++++++++++++++++++++-----
 gtk/gtksnapshot.h                    |  12 ++
 gtk/gtksnapshotprivate.h             |   8 ++
 5 files changed, 240 insertions(+), 60 deletions(-)

commit 1f988d8b050b039f031122e906b0abb72f227cac
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 09:37:51 2016 +0100

    gsk: Add gsk_clip_node_new()

    The node is a simple clipping node: It does a rectangular clip of its
    contents.

 docs/reference/gsk/gsk4-sections.txt   |   2 +
 gsk/gskenums.h                         |   4 +-
 gsk/gskrendernode.h                    |   6 ++
 gsk/gskrendernodeimpl.c                | 125
 +++++++++++++++++++++++++++++++++
 gsk/gskrendernodeprivate.h             |   2 +
 gtk/inspector/gtktreemodelrendernode.c |   4 ++
 6 files changed, 142 insertions(+), 1 deletion(-)

commit 68a54ae81fde71422beee789bb3e1a152b4722b5
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 05:55:42 2016 +0100

    stack: Don't draw an extra background

    The gadget draws a background for us, we don't need another one.

 gtk/gtkstack.c | 8 --------
 1 file changed, 8 deletions(-)

commit 07d39299ead9d936c05242d2aab664b7112c3070
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 05:49:57 2016 +0100

    gsk: Replace gsk_render_node_set_opacity()

    ... with gsk_opacity_node_new().

    Also implement support for opacity in gtk_widget_snapshot() using this
    new node.

 docs/reference/gsk/gsk4-sections.txt   |   3 +-
 gsk/gskenums.h                         |   4 +-
 gsk/gskglrenderer.c                    |   7 +-
 gsk/gskrendernode.c                    |  40 -----------
 gsk/gskrendernode.h                    |   6 +-
 gsk/gskrendernodeimpl.c                | 127
 +++++++++++++++++++++++++++++++++
 gsk/gskrendernodeprivate.h             |   2 +-
 gsk/gskvulkanrenderpass.c              |   8 ---
 gtk/gtkwidget.c                        |  55 +++++++++-----
 gtk/inspector/gtktreemodelrendernode.c |   4 ++
 gtk/inspector/recorder.c               |   7 --
 11 files changed, 179 insertions(+), 84 deletions(-)

commit 671d43b873770eb70f98050ab2a918a704199063
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 05:12:41 2016 +0100

    cssimage: Implement snapshot() in the fallback image

 gtk/gtkcssimagefallback.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

commit ed6643cf69c07c0c8206d53345c04da3fc3db630
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 05:11:59 2016 +0100

    cssimage: Use textures in GtkCssImageSurface

    We now use textures instead of surfaces and implement the snapshot()
    vfunc instead of draw().

 gtk/gtkcssimagerecolor.c        |  8 +---
 gtk/gtkcssimagesurface.c        | 92
 ++++++++++++++---------------------------
 gtk/gtkcssimagesurfaceprivate.h |  6 +--
 gtk/gtkcssimageurl.c            |  8 +---
 4 files changed, 37 insertions(+), 77 deletions(-)

commit 429346fa7e94b70705121ed9917d5a2d68b7631a
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 05:10:05 2016 +0100

    cssimage: Implement a fallback draw() vfunc

    ... that chains into snapshot. This way, we can stop implementing
    draw()
    in GtkCssImage subclasses and focus on snapshot() instead.

 gtk/gtkcssimage.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit c258ee403a92203957f786138e79cfbeea853ad1
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 05:08:40 2016 +0100

    snapshot: Make gtk_snapshot_get_renderer() private

    Public API doesn't need to be concerned with renderers. Worst case,
    they
    can use NULL instead of the actual renderer.

 docs/reference/gtk/gtk4-sections.txt | 1 -
 gtk/gtkiconhelper.c                  | 5 ++---
 gtk/gtksnapshot.h                    | 3 ---
 gtk/gtksnapshotprivate.h             | 2 ++
 4 files changed, 4 insertions(+), 7 deletions(-)

commit e6d423e0e26ec4630667defa2ffe3e1e83d6b894
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 05:07:43 2016 +0100

    gsk: Remove gsk_renderer_create_fallback()

    Use gsk_render_node_draw() instead.

 gsk/gskcairorenderer.c   |  8 ++----
 gsk/gskrenderer.c        | 75
 +-----------------------------------------------
 gsk/gskrendererprivate.h |  1 -
 gtk/gtkwidget.c          | 11 +------
 4 files changed, 4 insertions(+), 91 deletions(-)

commit b1200756981a9d7c0f1862402e09d195627af4f6
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 04:22:13 2016 +0100

    snapshot: Add API for colors and textures

 docs/reference/gtk/gtk4-sections.txt |  2 +
 gtk/gtkrendericon.c                  | 10 +---
 gtk/gtksnapshot.c                    | 94
 ++++++++++++++++++++++++++++++++++++
 gtk/gtksnapshot.h                    | 12 +++++
 4 files changed, 110 insertions(+), 8 deletions(-)

commit ee9aca882d098a08a6e82a5f4d12dc437a2aff79
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 04:20:04 2016 +0100

    gsk: Add fallback code to renderers

    This code makes renderers fall back to Cairo rendering if they don't
    know how to handle a render node's type.

    This allows adding new render nodes with impunity.

 gsk/gskglrenderer.c       | 34 +++++++++++++++++++++++++++++++++-
 gsk/gskvulkanrenderpass.c |  8 ++++++--
 2 files changed, 39 insertions(+), 3 deletions(-)

commit 6129daf29b2ca72187ca33cbe88311756545b494
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 03:35:56 2016 +0100

    gsk: Add gsk_color_node_new()

 docs/reference/gsk/gsk4-sections.txt   |  1 +
 gsk/gskenums.h                         |  2 +
 gsk/gskrendernode.h                    |  4 ++
 gsk/gskrendernodeimpl.c                | 92
 ++++++++++++++++++++++++++++++++++
 gsk/gskrendernodeprivate.h             |  2 +
 gtk/inspector/gtktreemodelrendernode.c |  1 +
 6 files changed, 102 insertions(+)

commit 361e2cda27ce6025768c5ec374603101cf61cd79
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 03:15:07 2016 +0100

    Call gsk_render_node_draw() instead of creating fallback renderers

 gsk/gskvulkanrenderpass.c      | 7 +------
 gtk/inspector/rendernodeview.c | 8 +-------
 2 files changed, 2 insertions(+), 13 deletions(-)

commit e82d02432e57b00606976e8a84e06628dd9d4918
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 03:05:15 2016 +0100

    gsk: Add gsk_render_node_draw()

    Draws a node to a given cairo_t. This is mostly intended for fallback
    usage.

 docs/reference/gsk/gsk4-sections.txt |   1 +
 gsk/gskcairorenderer.c               | 117
 +----------------------------------
 gsk/gskrendernode.c                  |  59 ++++++++++++++++++
 gsk/gskrendernode.h                  |   3 +
 gsk/gskrendernodeimpl.c              |  87 +++++++++++++++++++++++++-
 gsk/gskrendernodeprivate.h           |   2 +
 6 files changed, 151 insertions(+), 118 deletions(-)

commit 02131d590e2f4bdf9d2f487e619a3f08c1cf178e
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 02:33:15 2016 +0100

    snapshot: Change how gtk_snapshot_push/pop works

    Instead of appending a container node and adding the nodes to it
    as they
    come in, we now collect the nodes until gtk_snapshot_pop() is
    called and
    then hand them out in a container node.

    The caller of gtk_snapshot_push() is then responsible for doing
    whatever
    he wants with the created node.

    Another addigion is the keep_coordinates flag to gtk_snapshot_push()
    which allows callers to keep the current offset and clip region or
    discard it. Discarding is useful when doing transforms, keeping it is
    useful when inserting effect nodes (like the ones I'm about to add).

 docs/reference/gsk/gsk4-sections.txt |   1 -
 gsk/gskrendernode.h                  |  12 ++--
 gsk/gskrendernodeimpl.c              |  64 +++++++------------
 gtk/gtkrendericon.c                  |  15 ++---
 gtk/gtksnapshot.c                    | 117
 +++++++++++++++++++++--------------
 gtk/gtksnapshot.h                    |   8 +--
 gtk/gtksnapshotprivate.h             |   4 +-
 7 files changed, 112 insertions(+), 109 deletions(-)

commit ca80e9decf49acb042984bc07348d2fc93c03997
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 01:44:52 2016 +0100

    snapshot: Handle clip region as part of the state

    This is in preparation for further changes.

 gtk/gtksnapshot.c        | 16 ++++++++++++----
 gtk/gtksnapshotprivate.h |  2 +-
 2 files changed, 13 insertions(+), 5 deletions(-)

commit 67fb129ed7db377bd179757a77514c9ce0d3557f
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 00:11:06 2016 +0100

    gsk: gsk_render_node_set_transform() => GskTransformNode

    Instead of having a setter for the transform, have a GskTransformNode.

    Most of the oprations that GTK does do not require a transform, so it
    doesn't make sense to have it as a primary attribute.

    Also, changing the transform requires updating the uniforms of the GL
    renderer, so we're happy if we can avoid that.

 docs/reference/gsk/gsk4-sections.txt   |   3 +-
 gsk/gskcairorenderer.c                 |  35 +++++----
 gsk/gskenums.h                         |   5 +-
 gsk/gskglrenderer.c                    |  25 ++++--
 gsk/gskrendernode.c                    |  43 ----------
 gsk/gskrendernode.h                    |   5 +-
 gsk/gskrendernodeimpl.c                | 109 ++++++++++++++++++++++++++
 gsk/gskrendernodeprivate.h             |   7 +-
 gsk/gskvulkanrender.c                  |   4 +-
 gsk/gskvulkanrenderpass.c              | 111 ++++++++++++++++++--------
 gsk/gskvulkanrenderpassprivate.h       |   4 +-
 gtk/gtkrendericon.c                    |  99 +++++++++++++++--------
 gtk/gtksnapshot.c                      | 138
 +++++++++++----------------------
 gtk/gtksnapshot.h                      |  10 +--
 gtk/gtksnapshotprivate.h               |  11 +--
 gtk/inspector/gtktreemodelrendernode.c |   4 +
 gtk/inspector/recorder.c               |  23 ------
 17 files changed, 366 insertions(+), 270 deletions(-)

commit 19753062c4e593507472638ae8a3bc0bd435e6f2
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 12 19:30:41 2016 +0100

    gsK: Move children handling to GskContainerNode

 docs/reference/gsk/gsk4-sections.txt   |   9 +-
 gsk/gskcairorenderer.c                 |  23 ++-
 gsk/gskglrenderer.c                    |  29 ++--
 gsk/gskrendernode.c                    | 270
 ---------------------------------
 gsk/gskrendernode.h                    |  17 +--
 gsk/gskrendernodeimpl.c                | 111 +++++++++++---
 gsk/gskrendernodeprivate.h             |  12 --
 gsk/gskvulkanrenderpass.c              |  14 +-
 gtk/gtksnapshot.c                      |   4 +-
 gtk/inspector/gtktreemodelrendernode.c |  10 +-
 10 files changed, 140 insertions(+), 359 deletions(-)

commit e2625f8649492feebff98dd79addad2d493940dd
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 12 18:54:49 2016 +0100

    gsk: Remove GskRenderNode::parent

    ... and all related APIs.

 docs/reference/gsk/gsk4-sections.txt |  2 -
 gsk/gskglrenderer.c                  | 21 ++------
 gsk/gskrendernode.c                  | 93
 ------------------------------------
 gsk/gskrendernode.h                  |  6 ---
 gsk/gskrendernodeprivate.h           |  2 -
 5 files changed, 3 insertions(+), 121 deletions(-)

commit d691dfc89402778179ddc6e2a7b7574792666d1f
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 12 18:53:41 2016 +0100

    inspector: Prepare TreeModelRenderNode for brave new world

    I'm about to move children handling to the container node, which means
    the generic code can no longer assume children APIs existing.

    So rewrite the treemodel to work without it.

 gtk/inspector/gtktreemodelrendernode.c | 317
 +++++++++++++++++++++++----------
 gtk/inspector/gtktreemodelrendernode.h |   3 -
 2 files changed, 225 insertions(+), 95 deletions(-)

commit a8f2b3e75e9d44864f5bb509e4a7acd4a59b1fc1
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 12 16:52:55 2016 +0100

    gsk: Remove world matrix support

    Use the real transform and compute it manually.

 gsk/gskcairorenderer.c     |  9 ++---
 gsk/gskglrenderer.c        | 14 +++++---
 gsk/gskrendernode.c        | 83
 ----------------------------------------------
 gsk/gskrendernodeprivate.h | 11 ------
 gsk/gskvulkanrenderpass.c  |  8 ++---
 5 files changed, 17 insertions(+), 108 deletions(-)

commit 3eb7c4719b57a37888a7166fe4eae5fe1c081b72
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 12 06:29:04 2016 +0100

    gsk: Remove gsk_render_node_set_bounds()

    gsk_render_node_get_bounds() still exists and is computed via vfunc
    call:
    - containers dynamically compute the bounds from their children
    - surface and texture nodes get bounds passed on construction

 docs/reference/gsk/gsk4-sections.txt |  1 -
 gsk/gskrendernode.c                  | 31 ++----------
 gsk/gskrendernode.h                  |  3 --
 gsk/gskrendernodeimpl.c              | 95
 +++++++++++++++++++++++++++---------
 gsk/gskrendernodeprivate.h           |  5 +-
 gtk/gtksnapshot.c                    |  3 --
 gtk/gtksnapshot.h                    |  3 +-
 7 files changed, 78 insertions(+), 63 deletions(-)

commit 4d376c80f3b1a2c6125f127e4ca0bac3c58489fe
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 11 11:55:10 2016 +0100

    gsk: Remove gsk_render_node_get_size()

    In the brave new world of refactored render nodes, this function
    doesn't
    really make any sense anymore. We could turn it into a vfunc, but I
    don't think it's useful.

    Especially because even in the brave old world, this function was
    causing a vastl overallocation of nodes when the GL renderer needed
    render
    targets.

 gsk/gskglrenderer.c        | 11 +++--------
 gsk/gskrendernode.c        | 27 ---------------------------
 gsk/gskrendernodeprivate.h |  2 --
 3 files changed, 3 insertions(+), 37 deletions(-)

commit d907f608436646d23b0df488f06e66fde1a0f8ca
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 11 11:53:17 2016 +0100

    gsk: Add GskRenderNodeClass.make_immutable()

 gsk/gskrendernode.c        | 11 ++---------
 gsk/gskrendernodeimpl.c    | 32 +++++++++++++++++++++++++++++---
 gsk/gskrendernodeprivate.h |  1 +
 3 files changed, 32 insertions(+), 12 deletions(-)

commit e4ee65fd194788604e6e109bfbd52a7537295645
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 11 11:48:32 2016 +0100

    gsk: Remove gsk_render_node_set_opaque()

    If we ever feel, we need this function again, we can readd it later.

    But nobody is using it other than for overriding opactiy. And you can
    just override opacity directly if you care.

 docs/reference/gsk/gsk4-sections.txt |  2 --
 gsk/gskcairorenderer.c               |  2 +-
 gsk/gskglrenderer.c                  | 15 +++++--------
 gsk/gskrendernode.c                  | 42
 ------------------------------------
 gsk/gskrendernode.h                  |  5 -----
 gsk/gskrendernodeimpl.c              |  6 ++----
 gsk/gskrendernodeprivate.h           |  1 -
 7 files changed, 8 insertions(+), 65 deletions(-)

commit 684d25bd1aa1eac4a6cb23bc48aa6d9c0d7a1af6
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 11 04:28:21 2016 +0100

    gsk: Add custom structs to RenderNode subclasses

    So now we don't need to keep a texture pointer and a surface
    pointer and
    so on in the base struct.

 gsk/gskrendernode.c        |  4 ++--
 gsk/gskrendernodeimpl.c    | 54
 ++++++++++++++++++++++++++++++++++++----------
 gsk/gskrendernodeprivate.h |  7 +-----
 3 files changed, 46 insertions(+), 19 deletions(-)

commit be8b9406e51096f9b192af950082f07d034793bb
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 11 04:18:25 2016 +0100

    gsk: Add GskRenderNodeClass.finalize()

 gsk/gskrendernode.c        |  4 ++--
 gsk/gskrendernodeimpl.c    | 27 ++++++++++++++++++++++++---
 gsk/gskrendernodeprivate.h |  1 +
 3 files changed, 27 insertions(+), 5 deletions(-)

commit a97b819b81a4f6b3e622014dab81b36cf5521092
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 11 04:14:04 2016 +0100

    gsk: Add gsk_container_node_new()

    It replaces gsk_renderer_create_render_node() which was doing the eact
    same thing, only taking an unused extra argument.

 docs/reference/gsk/gsk4-sections.txt |  2 +-
 gsk/gskrenderer.c                    | 23 -----------------------
 gsk/gskrenderer.h                    |  3 ---
 gsk/gskrendernode.h                  |  3 +++
 gsk/gskrendernodeimpl.c              | 24 ++++++++++++++++++++++++
 gtk/gtksnapshot.c                    |  4 ++--
 6 files changed, 30 insertions(+), 29 deletions(-)

commit 8830a1a1ad09e4ed6bb67ef10dafe245fac3b952
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 11 04:13:22 2016 +0100

    gtk: Remove gtk_snapshot_append()

    It does not make sense to append an empty container node. Those should
    only be push()'d.

 docs/reference/gtk/gtk4-sections.txt |  1 -
 gtk/gtksnapshot.c                    | 47
 ------------------------------------
 gtk/gtksnapshot.h                    |  5 ----
 3 files changed, 53 deletions(-)

commit f16d523cb2c90f71a71c20390fd606ccd371817a
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 11 03:57:42 2016 +0100

    gsk: Introduce GskRenderNodeClass

    This is modeled after GtkCssValueClass. So far it doesn't do anything.

 gsk/gskrenderer.c          |  7 ++++++-
 gsk/gskrendernode.c        | 17 ++++++++---------
 gsk/gskrendernodeimpl.c    | 23 +++++++++++++++--------
 gsk/gskrendernodeprivate.h | 14 ++++++++++++--
 4 files changed, 41 insertions(+), 20 deletions(-)

commit 3af4fba895f4e85d6d5ce7866457d87fd9086951
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 11 02:59:47 2016 +0100

    gsk: Split render node subclasses out into their own file

 gsk/Makefile.am         |   1 +
 gsk/gskrendernode.c     | 168 -----------------------------------------
 gsk/gskrendernodeimpl.c | 196
 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 197 insertions(+), 168 deletions(-)

commit abd184efc984d027dad9d2ca1b3e92b670b34af4
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 11 02:33:58 2016 +0100

    gsk: Remove gsk_render_node_is_surface/texture()

    Use gsk_render_node_get_node_type() instead.

 gsk/gskcairorenderer.c     | 73
 ++++++++++++++++++++++++++--------------------
 gsk/gskglrenderer.c        | 63 +++++++++++++++++++++------------------
 gsk/gskrendernode.c        | 16 ----------
 gsk/gskrendernodeprivate.h |  3 --
 gsk/gskvulkanrenderpass.c  | 34 +++++++++++----------
 gtk/inspector/recorder.c   |  4 +--
 6 files changed, 96 insertions(+), 97 deletions(-)

commit cb5c5170f4ecd52556247ed74b1c8a32452b4874
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 11 01:51:35 2016 +0100

    gsk: Remove unneeded children modifiers

    Creating render nodes is fire-and-forget, so all one should do
    is create
    a container, append, append, append and then send it off to the
    renderer. So there's no need to replace, insert between or anything
    else.

 docs/reference/gsk/gsk4-sections.txt |   7 -
 gsk/gskrendernode.c                  | 284
 +----------------------------------
 gsk/gskrendernode.h                  |  24 ---
 3 files changed, 6 insertions(+), 309 deletions(-)

commit 52d2faef8821a8cff31cd66301018c707a7ef04e
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 11 01:23:02 2016 +0100

    gsk: Add gsk_cairo_node_new()

    Split off Cairo drawn content nodes and require you to allocate them
    using this new function.

 docs/reference/gsk/gsk4-sections.txt |  3 ++-
 gsk/gskcairorenderer.c               |  5 ++---
 gsk/gskglrenderer.c                  |  2 +-
 gsk/gskrendernode.c                  | 40
 ++++++++++++++++++++++++++++++------
 gsk/gskrendernode.h                  |  9 +++++---
 gsk/gskrendernodeprivate.h           |  2 +-
 gsk/gskvulkanrenderpass.c            |  2 +-
 gtk/gtksnapshot.c                    |  5 ++---
 8 files changed, 49 insertions(+), 19 deletions(-)

commit d1b80a6baa39f2a6b9be995b49155f24962aca11
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 11 00:12:02 2016 +0100

    gtk: Don't push cairo nodes

    We want to split nodes into containers and nodes that do actual
    drawing.
    So pushing nodes that do drawing is exactly the wrong thing.

    Also fix up GtkPopover. There's no need for it to push anything.

 docs/reference/gtk/gtk4-sections.txt |  1 -
 gtk/gtkpopover.c                     |  8 +++---
 gtk/gtksnapshot.c                    | 49
 ------------------------------------
 gtk/gtksnapshot.h                    |  5 ----
 4 files changed, 3 insertions(+), 60 deletions(-)

commit 8c8691b4691c8d96dfbdb363af0e23aa4e71b229
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 10 22:52:22 2016 +0100

    gsk: Add gsk_texture_node_new()

    Start the transition into the different node types.

 docs/reference/gsk/gsk4-sections.txt |  1 +
 gsk/gskcairorenderer.c               |  2 +-
 gsk/gskglrenderer.c                  |  2 +-
 gsk/gskrendernode.c                  | 34
 +++++++++++++++++++---------------
 gsk/gskrendernode.h                  |  8 +++++---
 gsk/gskrendernodeprivate.h           |  2 +-
 gsk/gskvulkanrenderpass.c            |  2 +-
 gtk/gtkrendericon.c                  |  5 +++--
 8 files changed, 32 insertions(+), 24 deletions(-)

commit ac5e277a71003ef01e049b1b2d6aea1c447146f3
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 10 21:42:01 2016 +0100

    gsk: Add GskRenderNodeType

    For now, this is unused.

 docs/reference/gsk/gsk4-sections.txt |  2 ++
 gsk/gskenums.h                       | 18 ++++++++++++++++++
 gsk/gskrenderer.c                    |  2 +-
 gsk/gskrendernode.c                  | 30 +++++++++++++++++++++++++++---
 gsk/gskrendernode.h                  |  3 +++
 gsk/gskrendernodeprivate.h           |  4 +++-
 6 files changed, 54 insertions(+), 5 deletions(-)

commit f258af9ccea01fd1ca4053ce5ce4c29abc2564e9
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 10 16:59:34 2016 +0100

    gsk: Remove GskRenderNodeIter

 docs/reference/gsk/gsk4-sections.txt |  15 ---
 gsk/Makefile.am                      |   2 -
 gsk/gsk.h                            |   1 -
 gsk/gskcairorenderer.c               |  11 +-
 gsk/gskglrenderer.c                  |  11 +-
 gsk/gskrendernode.c                  |  45 +++----
 gsk/gskrendernodeiter.c              | 254
 -----------------------------------
 gsk/gskrendernodeiter.h              |  45 -------
 gsk/gskvulkanrenderer.c              |   1 -
 9 files changed, 34 insertions(+), 351 deletions(-)

commit 6fb46e394362956e8035ead1f4b5dab89b8cf233
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 10 15:33:16 2016 +0100

    gsk: Make GskRenderNode a boxed type

 gsk/gskrendernode.c        | 177
 ++++-----------------------------------------
 gsk/gskrendernode.h        |   4 +-
 gsk/gskrendernodeprivate.h |  13 ----
 3 files changed, 17 insertions(+), 177 deletions(-)

commit 9bff1c12d480210d7acc86241c41d121964a88f4
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 10 15:21:28 2016 +0100

    gsk: Remove custom GValue API for GskRenderNode

 docs/reference/gsk/gsk4-sections.txt |   4 --
 gsk/gskrendernode.c                  | 106
 -----------------------------------
 gsk/gskrendernode.h                  |  13 -----
 3 files changed, 123 deletions(-)

commit ff884385c0a33ac4f9b9a99cb7f71e6c4734d34a
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 10 00:18:03 2016 +0100

    gsk: Remove GskRenderNode::hidden

    If you want to hide something, don't render it.

 docs/reference/gsk/gsk4-sections.txt |  2 --
 gsk/gskcairorenderer.c               |  3 ---
 gsk/gskglrenderer.c                  |  8 --------
 gsk/gskrendernode.c                  | 39
 ------------------------------------
 gsk/gskrendernode.h                  |  5 -----
 gsk/gskrendernodeprivate.h           |  1 -
 gsk/gskvulkanrenderpass.c            |  3 ---
 gtk/inspector/recorder.c             |  8 +-------
 gtk/inspector/recorder.ui            |  1 -
 9 files changed, 1 insertion(+), 69 deletions(-)

commit 04a2c1499a73892cbfea9eb779d9358001be0100
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 10 00:01:29 2016 +0100

    gsk: Remove RenderNode::anchor-point

 docs/reference/gsk/gsk4-sections.txt |  1 -
 gsk/gskrendernode.c                  | 23 -----------------------
 gsk/gskrendernode.h                  |  3 ---
 gsk/gskrendernodeprivate.h           |  2 --
 4 files changed, 29 deletions(-)

commit 174d6a5613ffaa187620b090a049f1479bc3bbd3
Author: Balázs Meskó <meskobalazs@gmail.com>
Date:   Tue Dec 20 15:14:01 2016 +0000

    Update Hungarian translation

 po/hu.po | 272
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 138 insertions(+), 134 deletions(-)

commit a47cb4d450e8c3c5451c44b94104a80f28661c39
Author: Balázs Meskó <meskobalazs@gmail.com>
Date:   Tue Dec 20 15:13:33 2016 +0000

    Update Hungarian translation

 po-properties/hu.po | 685
 ++++++++++++++++++++++++++--------------------------
 1 file changed, 342 insertions(+), 343 deletions(-)

commit 0ae27a3879fae900f1b5502d3793913fafecd9bd
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Tue Dec 20 11:32:30 2016 +0000

    Update Spanish translation

 po-properties/es.po | 14201
 ++++++++++++++++++++++++--------------------------
 1 file changed, 6891 insertions(+), 7310 deletions(-)

commit 4a13bd7a3f01586b9efd1440b42af2b7fdbcd281
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Tue Dec 20 11:31:59 2016 +0000

    Update Spanish translation

 po/es.po | 2256
 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 1120 insertions(+), 1136 deletions(-)

commit 696c48d0be827e21dccaf69f59e684a1ef96d667
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Dec 20 14:39:39 2016 +0800

    build/Makefile.msvcproj: Fix cleanup

    When we generate the Visual Studio 2013 projects, we need to
    remove the
    *.vs12.sourcefiles and *.vs12.sourcefile.filters that are generated
    during
    the process, so that 'make distcheck' won't complain about leftover
    files.

 build/Makefile.msvcproj | 2 ++
 1 file changed, 2 insertions(+)

commit 7ea199c831b20df78d42ffc1ffb11f0ffa17eb54
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Sat Dec 17 00:30:39 2016 +0100

    flowbox: Export gtk_flow_box_get_child_at_pos as public API

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

 docs/reference/gtk/gtk4-sections.txt |  1 +
 gtk/gtkflowbox.c                     | 64
 ++++++++++++++++++++++--------------
 gtk/gtkflowbox.h                     |  5 +++
 3 files changed, 45 insertions(+), 25 deletions(-)

commit faf22954402f49786ecee43b4b6bef7dbe887388
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Mon Dec 12 21:04:05 2016 +0100

    GtkStack: Remove redundant code

    Commit 7ce96cb6ac28eeb62e003dcb9e0a8ce7d48e09e0 avoids notifications
    during destruction by using gtk_widget_in_destruction. Therefore this
    code is no longer needed.

    This reverts commit 39e7afecb1ee882232e887e1b3e4c30ae0afe3a3

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

 gtk/gtkstack.c | 12 ------------
 1 file changed, 12 deletions(-)

commit 76e5fd4d0fe23a97933185d64451c9ab4293b482
Author: Philip Chimento <philip@endlessm.com>
Date:   Thu Dec 15 14:09:49 2016 -0800

    GtkApplication: Lack of optional components shouldn't warn

    When running uninstalled tests with GtkApplication on an autobuilder
    with
    a fake session bus, warnings will cause the tests to abort. The GNOME
    session manager, the Xfce session manager, and the Inhibit portal
    are all
    not needed for normal operation of GTK, so we should not log
    warnings if
    they are not found.

    As well as not being present on a fake session bus, it's also not
    expected that they'll be present on all platforms.

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

 gtk/gtkapplication-dbus.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit a2da4ddcebcf1c28f49d6a73d2a575be17be873e
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon Oct 3 18:20:03 2016 +0200

    Use Unicode in translatable strings

    See https://developer.gnome.org/hig/stable/typography.html

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

 gdk/win32/gdkmain-win32.c     |  4 ++--
 gtk/encodesymbolic.c          |  8 ++++----
 gtk/gtk-builder-tool.c        |  6 +++---
 gtk/gtk-launch.c              |  8 ++++----
 gtk/gtkactionable.c           |  2 +-
 gtk/gtkappchooserbutton.c     |  2 +-
 gtk/gtkappchooserwidget.c     |  2 +-
 gtk/gtkaspectframe.c          |  2 +-
 gtk/gtkcellrenderercombo.c    |  2 +-
 gtk/gtkcellrendererprogress.c |  2 +-
 gtk/gtkcellrenderertext.c     |  4 ++--
 gtk/gtkcheckmenuitem.c        |  2 +-
 gtk/gtkcombobox.c             |  8 ++++----
 gtk/gtkentry.c                |  8 ++++----
 gtk/gtkexpander.c             |  2 +-
 gtk/gtkfontchooser.c          |  2 +-
 gtk/gtkframe.c                |  2 +-
 gtk/gtkicontheme.c            |  4 ++--
 gtk/gtklabel.c                |  2 +-
 gtk/gtkmessagedialog.c        |  2 +-
 gtk/gtknotebook.c             |  8 ++++----
 gtk/gtkpaned.c                |  4 ++--
 gtk/gtkplacessidebar.c        |  8 ++++----
 gtk/gtkrange.c                |  4 ++--
 gtk/gtkrecentchooserdefault.c |  4 ++--
 gtk/gtkrecentchoosermenu.c    |  6 +++---
 gtk/gtkrecentmanager.c        | 16 ++++++++--------
 gtk/gtksettings.c             |  2 +-
 gtk/gtkshortcutsshortcut.c    |  4 ++--
 gtk/gtkspinbutton.c           |  2 +-
 gtk/gtktextbufferserialize.c  | 38 +++++++++++++++++++-------------------
 gtk/gtktexttag.c              |  2 +-
 gtk/gtktogglebutton.c         |  2 +-
 gtk/gtktoolbar.c              |  2 +-
 gtk/gtkwidget.c               |  2 +-
 gtk/gtkwindow.c               |  6 +++---
 gtk/updateiconcache.c         |  6 +++---
 37 files changed, 95 insertions(+), 95 deletions(-)

commit 7331735499e09aeb981f821b540131195a1f31e7
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Mon Dec 12 21:12:51 2016 +0100

    flowbox: Don't emit selected-children-changed during destruction

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

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

commit f5818c594cc310f547b389df315bdf9cb6e8b090
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Sun Dec 18 09:43:38 2016 +0100

    listbox: Don't emit selected-rows-changed, etc. during destruction

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

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

commit 9791641d4369a216a915ae8aa7c23acdb697ad02
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Fri Dec 16 23:40:21 2016 +0100

    flowbox: Rename gtk_flow_box_find_child_at_pos for consistency

    ... with gtk_list_box_get_row_at_y. It would be nice to avoid the
    'find' versus 'get' discrepancy since we are planning to expose it as
    public API.

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

 gtk/gtkflowbox.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

commit 4a7e7c00c102b12aa51ff817982e13f18b89311c
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Mon Dec 19 17:09:49 2016 +0800

    GDK/Win32: Fix Windows backend after GdkWindow simplification

    Fix the build after the branch wip/alexl/simplify-gdkwindow was
    merged, as
    there are some changes that broke things in the Windows backend,
    namely:

    -gdk_win32_input_shape_combine_region() should not be removed at this
     point (though it is a stub--otherwise GDK/Win32 will crash)

    -Some more code need to be removed due to the removal of items in the
     above-mentioned merged branch

    Also, like the X11 backend, do not allow the creation of native child
    windows, and stop checking for subsequent child windows
    (GDK_WINDOW_CHILD), so that we can clean things up a bit.

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

 gdk/win32/gdkevents-win32.c |   3 +-
 gdk/win32/gdkwindow-win32.c | 133
 ++++++++++++++++----------------------------
 2 files changed, 48 insertions(+), 88 deletions(-)

commit 62627bc833fbf4f7eb9aa481aa21701ca1267c3c
Author: Marek Černocký <marek@manet.cz>
Date:   Mon Dec 19 10:23:54 2016 +0100

    Updated Czech translation

 po-properties/cs.po | 219
 ++++++++++++++++++++--------------------------------
 1 file changed, 82 insertions(+), 137 deletions(-)

commit 2090219abbbfda79949c0f472820a5eee84a326b
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 15:14:49 2016 +0100

    scrolledwindow: Implement snapshot()

 gtk/gtkscrolledwindow.c | 84
 ++++++++++++++++++++++++-------------------------
 1 file changed, 41 insertions(+), 43 deletions(-)

commit e09fd1eb8a4b25e0234f8b7c66a0b2678f63a18b
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 13 16:39:38 2016 +0100

    scrolledwindow: Fix rendering

    We used to allocate the gadget relative to the view window. We
    allocate
    relative to widget->window now.

 gtk/gtkscrolledwindow.c | 40 ++++++++++++----------------------------
 1 file changed, 12 insertions(+), 28 deletions(-)

commit e755d9357d82fafce87fe99dc500e1737ea56879
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Dec 14 05:25:00 2016 +0100

    notebook: Implement snapshot

 gtk/gtknotebook.c | 93
 +++++++++++++++++++++++++++----------------------------
 1 file changed, 46 insertions(+), 47 deletions(-)

commit 3ba5c70028073b4eca7bee213ac0d7ff825c22d8
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 15 05:58:22 2016 +0100

    iconhelper: Implement snapshot

 gtk/gtkiconhelper.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

commit d9619abb117e4f4b49664cfb47c6a4d8d5e8509c
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 15 06:22:06 2016 +0100

    progressbar: Implement snapshot()

 gtk/gtkprogressbar.c | 42 ++++++++++++++++++++----------------------
 1 file changed, 20 insertions(+), 22 deletions(-)

commit 1733a3de0e41cfebb1dce92665df8359431818db
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 15 10:24:20 2016 +0100

    toolbar: Implement snapshot()

 gtk/gtktoolbar.c | 40 +++++++++++++++++++---------------------
 1 file changed, 19 insertions(+), 21 deletions(-)

commit 182dad304a6b7a19c1332b8c415f6b21241d6f84
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 15 10:45:21 2016 +0100

    eventbox: Implement snapshot()

 gtk/gtkeventbox.c | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

commit 8900d6cc4587cd24a581c01e3951a106097a3eed
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 15 10:49:08 2016 +0100

    separatortoolitem: Implement snapshot()

 gtk/gtkseparatortoolitem.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

commit edf8ffecdf09013c3023bfdf26ea60bf17d661c5
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 17 08:11:22 2016 +0100

    levelbar: Implement snapshot()

 gtk/gtklevelbar.c | 34 ++++++++++++++++------------------
 1 file changed, 16 insertions(+), 18 deletions(-)

commit 96a94fc21d0baf6972bb05038a2fd03dced8147d
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 18 20:06:33 2016 +0100

    frame: Remove the border node

    It does weird clipping that
    (a) nobody likes
    (b) is hard to support in the new rendering world.
    So we take the easy way out.

    The actual frame is now drawn by the frame node around the label.

 gtk/gtkframe.c                                   | 190
 +++--------------------
 gtk/theme/Adwaita/_common.scss                   |   2 +-
 gtk/theme/Adwaita/gtk-contained-dark.css         |   6 +-
 gtk/theme/Adwaita/gtk-contained.css              |   6 +-
 gtk/theme/HighContrast/_common.scss              |   2 +-
 gtk/theme/HighContrast/gtk-contained-inverse.css |   6 +-
 gtk/theme/HighContrast/gtk-contained.css         |   6 +-
 7 files changed, 35 insertions(+), 183 deletions(-)

commit 795f38b4cc901972f23eaff9de6c6387a48cf4a3
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 19 05:18:53 2016 +0100

    cellview: Remove code to modify the background

    GtkCellView has a gadget, so peopl can do all their shenanigans with
    CSS.

    And the original use case (overriding the background so that the
    cellview's GdkWindow shares the background color of the combobox) is
    outdated since we have transparent backgrounds.

 docs/reference/gtk/gtk4-sections.txt |   1 -
 gtk/gtkcellview.c                    | 107
 -----------------------------------
 gtk/gtkcellview.h                    |   3 -
 tests/testcombo.c                    |   6 --
 4 files changed, 117 deletions(-)

commit 087cb3f987dd49610f6cb0009a62d7ac1332f0ab
Author: Marek Černocký <marek@manet.cz>
Date:   Mon Dec 19 00:54:47 2016 +0100

    Updated Czech translation

 po-properties/cs.po | 466
 ++++++++++++++++++++++++++--------------------------
 po/cs.po            | 334 ++++++++++++++++++-------------------
 2 files changed, 402 insertions(+), 398 deletions(-)

commit 339f6e141a231e7d2d766bd93b6b2295c825afb5
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Thu Dec 15 13:17:57 2016 +0100

    Mention that gdk_window_create_similar_image_surface inherits
    the scale

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

 gdk/gdkwindow.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 2cb975ea7793752ab696ed02fb10fa75177c99d8
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Dec 14 09:55:55 2016 -0500

    Make gtk4-icon-browser work

    It was using no-longer-existing widgets and properties.

 demos/icon-browser/window.ui | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 330c7feaa2cae359f43e6cb7372dba812ff7dfd2
Author: Alexander Larsson <alexl@redhat.com>
Date:   Fri Dec 16 12:35:03 2016 +0100

    gdk: Drop gdk_window_reparent

    We're not currently using this, and dropping it allows us to loose
    a bunch of code which leads us towards the goal of having GdkWindow
    only for toplevels (and reparenting makes not sense for toplevels).

 gdk/broadway/gdkwindow-broadway.c |  10 --
 gdk/gdkwindow.c                   | 221
 --------------------------------------
 gdk/gdkwindow.h                   |   5 -
 gdk/gdkwindowimpl.h               |   5 -
 gdk/mir/gdkmirwindowimpl.c        |  11 --
 gdk/quartz/gdkwindow-quartz.c     |  56 ----------
 gdk/wayland/gdkwindow-wayland.c   |  10 --
 gdk/win32/gdkwindow-win32.c       |  90 ----------------
 gdk/x11/gdkwindow-x11.c           |  74 -------------
 9 files changed, 482 deletions(-)

commit 5bf28a386937847a171435bf55be16769565e402
Author: Alexander Larsson <alexl@redhat.com>
Date:   Thu Dec 15 17:53:08 2016 +0100

    gdk: Drop support for native (and thus foreign) subwindows

    We can't really support these on e.g. wayland anyway, and we're trying
    to get rid of subwindow at totally in the long term, so lets drop
    this.
    It allows us to drop a lot of complexity.

 gdk/broadway/gdkwindow-broadway.c |  27 --
 gdk/gdk.c                         |   7 -
 gdk/gdkinternals.h                |   1 -
 gdk/gdkwindow.c                   | 726
 +++-----------------------------------
 gdk/gdkwindow.h                   |   2 -
 gdk/gdkwindowimpl.h               |  11 -
 gdk/mir/gdkmirwindowimpl.c        |  32 --
 gdk/quartz/gdkwindow-quartz.c     |  16 -
 gdk/wayland/gdkwindow-wayland.c   |  27 --
 gdk/win32/gdkwindow-win32.c       |  61 +---
 gdk/x11/gdkgeometry-x11.c         |  44 ---
 gdk/x11/gdkprivate-x11.h          |   5 -
 gdk/x11/gdkproperty-x11.c         |   6 +-
 gdk/x11/gdkselection-x11.c        |  12 +-
 gdk/x11/gdkwindow-x11.c           | 285 +++------------
 15 files changed, 118 insertions(+), 1144 deletions(-)

commit 5c3192c75a060feb880b6b530478dc711058c1df
Author: Olivier Fourdan <ofourdan@redhat.com>
Date:   Wed Nov 16 15:05:43 2016 +0100

    wayland: apply empty input shape on parent commit

    For subsurfaces, the new state which includes the input shape is not
    applied by the compositor if the subsurface is in effective
    synchronous
    mode.

    So we need to apply the input shape once parent surface is in
    effective
    desynchronized mode, which is when it's committed, otherwise the input
    shape may never be applied if the widget is not using being_paint() /
    end_paint() to draw on its subsurface, like clutter does.

    We do that only for empty input shape as those won't need update when
    the subsurface is resized, for all other non-empty input shape, the
    client still has to use begin_paint()/end_paint() for the input
    shape to
    be applied.

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

 gdk/wayland/gdkwindow-wayland.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit cacd1da8a19cfb456696b67ed9cb0ee32f42d3d0
Author: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Date:   Wed Dec 14 11:13:24 2016 +0000

    Update Kazakh translation

 po-properties/kk.po | 5403
 ++++++++++++++++-----------------------------------
 1 file changed, 1690 insertions(+), 3713 deletions(-)

commit c4fd5bc233aa74f2144860dfb18d507e19206f9e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 10 20:41:07 2016 -0500

    Add a css parser test for border-spacing

 testsuite/css/parser/border-spacing.css     | 15 +++++++++++++++
 testsuite/css/parser/border-spacing.ref.css | 15 +++++++++++++++
 2 files changed, 30 insertions(+)

commit b1f2e3b5819b6206d05f1f1388cb8a78f2b80629
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 10 20:40:48 2016 -0500

    Remove -gtk-gradient from css parser tests

    It is not supported anymore.

 testsuite/css/parser/background-image.css     | 12 ------------
 testsuite/css/parser/background-image.ref.css | 12 ------------
 2 files changed, 24 deletions(-)

commit 8fb311cb4b3615de0b67cc0a8e0f331905945fb1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Sat Dec 10 20:34:24 2016 -0500

    Document the border-spacing CSS property

 docs/reference/gtk/css-properties.xml | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

commit 0eecc6f686f6c4a23549d2185e842d0fafa9b17b
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 10 04:32:19 2016 +0100

    grid: Implement support for CSS border-spacing

 gtk/gtkgrid.c | 67
 +++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 42 insertions(+), 25 deletions(-)

commit 404cdd5d02f9f81420e64341724dace5c7d0782e
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 10 04:19:04 2016 +0100

    boxgadget: Implement CSS border-spacing

 gtk/gtkboxgadget.c | 48 ++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 38 insertions(+), 10 deletions(-)

commit 75c3d193f613f3342446a204b36bee84e3f662a1
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 10 03:47:53 2016 +0100

    box: Implement support for border-spacing

 gtk/gtkbox.c | 71
 +++++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 49 insertions(+), 22 deletions(-)

commit 5aea1088028fbf3cd3d12b4477d4b369cffaf900
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 10 03:28:05 2016 +0100

    box: Remove unused member variable

 gtk/gtkbox.c | 3 ---
 1 file changed, 3 deletions(-)

commit d7148a47182e0b0ca286243101d3774c6b3d4be5
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 10 03:26:24 2016 +0100

    css: Add "border-spacing" CSS property

    It's using a GtkCssPositionValue, even though that name is wrong. But
    the functionality of managing 2 lengths is exactly what we want.

    Nobody is using this yet.

 gtk/gtkcsspositionvalue.c        | 26 ++++++++++++++++++++++++++
 gtk/gtkcsspositionvalueprivate.h |  5 +++--
 gtk/gtkcssstylepropertyimpl.c    | 17 +++++++++++++++++
 gtk/gtkcsstypesprivate.h         |  1 +
 4 files changed, 47 insertions(+), 2 deletions(-)

commit 438ad208e7734e66bee56201f1d82a913907839a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Dec 9 15:51:25 2016 -0500

    Use the new defines

    It is no longer GDK_WINDOWING_VULKAN.

 gsk/gskrenderer.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit cb8483b0a62e5e8e0004173a9104ffda5f3a030b
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 9 21:38:35 2016 +0100

    gtk: Remove unneeded gtk_snapshot_push()/pop() calls

 gtk/gtkaccellabel.c | 12 +-----------
 gtk/gtkcontainer.c  | 11 -----------
 gtk/gtkcssgadget.c  |  4 ----
 gtk/gtkwidget.c     |  4 ----
 gtk/gtkwindow.c     |  7 -------
 5 files changed, 1 insertion(+), 37 deletions(-)

commit f8932d643d58b515a45ec17a62320197cf087f44
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 9 21:33:38 2016 +0100

    snapshot: Always create an initial node

    This way we ensure that there is only one root node and everybody can
    append() with impunity.

 gtk/gtksnapshot.c        | 33 +++++++++++++++++++++++++++------
 gtk/gtksnapshotprivate.h |  4 +++-
 gtk/gtkwidget.c          |  5 +++--
 3 files changed, 33 insertions(+), 9 deletions(-)

commit 2faad03f2fb8570111731cb4cadebae191c37bc6
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 9 21:18:18 2016 +0100

    gsk: Improve GSK_RENDERER env var handling

    - Recognize "gl" as well as "opengl" for the GL renderer
    - GSK_RENDERER=help now works
    - g_warning() for an unrecognized renderer (typo detection!)
    - g_print() the actual renderer that is used (and error messages when
      selecting) when a GSK_RENDERER is given, so you'll notice if your
      renderer isn't taken.

 gsk/gskrenderer.c | 50 ++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 38 insertions(+), 12 deletions(-)

commit 3e9811d91cf0c4e1101b1eed913c950819ad55fd
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 9 21:17:27 2016 +0100

    build: Don't try to detect vulkan library if the header wasn't found.

    We've already failed. No need to fail again.

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

commit 4ae50bf38ebe589e88ef37f63ebdf36e030f1aae
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Dec 9 14:59:46 2016 -0500

    Trivial doc fixups

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

commit 2c0564a46e9dab44038483a234a7339a99cebc94
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 9 20:21:18 2016 +0100

    build: Make sure GTK compiles without Vulkan headers installed

    Previously, code would work fine with --disable-vulkan if the Vulkan
    headers were installed - code would happily just use them as they're
    installed in /usr/include.

 gdk/gdkvulkancontext.c        | 10 +++++-----
 gdk/gdkvulkancontextprivate.h |  2 ++
 2 files changed, 7 insertions(+), 5 deletions(-)

commit 98f5e794a69374a5fc8ae45d074da61e58704d3a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Dec 9 14:22:14 2016 -0500

    Forgotten file

 gdk/gdkvulkancontext.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 3dd4f767036a5b5b6a41959d15539beedb7a12d1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Dec 9 14:11:37 2016 -0500

    Rename GDK_WINDOWING_VULKAN

    The WINDOWING defines are only for GDK backends, really.
    Define GDK_RENDERING_VULKAN instead.

 configure.ac                   | 2 +-
 gdk/gdkdisplayprivate.h        | 6 +++---
 gdk/gdkvulkancontext.c         | 8 ++++----
 gdk/gdkvulkancontextprivate.h  | 8 ++++----
 gdk/x11/gdkdisplay-x11.c       | 2 +-
 gdk/x11/gdkvulkancontext-x11.c | 4 ++--
 gdk/x11/gdkvulkancontext-x11.h | 4 ++--
 7 files changed, 17 insertions(+), 17 deletions(-)

commit 5b6a837b1731b61ee841e9c58e8b5171bb817a7a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Dec 9 14:05:26 2016 -0500

    Only include vulkan.h if we have it

 gdk/gdkvulkancontext.c        | 4 +++-
 gdk/gdkvulkancontextprivate.h | 2 ++
 2 files changed, 5 insertions(+), 1 deletion(-)

commit 17c8ebc4a8bac95190206744b3712ad9bc1fbc71
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Dec 9 14:00:48 2016 -0500

    Fix the configure check for Vulkan

    GDK_WINDOWING_VULKAN was getting defined regardless of the tests.

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f52dd125693c7518e3788af951dece0d8f0777f0
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 9 07:23:04 2016 +0100

    vulkan: Implement texture caching

    And with this change, the GPU looks bored again.

 gsk/gskvulkanrenderer.c        | 73
 ++++++++++++++++++++++++++++++++++++++++++
 gsk/gskvulkanrendererprivate.h |  6 ++++
 gsk/gskvulkanrenderpass.c      | 13 +++-----
 3 files changed, 83 insertions(+), 9 deletions(-)

commit 6525fbe90fefda13918889f9dd3c5261e83bdb4f
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 9 06:13:14 2016 +0100

    vulkan: Don't create more than one render object

    By creating unlimited render objects, we would never wait on the GPU.

    This would mean that if the GPU was the bottleneck, we would fill its
    queue with render commands faster than it could process them.

    And because the nvidia binary driver and my code work surprisingly
    well
    and bugfree, this lead to exhaustion of RAM. I had 50GB of swap
    configured and my hard disk was quicker as swap storage than my
    GPU was
    at processing the commands, so stuff still filled up.

    At that point my computer became rather unresponsive and I decided to
    reboot it, so I that could write this patch.

 gsk/gskvulkanrenderer.c | 24 ++++--------------------
 1 file changed, 4 insertions(+), 20 deletions(-)

commit b3388aaca992564b1b244c1df5adb2859a15bd57
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 9 06:09:52 2016 +0100

    vulkan: Don't limit number of descriptor sets

    If we need more than we have reserved as maximum, recreate the
    descriptor pool with a higher maximum.

 gsk/gskvulkanrender.c | 35 +++++++++++++++++++++++++++++++----
 1 file changed, 31 insertions(+), 4 deletions(-)

commit 35d1dc6dd5ffa64db4458e7d1be351affd6ba6af
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 9 05:59:19 2016 +0100

    vulkan: Add more node operations

    Add SURFACE and TEXTURE operations. This way, we actually render more
    than one node every frame because not everything is a fallback node
    anymore that gets composited with its children into a cairo surface.

 gsk/gskvulkanrenderpass.c | 69
 +++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 67 insertions(+), 2 deletions(-)

commit cf470f31ca5562413502201381f2dfee48ddec71
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 9 05:53:04 2016 +0100

    vulkan: Push the correct matrix when drawing

    Instead of pushing the root matrix, push the world matrix for the
    current node. That way, the bounds we emit as vertices are actually
    properly transformed.

 gsk/gskvulkanrender.c            |  9 +--------
 gsk/gskvulkanrenderpass.c        | 22 ++++++++++++++++++----
 gsk/gskvulkanrenderpassprivate.h |  1 +
 3 files changed, 20 insertions(+), 12 deletions(-)

commit 93448b8c7e76979cc26e0f804a783494cb637ca6
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 9 05:51:51 2016 +0100

    vulkan: Enable alpha blending

    We will need that once we actually composite stuff.

 gsk/gskvulkanpipeline.c | 17 +++++++++++++----
 gsk/gskvulkanrender.c   |  2 +-
 2 files changed, 14 insertions(+), 5 deletions(-)

commit b3a1732a3ebbea5c13edaff3e0259b18d99c2a7f
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 9 02:55:47 2016 +0100

    vulkan: Redo descriptor set handling

    First, we collect all the info about descriptor sets into a hash
    table,
    then we use its size to determine the amount of sets and allocate
    those
    before we finally go ahead and use the hash table's contents to
    initialize the descriptor sets.

    And then we're ready to render.

 gsk/gskvulkanrender.c            | 141
 +++++++++++++++++++++++++++++++--------
 gsk/gskvulkanrenderpass.c        |  46 +++++++------
 gsk/gskvulkanrenderpassprivate.h |   6 +-
 gsk/gskvulkanrenderprivate.h     |   4 ++
 4 files changed, 145 insertions(+), 52 deletions(-)

commit f4685e0291732e16fdd066a9ea5df76b7c1ed041
Author: Benjamin Otte <otte@redhat.com>
Date:   Fri Dec 9 00:06:59 2016 +0100

    vulkan: Move remaining structs to VulkanRender object

    It now gets to maintain things.

 gsk/gskvulkanrender.c        | 101
 ++++++++++++++++++++++++++++++++++++++-----
 gsk/gskvulkanrenderer.c      |  97
 ++---------------------------------------
 gsk/gskvulkanrenderprivate.h |   5 +--
 3 files changed, 94 insertions(+), 109 deletions(-)

commit e989375c045b0f7d80ec79b4a5aea3d5aa81e61c
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 8 22:35:16 2016 +0100

    vulkan: Create framebuffers from GskVulkanRender object

    Also create them on-demand, as they need to be created per-image and
    per-framebuffer, so we don't want to create loads of them.

 gsk/gskvulkanrender.c        | 90
 +++++++++++++++++++++++++++++++++++++++++---
 gsk/gskvulkanrenderer.c      | 80 +++++----------------------------------
 gsk/gskvulkanrenderprivate.h |  8 ++--
 3 files changed, 98 insertions(+), 80 deletions(-)

commit 8756deec5898c281b88aeb546fe769e55b126f6b
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 8 21:14:41 2016 +0100

    vulkan: Turn swapchain image targets into GskVulkanImages

    This gives us proper refcounting here, too. And there's no longer a
    difference between the different types of images.

 gsk/gskvulkanimage.c        | 43 ++++++++++++++++++++++++++------
 gsk/gskvulkanimageprivate.h |  5 ++++
 gsk/gskvulkanrenderer.c     | 61
 +++++++++++++++++++--------------------------
 3 files changed, 65 insertions(+), 44 deletions(-)

commit 17c11dd97b99b3482de203be65c76eb613995582
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 8 20:46:02 2016 +0100

    vulkan: Store width/height of GskVulkanImage

    This is to enable lazy framebuffer creation later.

 gsk/gskvulkanimage.c        | 16 ++++++++++++++++
 gsk/gskvulkanimageprivate.h |  2 ++
 2 files changed, 18 insertions(+)

commit c160ef16c10c2f144a8d0ab5c70ec55b021755fc
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 8 20:19:56 2016 +0100

    vulkan: Turn GskVulkanImage into a GObject

    This way, we can do real refcounting on them.

 gsk/gskvulkanimage.c        | 25 +++++++++++++++++++++----
 gsk/gskvulkanimageprivate.h |  5 +++--
 gsk/gskvulkanrender.c       |  2 +-
 3 files changed, 25 insertions(+), 7 deletions(-)

commit 85bc9ff36b4a8cb0e1b2b87a0d13bc98605fd590
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 8 20:05:53 2016 +0100

    vulkan: Hook up image upload mechanism to env variables

    Instead of having to decie at compile-time, check if
    GSK_RENDERING=staging-image was given, and if so, select the staging
    image upload mode.

 gsk/gskvulkanimage.c        | 14 ++++----------
 gsk/gskvulkanimageprivate.h |  8 --------
 2 files changed, 4 insertions(+), 18 deletions(-)

commit b2e30fb66e2fe85f94fe8a5a3a5a23bd9435253a
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 8 19:56:56 2016 +0100

    vulkan: Don't wait until graphics are done computing

    We can let the GPU do its stuff without waiting. The GPU knows
    what it's
    doing.

    Which means we now get a lot of time to spend on doing CPU things
    (read:
    we're way better in benchmarks).

    The old behavior is safer, so we want to keep it around for debugging.
    It can be reenabled with GSK_RENDERING_MODE=sync.

 gsk/gskdebug.c        |  2 ++
 gsk/gskdebugprivate.h |  6 ++++--
 gsk/gskvulkanrender.c | 13 ++++++++-----
 3 files changed, 14 insertions(+), 7 deletions(-)

commit ac9d48151bdf316f4dcb67eac75d73c6c05606a5
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 8 18:40:35 2016 +0100

    vulkan: Keep render objects around

    That way we can reuse them. We only create a new one if the last
    render
    operation hasn't finished executing.

 gsk/gskvulkanrender.c        | 81
 +++++++++++++++++++++++++++++++-------------
 gsk/gskvulkanrenderer.c      | 28 +++++++++++++--
 gsk/gskvulkanrenderprivate.h |  3 ++
 3 files changed, 86 insertions(+), 26 deletions(-)

commit adff39953d5f508ff4e8118025b4a5ecbb2a66cd
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 8 18:03:05 2016 +0100

    vulkan: Move command pool and fence into render object

 gsk/gskvulkanrender.c        | 48
 +++++++++++++++++++++++++++++++++++---------
 gsk/gskvulkanrenderer.c      | 32 ++---------------------------
 gsk/gskvulkanrenderprivate.h |  6 ++----
 3 files changed, 42 insertions(+), 44 deletions(-)

commit 96355981248bcf6e9cf6bc0f1a8add9f4a03e794
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 8 17:55:32 2016 +0100

    vulkan: Make the GskVulkanRender struct private

 gsk/gskvulkanrender.c            | 27 +++++++++++++++++++++++++--
 gsk/gskvulkanrenderpass.c        | 22 +++++++++++++---------
 gsk/gskvulkanrenderpassprivate.h |  6 ++++--
 gsk/gskvulkanrenderprivate.h     | 20 ++------------------
 4 files changed, 44 insertions(+), 31 deletions(-)

commit eb94153a2cdd4a0f9708c6e1beb8bfe414ffed45
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 8 17:46:08 2016 +0100

    vulkan: Make the VulkanRender object allocated

    That way, we can have multiple of those and keep them around for
    reuse.

 gsk/gskvulkanrender.c        | 22 +++++++++++++---------
 gsk/gskvulkanrenderer.c      | 14 +++++++-------
 gsk/gskvulkanrenderprivate.h |  5 ++---
 3 files changed, 22 insertions(+), 19 deletions(-)

commit 747df7aa3cc1cc3d97edd0d097556d4d79116f9e
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 8 17:40:07 2016 +0100

    vulkan: Also wait on the draw semaphore when present()ing

    That way we have a synchronization primitive at the start and at the
    end.

 gdk/gdkvulkancontext.c | 4 ++++
 gsk/gskvulkanrender.c  | 6 +++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

commit 3c5b25b1d182756e87275d53db6a1e413b07488a
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 8 13:26:36 2016 +0100

    vulkan: Add GskVulkanRenderPass

    And move the actual rendering code there.

    A RenderPass is a collection of operations on the same target that
    get executed one after another. It roughly targets VkRenderPass or
    rather the subpasses of a VkRenderPass.

    For now, only the infrastructure is there. No real stuff is happening.

 gsk/Makefile.am                  |   2 +
 gsk/gskvulkanrender.c            | 200 +++++++++++++++++++++++++++++++++
 gsk/gskvulkanrenderer.c          | 202 ++-------------------------------
 gsk/gskvulkanrenderpass.c        | 233
 +++++++++++++++++++++++++++++++++++++++
 gsk/gskvulkanrenderpassprivate.h |  37 +++++++
 gsk/gskvulkanrenderprivate.h     |  42 ++++++-
 6 files changed, 520 insertions(+), 196 deletions(-)

commit 681554787b32dbb3534bfb0d7e25ece4cbc9e9ed
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Dec 7 14:50:52 2016 +0100

    vulkan: Add GskVulkanRender object

    This is refactoring work.

    GskVulkanRender is supposed to be the global object for a render
    operation, ie GskVulkanRenderer.render() will create this object for
    what it does.

    The object will be split into stages that perform the operations
    necessary to create a drawing.

 gsk/Makefile.am              |  2 ++
 gsk/gskvulkanrender.c        | 69
 ++++++++++++++++++++++++++++++++++++++++++++
 gsk/gskvulkanrenderer.c      | 61 +++++++--------------------------------
 gsk/gskvulkanrenderprivate.h | 29 +++++++++++++++++++
 4 files changed, 111 insertions(+), 50 deletions(-)

commit 583956266e2c1fd615987d1319058cfcc4fc0753
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Dec 7 01:48:31 2016 +0100

    vulkan: Make MVP matrix available to vertex shader

    We use push constants for this.

 gsk/gskvulkanpipeline.c             |  12 ++++++++-
 gsk/gskvulkanrenderer.c             |  50
 ++++++++++++++++++++++++++++--------
 gsk/resources/vulkan/blit.vert.glsl |   6 ++++-
 gsk/resources/vulkan/blit.vert.spv  | Bin 848 -> 1104 bytes
 4 files changed, 55 insertions(+), 13 deletions(-)

commit 13b53656eacbc8d9fe24242b0295caed999e9587
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 6 23:29:38 2016 +0100

    vulkan: Upload image data directly

    Instead of using a staging iamge, we require the final image to be
    linearly allocated and have host-visible memory.

    This improves performance quite a bit.

    The old code is still there and can be enabled with a simple change
    to a #define in gskvulkanimage.h

 gsk/gskvulkanimage.c        | 124
 ++++++++++++++++++++++++++++++++++----------
 gsk/gskvulkanimageprivate.h |   8 +++
 2 files changed, 104 insertions(+), 28 deletions(-)

commit 3c4b9522561d154d83721c61a95e01d7bbe23c21
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 6 14:42:46 2016 +0100

    vulkan: Make GskVulkanRenderer work

    We now create a Cairo renderer, render to an image surface and upload
    and retnder it with Vulkan.

 gsk/Makefile.am                     |   2 +
 gsk/gskvulkanimage.c                | 295
 ++++++++++++++++++++++++++++++++++++
 gsk/gskvulkanimageprivate.h         |  23 +++
 gsk/gskvulkanpipeline.c             |  35 ++++-
 gsk/gskvulkanpipelineprivate.h      |   2 +
 gsk/gskvulkanrenderer.c             | 137 ++++++++++++++++-
 gsk/resources/vulkan/blit.frag.glsl |   4 +-
 gsk/resources/vulkan/blit.frag.spv  | Bin 564 -> 632 bytes
 8 files changed, 493 insertions(+), 5 deletions(-)

commit 9120bdd9e910f48a65edcf43d6c5d3663467af42
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 6 00:09:59 2016 +0100

    xim: Use the native parent window for the X connection

    Don't try to gdk_window_get_xid() on the current window.

 modules/input/gtkimcontextxim.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

commit 5e4f95d77f54b19ab2545547cc9527f7830f0e56
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 5 23:40:16 2016 +0100

    x11: Don't make random windows native

    Instead, complain if somebody calls gdk_x11_window_get_xid() on a
    non-native window.

    We cannot make random windows native anymore because there's no GSK
    renderer associated with them, so we cannot draw them.

 gdk/x11/gdkwindow-x11.c | 22 ++++------------------
 1 file changed, 4 insertions(+), 18 deletions(-)

commit a7cbbaf8fcb35bc0b53f5386d42135eb0d97a12f
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 5 23:07:56 2016 +0100

    gsk: Pass texture coordinates to Vulkan renderer

    We just render the coordinates as color, we don't do anything
    with them
    yet.

 gsk/gskvulkanpipeline.c             |  10 ++++++++--
 gsk/gskvulkanrenderer.c             |  12 ++++++------
 gsk/resources/vulkan/blit.frag.glsl |   4 +++-
 gsk/resources/vulkan/blit.frag.spv  | Bin 420 -> 564 bytes
 gsk/resources/vulkan/blit.vert.glsl |   6 +++++-
 gsk/resources/vulkan/blit.vert.spv  | Bin 692 -> 848 bytes
 6 files changed, 22 insertions(+), 10 deletions(-)

commit 2a0e7f88295b8d73f9c2a248c18dd5301bff513c
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Dec 5 02:50:06 2016 +0100

    gsk: Loads of work on Vulkan backend

    We can now upload vertices.

    And we use this to draw a yellow background. Which is clearly superior
    to not drawing anything.

    Also, we have shaders now. If you modify them, you need glslc
    installed
    so they can be recompiled into Spir-V bytecode.

 gsk/Makefile.am                     |  29 +++++-
 gsk/gskvulkanbuffer.c               |  88 ++++++++++++++++
 gsk/gskvulkanbufferprivate.h        |  21 ++++
 gsk/gskvulkanmemory.c               |  95 +++++++++++++++++
 gsk/gskvulkanmemoryprivate.h        |  23 +++++
 gsk/gskvulkanpipeline.c             | 176 +++++++++++++++++++++++++++++++
 gsk/gskvulkanpipelineprivate.h      |  34 ++++++
 gsk/gskvulkanrenderer.c             | 200
 ++++++++++++++++++++++++++++++++----
 gsk/gskvulkanshader.c               | 102 ++++++++++++++++++
 gsk/gskvulkanshaderprivate.h        |  34 ++++++
 gsk/resources/vulkan/blit.frag.glsl |   8 ++
 gsk/resources/vulkan/blit.frag.spv  | Bin 0 -> 420 bytes
 gsk/resources/vulkan/blit.vert.glsl |  11 ++
 gsk/resources/vulkan/blit.vert.spv  | Bin 0 -> 692 bytes
 14 files changed, 796 insertions(+), 25 deletions(-)

commit 3f7cc013cc588fd1ce4d53921bc5cfe51af21bfe
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 4 18:10:18 2016 +0100

    configure: Improve Vulkan detection

    1. Output Vulkan status in summary
    2. Add missing "test" call
    3. Check for glslc

    The glslc check will be necessary later for the code that
    automatically
    compiles the Vulkan glsl source to Spir-V.
    Nothing happens if glslc is not available - unless you modify
    the glsl.

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

commit 8ba2898e08a8fd1038991d117705990a1fc9e398
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 1 04:07:20 2016 +0100

    vulkan: acquire/present images when drawing

    Another step towards the final goal of actually showing something.

 gdk/gdkvulkancontext.c  | 159
 +++++++++++++++++++++++++++++++++++++-----------
 gdk/gdkvulkancontext.h  |   6 +-
 gsk/gskvulkanrenderer.c |  27 ++++++++
 3 files changed, 157 insertions(+), 35 deletions(-)

commit 06657fa23b5ac839362abe66423df42ef8214f84
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 30 03:59:28 2016 +0100

    gskvulkan: Create render pass and command pool

 gsk/gskvulkanrenderer.c | 69
 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

commit 3e59b11700c88867d34c51459ef119b137992da1
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 30 02:08:17 2016 +0100

    gskvulkanrenderer: Create imagevies and framebuffers

 gsk/gskvulkanrenderer.c | 143
 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 141 insertions(+), 2 deletions(-)

commit 5bea4ff45e88b4d5a6ec36f8244df5332c606801
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 30 02:07:57 2016 +0100

    gsk: Add a vulkan debug category

 gsk/gskdebug.c        | 3 ++-
 gsk/gskdebugprivate.h | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 325efe707827d0e0f11d849e950930537bf7f1fb
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 30 00:54:48 2016 +0100

    vulkan: Expose the swapchain images in public API

 gdk/gdkvulkancontext.c | 90
 +++++++++++++++++++++++++++++++++++++++++++++++---
 gdk/gdkvulkancontext.h |  5 +++
 2 files changed, 90 insertions(+), 5 deletions(-)

commit a753f047df93b80949b06ed2e368a7de8f42c442
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 29 16:33:14 2016 +0100

    gsk: Add skeleton for Vulkan renderer

    The renderer itself obviously doesn't do anything.

 gsk/Makefile.am                | 10 +++++
 gsk/gskrenderer.c              |  7 +++
 gsk/gskvulkanrenderer.c        | 98
 ++++++++++++++++++++++++++++++++++++++++++
 gsk/gskvulkanrendererprivate.h | 24 +++++++++++
 4 files changed, 139 insertions(+)

commit 0c8e7d0ac0917705c74ccd1029f38784e035675a
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 29 16:29:19 2016 +0100

    vulkan: Register debug handler

    We now hook Vulkan error reporting into glib's error reporting.

    I'm not sure on the severity handling yet, but we can fix that as
    we go
    along.

 gdk/gdkdisplayprivate.h |   1 +
 gdk/gdkvulkancontext.c  | 123
 +++++++++++++++++++++++++++++++++++++++++-------
 2 files changed, 106 insertions(+), 18 deletions(-)

commit b6227aa998cf8e9a965b02b1fdf224e5090e5872
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 29 15:35:04 2016 +0100

    gdk: Add GDK_VULKAN env variable

    Also add 2 flags:

    GDK_VULKAN="disable" will disable Vulkan usage.

    GDK_VULKAN="validate" will enable VK_LAYER_LUNARG_standard_validation.

 gdk/gdk.c              | 13 ++++++++-
 gdk/gdkglobals.c       |  1 +
 gdk/gdkinternals.h     |  6 ++++
 gdk/gdkvulkancontext.c | 76
 +++++++++++++++++++++++++++++++++-----------------
 gdk/gdkwindow.c        |  7 +++++
 5 files changed, 77 insertions(+), 26 deletions(-)

commit e11a6a0e68fcddeaffb9133645508d33da95b428
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 29 14:47:59 2016 +0100

    x11: Call gdk_display_sync() when creating Vulkan surfaces

    The Vulkan driver wants to operate on an X Window that it is sure does
    exist.

 gdk/x11/gdkvulkancontext-x11.c | 7 +++++++
 1 file changed, 7 insertions(+)

commit e22cb94e50f4c1866722f9e0e67e363c4c580f30
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 29 03:20:31 2016 +0100

    vulkan: More work on GdkVulkanContext

    Code has now arrived at creation of swapchains.

 gdk/gdkdisplayprivate.h       |   1 +
 gdk/gdkvulkancontext.c        | 282
 +++++++++++++++++++++++++++++++++++++++++-
 gdk/gdkvulkancontext.h        |  13 ++
 gdk/gdkvulkancontextprivate.h |   2 +-
 4 files changed, 291 insertions(+), 7 deletions(-)

commit 4ef8bf821e1e4ba3adfd5981e6542bc0e506c7e9
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Nov 28 17:55:46 2016 +0100

    vulkan: Turn GdkVulkanContext into a GdkDrawContext

 gdk/gdkvulkancontext.c         | 151
 ++++-------------------------------------
 gdk/gdkvulkancontext.h         |   5 --
 gdk/gdkvulkancontextprivate.h  |   5 +-
 gdk/x11/gdkvulkancontext-x11.c |   4 +-
 4 files changed, 19 insertions(+), 146 deletions(-)

commit 6d1d6e67925035742f70b9d167ab41dfe7075ff3
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Nov 28 16:34:01 2016 +0100

    vulkan: Add more infrastructure

    gdk_window_create_vulkan_context() now exists and will return a Vulkan
    context for the given window. It even initializes the surface. But it
    doesn't do anything useful yet.

 gdk/gdkdisplayprivate.h        |   2 +
 gdk/gdktypes.h                 |  15 ++++++
 gdk/gdkvulkancontext.c         | 103
 ++++++++++++++++++++++++++++++++++-------
 gdk/gdkvulkancontext.h         |  11 +++++
 gdk/gdkvulkancontextprivate.h  |  12 +++--
 gdk/gdkwindow.c                |  39 ++++++++++++++++
 gdk/gdkwindow.h                |   4 ++
 gdk/x11/gdkdisplay-x11.c       |   7 +++
 gdk/x11/gdkvulkancontext-x11.c |  44 ++++++++++++++++--
 gdk/x11/gdkvulkancontext-x11.h |  10 ++++
 10 files changed, 223 insertions(+), 24 deletions(-)

commit cca547e5bccda95fd8bf283bec1bfc7b564e88f6
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Nov 21 14:18:43 2016 +0100

    vulkan: Initial support

    Adds the gdk_display_ref_vulkan() and gdk_display_unref_vulkan()
    functions which setup/tear down VUlkan support for the display.

    Nothing is using those functions yet.

 gdk/Makefile.am                |   3 +
 gdk/gdk.c                      |   3 +-
 gdk/gdk.h                      |   1 +
 gdk/gdkdisplayprivate.h        |  13 +-
 gdk/gdkinternals.h             |   1 +
 gdk/gdktypes.h                 |   1 +
 gdk/gdkvulkancontext.c         | 358
 +++++++++++++++++++++++++++++++++++++++++
 gdk/gdkvulkancontext.h         |  52 ++++++
 gdk/gdkvulkancontextprivate.h  |  82 ++++++++++
 gdk/x11/Makefile.am            |   2 +
 gdk/x11/gdkvulkancontext-x11.c |  32 ++++
 gdk/x11/gdkvulkancontext-x11.h |  51 ++++++
 12 files changed, 596 insertions(+), 3 deletions(-)

commit 843fe3eec1eac94e278af2be165f26fe95ae6126
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Nov 21 01:25:17 2016 +0100

    build: Add Vulkan detection code

    Also define GDK_WINDOWING_VULKAN if Vulkan is enabled.

 configure.ac | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

commit 87ae5885dd7b79f7f4ec40b16ca2478ef52984e5
Author: Gianvito Cavasoli <gianvito@gmx.it>
Date:   Fri Dec 9 10:34:45 2016 +0000

    Update Italian translation
    (cherry picked from commit 44fb5c9c704c39fad392ca45c6c2d74d6633a4e4)

 po/it.po | 509
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 265 insertions(+), 244 deletions(-)

commit 9a7b0847b9d09ea67e1481fcd301bf04a5c2b54d
Author: William Hua <william.hua@canonical.com>
Date:   Thu Dec 8 15:28:31 2016 -0500

    mir: swap buffers on paint

 gdk/mir/gdkmirwindowimpl.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

commit 489aee5d001efb3263d67b5dcb6deadb80a24e85
Author: Timm Bäder <mail@baedert.org>
Date:   Wed Nov 23 17:46:44 2016 +0100

    widget: Remove unused adjust_* vfuncs

    Expose them privately to gtksizerequest.c using normal functions
    instead.

 gtk/gtksizerequest.c   | 34 +++++++++-----------
 gtk/gtkwidget.c        | 84
 ++++++++++++++++++++------------------------------
 gtk/gtkwidget.h        | 48 -----------------------------
 gtk/gtkwidgetprivate.h | 13 ++++++++
 4 files changed, 61 insertions(+), 118 deletions(-)

commit 1aa1676d9dd5910f460bcea0fdde03c041fac6db
Author: Timm Bäder <mail@baedert.org>
Date:   Fri Dec 2 13:20:47 2016 +0100

    menu: Replace button-press-handler with gesture

 gtk/gtkmenu.c        | 88
 ++++++++++++++++++++++++++++++++--------------------
 gtk/gtkmenuprivate.h |  3 ++
 2 files changed, 57 insertions(+), 34 deletions(-)

commit be9adea58ebd73686ced99dd9a2a77fd82005c0c
Author: Timm Bäder <mail@baedert.org>
Date:   Fri Dec 2 12:39:46 2016 +0100

    toolbar: Replace button-press-event handler with gesture

 gtk/gtktoolbar.c | 46 ++++++++++++++++++++++++++++++++++------------
 1 file changed, 34 insertions(+), 12 deletions(-)

commit 55b1f231fb00134c1b7e71465486e56f5f452f12
Author: Timm Bäder <mail@baedert.org>
Date:   Fri Dec 2 12:22:41 2016 +0100

    linkbutton: Replace button-press-event handler with gesture

 gtk/gtklinkbutton.c | 59
 ++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 38 insertions(+), 21 deletions(-)

commit c4a6c37767978320e6056b88ebba333d20a0b499
Author: Timm Bäder <mail@baedert.org>
Date:   Fri Dec 2 11:34:56 2016 +0100

    separatortoolitem: Remove button-event/motion-event handlers

    These only exist for the window dragging which does not exist anymore
    currently. It will be reintroduced later in a form that does not
    require
    these handlers.

 gtk/gtkseparatortoolitem.c | 33 ---------------------------------
 1 file changed, 33 deletions(-)

commit 4c12c4ba02dfc5022c3ff45e50c710b73f6ebb5f
Author: Timm Bäder <mail@baedert.org>
Date:   Thu Dec 1 10:19:24 2016 +0100

    snapshot: Add annotations to parameters/return values

 gtk/gtksnapshot.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit ea22bd9d403eebe4b528c9e46efa9b8d4f5c5a15
Author: Timm Bäder <mail@baedert.org>
Date:   Mon Dec 5 18:19:04 2016 +0100

    widget: Use gtk_widget_measure to measure widget sizes

 gtk/gtkwidget.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

commit 07a9b202abe945c3a9aa7de8534e63c25bc7db8b
Author: Timm Bäder <mail@baedert.org>
Date:   Tue Nov 22 12:08:07 2016 +0100

    widget: Remove _gtk_widget_supports_clip

 gtk/gtkwidgetprivate.h | 1 -
 1 file changed, 1 deletion(-)

commit 3063d4a5e36641c5abc0f3590d1d045831f0c767
Author: Timm Bäder <mail@baedert.org>
Date:   Tue Nov 22 12:05:48 2016 +0100

    widget: Remove gtk_widget_invalidate_style_context

 gtk/gtkwidget.c        | 9 +--------
 gtk/gtkwidgetprivate.h | 2 --
 2 files changed, 1 insertion(+), 10 deletions(-)

commit cd2b898353c4723b825d05afc83ae628b1b105bd
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 6 18:01:34 2016 +0100

    wayland: Sync attributes also when drawing with GL

    Probably syncing attributes shouldn't happen when drawing in the first
    place, but what do I know about Wayland. ¯\_(ツ)_/¯

 gdk/wayland/gdkglcontext-wayland.c | 2 ++
 gdk/wayland/gdkprivate-wayland.h   | 1 +
 gdk/wayland/gdkwindow-wayland.c    | 6 ++++++
 3 files changed, 9 insertions(+)

commit a85a97c1a117bcedf3685337a3fe69fac9bdcb6a
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Dec 6 17:51:35 2016 +0100

    wayland: Uncomment erroneously commented out code

    I read the code as if (use_gl) instead of if (!use_gl) and commented
    it
    out in bddfd7bb41cebd9b4e8ea418ce4d8e1f11822e81. That broke drawing on
    Wayland without OpenGL completely.

    Whoops.

    Now it's back.

 gdk/wayland/gdkwindow-wayland.c | 3 ---
 1 file changed, 3 deletions(-)

commit 060365a9bb5077c36c0ea9c36170096c110cffd3
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Tue Dec 6 14:37:42 2016 +0800

    GDK/Win32: Fix build after GDKGL refactoring

    There were some parts that need some updates after the refactoring in
    GDKGL, so that the code will continue to build and run.

    For gdkwindow-win32.c, comment out the parts where we check for use_gl
    (which was removed), since we are going to move all drawing to OpenGL,
    but don't remove/disable the whole portion as that transition is not
    complete at this point.

    There a is new GDKGL function that checks for the damaged area of
    the back
    buffer, but since the notion of "damage" is for *NIX (GLX/EGL for
    Wayland/mir), meaning that there is no such extension for Windows
    in this
    regard, so we can't support this on Windows as-is, at least for now.

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

 gdk/win32/gdkglcontext-win32.c | 15 +++++++++------
 gdk/win32/gdkwindow-win32.c    | 22 ++++++++++++++++++----
 2 files changed, 27 insertions(+), 10 deletions(-)

commit 82401032c56eba0a2f3fa8291737882905f812d3
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Mon Dec 5 19:46:59 2016 +0100

    Update POTFILES.in

 po-properties/POTFILES.in | 1 +
 po/POTFILES.in            | 1 +
 2 files changed, 2 insertions(+)

commit fdec3e8a3f7a96a85c101ac09f50dc1162dd529b
Author: William Hua <william.hua@canonical.com>
Date:   Mon Dec 5 11:37:20 2016 -0500

    build: add gir depends for GdkX11, GdkWin32, and Gsk on Gdk

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

 gtk/Makefile.am | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 3c2aefddd40485852055d21e892962df0b479fa3
Author: William Hua <william.hua@canonical.com>
Date:   Mon Dec 5 11:06:32 2016 -0500

    mir: fix type warning

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

commit 32b3928edab9732bcd26b4ba0a414fd3c6bebc43
Author: William Hua <william.hua@canonical.com>
Date:   Mon Dec 5 10:28:34 2016 -0500

    mir: fix build failures

 gdk/mir/gdkmirdisplay.c    |  2 +-
 gdk/mir/gdkmirglcontext.c  | 25 +++++++++++++------------
 gdk/mir/gdkmirwindowimpl.c |  2 ++
 3 files changed, 16 insertions(+), 13 deletions(-)

commit e27e8e6e1cc9e86cc03692ec63f2268c899cafe5
Author: William Hua <william.hua@canonical.com>
Date:   Tue Nov 29 12:38:47 2016 -0500

    mir: implement display monitor vfuncs

 gdk/mir/gdkmirdisplay.c | 76
 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 76 insertions(+)

commit 8915be00d13605c90669d4d84510d823aa0c52ab
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 4 16:33:13 2016 +0100

    gdkgl: Add gdk_gl_context_get_damage()

    This is a way to query the damaged area of the backbuffer.

    The GL renderer uses this to compute the extents of that damage region
    (computed via buffer age) and use them to minimize the area to redraw.

    This changes the semantics of GL rendering to "When calling
    gdk_window_begin_frame() with a GL context, the area by
    gdk_gl_context_get_damage() needs to be redrawn and every other
    pixel of
    the backbuffer is guaranteed to be correct.
    After gdk_window_end_frame() on a GL-drawn window, the whole
    backbuffer
    must be correct.

    We can always glXBufferSwap() now because of this.

 docs/reference/gdk/gdk4-sections.txt |   1 +
 gdk/gdkglcontext.c                   |  36 ++++++++++++
 gdk/gdkglcontext.h                   |   3 +
 gdk/gdkglcontextprivate.h            |   2 +
 gdk/mir/gdkmirglcontext.c            |  59 ++++++++++++-------
 gdk/wayland/gdkglcontext-wayland.c   |  67 ++++++++++++++-------
 gdk/x11/gdkglcontext-x11.c           | 111
 +++++++++++++++--------------------
 gsk/gskglrenderer.c                  |  94 +++++++++++++++++++----------
 8 files changed, 236 insertions(+), 137 deletions(-)

commit 582ea50faaa7e7b9650815e9a64297b29e32efab
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Dec 4 16:32:38 2016 +0100

    inspector: Add support for displayin the render region

    Now I just need a UI designer that makes this look nice...

 gtk/inspector/recorder.c       |  2 ++
 gtk/inspector/rendernodeview.c | 65
 +++++++++++++++++++++++++++++++++++++++++-
 gtk/inspector/rendernodeview.h |  4 +++
 3 files changed, 70 insertions(+), 1 deletion(-)

commit 9597caef5e13d41a664c19a24d65c08c37da6c8f
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Nov 27 16:37:31 2016 +0100

    glrenderer: Always redraw the whole screen

 gsk/gskglrenderer.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

commit ca78f5d3cbdd9478ef1206b2c7f1c9472e28796d
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Dec 1 01:38:20 2016 +0100

    gdk: Make gdk_window_begin_draw_frame() take a draw context

    ... instead of a gl context.

    This requires some refactoring in the way we mark the shared
    context as
    drawing: We now call begin_frame/end_frame() on it and ignore the call
    on the main context.
    Unfortunately we need to do this check in all vfuncs, which
    sucks. But I
    haven't found a better way.

 gdk/gdkdrawcontext.c               |  85 +++++++++++++++++++-
 gdk/gdkdrawcontextprivate.h        |  13 +++
 gdk/gdkdrawingcontext.c            |  12 +--
 gdk/gdkdrawingcontext.h            |   2 +-
 gdk/gdkglcontext.c                 | 161
 ++++++++++++-------------------------
 gdk/gdkglcontextprivate.h          |  11 ---
 gdk/gdkwindow.c                    |  22 ++---
 gdk/gdkwindow.h                    |   2 +-
 gdk/mir/gdkmirglcontext.c          |  14 +++-
 gdk/wayland/gdkglcontext-wayland.c |  35 +++++---
 gdk/win32/gdkglcontext-win32.c     |  16 +++-
 gdk/x11/gdkglcontext-x11.c         |  41 ++++++----
 gsk/gskglrenderer.c                |  10 +--
 gsk/gskrenderer.c                  |  31 +------
 gsk/gskrendererprivate.h           |   2 -
 15 files changed, 245 insertions(+), 212 deletions(-)

commit 60567db486649746978850797e548a099df5aa0a
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Nov 27 16:21:02 2016 +0100

    gskrenderer: Add gsk_renderer_begin_draw_frame()

    This way, we can hijack the begin/end draw process and do out own
    processing before passing it on to GDK.

 docs/reference/gsk/gsk4-sections.txt |  3 +-
 gsk/gskrenderer.c                    | 69
 ++++++++++++++++++++++++++++++------
 gsk/gskrenderer.h                    |  6 +++-
 gsk/gskrendererprivate.h             |  4 +++
 gtk/gtkwidget.c                      |  6 ++--
 5 files changed, 71 insertions(+), 17 deletions(-)

commit e950a5190dcb0dfeebfbb2b1a31273e2d34c77b5
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 30 18:55:45 2016 +0100

    inspector: Pass the drawing context into the recorder

    That way we can capture both the actual changes (clip region) and the
    area that was redrawn (render region), which in OpenGL might not be
    identical.

    Nothing shows the render region yet though...

 gtk/gtkwidget.c                 |  7 ++++++-
 gtk/inspector/recorder.c        |  2 ++
 gtk/inspector/recorder.h        |  1 +
 gtk/inspector/renderrecording.c | 17 +++++++++++++----
 gtk/inspector/renderrecording.h |  8 ++++++--
 gtk/inspector/window.c          |  2 ++
 gtk/inspector/window.h          |  1 +
 7 files changed, 31 insertions(+), 7 deletions(-)

commit 358aca9e20dcd6a84bbbf5933c54a9219fabea92
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Nov 27 16:37:31 2016 +0100

    glrenderer: Always redraw the whole screen

 gsk/gskglrenderer.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

commit da8d886b173df9a00e4ddb978abe2655cac85e76
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 29 13:36:31 2016 +0100

    gsk: Change GSK_USE_SOFTWARE env var to GSK_RENDERER

    This way, we can use the variable as more than a boolean flag.

    This will be useful for Vulkan or D3D renderers.

 gsk/gskrenderer.c | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

commit 725a7236c039c7e26e349c7ee5025eec03fe3e12
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Nov 28 17:36:37 2016 +0100

    gdk: Turn GdkGLContext into a GdkDrawContext

 gdk/gdkglcontext.c                 | 97
 ++++----------------------------------
 gdk/gdkglcontextprivate.h          |  5 +-
 gdk/mir/gdkmirwindowimpl.c         |  1 -
 gdk/wayland/gdkglcontext-wayland.c |  1 -
 gdk/win32/gdkglcontext-win32.c     |  1 -
 gdk/x11/gdkglcontext-x11.c         |  1 -
 6 files changed, 13 insertions(+), 93 deletions(-)

commit db8e3065bde5e1c69a2642dbc88c462101535c1e
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Nov 28 17:22:35 2016 +0100

    gdk: Add GdkDrawContext

    This will be the base class for GdkVulkanContext and GdkGLContext.

 docs/reference/gdk/gdk4-sections.txt |  16 +++
 gdk/Makefile.am                      |   3 +
 gdk/gdk.h                            |   1 +
 gdk/gdkdrawcontext.c                 | 201
 +++++++++++++++++++++++++++++++++++
 gdk/gdkdrawcontext.h                 |  47 ++++++++
 gdk/gdkdrawcontextprivate.h          |  46 ++++++++
 gdk/gdktypes.h                       |   1 +
 7 files changed, 315 insertions(+)

commit e38bd27d583c81d2052d23a7722e3e3482c3cf4d
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 23 05:54:50 2016 +0100

    gdk: Redo GL drawing

    Reenable GL drawing, but do it without Cairo.

    Now, the context passed to gdk_window_begin_draw_frame() decides how
    drawing is going to happen. If it is NULL, Cairo is used like before.

    If a context is passed, Cairo may not be used for drawing and
    gdk_drawing_context_get_cairo_context() is going to return NULL.
    Instead, the GL renderer must draw to the GL backbuffer and
    end_draw_frame() is then swapping that to the front.

    The GskGLRenderer has lost the texture it used to render to and
    adapted
    to render directly to the backbuffer instead.

    The only thing missing is for GtkGLArea to gain back a performant
    way to
    render. But it didn't have one since the introduction of GSK, this
    patchset doesn't change anything about it.

    The new rendering avoids two indirections (the GSK renderer's texture
    and the GDK double buffering surface).
    It improves icon count in the fishbowl demo by 30%.

 gdk/gdkdrawingcontext.c | 13 ++++++++++---
 gdk/gdkwindow.c         | 49
 +++++++++++++++++++++++++++++++++++-----------
 gsk/gskglrenderer.c     | 52
 +++----------------------------------------------
 3 files changed, 51 insertions(+), 63 deletions(-)

commit e87b472143a1116a571f0b49c07afbbc33a88a84
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 23 05:18:43 2016 +0100

    glcontext: Make begin/end_draw() paired

    This way, we can query the GL context's state via
    gdk_gl_context_is_drawing().

    Use this function to make GL contexts as attached and grant them
    access
    to the front/backbuffer for rendering.

    All of this is still unused because GL drawing is still disabled.

 gdk/gdkglcontext.c                 | 84
 +++++++++++++++++++++++++++++++++++++-
 gdk/gdkglcontextprivate.h          |  3 ++
 gdk/gdkwindow.c                    | 59 --------------------------
 gdk/mir/gdkmirdisplay.c            |  2 +-
 gdk/wayland/gdkglcontext-wayland.c |  2 +-
 gdk/x11/gdkglcontext-x11.c         | 22 +++++-----
 gdk/x11/gdkglcontext-x11.h         |  3 +-
 7 files changed, 102 insertions(+), 73 deletions(-)

commit 182d18bcd103434b4154bf9bcaf24312e9d97078
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 23 03:32:22 2016 +0100

    gdk: Large GL refactoring

    No visible changes as GL rendering is disabled at the moment.

    What was done:

    1. Move window->invalidate_for_new_frame to glcontext->begin_frame
    This moves the code to where it is used (the GLContext) and
    prepares it
    for being called where it is used when actually beginning to draw the
    frame.

    2. Get rid of buffer-age usage
    We want to let the application render directly to the backbuffer.
    Because of that, we cannot make any assumptions about the contents the
    application renders outside the clip area.
    In particular GskGLRenderer renders random stuff there but not actual
    contents.

    3. Pass the actual GL context
    Previously, we passed the shared context to end_frame, now we pass the
    actual GL context that the application uses for rendering. This is so
    that the vfuncs could prepare the actual contexts for rendering (they
    don't currently).

    4. Simplify the code
    The previous code set up the final drawing method in begin_frame.
    Instead, we now just ensure the clip area is something we can render
    and decide on the actual method in end_frame.
    This is both more robust (we can change the clip area in between if we
    want to) and less code.

 gdk/gdkglcontextprivate.h          |   2 +
 gdk/gdkwindow.c                    |   8 ---
 gdk/gdkwindowimpl.h                |   2 -
 gdk/mir/gdkmirglcontext.c          |  20 +++++++
 gdk/mir/gdkmirwindowimpl.c         |  62 --------------------
 gdk/wayland/gdkglcontext-wayland.c |  79 ++++++--------------------
 gdk/wayland/gdkglcontext-wayland.h |   2 -
 gdk/wayland/gdkwindow-wayland.c    |   1 -
 gdk/win32/gdkglcontext-win32.c     | 104
 ++++++++++++++++------------------
 gdk/win32/gdkglcontext-win32.h     |  14 -----
 gdk/win32/gdkwindow-win32.c        |   1 -
 gdk/x11/gdkglcontext-x11.c         | 112
 +++++++++++--------------------------
 gdk/x11/gdkglcontext-x11.h         |   4 --
 gdk/x11/gdkwindow-x11.c            |   1 -
 14 files changed, 118 insertions(+), 294 deletions(-)

commit 4b484557f5ce0e965f7edfac26b0178a3b5c1779
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 23 01:03:59 2016 +0100

    gsk: Allow 0 for gsk_gl_driver_begin_frame()

    Special-case this situation to unset the current framebuffer and
    render
    to the backbuffer again.

 gsk/gskgldriver.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 4967257f3a11ce3dd22bc929e795ffd356ced908
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 22 21:23:21 2016 +0100

    gdk: Don't recurse when processing updates

    We don't need to send expose events for backwards compatibility
    anymore.

 gdk/gdkwindow.c | 92
 +++++++--------------------------------------------------
 1 file changed, 11 insertions(+), 81 deletions(-)

commit bddfd7bb41cebd9b4e8ea418ce4d8e1f11822e81
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 22 20:03:14 2016 +0100

    gdk: Remove all code that only existed because of use_gl

    Now that we don't use GL anymore, this code is unnecessary.

 gdk/gdkgl.c                     | 347
 +++++-----------------------------------
 gdk/gdkinternals.h              |  71 --------
 gdk/gdkwindow.c                 | 110 ++-----------
 gdk/wayland/gdkwindow-wayland.c |   2 +
 gtk/gtkwidget.c                 |  46 ------
 5 files changed, 60 insertions(+), 516 deletions(-)

commit 77d336de17f9d6bf6ae3dc2a3427feeb88f5cadd
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 22 19:45:04 2016 +0100

    gdk: Never draw with GL

    This is a temporary switch-off of the GL dawing code that will make
    things keep running. All GL related code (like the GSK renderer or
    GtkGLArea will now fall back to software.

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

commit e42e27304a9e2d43db1f467a3cce10ab2ef20460
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 23 06:54:03 2016 +0100

    gskrenderer: Store the GL context

    And use it to create the drawing context with it.

    Note that this doesn't yet have any effect and is all infrastructure
    preparation work.

 docs/reference/gsk/gsk4-sections.txt |  1 +
 gsk/gskglrenderer.c                  |  4 ++++
 gsk/gskrenderer.c                    | 33
 ++++++++++++++++++++++++++++++++-
 gsk/gskrenderer.h                    |  2 ++
 gsk/gskrendererprivate.h             |  2 ++
 gtk/gtkwidget.c                      | 22 +++++++++++++---------
 6 files changed, 54 insertions(+), 10 deletions(-)

commit 332ed7be5b9a973e58711cb63f80265ad17b95a6
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 22 04:12:51 2016 +0100

    API: Require passing a GLContext to begin_draw_frame()

    This is in preparation for requiring explicit passing of GL contexts
    when drawing.

 gdk/gdkdrawingcontext.c | 44 +++++++++++++++++++++++++++++++++++++++++---
 gdk/gdkdrawingcontext.h |  2 ++
 gdk/gdkwindow.c         |  8 ++++++++
 gdk/gdkwindow.h         |  3 ++-
 gtk/gtkwidget.c         |  2 +-
 5 files changed, 54 insertions(+), 5 deletions(-)

commit 9c041f6bcc8155436b5b325de16abb575e803196
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Nov 20 20:42:37 2016 +0100

    window: Change behavior of gdk_window_begin_draw_frame()

    (1) Require a native window
    (2) Create the drawing context before calling begin_paint().

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

commit a860bbbe46f287f35e09d8728c8c499fdfc6c3a8
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Nov 20 20:37:22 2016 +0100

    drawingcontext: Store the GL paint context

 gdk/gdkdrawingcontext.c | 31 +++++++++++++------------------
 1 file changed, 13 insertions(+), 18 deletions(-)

commit 633631a47b9a78855965f19b6050ca6e1616d6d8
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 29 11:32:45 2016 +0100

    cssgadget: Compute relative to own allocation, not widget allocation

    This would lead to clipped gadgets when the gadget allocation differed
    from the widget allocation, like in GtkListBox.

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

commit f6b44773934546bda7d35073673922cfc90b3b6f
Author: Olivier Fourdan <ofourdan@redhat.com>
Date:   Wed Nov 23 14:45:16 2016 +0100

    wayland: destroy subsurfaces along with parents

    Wayland subsurfaces can have other native window parents, but
    those need
    to be destroyed along with the rest of the window hierarchy otherwise
    an assert() is reached.

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

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

commit ac20c3eb2221d83ba075d6a2e20d1e126fc9039d
Author: Timm Bäder <mail@baedert.org>
Date:   Sat Dec 3 13:32:46 2016 +0100

    frame: Use gtk_widget_measure to measure child sizes

 gtk/gtkframe.c | 26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)

commit 7096d6dd281457dc24705de3756262e6645b6dbe
Author: Timm Bäder <mail@baedert.org>
Date:   Thu Dec 1 20:10:17 2016 +0100

    viewport: Use gtk_widget_measure to measure child sizes

    and rewrite the adjustment handling in a orientation-agnostic way.

 gtk/gtkviewport.c | 134
 ++++++++++++++++++++++++------------------------------
 1 file changed, 59 insertions(+), 75 deletions(-)

commit 5ee590fbc8f9b67041a611a25423ac2b820e9ad5
Author: Timm Bäder <mail@baedert.org>
Date:   Thu Dec 1 19:44:02 2016 +0100

    scrolledwindow: measure child widgets using gtk_widget_measure

 gtk/gtkscrolledwindow.c | 79
 +++++++++++++++++++++++++++----------------------
 1 file changed, 43 insertions(+), 36 deletions(-)

commit 1ab3d32808146b4e79e86facc3710eb91b8e4e28
Author: Timm Bäder <mail@baedert.org>
Date:   Thu Dec 1 19:33:38 2016 +0100

    revealer: Measure child widget size using gtk_widget_measure

 gtk/gtkrevealer.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

commit 7f8d0acfd30b79fb862af9949fb4dbd845c2c4b5
Author: Timm Bäder <mail@baedert.org>
Date:   Thu Dec 1 19:29:13 2016 +0100

    headerbar: measure children using gtk_widget_measure

 gtk/gtkheaderbar.c | 86
 ++++++++++++++++++++++++++++--------------------------
 1 file changed, 45 insertions(+), 41 deletions(-)

commit d45e5ef3dc64b5e283f1aaee91a61b6db765133f
Author: Timm Bäder <mail@baedert.org>
Date:   Sat Dec 3 14:42:05 2016 +0100

    widget-factory: Use GtkButton:icon-name to construct icon buttons

 demos/widget-factory/widget-factory.ui | 173
 ++++-----------------------------
 1 file changed, 17 insertions(+), 156 deletions(-)

commit 5b05c12780698e56f52fccb523f1e386ed0352ee
Author: Timm Bäder <mail@baedert.org>
Date:   Sun Dec 4 11:49:29 2016 +0100

    toolpalette: call set_has_window

 gtk/gtktoolpalette.c | 2 ++
 1 file changed, 2 insertions(+)

commit 9f98138ffb01e66f635533f5c3e04d51e3b22681
Author: Timm Bäder <mail@baedert.org>
Date:   Sun Dec 4 11:49:41 2016 +0100

    printunixdialog: Remove GtkDrawingArea::draw handler

    the source file has been updated to use
    gtk_drawing_area_set_draw_func,
    but the draw_cb handler in the ui file is still left.

 gtk/ui/gtkprintunixdialog.ui | 1 -
 1 file changed, 1 deletion(-)

commit 0d68b22479d906b6ada368bb5fa6e8c292ff24d8
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Dec 3 14:58:21 2016 +0100

    stylecontext: Remove a bunch of unneeded headers

 gtk/gtkstylecontext.c | 5 -----
 1 file changed, 5 deletions(-)

commit 8efc91c4e07b2763dff04b8d7ae9bda8081c0a5b
Author: Daniel Boles <dboles@src.gnome.org>
Date:   Sat Dec 3 02:35:27 2016 +0000

    GtkProgressBar: trivial conditional optimisation

    I'd hope the compiler would realise this for us, but let's be
    explicit.

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

commit 3dac21f20bd6e85549f1613ae720ebbc36c98313
Author: Timm Bäder <mail@baedert.org>
Date:   Fri Dec 2 15:16:10 2016 +0100

    entry: Refactor get_icon_pixbuf

    This way it will only return a pixbuf if the icon helper has a pixbuf.

 gtk/gtkentry.c             | 23 +----------------------
 gtk/gtkiconhelper.c        |  2 +-
 gtk/gtkiconhelperprivate.h |  2 --
 3 files changed, 2 insertions(+), 25 deletions(-)

commit 8a543ab23c541741f8ab3dd93e18c8d4fb17b312
Author: Timm Bäder <mail@baedert.org>
Date:   Fri Dec 2 17:32:12 2016 +0100

    iconhelper: Ensure the surface used for textures is ARGB32

 gtk/gtkiconhelper.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 49508ddfdbf6d204f4c42a7abc31c45f4ad91630
Author: Timm Bäder <mail@baedert.org>
Date:   Fri Dec 2 15:20:39 2016 +0100

    iconhelper: Remove allocate implementation

 gtk/gtkiconhelper.c | 10 ----------
 1 file changed, 10 deletions(-)

commit 31ed68dbfa281c66d4f6ed122843d65bfd5c9236
Author: Timm Bäder <mail@baedert.org>
Date:   Wed Nov 30 11:27:32 2016 +0100

    listbox: Fix row hovering

    GtkListBox is not a windowed widget anymore so we can't use
    gtk_widget_get_window. Just directly access priv->view_window
    instead to
    get the right window.

 gtk/gtklistbox.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit fa4d6e891886cc77c3e027d92bbfa2ab148809cb
Author: Timm Bäder <mail@baedert.org>
Date:   Tue Nov 22 21:00:40 2016 +0100

    spinbutton: Remove _get_panels

 gtk/gtkspinbutton.c | 12 ------------
 gtk/gtkspinbutton.h |  5 -----
 2 files changed, 17 deletions(-)

commit 36377e9964f3f628242d26b9d816a2d86fb4ee56
Author: Timm Bäder <mail@baedert.org>
Date:   Wed Nov 23 18:05:09 2016 +0100

    Remove gtk_widget_get_preferred_height_and_baseline_for_width

    It's just a wrapper around gtk_widget_measure nowadays.

 gtk/gtkmodelbutton.c |  7 ++++---
 gtk/gtksizerequest.c | 57
 +++++++++-------------------------------------------
 gtk/gtkwidget.h      |  7 -------
 3 files changed, 13 insertions(+), 58 deletions(-)

commit 8d36fbfbaa0540737989648f491cafb667b51c5e
Author: Timm Bäder <mail@baedert.org>
Date:   Mon Nov 28 19:32:10 2016 +0100

    togglebutton: Remove unused defines

 gtk/gtktogglebutton.c | 5 -----
 1 file changed, 5 deletions(-)

commit 1f7b03bb2b11038deffe54b57f14eedc6d90f575
Author: Debarshi Ray <debarshir@gnome.org>
Date:   Fri Dec 2 16:38:05 2016 +0100

    flowbox: Fix get_child_at_index crash with an invalid index

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

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

commit 975a3fa4aabcb0c2514e955e61780c8cec4a93f5
Author: Daniel Boles <dboles@src.gnome.org>
Date:   Thu Dec 1 12:58:29 2016 +0000

    ComboBox: Fix the whitespace fix

 gtk/gtkcombobox.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit e723fd6a238d52f9c458e8d442f2327644ab5016
Author: Daniel Boles <dboles@src.gnome.org>
Date:   Thu Dec 1 12:38:43 2016 +0000

    ComboBox: Do not select item before menu realised

    For a menu mode CB with wrap_width == 0 and an active item, that
    item is
    selected in gtk_combo_box_menu_popup. Selection causes the MenuShell
    to
    activate and hence take a grab. This was done before the menu
    was popped
    up. A patch distributed in Debian sid - after being proposed on our
    BZ -
    revealed that on the 1st popup of any such ComboBox, within grab_add,
    the MenuShell's toplevel's GdkWindow is NULL. This causes a
    Gdk-CRITICAL
    assertion fail on the 1st time opening any such CB, on Debian and if
    that patch were merged to GTK+. By selecting after popup, we
    ensure the
    MenuShell is realised before its grab_add and so avoid the critical.

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

 gtk/gtkcombobox.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit a72dbeba0604698a6041cfb63548cbba98381715
Author: Daniel Boles <dboles@src.gnome.org>
Date:   Thu Dec 1 12:36:30 2016 +0000

    ComboBox: Fix whitespace

     * Replace tabs for indentation with spaces
     * Remove whitespace at ends of lines

 gtk/gtkcombobox.c | 54
 +++++++++++++++++++++++++++---------------------------
 gtk/gtkcombobox.h |  2 +-
 2 files changed, 28 insertions(+), 28 deletions(-)

commit e09b78f7f70f822f3194cc4be7966146d1600902
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 30 23:52:54 2016 +0100

    cssshadows: Fix extents computation

    Someody busted this code a *lot*.

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

commit 970f99615e2a94553320180023f4338b6792b88a
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 30 23:03:13 2016 +0100

    image: Don't translate twice

    The animation can pass x/y through to the render_icon() function, so
    don't gtk_snapshot_translate() it.

 gtk/gtkimage.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 92a1abcd2321a8455bb924b97403803a4833a060
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 30 13:43:54 2016 -0500

    wayland: Don't warn if we loose the compositor connection

    And instead, exit cleanly. This avoids filling the logs with
    these warnings from every single application that has a
    connection to the compositor.

 gdk/wayland/gdkeventsource.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 1c51da82bdda40bd29bdd685a6769edfc012395a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 30 13:43:17 2016 -0500

    x11: Don't warn if the display is closed

    This causes a storm of warnings from all applications in the logs
    whenever the display goes away, and is not useful.

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

commit 7d18a86140b4c42fc530f0fb33199e3078dbe4d1
Author: William Hua <william.hua@canonical.com>
Date:   Wed Nov 30 10:06:43 2016 -0500

    gsk: ensure libgsk-4.la before running g-ir-scanner

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

 gsk/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 318e19f570369a1beaabc76b7ca3b018e985f13d
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 29 04:51:07 2016 +0100

    gskrenderer: Add GError argument to gsk_renderer_realize()

    This way, we don't spam criticals when GL is not available. Instead,
    we
    print a useful debug message to stderr and continue with the Cairo
    renderer.

    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>

 gsk/gskcairorenderer.c   |  5 +++--
 gsk/gskglrenderer.c      | 52
 ++++++++++++++++++++----------------------------
 gsk/gskrenderer.c        | 25 ++++++++++++++---------
 gsk/gskrenderer.h        |  3 ++-
 gsk/gskrendererprivate.h |  3 ++-
 5 files changed, 45 insertions(+), 43 deletions(-)

commit 5563841603eab5ec4ec7516114bc60b647b0664d
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 29 04:27:21 2016 +0100

    gsk: Add gsk_renderer_new_for_window()

    and remove gsk_renderer_get_for_display().

    This new function returns a realized renderer. Because of that,
    GSK can
    catch failures to realize, destroy the renderer and try another one.

    Or in short: I can finally use GTK on Weston with the nvidia binary
    drivers again.

    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>

 docs/reference/gsk/gsk4-sections.txt |   2 +-
 gsk/gskrenderer.c                    | 102
 +++++++++++++++++++++++++----------
 gsk/gskrenderer.h                    |   2 +-
 gtk/gtkwindow.c                      |  18 +++----
 4 files changed, 85 insertions(+), 39 deletions(-)

commit ce98df881ff244ca1120a2907124ee536185eddf
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 29 03:36:33 2016 +0100

    gsk: Change gsk_renderer_realize()

    Instead of having a gsk_renderer_set_window() call, pass the window to
    realize(). This way, the realization can fail with the wrong window.

    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>

 docs/reference/gsk/gsk4-sections.txt |  1 -
 gsk/gskcairorenderer.c               |  3 +-
 gsk/gskglrenderer.c                  |  8 ++----
 gsk/gskrenderer.c                    | 55
 ++++++++++++------------------------
 gsk/gskrenderer.h                    |  3 +-
 gsk/gskrendererprivate.h             |  3 +-
 gtk/gtkwindow.c                      |  6 ++--
 7 files changed, 28 insertions(+), 51 deletions(-)

commit efd04b47aa9089d9d276528423786b0e0d605c5f
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 30 15:52:22 2016 +0100

    gdk: Make GdkDrawingContext not per-backend

    No backend is using it, and we can put the backend-specific drawing
    code
    into GdkGLContext.

 gdk/broadway/Makefile.am                  |  2 -
 gdk/broadway/gdkdrawingcontext-broadway.c | 33 ----------------
 gdk/broadway/gdkdrawingcontext-broadway.h | 48 -----------------------
 gdk/broadway/gdkwindow-broadway.c         | 12 ------
 gdk/gdkwindow.c                           |  5 ++-
 gdk/gdkwindowimpl.h                       |  3 --
 gdk/mir/Makefile.am                       |  1 -
 gdk/mir/gdkmir-private.h                  |  2 -
 gdk/mir/gdkmirdrawingcontext.c            | 64
 -------------------------------
 gdk/mir/gdkmirwindowimpl.c                |  1 -
 gdk/quartz/Makefile.am                    |  2 -
 gdk/quartz/gdkdrawingcontext-quartz.c     | 33 ----------------
 gdk/quartz/gdkdrawingcontext-quartz.h     | 48 -----------------------
 gdk/quartz/gdkwindow-quartz.c             | 12 ------
 gdk/wayland/Makefile.am                   |  2 -
 gdk/wayland/gdkdrawingcontext-wayland.c   | 33 ----------------
 gdk/wayland/gdkdrawingcontext-wayland.h   | 48 -----------------------
 gdk/wayland/gdkwindow-wayland.c           | 12 ------
 gdk/win32/Makefile.am                     |  2 -
 gdk/win32/gdkdrawingcontext-win32.c       | 33 ----------------
 gdk/win32/gdkdrawingcontext-win32.h       | 48 -----------------------
 gdk/win32/gdkwindow-win32.c               | 12 ------
 gdk/x11/Makefile.am                       |  2 -
 gdk/x11/gdkdrawingcontext-x11.c           | 33 ----------------
 gdk/x11/gdkdrawingcontext-x11.h           | 48 -----------------------
 gdk/x11/gdkwindow-x11.c                   | 12 ------
 26 files changed, 4 insertions(+), 547 deletions(-)

commit bdcfc17c436ae3e76ec8f196ff7c1e21ad48bb35
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 30 15:08:12 2016 +0100

    gdkwindow: Remove unused vfunc

    GdkGLContext knows how to realize itself.

 gdk/gdkwindowimpl.h | 3 ---
 1 file changed, 3 deletions(-)

commit d12c81f177346f09dbc5a72f74e5627487a602ac
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 29 11:57:11 2016 +0100

    flowbox: Size gadget realtive to widget->window

    This fixes a few clipping issues and syncs code with GtkListBox.

 gtk/gtkflowbox.c | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

commit e28d94bc8baed22da1885488f82cab3160d3afd0
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 29 11:46:32 2016 +0100

    listbox: Move the priv->gadget allocation

    It used to be relative to the window, now it is relative to the
    widget.

    That is necessary so the snapshot fuction doesn't confuse coordinate
    systems.

 gtk/gtklistbox.c | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

commit 238334c74eea0548e46e09ee9af1fa87c6971d56
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 29 13:00:48 2016 +0100

    cairorenderer: Remove nonexisting function from header

 gsk/gskcairorendererprivate.h | 2 --
 1 file changed, 2 deletions(-)

commit bd4519922ce5f85adaa4451b007034aef5c1d63e
Author: Olivier Fourdan <ofourdan@redhat.com>
Date:   Tue Nov 29 14:21:57 2016 +0100

    wayland: Check for subsurface looking up the toplevel

    gdk_window_get_toplevel() walks up the windows tree looking for the
    corresponding toplevel window, but needs to account for subsurfaces as
    well on Wayland.

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

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

commit c8b92cb0d2494352bf2558409f3025f0d9d22cf7
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Tue Nov 29 23:29:10 2016 +0000

    demos: Remove undefined function call

    The gtk_container_set_border_width() function has been removed from
    the GTK+ 4.x API.

 demos/gtk-demo/tabs.c | 2 --
 1 file changed, 2 deletions(-)

commit ee1ae7f9ed2385df253c334feab83287e8b564e1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Nov 29 16:39:21 2016 -0500

    gtk-demo: Add a demo for tabs

    One of the least-appreciated features in pango.
    It deserves a demo.

 demos/gtk-demo/Makefile.am        |  1 +
 demos/gtk-demo/demo.gresource.xml |  1 +
 demos/gtk-demo/tabs.c             | 63
 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 65 insertions(+)

commit 0037d4d2571ced6f23a3ded76c92527f60760f48
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Tue Nov 29 14:42:35 2016 -0500

    Don't leak a pixbuf reference in dnd

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

 gtk/gtkdragsource.c | 1 -
 1 file changed, 1 deletion(-)

commit 316b24e0a093b8e05ff27e189b896187b4a31bfa
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Mon Nov 28 15:00:10 2016 -0500

    Fix reference handling in GtkScaleButton

    We were leaking the adjustment, since we confuse ourselves
    with a property whose initial value comes out of a template.
    Stop doing that.

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

 gtk/gtkscalebutton.c     | 5 +++--
 gtk/ui/gtkscalebutton.ui | 6 ------
 2 files changed, 3 insertions(+), 8 deletions(-)

commit 3efbb756198101af02caed19b29e9d0b129268d1
Author: William Hua <william.hua@canonical.com>
Date:   Sun Nov 27 21:31:21 2016 -0500

    mir: fix build failures

 gdk/mir/gdkmirdrawingcontext.c |  1 +
 gdk/mir/gdkmirscreen.c         | 65
 ------------------------------------------
 gdk/mir/gdkmirwindowimpl.c     |  2 --
 3 files changed, 1 insertion(+), 67 deletions(-)

commit 82b2bf2184fd8ce63909ff1442d36096ad6478d1
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Sat Nov 26 12:23:14 2016 +0100

    docs: fix a parameter name of GtkEntry::populate-popup

    Trivial commit.

    The documentation block refers to @widget, not @popup. @widget is a
    better name since the type is GtkWidget.

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

commit e2881d1e4f1becbf4caa6549f396ecfe1bb0af7d
Author: Sébastien Wilmet <swilmet@gnome.org>
Date:   Fri Nov 25 21:32:09 2016 +0100

    docs: fix docs of functions to convert layout_index <-> text_index

    Trivial commit.

    The documentation was swapped. The documentation for the parameters
    and
    the return values is good.

 gtk/gtkentry.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit 8161f8dcca12e595b0121181c7ec546c767b58c4
Author: Benjamin Otte <otte@redhat.com>
Date:   Sat Nov 26 11:51:30 2016 +0100

    rendericon: Pass the scale factor when rendeirng textures

    Fixes icon rendeirng on hidpi.

 gtk/gtkiconhelper.c        |  5 ++++-
 gtk/gtkrendericon.c        | 24 +++++++++++++-----------
 gtk/gtkrendericonprivate.h |  3 ++-
 gtk/gtksnapshot.c          |  3 ++-
 4 files changed, 21 insertions(+), 14 deletions(-)

commit 7ebbd075b97d659ca2120afc29bf3082629c0c3d
Author: Cosimo Cecchi <cosimoc@gnome.org>
Date:   Fri Nov 25 18:53:21 2016 +0100

    Adwaita: make rubberband selection work again for libgd apps

    libgd views still use the old style class.

 gtk/theme/Adwaita/_common.scss           | 2 +-
 gtk/theme/Adwaita/gtk-contained-dark.css | 3 ++-
 gtk/theme/Adwaita/gtk-contained.css      | 3 ++-
 3 files changed, 5 insertions(+), 3 deletions(-)

commit 4939cfd67ea5de398e78a59be8c5857bb5612ce3
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Fri Nov 25 08:55:33 2016 -0500

    Make gtk-encode-symbolic-svg work for icons with dotted names

    We were producing org.symbolic.png from
    org.gnome.Recipes-symbolic.svg,
    which is not useful. Look for the last dot in the original name, to
    produce the expected org.gnome.Recipes-symbolic.symbolic.png instead.

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

commit cae8fc74ac384efea24fa0625d6d5f76be612b99
Author: Dominique Leuenberger <dimstar@opensuse.org>
Date:   Thu Nov 24 19:50:34 2016 +0100

    Build: Add wayland to GSKs dependencies

    gskrenderer.c includes gdk/wayland/gdkwayland.h and as a consequence
    we need to be able to locate wayland's headers in case they are not
    in standard location.

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

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 624e0e140948f7cdeef1225bb48fd03909772eb8
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Nov 24 18:31:11 2016 +0100

    gdk: Rewrite docs some more

    Now gdk_window_process_updates() isn't mentioned either.

    GDK takes care of redrawing, not you!

 gdk/gdkwindow.c | 19 +++----------------
 1 file changed, 3 insertions(+), 16 deletions(-)

commit d7876bde74d0115c2ec28a2676f482d479228223
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Nov 24 15:41:19 2016 +0100

    inspector: Remove leftover GDK_PRIVATE_CALL()s

 gtk/inspector/visual.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

commit 4b6e70b9c8dab0d42620ecfc51911ae81a327c91
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Nov 24 15:26:15 2016 +0100

    gdk: Get rid of all mentions of process_all_updates()

 gdk/gdkwindow.c | 15 ++++++---------
 gdk/gdkwindow.h |  3 ---
 2 files changed, 6 insertions(+), 12 deletions(-)

commit 39200e75b6364f50acebf032d4aa1455a2bf0628
Author: Olivier Fourdan <ofourdan@redhat.com>
Date:   Wed Nov 23 14:55:40 2016 +0100

    wayland: Place subsurfaces relative to their parent

    Now that subsurfaces can be created as child of another GdkWindow (and
    not just the root window), they must be placed according to the
    location
    of their parent, i.e. the abs_x/abs_y must be updated and taken int
    account when placing and moving subsurfaces under Wayland.

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

 gdk/gdkwindow.c                 | 7 +++++--
 gdk/wayland/gdkwindow-wayland.c | 8 ++++++--
 2 files changed, 11 insertions(+), 4 deletions(-)

commit ae29d4db5ae64edb94b85a23a236521332a2efd9
Author: Benjamin Otte <otte@redhat.com>
Date:   Thu Nov 24 04:32:26 2016 +0100

    gdk: Use stricter checks for begin_draw_frame()

    We don't support drawing on child windows, so make sure nobody tries.

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

commit 3414f10badc821b7f727e3aad21735d2c4a7596c
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 23 19:31:16 2016 -0500

    Drop the GDK_PRIVATE_CALL mechanism

    We don't need to do this extra complication anymore, since
    we're now living inside a single shared library.

 gdk/Makefile.am   |  1 -
 gdk/gdk-private.c | 22 ----------------------
 gdk/gdk-private.h | 36 ------------------------------------
 gtk/gtkmain.c     | 12 ++++++------
 gtk/gtkmenu.c     | 14 +++++++-------
 gtk/gtkwindow.c   |  6 +++---
 6 files changed, 16 insertions(+), 75 deletions(-)

commit 1af817e2549fd7c676fd3ff23f0d2bc5ac18432a
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 23 19:16:16 2016 -0500

    inspector: Respect text-scaling-factor value initially

    This was pointed out in
    https://bugzilla.gnome.org/show_bug.cgi?id=774893

 gtk/inspector/visual.c | 45 +++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 41 insertions(+), 4 deletions(-)

commit 593b75fb692f5bf2f202a9581c281938309b5e99
Author: Florian Müllner <fmuellner@gnome.org>
Date:   Wed Nov 23 16:34:15 2016 +0100

    GtkLabelAccessible: Initialize link before setting parent

    Since at-spi-atk commit 96621a5e95 fixed PropertyChange notifications
    for AccessibleParent, setting the parent will result in a call to
    ref_state_set() which assumes that the object is fully initialized.

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

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

commit c14c9aca34534d02cb5dc78f8f404da6f25a4bac
Author: Christian Hergert <chergert@redhat.com>
Date:   Sun Nov 20 15:40:10 2016 -0800

    inspector: ensure controller is a GtkGesture

    While GtkEventController implementations today are all GtkGesture,
    it is
    possible to create a GtkEventController manually. This is an extrac
    check
    to ensure we only add gestures to the list.

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

 gtk/inspector/gestures.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 10a7c65f47a1d87c9d7650ca09cc90c15d9f0775
Author: Stas Solovey <whats_up@tut.by>
Date:   Wed Nov 23 20:42:59 2016 +0000

    Update Russian translation
    (cherry picked from commit dd3cf38c53239cdd93f5ff887120ee453292fe5d)

 po/ru.po | 460
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 240 insertions(+), 220 deletions(-)

commit 3a947fa318e50db950609d319523e495995b98f6
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 23 14:48:17 2016 -0500

    menu: Don't leak check menu items

    Pointed out in
    https://bugzilla.gnome.org/show_bug.cgi?id=774686

 gtk/gtkmenu.c | 2 ++
 1 file changed, 2 insertions(+)

commit 1dded6d63395360981f51d8cd58246bfa5c9d31e
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 23 14:44:37 2016 -0500

    notebook: Don't leak arrow gadgets

    This was pointed out in
    https://bugzilla.gnome.org/show_bug.cgi?id=774743

 gtk/gtknotebook.c | 4 ++++
 1 file changed, 4 insertions(+)

commit 0e37d6739393cfe2da99e6331dc981780acf96e1
Author: Matthias Clasen <mclasen@redhat.com>
Date:   Wed Nov 23 13:55:28 2016 -0500

    text handle: Don't leak adjustments

    This can happen if the weak pointer is triggered before the
    adjustments are unset. Pointed out in

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

 gtk/gtktexthandle.c | 26 +++++++++++---------------
 1 file changed, 11 insertions(+), 15 deletions(-)

commit 0cb35bf394b6c9eb76790d7bf01709c6668f7b48
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 23 19:32:27 2016 +0100

    gdk: Only draw toplevels

    Simplify gdk_window_paint_on_clock () to only draw the toplevel. We do
    no longer draw child windows and offscreens no longer exist.

 gdk/gdkwindow.c | 87
 ++++++++++-----------------------------------------------
 1 file changed, 15 insertions(+), 72 deletions(-)

commit 2a27b7ecc6a427a39d266f7d0ac0210dd3f70688
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 23 19:10:34 2016 +0100

    API: Remove gdk_window_process_all_updates()

    It's completely unused since we have a frame clock.

 docs/reference/gdk/gdk4-sections.txt |   1 -
 gdk/broadway/gdkdisplay-broadway.c   |   2 -
 gdk/broadway/gdkprivate-broadway.h   |   2 -
 gdk/broadway/gdkwindow-broadway.c    |  10 ---
 gdk/gdkdisplayprivate.h              |   3 -
 gdk/gdkwindow.c                      | 114
 -----------------------------------
 gdk/mir/gdkmirdisplay.c              |  14 -----
 gdk/quartz/gdkdisplay-quartz.c       |   2 -
 gdk/quartz/gdkwindow-quartz.c        |  38 ------------
 gdk/wayland/gdkdisplay-wayland.c     |  13 ----
 gdk/win32/gdkdisplay-win32.c         |  13 ----
 gdk/x11/gdkdisplay-x11.c             |   2 -
 gdk/x11/gdkprivate-x11.h             |   2 -
 gdk/x11/gdkwindow-x11.c              |  15 -----
 14 files changed, 231 deletions(-)

commit ef75ca2d53b44d7273c841d1f84b817725c07d30
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 23 19:02:58 2016 +0100

    API: gdk: Remove gdk_window_process_updates()

    We have a frame clock now.

 docs/reference/gdk/gdk4-sections.txt |  1 -
 gdk/gdkwindow.c                      | 27 ---------------------------
 gdk/gdkwindow.h                      |  3 ---
 tests/testgtk.c                      |  1 -
 tests/testinput.c                    |  1 -
 5 files changed, 33 deletions(-)

commit 4dedafb79b8b9cf6043b5a9cc5a533bf343071cf
Author: Benjamin Otte <otte@redhat.com>
Date:   Sun Nov 20 20:24:07 2016 +0100

    drawingcontext: Add a private struct

    This is to control what backends can and cannot access.

 gdk/gdkdrawingcontext.c        | 73
 +++++++++++++++++++++++++++---------------
 gdk/gdkdrawingcontextprivate.h |  5 ---
 2 files changed, 47 insertions(+), 31 deletions(-)

commit 4850271ae81f346fb508692f6939c0c2c5883452
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Nov 22 19:31:03 2016 +0100

    API: Remove gtk_cairo_should_draw_window()

    The answer is: Yes.

 docs/reference/gtk/gtk4-sections.txt |  1 -
 gtk/gtkcalendar.c                    | 26 +++++-------
 gtk/gtkcontainer.c                   | 12 ------
 gtk/gtkiconview.c                    |  3 --
 gtk/gtklayout.c                      | 16 --------
 gtk/gtkmenu.c                        | 39 ++++++++----------
 gtk/gtknotebook.c                    |  6 +--
 gtk/gtkpaned.c                       |  3 +-
 gtk/gtkrevealer.c                    | 16 --------
 gtk/gtkscrolledwindow.c              | 16 +++-----
 gtk/gtkstack.c                       | 36 +++++++----------
 gtk/gtktextview.c                    | 37 ++++++++---------
 gtk/gtktreeview.c                    | 78
 +++++++++++++++---------------------
 gtk/gtkviewport.c                    | 11 +----
 gtk/gtkwidget.c                      | 47 ----------------------
 gtk/gtkwidget.h                      |  3 --
 tests/testgtk.c                      |  3 --
 17 files changed, 99 insertions(+), 254 deletions(-)

commit b7869c65a858a52632f9eae3c5f98bdce84fa375
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 23 01:07:25 2016 +0100

    gdk: Move GdkDrawingContext definition to gdktypes.h

 gdk/gdkdrawingcontext.h | 1 -
 gdk/gdktypes.h          | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

commit 8cb96dec7ee856afbd4d31d57a7860b58fa5d4db
Author: Benjamin Otte <otte@redhat.com>
Date:   Wed Nov 23 08:25:42 2016 +0100

    window: unrealize renderer before destroying GDK window

    We need to unrealize the children manually for that to happen,
    but so it
    goes.

    The order is necessary because we want the renderer to still be alive
    while children are unrealizing.

 gtk/gtkwindow.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

commit cb1a349d17031beb766fd053c663f1c9d32cd2ef
Author: Lapo Calamandrei <calamandrei@gmail.com>
Date:   Wed Nov 23 17:25:18 2016 +0100

    HC: progressbar style fix

    Reset styling on the progress node when trough node has the `empty'
    styleclass.

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

 gtk/theme/HighContrast/_common.scss              | 1 +
 gtk/theme/HighContrast/gtk-contained-inverse.css | 2 ++
 gtk/theme/HighContrast/gtk-contained.css         | 2 ++
 3 files changed, 5 insertions(+)

commit 5ab18062a3c0d598d474dab4270d2893f87486e9
Author: Lapo Calamandrei <calamandrei@gmail.com>
Date:   Wed Nov 23 16:39:14 2016 +0100

    HC: really use radial-gradient() in place of -gtk-gradient()

    Regenerate the css from sass..

 gtk/theme/HighContrast/gtk-contained-inverse.css | 6 +++---
 gtk/theme/HighContrast/gtk-contained.css         | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

commit eb5b8b22e2746aa5e85070ef5743b773fd0662b0
Author: Lapo Calamandrei <calamandrei@gmail.com>
Date:   Wed Nov 23 16:00:57 2016 +0100

    Adwaita: progressbar style fix

    Reset styling on the progress node when trough node has the `empty'
    styleclass.

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

 gtk/theme/Adwaita/_common.scss           | 2 ++
 gtk/theme/Adwaita/gtk-contained-dark.css | 2 ++
 gtk/theme/Adwaita/gtk-contained.css      | 2 ++
 3 files changed, 6 insertions(+)

commit 368e0117ed5b8036ec2946c4d36747cbcab57bf7
Author: Andrew Chadwick <a.t.chadwick@gmail.com>
Date:   Sun Nov 20 01:57:07 2016 +0000

    wintab: init only after the display is assigned

    Only attempt to initialize Wintab after the display manager announces
    that the first default display has been set. Fixes a segfault during
    initialization of specific tablet drivers' wintab32.dlls. Add
    assertions
    and verbose comments explaining this nonsense because this stuff is a
    pain to have to keep fixing.

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

 gdk/win32/gdkdevicemanager-win32.c | 46
 +++++++++++++++++++++++++++++++++++++-
 1 file changed, 45 insertions(+), 1 deletion(-)

commit 8fb9d1578d82a496216a632db1c9f50141dedf90
Author: Andrew Chadwick <a.t.chadwick@gmail.com>
Date:   Tue Nov 22 10:28:40 2016 +0000

    wintab tilt: Check return location for validity

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

 gdk/win32/gdkdevicemanager-win32.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 331302005cafba2e92479a1d3389e4063b4abacf
Author: Marek Cernocky <marek_cernocky@conel.cz>
Date:   Tue Nov 22 11:57:57 2016 +0100

    Updated Czech translation

 po-properties/cs.po | 1709
 +++++++++++++++++++++++++--------------------------
 1 file changed, 852 insertions(+), 857 deletions(-)

commit 9e3bd03d3ec1de295d2fb2e2eb7499b4d4851859
Author: Andrew Chadwick <a.t.chadwick@gmail.com>
Date:   Sat Nov 19 18:34:29 2016 +0000

    win32: Fix tilt from Wintab devices

    Move the orientation sanity-checks into the packet decode func.
    Rationale: the packet handling func may otherwise read beyond the
    end of
    device->last_axis_data.

    Also expand them to cope with my test Huion's weird reporting.

    Also correct the azimuth angle to align with GDK's presentation.

    Most importantly, fix annoying comment typo.

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

 gdk/win32/gdkdevicemanager-win32.c | 34
 +++++++++++++++++++++++++---------
 1 file changed, 25 insertions(+), 9 deletions(-)

commit 17fe2288e80a3a78222f53575548ba4e26a6a042
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Fri Oct 21 15:26:42 2016 +0800

    gtk/gtkprintoperation-win32.c: Fix for GTK+-4.0 API

    We no longer have GtkPlug nor GtkWin32EmbedManifest for GTK+-4.x,
    and it
    is not entirely clear at this point what would be the "best"
    replacement
    for them, but this issue here prevents GTK+-3.89.x building on
    Windows.

    As a result, this is a fast port to avoid using APIs that have been
    removed for 4.x, and things seem to work properly (the print.c page
    printed).

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

 gtk/gtkprintoperation-win32.c | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)