[gtkmm] Gdk, Gtk: Regenerate docs.xml and .defs files



commit 64c9733616a96cfcdc843acf9a1122a87d40aad0
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date:   Thu Mar 29 11:18:39 2018 +0200

    Gdk, Gtk: Regenerate docs.xml and .defs files
    
    and update the g?k_docs_override.xml and gdk_extra_objects.defs files.
    
    * tools/extra_defs_gen/generate_defs_gdk.cc: Add GDK_TYPE_PAINTABLE and
    replace GDK_TYPE_WINDOW by GDK_TYPE_SURFACE.

 gdk/src/gdk_docs.xml                      | 3975 +++++++++++++++--------------
 gdk/src/gdk_docs_override.xml             |   64 +-
 gdk/src/gdk_enums.defs                    |  635 +++---
 gdk/src/gdk_extra_objects.defs            |   17 +-
 gdk/src/gdk_methods.defs                  | 1542 ++++++------
 gdk/src/gdk_signals.defs                  |   78 +-
 gtk/src/gtk_docs.xml                      | 2171 ++++++++++++----
 gtk/src/gtk_docs_override.xml             |    4 +-
 gtk/src/gtk_enums.defs                    |   24 +-
 gtk/src/gtk_methods.defs                  |  824 +++++--
 gtk/src/gtk_signals.defs                  |   85 +-
 tools/extra_defs_gen/generate_defs_gdk.cc |    3 +-
 12 files changed, 5504 insertions(+), 3918 deletions(-)
---
diff --git a/gdk/src/gdk_docs.xml b/gdk/src/gdk_docs.xml
index 7e8436c..bc1adc7 100644
--- a/gdk/src/gdk_docs.xml
+++ b/gdk/src/gdk_docs.xml
@@ -1,17 +1,17 @@
 <root>
 <enum name="GdkAnchorHints">
 <description>
-Positioning hints for aligning a window relative to a rectangle.
+Positioning hints for aligning a surface relative to a rectangle.
 
-These hints determine how the window should be positioned in the case that
-the window would fall off-screen if placed in its ideal position.
+These hints determine how the surface should be positioned in the case that
+the surface would fall off-screen if placed in its ideal position.
 
 For example, %GDK_ANCHOR_FLIP_X will replace %GDK_GRAVITY_NORTH_WEST with
-%GDK_GRAVITY_NORTH_EAST and vice versa if the window extends beyond the left
+%GDK_GRAVITY_NORTH_EAST and vice versa if the surface extends beyond the left
 or right edges of the monitor.
 
-If %GDK_ANCHOR_SLIDE_X is set, the window can be shifted horizontally to fit
-on-screen. If %GDK_ANCHOR_RESIZE_X is set, the window can be shrunken
+If %GDK_ANCHOR_SLIDE_X is set, the surface can be shifted horizontally to fit
+on-screen. If %GDK_ANCHOR_RESIZE_X is set, the surface can be shrunken
 horizontally to fit.
 
 In general, when multiple flags are set, flipping should take precedence over
@@ -31,19 +31,19 @@ Stability: Unstable
 </parameter_description>
 </parameter>
 <parameter name="GDK_ANCHOR_SLIDE_X">
-<parameter_description> allow sliding window horizontally
+<parameter_description> allow sliding surface horizontally
 </parameter_description>
 </parameter>
 <parameter name="GDK_ANCHOR_SLIDE_Y">
-<parameter_description> allow sliding window vertically
+<parameter_description> allow sliding surface vertically
 </parameter_description>
 </parameter>
 <parameter name="GDK_ANCHOR_RESIZE_X">
-<parameter_description> allow resizing window horizontally
+<parameter_description> allow resizing surface horizontally
 </parameter_description>
 </parameter>
 <parameter name="GDK_ANCHOR_RESIZE_Y">
-<parameter_description> allow resizing window vertically
+<parameter_description> allow resizing surface vertically
 </parameter_description>
 </parameter>
 <parameter name="GDK_ANCHOR_FLIP">
@@ -51,11 +51,11 @@ Stability: Unstable
 </parameter_description>
 </parameter>
 <parameter name="GDK_ANCHOR_SLIDE">
-<parameter_description> allow sliding window on both axes
+<parameter_description> allow sliding surface on both axes
 </parameter_description>
 </parameter>
 <parameter name="GDK_ANCHOR_RESIZE">
-<parameter_description> allow resizing window on both axes
+<parameter_description> allow resizing surface on both axes
 </parameter_description>
 </parameter>
 </parameters>
@@ -300,18 +300,18 @@ state (e.g. sensitivity).
 </parameter>
 <parameter name="GDK_CROSSING_TOUCH_BEGIN">
 <parameter_description> crossing because a touch sequence has begun,
-this event is synthetic as the pointer might have not left the window.
+this event is synthetic as the pointer might have not left the surface.
 </parameter_description>
 </parameter>
 <parameter name="GDK_CROSSING_TOUCH_END">
 <parameter_description> crossing because a touch sequence has ended,
-this event is synthetic as the pointer might have not left the window.
+this event is synthetic as the pointer might have not left the surface.
 </parameter_description>
 </parameter>
 <parameter name="GDK_CROSSING_DEVICE_SWITCH">
 <parameter_description> crossing because of a device switch (i.e.
 a mouse taking control of the pointer after a touch device), this event
-is synthetic as the pointer didn’t leave the window.
+is synthetic as the pointer didn’t leave the surface.
 </parameter_description>
 </parameter>
 </parameters>
@@ -854,9 +854,9 @@ The #GdkDisplay used to create the #GdkDrawContext.
 </description>
 </property>
 
-<property name="GdkDrawContext:window">
+<property name="GdkDrawContext:surface">
 <description>
-The #GdkWindow the gl context is bound to.
+The #GdkSurface the gl context is bound to.
 
 </description>
 </property>
@@ -875,16 +875,16 @@ The #GdkDrawContext used to draw or %NULL if Cairo is used.
 </description>
 </property>
 
-<property name="GdkDrawingContext:window">
+<property name="GdkDrawingContext:surface">
 <description>
-The #GdkWindow that created the drawing context.
+The #GdkSurface that created the drawing context.
 
 </description>
 </property>
 
 <enum name="GdkEventMask">
 <description>
-A set of bit-flags to indicate which events a window is to receive.
+A set of bit-flags to indicate which events a surface is to receive.
 Most of these masks map onto one or more of the #GdkEventType event types
 above.
 
@@ -893,10 +893,10 @@ See the [input handling overview][chap-input-handling] for details of
 
 Since GTK 3.8, motion events are already compressed by default, independent
 of this mechanism. This compression can be disabled with
-gdk_window_set_event_compression(). See the documentation of that function
+gdk_surface_set_event_compression(). See the documentation of that function
 for details.
 
-If %GDK_TOUCH_MASK is enabled, the window will receive touch events
+If %GDK_TOUCH_MASK is enabled, the surface will receive touch events
 from touch-enabled devices. Those will come as sequences of #GdkEventTouch
 with type %GDK_TOUCH_UPDATE, enclosed by two events with
 type %GDK_TOUCH_BEGIN and %GDK_TOUCH_END (or %GDK_TOUCH_CANCEL).
@@ -946,11 +946,11 @@ events, so different sequences may be distinguished.
 </parameter_description>
 </parameter>
 <parameter name="GDK_ENTER_NOTIFY_MASK">
-<parameter_description> receive window enter events
+<parameter_description> receive surface enter events
 </parameter_description>
 </parameter>
 <parameter name="GDK_LEAVE_NOTIFY_MASK">
-<parameter_description> receive window leave events
+<parameter_description> receive surface leave events
 </parameter_description>
 </parameter>
 <parameter name="GDK_FOCUS_CHANGE_MASK">
@@ -958,7 +958,7 @@ events, so different sequences may be distinguished.
 </parameter_description>
 </parameter>
 <parameter name="GDK_STRUCTURE_MASK">
-<parameter_description> receive events about window configuration change
+<parameter_description> receive events about surface configuration change
 </parameter_description>
 </parameter>
 <parameter name="GDK_PROPERTY_CHANGE_MASK">
@@ -974,8 +974,8 @@ events, so different sequences may be distinguished.
 </parameter_description>
 </parameter>
 <parameter name="GDK_SUBSTRUCTURE_MASK">
-<parameter_description> receive events about window configuration changes of
-child windows
+<parameter_description> receive events about surface configuration changes of
+child surfaces
 </parameter_description>
 </parameter>
 <parameter name="GDK_SCROLL_MASK">
@@ -1017,17 +1017,17 @@ the events are often transformed or filtered along the way.
 </parameter_description>
 </parameter>
 <parameter name="GDK_DELETE">
-<parameter_description> the window manager has requested that the toplevel window be
+<parameter_description> the window manager has requested that the toplevel surface be
 hidden or destroyed, usually when the user clicks on a special icon in the
 title bar.
 </parameter_description>
 </parameter>
 <parameter name="GDK_DESTROY">
-<parameter_description> the window has been destroyed.
+<parameter_description> the surface has been destroyed.
 </parameter_description>
 </parameter>
 <parameter name="GDK_EXPOSE">
-<parameter_description> all or part of the window has become visible and needs to be
+<parameter_description> all or part of the surface has become visible and needs to be
 redrawn.
 </parameter_description>
 </parameter>
@@ -1052,28 +1052,28 @@ redrawn.
 </parameter_description>
 </parameter>
 <parameter name="GDK_ENTER_NOTIFY">
-<parameter_description> the pointer has entered the window.
+<parameter_description> the pointer has entered the surface.
 </parameter_description>
 </parameter>
 <parameter name="GDK_LEAVE_NOTIFY">
-<parameter_description> the pointer has left the window.
+<parameter_description> the pointer has left the surface.
 </parameter_description>
 </parameter>
 <parameter name="GDK_FOCUS_CHANGE">
-<parameter_description> the keyboard focus has entered or left the window.
+<parameter_description> the keyboard focus has entered or left the surface.
 </parameter_description>
 </parameter>
 <parameter name="GDK_CONFIGURE">
-<parameter_description> the size, position or stacking order of the window has changed.
-Note that GTK+ discards these events for %GDK_WINDOW_CHILD windows.
+<parameter_description> the size, position or stacking order of the surface has changed.
+Note that GTK+ discards these events for %GDK_SURFACE_CHILD surfaces.
 </parameter_description>
 </parameter>
 <parameter name="GDK_MAP">
-<parameter_description> the window has been mapped.
+<parameter_description> the surface has been mapped.
 </parameter_description>
 </parameter>
 <parameter name="GDK_UNMAP">
-<parameter_description> the window has been unmapped.
+<parameter_description> the surface has been unmapped.
 </parameter_description>
 </parameter>
 <parameter name="GDK_PROXIMITY_IN">
@@ -1087,20 +1087,20 @@ surface.
 </parameter_description>
 </parameter>
 <parameter name="GDK_DRAG_ENTER">
-<parameter_description> the mouse has entered the window while a drag is in progress.
+<parameter_description> the mouse has entered the surface while a drag is in progress.
 </parameter_description>
 </parameter>
 <parameter name="GDK_DRAG_LEAVE">
-<parameter_description> the mouse has left the window while a drag is in progress.
+<parameter_description> the mouse has left the surface while a drag is in progress.
 </parameter_description>
 </parameter>
 <parameter name="GDK_DRAG_MOTION">
-<parameter_description> the mouse has moved in the window while a drag is in
+<parameter_description> the mouse has moved in the surface while a drag is in
 progress.
 </parameter_description>
 </parameter>
 <parameter name="GDK_DROP_START">
-<parameter_description> a drop operation onto the window has started.
+<parameter_description> a drop operation onto the surface has started.
 </parameter_description>
 </parameter>
 <parameter name="GDK_SCROLL">
@@ -1337,7 +1337,7 @@ Since: 3.8
 
 <enum name="GdkFullscreenMode">
 <description>
-Indicates which monitor (in a multi-head setup) a window should span over
+Indicates which monitor (in a multi-head setup) a surface should span over
 when in fullscreen mode.
 
 Since: 3.8
@@ -1403,8 +1403,8 @@ Defines how device grabs interact with other devices.
 <parameter_description> All other devices’ events are allowed.
 </parameter_description>
 </parameter>
-<parameter name="GDK_OWNERSHIP_WINDOW">
-<parameter_description> Other devices’ events are blocked for the grab window.
+<parameter name="GDK_OWNERSHIP_SURFACE">
+<parameter_description> Other devices’ events are blocked for the grab surface.
 </parameter_description>
 </parameter>
 <parameter name="GDK_OWNERSHIP_APPLICATION">
@@ -1435,7 +1435,7 @@ specified time.
 </parameter_description>
 </parameter>
 <parameter name="GDK_GRAB_NOT_VIEWABLE">
-<parameter_description> the grab window or the @confine_to window are not
+<parameter_description> the grab surface or the @confine_to surface are not
 viewable.
 </parameter_description>
 </parameter>
@@ -1452,7 +1452,7 @@ viewable.
 
 <enum name="GdkGravity">
 <description>
-Defines the reference point of a window and the meaning of coordinates
+Defines the reference point of a surface and the meaning of coordinates
 passed to gtk_window_move(). See gtk_window_move() and the &quot;implementation
 notes&quot; section of the
 [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec)
@@ -1477,7 +1477,7 @@ specification for more details.
 </parameter_description>
 </parameter>
 <parameter name="GDK_GRAVITY_CENTER">
-<parameter_description> the reference point is at the center of the window.
+<parameter_description> the reference point is at the center of the surface.
 </parameter_description>
 </parameter>
 <parameter name="GDK_GRAVITY_EAST">
@@ -1498,7 +1498,7 @@ specification for more details.
 </parameter>
 <parameter name="GDK_GRAVITY_STATIC">
 <parameter_description> the reference point is at the top left corner of the
-window itself, ignoring window manager decorations.
+surface itself, ignoring window manager decorations.
 </parameter_description>
 </parameter>
 </parameters>
@@ -1519,11 +1519,11 @@ An enumeration that describes the mode of an input device.
 maps to the entire screen.
 </parameter_description>
 </parameter>
-<parameter name="GDK_MODE_WINDOW">
+<parameter name="GDK_MODE_SURFACE">
 <parameter_description> the device is enabled. The device’s coordinate space
-is mapped to a single window. The manner in which this window
+is mapped to a single surface. The manner in which this surface
 is chosen is undefined, but it will typically be the same
-way in which the focus window for key events is determined.
+way in which the focus surface for key events is determined.
 </parameter_description>
 </parameter>
 </parameters>
@@ -1919,29 +1919,29 @@ full details of crossing event generation.
 </description>
 <parameters>
 <parameter name="GDK_NOTIFY_ANCESTOR">
-<parameter_description> the window is entered from an ancestor or
+<parameter_description> the surface is entered from an ancestor or
 left towards an ancestor.
 </parameter_description>
 </parameter>
 <parameter name="GDK_NOTIFY_VIRTUAL">
 <parameter_description> the pointer moves between an ancestor and an
-inferior of the window.
+inferior of the surface.
 </parameter_description>
 </parameter>
 <parameter name="GDK_NOTIFY_INFERIOR">
-<parameter_description> the window is entered from an inferior or
+<parameter_description> the surface is entered from an inferior or
 left towards an inferior.
 </parameter_description>
 </parameter>
 <parameter name="GDK_NOTIFY_NONLINEAR">
-<parameter_description> the window is entered from or left towards
-a window which is neither an ancestor nor an inferior.
+<parameter_description> the surface is entered from or left towards
+a surface which is neither an ancestor nor an inferior.
 </parameter_description>
 </parameter>
 <parameter name="GDK_NOTIFY_NONLINEAR_VIRTUAL">
-<parameter_description> the pointer moves between two windows
-which are not ancestors of each other and the window is part of
-the ancestor chain between one of these windows and their least
+<parameter_description> the pointer moves between two surfaces
+which are not ancestors of each other and the surface is part of
+the ancestor chain between one of these surfaces and their least
 common ancestor.
 </parameter_description>
 </parameter>
@@ -1952,6 +1952,69 @@ common ancestor.
 </parameters>
 </enum>
 
+<signal name="GdkPaintable::invalidate-contents">
+<description>
+Emitted when the contents of the @paintable change.
+
+Examples for such an event would be videos changing to the next frame or
+the icon theme for an icon changing.
+
+Since: 4.0
+
+</description>
+<parameters>
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</signal>
+
+<signal name="GdkPaintable::invalidate-size">
+<description>
+Emitted when the intrinsic size of the @paintable changes. This means the values
+reported by at least one of gdk_paintable_get_intrinsic_width(),
+gdk_paintable_get_intrinsic_height() or gdk_paintable_get_intrinsic_aspect_ratio()
+has changed.
+
+Examples for such an event would be a paintable displaying the contents of a toplevel
+surface being resized.
+
+Since: 4.0
+
+</description>
+<parameters>
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</signal>
+
+<enum name="GdkPaintableFlags">
+<description>
+Flags about this object. Implementations use these for optimizations
+such as caching.
+
+</description>
+<parameters>
+<parameter name="GDK_PAINTABLE_STATIC_SIZE">
+<parameter_description> The size is immutable.
+The GdkPaintable::invalidate-size signal will never be
+emitted.
+</parameter_description>
+</parameter>
+<parameter name="GDK_PAINTABLE_STATIC_CONTENTS">
+<parameter_description> The content is immutable.
+The GdkPaintable::invalidate-content signal will never be
+emitted.
+</parameter_description>
+</parameter>
+</parameters>
+</enum>
+
 <signal name="GdkPixbuf::pixel-bytes">
 <description>
 If set, this pixbuf was created from read-only #GBytes.
@@ -2323,19 +2386,19 @@ Specifies the direction for scroll events.
 </description>
 <parameters>
 <parameter name="GDK_SCROLL_UP">
-<parameter_description> the window is scrolled up.
+<parameter_description> the surface is scrolled up.
 </parameter_description>
 </parameter>
 <parameter name="GDK_SCROLL_DOWN">
-<parameter_description> the window is scrolled down.
+<parameter_description> the surface is scrolled down.
 </parameter_description>
 </parameter>
 <parameter name="GDK_SCROLL_LEFT">
-<parameter_description> the window is scrolled to the left.
+<parameter_description> the surface is scrolled to the left.
 </parameter_description>
 </parameter>
 <parameter name="GDK_SCROLL_RIGHT">
-<parameter_description> the window is scrolled to the right.
+<parameter_description> the surface is scrolled to the right.
 </parameter_description>
 </parameter>
 <parameter name="GDK_SCROLL_SMOOTH">
@@ -2512,200 +2575,34 @@ Since: 3.22
 </parameters>
 </enum>
 
-<property name="GdkTexture:height">
-<description>
-The height of the texture.
-
-</description>
-</property>
-
-<property name="GdkTexture:width">
-<description>
-The width of the texture.
-
-</description>
-</property>
-
-<enum name="GdkTouchpadGesturePhase">
-<description>
-Specifies the current state of a touchpad gesture. All gestures are
-guaranteed to begin with an event with phase %GDK_TOUCHPAD_GESTURE_PHASE_BEGIN,
-followed by 0 or several events with phase %GDK_TOUCHPAD_GESTURE_PHASE_UPDATE.
-
-A finished gesture may have 2 possible outcomes, an event with phase
-%GDK_TOUCHPAD_GESTURE_PHASE_END will be emitted when the gesture is
-considered successful, this should be used as the hint to perform any
-permanent changes.
-
-Cancelled gestures may be so for a variety of reasons, due to hardware
-or the compositor, or due to the gesture recognition layers hinting the
-gesture did not finish resolutely (eg. a 3rd finger being added during
-a pinch gesture). In these cases, the last event will report the phase
-%GDK_TOUCHPAD_GESTURE_PHASE_CANCEL, this should be used as a hint
-to undo any visible/permanent changes that were done throughout the
-progress of the gesture.
-
-</description>
-<parameters>
-<parameter name="GDK_TOUCHPAD_GESTURE_PHASE_BEGIN">
-<parameter_description> The gesture has begun.
-</parameter_description>
-</parameter>
-<parameter name="GDK_TOUCHPAD_GESTURE_PHASE_UPDATE">
-<parameter_description> The gesture has been updated.
-</parameter_description>
-</parameter>
-<parameter name="GDK_TOUCHPAD_GESTURE_PHASE_END">
-<parameter_description> The gesture was finished, changes
-should be permanently applied.
-</parameter_description>
-</parameter>
-<parameter name="GDK_TOUCHPAD_GESTURE_PHASE_CANCEL">
-<parameter_description> The gesture was cancelled, all
-changes should be undone.
-</parameter_description>
-</parameter>
-</parameters>
-</enum>
-
-<signal name="GdkVulkanContext::images-updated">
-<description>
-This signal is emitted when the images managed by this context have
-changed. Usually this means that the swapchain had to be recreated,
-for example in response to a change of the window size.
-
-</description>
-<parameters>
-<parameter name="context">
-<parameter_description> the object on which the signal is emitted
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</signal>
-
-<enum name="GdkVulkanError">
-<description>
-Error enumeration for #GdkVulkanContext.
-
-Since: 3.90
-
-</description>
-<parameters>
-<parameter name="GDK_VULKAN_ERROR_UNSUPPORTED">
-<parameter_description> Vulkan is not supported on this backend or has not been
-compiled in.
-</parameter_description>
-</parameter>
-<parameter name="GDK_VULKAN_ERROR_NOT_AVAILABLE">
-<parameter_description> Vulkan support is not available on this Window
-</parameter_description>
-</parameter>
-</parameters>
-</enum>
-
-<enum name="GdkWMDecoration">
+<signal name="GdkSurface::moved-to-rect">
 <description>
-These are hints originally defined by the Motif toolkit.
-The window manager can use them when determining how to decorate
-the window. The hint must be set before mapping the window.
-
-</description>
-<parameters>
-<parameter name="GDK_DECOR_ALL">
-<parameter_description> all decorations should be applied.
-</parameter_description>
-</parameter>
-<parameter name="GDK_DECOR_BORDER">
-<parameter_description> a frame should be drawn around the window.
-</parameter_description>
-</parameter>
-<parameter name="GDK_DECOR_RESIZEH">
-<parameter_description> the frame should have resize handles.
-</parameter_description>
-</parameter>
-<parameter name="GDK_DECOR_TITLE">
-<parameter_description> a titlebar should be placed above the window.
-</parameter_description>
-</parameter>
-<parameter name="GDK_DECOR_MENU">
-<parameter_description> a button for opening a menu should be included.
-</parameter_description>
-</parameter>
-<parameter name="GDK_DECOR_MINIMIZE">
-<parameter_description> a minimize button should be included.
-</parameter_description>
-</parameter>
-<parameter name="GDK_DECOR_MAXIMIZE">
-<parameter_description> a maximize button should be included.
-</parameter_description>
-</parameter>
-</parameters>
-</enum>
-
-<enum name="GdkWMFunction">
-<description>
-These are hints originally defined by the Motif toolkit. The window manager
-can use them when determining the functions to offer for the window. The
-hint must be set before mapping the window.
-
-</description>
-<parameters>
-<parameter name="GDK_FUNC_ALL">
-<parameter_description> all functions should be offered.
-</parameter_description>
-</parameter>
-<parameter name="GDK_FUNC_RESIZE">
-<parameter_description> the window should be resizable.
-</parameter_description>
-</parameter>
-<parameter name="GDK_FUNC_MOVE">
-<parameter_description> the window should be movable.
-</parameter_description>
-</parameter>
-<parameter name="GDK_FUNC_MINIMIZE">
-<parameter_description> the window should be minimizable.
-</parameter_description>
-</parameter>
-<parameter name="GDK_FUNC_MAXIMIZE">
-<parameter_description> the window should be maximizable.
-</parameter_description>
-</parameter>
-<parameter name="GDK_FUNC_CLOSE">
-<parameter_description> the window should be closable.
-</parameter_description>
-</parameter>
-</parameters>
-</enum>
-
-<signal name="GdkWindow::moved-to-rect">
-<description>
-Emitted when the position of @window is finalized after being moved to a
+Emitted when the position of @surface is finalized after being moved to a
 destination rectangle.
 
-@window might be flipped over the destination rectangle in order to keep
+@surface might be flipped over the destination rectangle in order to keep
 it on-screen, in which case @flipped_x and @flipped_y will be set to %TRUE
 accordingly.
 
-@flipped_rect is the ideal position of @window after any possible
+@flipped_rect is the ideal position of @surface after any possible
 flipping, but before any possible sliding. @final_rect is @flipped_rect,
 but possibly translated in the case that flipping is still ineffective in
-keeping @window on-screen.
+keeping @surface on-screen.
 Stability: Private
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> the #GdkWindow that moved
+<parameter name="surface">
+<parameter_description> the #GdkSurface that moved
 </parameter_description>
 </parameter>
 <parameter name="flipped_rect">
-<parameter_description> the position of @window after any possible
+<parameter_description> the position of @surface after any possible
 flipping or %NULL if the backend can't obtain it
 </parameter_description>
 </parameter>
 <parameter name="final_rect">
-<parameter_description> the final position of @window or %NULL if the
+<parameter_description> the final position of @surface or %NULL if the
 backend can't obtain it
 </parameter_description>
 </parameter>
@@ -2721,64 +2618,64 @@ backend can't obtain it
 <return></return>
 </signal>
 
-<property name="GdkWindow:cursor">
+<property name="GdkSurface:cursor">
 <description>
-The mouse pointer for a #GdkWindow. See gdk_window_set_cursor() and
-gdk_window_get_cursor() for details.
+The mouse pointer for a #GdkSurface. See gdk_surface_set_cursor() and
+gdk_surface_get_cursor() for details.
 
 </description>
 </property>
 
-<property name="GdkWindow:display">
+<property name="GdkSurface:display">
 <description>
-The #GdkDisplay connection of the window. See gdk_window_get_display()
+The #GdkDisplay connection of the surface. See gdk_surface_get_display()
 for details.
 
 </description>
 </property>
 
-<enum name="GdkWindowEdge">
+<enum name="GdkSurfaceEdge">
 <description>
-Determines a window edge or corner.
+Determines a surface edge or corner.
 
 </description>
 <parameters>
-<parameter name="GDK_WINDOW_EDGE_NORTH_WEST">
+<parameter name="GDK_SURFACE_EDGE_NORTH_WEST">
 <parameter_description> the top left corner.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_EDGE_NORTH">
+<parameter name="GDK_SURFACE_EDGE_NORTH">
 <parameter_description> the top edge.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_EDGE_NORTH_EAST">
+<parameter name="GDK_SURFACE_EDGE_NORTH_EAST">
 <parameter_description> the top right corner.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_EDGE_WEST">
+<parameter name="GDK_SURFACE_EDGE_WEST">
 <parameter_description> the left edge.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_EDGE_EAST">
+<parameter name="GDK_SURFACE_EDGE_EAST">
 <parameter_description> the right edge.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_EDGE_SOUTH_WEST">
+<parameter name="GDK_SURFACE_EDGE_SOUTH_WEST">
 <parameter_description> the lower left corner.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_EDGE_SOUTH">
+<parameter name="GDK_SURFACE_EDGE_SOUTH">
 <parameter_description> the lower edge.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_EDGE_SOUTH_EAST">
+<parameter name="GDK_SURFACE_EDGE_SOUTH_EAST">
 <parameter_description> the lower right corner.
 </parameter_description>
 </parameter>
 </parameters>
 </enum>
 
-<enum name="GdkWindowHints">
+<enum name="GdkSurfaceHints">
 <description>
 Used to indicate which fields of a #GdkGeometry struct should be paid
 attention to. Also, the presence/absence of @GDK_HINT_POS,
@@ -2792,7 +2689,7 @@ gtk_window_parse_geometry() automatically sets these flags.
 </description>
 <parameters>
 <parameter name="GDK_HINT_POS">
-<parameter_description> indicates that the program has positioned the window
+<parameter_description> indicates that the program has positioned the surface
 </parameter_description>
 </parameter>
 <parameter name="GDK_HINT_MIN_SIZE">
@@ -2816,131 +2713,126 @@ gtk_window_parse_geometry() automatically sets these flags.
 </parameter_description>
 </parameter>
 <parameter name="GDK_HINT_WIN_GRAVITY">
-<parameter_description> window gravity field is set
+<parameter_description> surface gravity field is set
 </parameter_description>
 </parameter>
 <parameter name="GDK_HINT_USER_POS">
-<parameter_description> indicates that the window’s position was explicitly set
+<parameter_description> indicates that the surface’s position was explicitly set
 by the user
 </parameter_description>
 </parameter>
 <parameter name="GDK_HINT_USER_SIZE">
-<parameter_description> indicates that the window’s size was explicitly set by
+<parameter_description> indicates that the surface’s size was explicitly set by
 the user
 </parameter_description>
 </parameter>
 </parameters>
 </enum>
 
-<enum name="GdkWindowState">
+<enum name="GdkSurfaceState">
 <description>
-Specifies the state of a toplevel window.
+Specifies the state of a toplevel surface.
 
 </description>
 <parameters>
-<parameter name="GDK_WINDOW_STATE_WITHDRAWN">
-<parameter_description> the window is not shown.
+<parameter name="GDK_SURFACE_STATE_WITHDRAWN">
+<parameter_description> the surface is not shown.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_ICONIFIED">
-<parameter_description> the window is minimized.
+<parameter name="GDK_SURFACE_STATE_ICONIFIED">
+<parameter_description> the surface is minimized.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_MAXIMIZED">
-<parameter_description> the window is maximized.
+<parameter name="GDK_SURFACE_STATE_MAXIMIZED">
+<parameter_description> the surface is maximized.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_STICKY">
-<parameter_description> the window is sticky.
+<parameter name="GDK_SURFACE_STATE_STICKY">
+<parameter_description> the surface is sticky.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_FULLSCREEN">
-<parameter_description> the window is maximized without
+<parameter name="GDK_SURFACE_STATE_FULLSCREEN">
+<parameter_description> the surface is maximized without
 decorations.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_ABOVE">
-<parameter_description> the window is kept above other windows.
+<parameter name="GDK_SURFACE_STATE_ABOVE">
+<parameter_description> the surface is kept above other surfaces.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_BELOW">
-<parameter_description> the window is kept below other windows.
+<parameter name="GDK_SURFACE_STATE_BELOW">
+<parameter_description> the surface is kept below other surfaces.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_FOCUSED">
-<parameter_description> the window is presented as focused (with active decorations).
+<parameter name="GDK_SURFACE_STATE_FOCUSED">
+<parameter_description> the surface is presented as focused (with active decorations).
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_TILED">
-<parameter_description> the window is in a tiled state, Since 3.10. Since 3.91.2, this
+<parameter name="GDK_SURFACE_STATE_TILED">
+<parameter_description> the surface is in a tiled state, Since 3.10. Since 3.91.2, this
 is deprecated in favor of per-edge information.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_TOP_TILED">
+<parameter name="GDK_SURFACE_STATE_TOP_TILED">
 <parameter_description> whether the top edge is tiled, Since 3.91.2
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_TOP_RESIZABLE">
+<parameter name="GDK_SURFACE_STATE_TOP_RESIZABLE">
 <parameter_description> whether the top edge is resizable, Since 3.91.2
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_RIGHT_TILED">
+<parameter name="GDK_SURFACE_STATE_RIGHT_TILED">
 <parameter_description> whether the right edge is tiled, Since 3.91.2
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_RIGHT_RESIZABLE">
+<parameter name="GDK_SURFACE_STATE_RIGHT_RESIZABLE">
 <parameter_description> whether the right edge is resizable, Since 3.91.2
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_BOTTOM_TILED">
+<parameter name="GDK_SURFACE_STATE_BOTTOM_TILED">
 <parameter_description> whether the bottom edge is tiled, Since 3.91.2
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_BOTTOM_RESIZABLE">
+<parameter name="GDK_SURFACE_STATE_BOTTOM_RESIZABLE">
 <parameter_description> whether the bottom edge is resizable, Since 3.91.2
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_LEFT_TILED">
+<parameter name="GDK_SURFACE_STATE_LEFT_TILED">
 <parameter_description> whether the left edge is tiled, Since 3.91.2
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_STATE_LEFT_RESIZABLE">
+<parameter name="GDK_SURFACE_STATE_LEFT_RESIZABLE">
 <parameter_description> whether the left edge is resizable, Since 3.91.2
 </parameter_description>
 </parameter>
 </parameters>
 </enum>
 
-<enum name="GdkWindowType">
+<enum name="GdkSurfaceType">
 <description>
-Describes the kind of window.
+Describes the kind of surface.
 
 </description>
 <parameters>
-<parameter name="GDK_WINDOW_ROOT">
-<parameter_description> root window; this window has no parent, covers the entire
-screen, and is created by the window system
-</parameter_description>
-</parameter>
-<parameter name="GDK_WINDOW_TOPLEVEL">
+<parameter name="GDK_SURFACE_TOPLEVEL">
 <parameter_description> toplevel window (used to implement #GtkWindow)
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_CHILD">
-<parameter_description> child window (used to implement e.g. #GtkEntry)
+<parameter name="GDK_SURFACE_CHILD">
+<parameter_description> child surface (used to implement e.g. #GtkEntry)
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TEMP">
-<parameter_description> override redirect temporary window (used to implement
+<parameter name="GDK_SURFACE_TEMP">
+<parameter_description> override redirect temporary surface (used to implement
 #GtkMenu)
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_FOREIGN">
-<parameter_description> foreign window (see gdk_window_foreign_new())
+<parameter name="GDK_SURFACE_FOREIGN">
+<parameter_description> foreign surface (see gdk_surface_foreign_new())
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_SUBSURFACE">
-<parameter_description> subsurface-based window; This window is visually
+<parameter name="GDK_SURFACE_SUBSURFACE">
+<parameter_description> subsurface; This surface is visually
 tied to a toplevel, and is moved/stacked with it. Currently this window
 type is only implemented in Wayland. Since 3.14
 </parameter_description>
@@ -2948,7 +2840,7 @@ type is only implemented in Wayland. Since 3.14
 </parameters>
 </enum>
 
-<enum name="GdkWindowTypeHint">
+<enum name="GdkSurfaceTypeHint">
 <description>
 These are hints for the window manager that indicate what type of function
 the window has. The window manager can use this when determining decoration
@@ -2959,71 +2851,237 @@ specification for more details about window types.
 
 </description>
 <parameters>
-<parameter name="GDK_WINDOW_TYPE_HINT_NORMAL">
+<parameter name="GDK_SURFACE_TYPE_HINT_NORMAL">
 <parameter_description> Normal toplevel window.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TYPE_HINT_DIALOG">
+<parameter name="GDK_SURFACE_TYPE_HINT_DIALOG">
 <parameter_description> Dialog window.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TYPE_HINT_MENU">
+<parameter name="GDK_SURFACE_TYPE_HINT_MENU">
 <parameter_description> Window used to implement a menu; GTK+ uses
 this hint only for torn-off menus, see #GtkTearoffMenuItem.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TYPE_HINT_TOOLBAR">
+<parameter name="GDK_SURFACE_TYPE_HINT_TOOLBAR">
 <parameter_description> Window used to implement toolbars.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TYPE_HINT_SPLASHSCREEN">
+<parameter name="GDK_SURFACE_TYPE_HINT_SPLASHSCREEN">
 <parameter_description> Window used to display a splash
 screen during application startup.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TYPE_HINT_UTILITY">
+<parameter name="GDK_SURFACE_TYPE_HINT_UTILITY">
 <parameter_description> Utility windows which are not detached
 toolbars or dialogs.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TYPE_HINT_DOCK">
+<parameter name="GDK_SURFACE_TYPE_HINT_DOCK">
 <parameter_description> Used for creating dock or panel windows.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TYPE_HINT_DESKTOP">
+<parameter name="GDK_SURFACE_TYPE_HINT_DESKTOP">
 <parameter_description> Used for creating the desktop background
 window.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU">
+<parameter name="GDK_SURFACE_TYPE_HINT_DROPDOWN_MENU">
 <parameter_description> A menu that belongs to a menubar.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TYPE_HINT_POPUP_MENU">
+<parameter name="GDK_SURFACE_TYPE_HINT_POPUP_MENU">
 <parameter_description> A menu that does not belong to a menubar,
 e.g. a context menu.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TYPE_HINT_TOOLTIP">
+<parameter name="GDK_SURFACE_TYPE_HINT_TOOLTIP">
 <parameter_description> A tooltip.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TYPE_HINT_NOTIFICATION">
+<parameter name="GDK_SURFACE_TYPE_HINT_NOTIFICATION">
 <parameter_description> A notification - typically a “bubble”
 that belongs to a status icon.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TYPE_HINT_COMBO">
+<parameter name="GDK_SURFACE_TYPE_HINT_COMBO">
 <parameter_description> A popup from a combo box.
 </parameter_description>
 </parameter>
-<parameter name="GDK_WINDOW_TYPE_HINT_DND">
+<parameter name="GDK_SURFACE_TYPE_HINT_DND">
 <parameter_description> A window that is used to implement a DND cursor.
 </parameter_description>
 </parameter>
 </parameters>
 </enum>
 
+<property name="GdkTexture:height">
+<description>
+The height of the texture.
+
+</description>
+</property>
+
+<property name="GdkTexture:width">
+<description>
+The width of the texture.
+
+</description>
+</property>
+
+<enum name="GdkTouchpadGesturePhase">
+<description>
+Specifies the current state of a touchpad gesture. All gestures are
+guaranteed to begin with an event with phase %GDK_TOUCHPAD_GESTURE_PHASE_BEGIN,
+followed by 0 or several events with phase %GDK_TOUCHPAD_GESTURE_PHASE_UPDATE.
+
+A finished gesture may have 2 possible outcomes, an event with phase
+%GDK_TOUCHPAD_GESTURE_PHASE_END will be emitted when the gesture is
+considered successful, this should be used as the hint to perform any
+permanent changes.
+
+Cancelled gestures may be so for a variety of reasons, due to hardware
+or the compositor, or due to the gesture recognition layers hinting the
+gesture did not finish resolutely (eg. a 3rd finger being added during
+a pinch gesture). In these cases, the last event will report the phase
+%GDK_TOUCHPAD_GESTURE_PHASE_CANCEL, this should be used as a hint
+to undo any visible/permanent changes that were done throughout the
+progress of the gesture.
+
+</description>
+<parameters>
+<parameter name="GDK_TOUCHPAD_GESTURE_PHASE_BEGIN">
+<parameter_description> The gesture has begun.
+</parameter_description>
+</parameter>
+<parameter name="GDK_TOUCHPAD_GESTURE_PHASE_UPDATE">
+<parameter_description> The gesture has been updated.
+</parameter_description>
+</parameter>
+<parameter name="GDK_TOUCHPAD_GESTURE_PHASE_END">
+<parameter_description> The gesture was finished, changes
+should be permanently applied.
+</parameter_description>
+</parameter>
+<parameter name="GDK_TOUCHPAD_GESTURE_PHASE_CANCEL">
+<parameter_description> The gesture was cancelled, all
+changes should be undone.
+</parameter_description>
+</parameter>
+</parameters>
+</enum>
+
+<signal name="GdkVulkanContext::images-updated">
+<description>
+This signal is emitted when the images managed by this context have
+changed. Usually this means that the swapchain had to be recreated,
+for example in response to a change of the surface size.
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> the object on which the signal is emitted
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</signal>
+
+<enum name="GdkVulkanError">
+<description>
+Error enumeration for #GdkVulkanContext.
+
+Since: 3.90
+
+</description>
+<parameters>
+<parameter name="GDK_VULKAN_ERROR_UNSUPPORTED">
+<parameter_description> Vulkan is not supported on this backend or has not been
+compiled in.
+</parameter_description>
+</parameter>
+<parameter name="GDK_VULKAN_ERROR_NOT_AVAILABLE">
+<parameter_description> Vulkan support is not available on this Surface
+</parameter_description>
+</parameter>
+</parameters>
+</enum>
+
+<enum name="GdkWMDecoration">
+<description>
+These are hints originally defined by the Motif toolkit.
+The window manager can use them when determining how to decorate
+the surface. The hint must be set before mapping the surface.
+
+</description>
+<parameters>
+<parameter name="GDK_DECOR_ALL">
+<parameter_description> all decorations should be applied.
+</parameter_description>
+</parameter>
+<parameter name="GDK_DECOR_BORDER">
+<parameter_description> a frame should be drawn around the surface.
+</parameter_description>
+</parameter>
+<parameter name="GDK_DECOR_RESIZEH">
+<parameter_description> the frame should have resize handles.
+</parameter_description>
+</parameter>
+<parameter name="GDK_DECOR_TITLE">
+<parameter_description> a titlebar should be placed above the surface.
+</parameter_description>
+</parameter>
+<parameter name="GDK_DECOR_MENU">
+<parameter_description> a button for opening a menu should be included.
+</parameter_description>
+</parameter>
+<parameter name="GDK_DECOR_MINIMIZE">
+<parameter_description> a minimize button should be included.
+</parameter_description>
+</parameter>
+<parameter name="GDK_DECOR_MAXIMIZE">
+<parameter_description> a maximize button should be included.
+</parameter_description>
+</parameter>
+</parameters>
+</enum>
+
+<enum name="GdkWMFunction">
+<description>
+These are hints originally defined by the Motif toolkit. The window manager
+can use them when determining the functions to offer for the surface. The
+hint must be set before mapping the surface.
+
+</description>
+<parameters>
+<parameter name="GDK_FUNC_ALL">
+<parameter_description> all functions should be offered.
+</parameter_description>
+</parameter>
+<parameter name="GDK_FUNC_RESIZE">
+<parameter_description> the surface should be resizable.
+</parameter_description>
+</parameter>
+<parameter name="GDK_FUNC_MOVE">
+<parameter_description> the surface should be movable.
+</parameter_description>
+</parameter>
+<parameter name="GDK_FUNC_MINIMIZE">
+<parameter_description> the surface should be minimizable.
+</parameter_description>
+</parameter>
+<parameter name="GDK_FUNC_MAXIMIZE">
+<parameter_description> the surface should be maximizable.
+</parameter_description>
+</parameter>
+<parameter name="GDK_FUNC_CLOSE">
+<parameter_description> the surface should be closable.
+</parameter_description>
+</parameter>
+</parameters>
+</enum>
+
 <function name="gdk_app_launch_context_set_desktop">
 <description>
 Sets the workspace on which applications will be launched when
@@ -3130,9 +3188,9 @@ and draws it onto @cr with an OVER operation, respecting the current clip.
 The top left corner of the rectangle specified by @x, @y, @width and @height
 will be drawn at the current (0,0) position of the cairo_t.
 
-This will work for *all* cairo_t, as long as @window is realized, but the
+This will work for *all* cairo_t, as long as @surface is realized, but the
 fallback implementation that reads back the pixels from the buffer may be
-used in the general case. In the case of direct drawing to a window with
+used in the general case. In the case of direct drawing to a surface with
 no special effects applied to @cr it will however use a more efficient
 approach.
 
@@ -3147,8 +3205,8 @@ Calling this may change the current GL context.
 <parameter_description> a cairo context
 </parameter_description>
 </parameter>
-<parameter name="window">
-<parameter_description> The window we're rendering for (not necessarily into)
+<parameter name="surface">
+<parameter_description> The surface we're rendering for (not necessarily into)
 </parameter_description>
 </parameter>
 <parameter name="source">
@@ -3339,11 +3397,11 @@ the pixbuf.
 </parameter_description>
 </parameter>
 <parameter name="scale">
-<parameter_description> the scale of the new surface, or 0 to use same as @window
+<parameter_description> the scale of the new surface, or 0 to use same as @surface
 </parameter_description>
 </parameter>
-<parameter name="for_window">
-<parameter_description> The window this will be drawn to, or %NULL
+<parameter name="for_surface">
+<parameter_description> The surface this will be drawn to, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
@@ -5537,7 +5595,7 @@ do not support motion history, in which case, %FALSE will
 be returned. (This is not distinguishable from the case where
 motion history is supported and no events were found.)
 
-Note that there is also gdk_window_set_event_compression() to get
+Note that there is also gdk_surface_set_event_compression() to get
 more motion events delivered directly, independent of the windowing
 system.
 
@@ -5548,8 +5606,8 @@ system.
 <parameter_description> a #GdkDevice
 </parameter_description>
 </parameter>
-<parameter name="window">
-<parameter_description> the window with respect to which which the event coordinates will be reported
+<parameter name="surface">
+<parameter_description> the surface with respect to which which the event coordinates will be reported
 </parameter_description>
 </parameter>
 <parameter name="start">
@@ -5606,13 +5664,13 @@ and fill in @keyval and @modifiers with the keyval settings.
 </return>
 </function>
 
-<function name="gdk_device_get_last_event_window">
+<function name="gdk_device_get_last_event_surface">
 <description>
-Gets information about which window the given pointer device is in, based on events
+Gets information about which surface the given pointer device is in, based on events
 that have been received so far from the display server. If another application
 has a pointer grab, or this application has a grab with owner_events = %FALSE,
 %NULL may be returned even if the pointer is physically over one of this
-application's windows.
+application's surfaces.
 
 
 </description>
@@ -5622,7 +5680,7 @@ application's windows.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the last window the device
+<return> the last surface the device
 </return>
 </function>
 
@@ -5793,7 +5851,7 @@ Determines the type of the device.
 
 <function name="gdk_device_get_state">
 <description>
-Gets the current state of a pointer device relative to @window. As a slave
+Gets the current state of a pointer device relative to @surface. As a slave
 device’s coordinates are those of its master pointer, this
 function may not be called on devices of type %GDK_DEVICE_TYPE_SLAVE,
 unless there is an ongoing grab on them. See gdk_device_grab().
@@ -5804,8 +5862,8 @@ unless there is an ongoing grab on them. See gdk_device_grab().
 <parameter_description> a #GdkDevice.
 </parameter_description>
 </parameter>
-<parameter name="window">
-<parameter_description> a #GdkWindow.
+<parameter name="surface">
+<parameter_description> a #GdkSurface.
 </parameter_description>
 </parameter>
 <parameter name="axes">
@@ -5821,51 +5879,10 @@ the axes of @device in, or %NULL.
 <return></return>
 </function>
 
-<function name="gdk_device_get_vendor_id">
-<description>
-Returns the vendor ID of this device, or %NULL if this information couldn't
-be obtained. This ID is retrieved from the device, and is thus constant for
-it.
-
-This function, together with gdk_device_get_product_id(), can be used to eg.
-compose #GSettings paths to store settings for this device.
-
-|[&lt;!-- language=&quot;C&quot; --&gt;
-static GSettings *
-get_device_settings (GdkDevice *device)
-{
-const gchar *vendor, *product;
-GSettings *settings;
-GdkDevice *device;
-gchar *path;
-
-vendor = gdk_device_get_vendor_id (device);
-product = gdk_device_get_product_id (device);
-
-path = g_strdup_printf (&quot;/org/example/app/devices/%s:%s/&quot;, vendor, product);
-settings = g_settings_new_with_path (DEVICE_SCHEMA, path);
-g_free (path);
-
-return settings;
-}
-]|
-
-
-</description>
-<parameters>
-<parameter name="device">
-<parameter_description> a slave #GdkDevice
-</parameter_description>
-</parameter>
-</parameters>
-<return> the vendor ID, or %NULL
-</return>
-</function>
-
-<function name="gdk_device_get_window_at_position">
+<function name="gdk_device_get_surface_at_position">
 <description>
-Obtains the window underneath @device, returning the location of the device in @win_x and @win_y. Returns
-%NULL if the window tree under @device is not known to GDK (for example, belongs to another application).
+Obtains the surface underneath @device, returning the location of the device in @win_x and @win_y. Returns
+%NULL if the surface tree under @device is not known to GDK (for example, belongs to another application).
 
 As a slave device coordinates are those of its master pointer, This
 function may not be called on devices of type %GDK_DEVICE_TYPE_SLAVE,
@@ -5880,24 +5897,24 @@ unless there is an ongoing grab on them, see gdk_device_grab().
 </parameter>
 <parameter name="win_x">
 <parameter_description> return location for the X coordinate of the device location,
-relative to the window origin, or %NULL.
+relative to the surface origin, or %NULL.
 </parameter_description>
 </parameter>
 <parameter name="win_y">
 <parameter_description> return location for the Y coordinate of the device location,
-relative to the window origin, or %NULL.
+relative to the surface origin, or %NULL.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the #GdkWindow under the
+<return> the #GdkSurface under the
 device position, or %NULL.
 </return>
 </function>
 
-<function name="gdk_device_get_window_at_position_double">
+<function name="gdk_device_get_surface_at_position_double">
 <description>
-Obtains the window underneath @device, returning the location of the device in @win_x and @win_y in
-double precision. Returns %NULL if the window tree under @device is not known to GDK (for example,
+Obtains the surface underneath @device, returning the location of the device in @win_x and @win_y in
+double precision. Returns %NULL if the surface tree under @device is not known to GDK (for example,
 belongs to another application).
 
 As a slave device coordinates are those of its master pointer, This
@@ -5913,28 +5930,69 @@ unless there is an ongoing grab on them, see gdk_device_grab().
 </parameter>
 <parameter name="win_x">
 <parameter_description> return location for the X coordinate of the device location,
-relative to the window origin, or %NULL.
+relative to the surface origin, or %NULL.
 </parameter_description>
 </parameter>
 <parameter name="win_y">
 <parameter_description> return location for the Y coordinate of the device location,
-relative to the window origin, or %NULL.
+relative to the surface origin, or %NULL.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the #GdkWindow under the
+<return> the #GdkSurface under the
 device position, or %NULL.
 </return>
 </function>
 
+<function name="gdk_device_get_vendor_id">
+<description>
+Returns the vendor ID of this device, or %NULL if this information couldn't
+be obtained. This ID is retrieved from the device, and is thus constant for
+it.
+
+This function, together with gdk_device_get_product_id(), can be used to eg.
+compose #GSettings paths to store settings for this device.
+
+|[&lt;!-- language=&quot;C&quot; --&gt;
+static GSettings *
+get_device_settings (GdkDevice *device)
+{
+const gchar *vendor, *product;
+GSettings *settings;
+GdkDevice *device;
+gchar *path;
+
+vendor = gdk_device_get_vendor_id (device);
+product = gdk_device_get_product_id (device);
+
+path = g_strdup_printf (&quot;/org/example/app/devices/%s:%s/&quot;, vendor, product);
+settings = g_settings_new_with_path (DEVICE_SCHEMA, path);
+g_free (path);
+
+return settings;
+}
+]|
+
+
+</description>
+<parameters>
+<parameter name="device">
+<parameter_description> a slave #GdkDevice
+</parameter_description>
+</parameter>
+</parameters>
+<return> the vendor ID, or %NULL
+</return>
+</function>
+
 <function name="gdk_device_grab">
 <description>
 Grabs the device so that all events coming from this device are passed to
 this application until the device is ungrabbed with gdk_device_ungrab(),
-or the window becomes unviewable. This overrides any previous grab on the device
+or the surface becomes unviewable. This overrides any previous grab on the device
 by this client.
 
-Note that @device and @window need to be on the same display.
+Note that @device and @surface need to be on the same display.
 
 Device grabs are used for operations which need complete control over the
 given device events (either pointer or keyboard). For example in GTK+ this
@@ -5944,7 +6002,7 @@ Note that if the event mask of an X window has selected both button press
 and button release events, then a button press event will cause an automatic
 pointer grab until the button is released. X does this automatically since
 most applications expect to receive button press and release events in pairs.
-It is equivalent to a pointer grab on the window with @owner_events set to
+It is equivalent to a pointer grab on the surface with @owner_events set to
 %TRUE.
 
 If you set up anything at the time you take the grab that needs to be
@@ -5962,8 +6020,8 @@ gdk_seat_get_pointer() but only in code that isn’t triggered by a
 #GdkEvent and there aren’t other means to get a meaningful #GdkDevice to operate on.
 </parameter_description>
 </parameter>
-<parameter name="window">
-<parameter_description> the #GdkWindow which will own the grab (the grab window)
+<parameter name="surface">
+<parameter_description> the #GdkSurface which will own the grab (the grab surface)
 </parameter_description>
 </parameter>
 <parameter name="grab_ownership">
@@ -5972,10 +6030,10 @@ gdk_seat_get_pointer() but only in code that isn’t triggered by a
 </parameter>
 <parameter name="owner_events">
 <parameter_description> if %FALSE then all device events are reported with respect to
-@window and are only reported if selected by @event_mask. If
+@surface and are only reported if selected by @event_mask. If
 %TRUE then pointer events for this application are reported
 as normal, but pointer events outside this application are
-reported with respect to @window and only if selected by
+reported with respect to @surface and only if selected by
 @event_mask. In either mode, unreported events are discarded.
 </parameter_description>
 </parameter>
@@ -5987,7 +6045,7 @@ reported with respect to @window and only if selected by
 <parameter name="cursor">
 <parameter_description> the cursor to display while the grab is active if the device is
 a pointer. If this is %NULL then the normal cursors are used for
-@window and its descendants, and the cursor for @window is used
+@surface and its descendants, and the cursor for @surface is used
 elsewhere.
 </parameter_description>
 </parameter>
@@ -6179,7 +6237,7 @@ is pressed.
 <description>
 Sets a the mode of an input device. The mode controls if the
 device is active and whether the device’s range is mapped to the
-entire screen or to a single window.
+entire screen or to a single surface.
 
 Note: This is only meaningful for floating devices, master devices (and
 slaves connected to these) drive the pointer cursor, which is not limited
@@ -6282,7 +6340,7 @@ Deprecated: 3.20. Use gdk_seat_ungrab() instead.
 <function name="gdk_device_warp">
 <description>
 Warps @device in @display to the point @x,@y,
-unless the device is confined to a window by a grab,
+unless the device is confined to a surface by a grab,
 in which case it will be moved
 as far as allowed by the grab. Warping the pointer
 creates events as if the user had moved the mouse
@@ -6433,9 +6491,9 @@ there is no default display.
 
 <function name="gdk_display_get_default_group">
 <description>
-Returns the default group leader window for all toplevel windows
-on @display. This window is implicitly created by GDK.
-See gdk_window_set_group().
+Returns the default group leader surface for all toplevel surfaces
+on @display. This surface is implicitly created by GDK.
+See gdk_surface_set_group().
 
 
 </description>
@@ -6445,7 +6503,7 @@ See gdk_window_set_group().
 </parameter_description>
 </parameter>
 </parameters>
-<return> The default group leader window
+<return> The default group leader surface
 for @display
 </return>
 </function>
@@ -6546,10 +6604,10 @@ or a nearby monitor if the point is not in any monitor.
 </return>
 </function>
 
-<function name="gdk_display_get_monitor_at_window">
+<function name="gdk_display_get_monitor_at_surface">
 <description>
-Gets the monitor in which the largest area of @window
-resides, or a monitor close to @window if it is outside
+Gets the monitor in which the largest area of @surface
+resides, or a monitor close to @surface if it is outside
 of all monitors.
 
 
@@ -6559,12 +6617,12 @@ of all monitors.
 <parameter_description> a #GdkDisplay
 </parameter_description>
 </parameter>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> the monitor with the largest overlap with @window
+<return> the monitor with the largest overlap with @surface
 </return>
 </function>
 
@@ -6627,8 +6685,8 @@ locally.
 Gets the primary monitor for the display.
 
 The primary monitor is considered the monitor where the “main desktop”
-lives. While normal application windows typically allow the window
-manager to place the windows, specialized desktop applications
+lives. While normal application surfaces typically allow the window
+manager to place the surfaces, specialized desktop applications
 such as panels should place themselves on the primary monitor.
 
 If no monitor is the designated primary monitor, any monitor
@@ -6709,7 +6767,7 @@ Finds out if the display has been closed.
 
 <function name="gdk_display_is_composited">
 <description>
-Returns whether windows can reasonably be expected to have
+Returns whether surfaces can reasonably be expected to have
 their alpha channel drawn correctly on the screen. Check
 gdk_display_is_rgba() for wether the display supports an
 alpha channel.
@@ -6727,25 +6785,25 @@ On modern displays, this value is always %TRUE.
 </parameter_description>
 </parameter>
 </parameters>
-<return> Whether windows with RGBA visuals can reasonably be
+<return> Whether surfaces with RGBA visuals can reasonably be
 expected to have their alpha channels drawn correctly on the screen.
 </return>
 </function>
 
 <function name="gdk_display_is_rgba">
 <description>
-Returns wether windows on this @display are created with an
+Returns wether surfaces on this @display are created with an
 alpha channel.
 
 Even if a %TRUE is returned, it is possible that the
-window’s alpha channel won’t be honored when displaying the
-window on the screen: in particular, for X an appropriate
+surface’s alpha channel won’t be honored when displaying the
+surface on the screen: in particular, for X an appropriate
 windowing manager and compositing manager must be running to
 provide appropriate display. Use gdk_display_is_composited()
 to check if that is the case.
 
-For setting an overall opacity for a top-level window, see
-gdk_window_set_opacity().
+For setting an overall opacity for a top-level surface, see
+gdk_surface_set_opacity().
 
 On modern displays, this value is always %TRUE.
 
@@ -6757,7 +6815,7 @@ On modern displays, this value is always %TRUE.
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if windows are created with an alpha channel or
+<return> %TRUE if surfaces are created with an alpha channel or
 %FALSE if the display does not support this functionality.
 </return>
 </function>
@@ -6956,8 +7014,8 @@ queue for @display.
 
 <function name="gdk_display_supports_input_shapes">
 <description>
-Returns %TRUE if gdk_window_input_shape_combine_mask() can
-be used to modify the input shape of windows on @display.
+Returns %TRUE if gdk_surface_input_shape_combine_mask() can
+be used to modify the input shape of surfaces on @display.
 
 
 </description>
@@ -6967,13 +7025,13 @@ be used to modify the input shape of windows on @display.
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if windows with modified input shape are supported
+<return> %TRUE if surfaces with modified input shape are supported
 </return>
 </function>
 
 <function name="gdk_display_supports_shapes">
 <description>
-Returns %TRUE if gdk_window_shape_combine_mask() can
+Returns %TRUE if gdk_surface_shape_combine_mask() can
 be used to create shaped windows on @display.
 
 
@@ -7019,8 +7077,8 @@ This function is called by the drag source.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> the source window for this drag
+<parameter name="surface">
+<parameter_description> the source surface for this drag
 </parameter_description>
 </parameter>
 <parameter name="device">
@@ -7066,9 +7124,9 @@ gdk_drag_context_get_suggested_action() returns %GDK_ACTION_ASK.
 </return>
 </function>
 
-<function name="gdk_drag_context_get_dest_window">
+<function name="gdk_drag_context_get_dest_surface">
 <description>
-Returns the destination window for the DND operation.
+Returns the destination surface for the DND operation.
 
 
 </description>
@@ -7078,7 +7136,7 @@ Returns the destination window for the DND operation.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a #GdkWindow
+<return> a #GdkSurface
 </return>
 </function>
 
@@ -7114,13 +7172,13 @@ Gets the #GdkDisplay that the drag context was created for.
 </return>
 </function>
 
-<function name="gdk_drag_context_get_drag_window">
+<function name="gdk_drag_context_get_drag_surface">
 <description>
-Returns the window on which the drag icon should be rendered
-during the drag operation. Note that the window may not be
+Returns the surface on which the drag icon should be rendered
+during the drag operation. Note that the surface may not be
 available until the drag operation has begun. GDK will move
-the window in accordance with the ongoing drag operation.
-The window is owned by @context and will be destroyed when
+the surface in accordance with the ongoing drag operation.
+The surface is owned by @context and will be destroyed when
 the drag operation is over.
 
 
@@ -7131,7 +7189,7 @@ the drag operation is over.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the drag window, or %NULL
+<return> the drag surface, or %NULL
 </return>
 </function>
 
@@ -7167,9 +7225,9 @@ Determines the action chosen by the drag destination.
 </return>
 </function>
 
-<function name="gdk_drag_context_get_source_window">
+<function name="gdk_drag_context_get_source_surface">
 <description>
-Returns the #GdkWindow where the DND operation started.
+Returns the #GdkSurface where the DND operation started.
 
 
 </description>
@@ -7179,7 +7237,7 @@ Returns the #GdkWindow where the DND operation started.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a #GdkWindow
+<return> a #GdkSurface
 </return>
 </function>
 
@@ -7220,9 +7278,9 @@ for @context are emitted as if they came from this device.
 
 <function name="gdk_drag_context_set_hotspot">
 <description>
-Sets the position of the drag window that will be kept
+Sets the position of the drag surface that will be kept
 under the cursor hotspot. Initially, the hotspot is at the
-top left corner of the drag window.
+top left corner of the drag surface.
 
 </description>
 <parameters>
@@ -7231,11 +7289,11 @@ top left corner of the drag window.
 </parameter_description>
 </parameter>
 <parameter name="hot_x">
-<parameter_description> x coordinate of the drag window hotspot
+<parameter_description> x coordinate of the drag surface hotspot
 </parameter_description>
 </parameter>
 <parameter name="hot_y">
-<parameter_description> y coordinate of the drag window hotspot
+<parameter_description> y coordinate of the drag surface hotspot
 </parameter_description>
 </parameter>
 </parameters>
@@ -7330,9 +7388,9 @@ Retrieves the #GdkDisplay the @context is created for
 </return>
 </function>
 
-<function name="gdk_draw_context_get_window">
+<function name="gdk_draw_context_get_surface">
 <description>
-Retrieves the #GdkWindow used by the @context.
+Retrieves the #GdkSurface used by the @context.
 
 
 </description>
@@ -7342,13 +7400,13 @@ Retrieves the #GdkWindow used by the @context.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a #GdkWindow or %NULL
+<return> a #GdkSurface or %NULL
 </return>
 </function>
 
 <function name="gdk_drawing_context_get_cairo_context">
 <description>
-Retrieves a Cairo context to be used to draw on the #GdkWindow
+Retrieves a Cairo context to be used to draw on the #GdkSurface
 that created the #GdkDrawingContext. The @context must have been
 created without a #GdkDrawContext for this function to work. If
 gdk_drawing_context_get_paint_context() does not return %NULL,
@@ -7356,7 +7414,7 @@ then this function will.
 
 The returned context is guaranteed to be valid as long as the
 #GdkDrawingContext is valid, that is between a call to
-gdk_window_begin_draw_frame() and gdk_window_end_draw_frame().
+gdk_surface_begin_draw_frame() and gdk_surface_end_draw_frame().
 
 
 </description>
@@ -7367,7 +7425,7 @@ gdk_window_begin_draw_frame() and gdk_window_end_draw_frame().
 </parameter>
 </parameters>
 <return> a Cairo context to be used to draw
-the contents of the #GdkWindow. The context is owned by the
+the contents of the #GdkSurface. The context is owned by the
 #GdkDrawingContext and should not be destroyed. %NULL is
 returned when a paint context is in used.
 </return>
@@ -7405,9 +7463,9 @@ Retrieves the paint context used to draw with.
 </return>
 </function>
 
-<function name="gdk_drawing_context_get_window">
+<function name="gdk_drawing_context_get_surface">
 <description>
-Retrieves the window that created the drawing @context.
+Retrieves the surface that created the drawing @context.
 
 
 </description>
@@ -7417,7 +7475,7 @@ Retrieves the window that created the drawing @context.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a #GdkWindow
+<return> a #GdkSurface
 </return>
 </function>
 
@@ -7548,7 +7606,7 @@ to a drop initiated by the drag source.
 <function name="gdk_event_copy">
 <description>
 Copies a #GdkEvent, copying or incrementing the reference count of the
-resources associated with it (e.g. #GdkWindow’s and strings).
+resources associated with it (e.g. #GdkSurface’s and strings).
 
 
 </description>
@@ -7669,7 +7727,7 @@ Extracts the click count from an event.
 
 <function name="gdk_event_get_coords">
 <description>
-Extract the event window relative x/y coordinates from an event.
+Extract the event surface relative x/y coordinates from an event.
 
 
 </description>
@@ -7679,15 +7737,15 @@ Extract the event window relative x/y coordinates from an event.
 </parameter_description>
 </parameter>
 <parameter name="x_win">
-<parameter_description> location to put event window x coordinate
+<parameter_description> location to put event surface x coordinate
 </parameter_description>
 </parameter>
 <parameter name="y_win">
-<parameter_description> location to put event window y coordinate
+<parameter_description> location to put event surface y coordinate
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if the event delivered event window coordinates
+<return> %TRUE if the event delivered event surface coordinates
 </return>
 </function>
 
@@ -7861,9 +7919,9 @@ Extracts whether this is a focus-in or focus-out event.
 </return>
 </function>
 
-<function name="gdk_event_get_grab_window">
+<function name="gdk_event_get_grab_surface">
 <description>
-Extracts the grab window from a grab broken event.
+Extracts the grab surface from a grab broken event.
 
 
 </description>
@@ -7872,8 +7930,8 @@ Extracts the grab window from a grab broken event.
 <parameter_description> a #GdkEvent
 </parameter_description>
 </parameter>
-<parameter name="window">
-<parameter_description> Return location for the grab window
+<parameter name="surface">
+<parameter_description> Return location for the grab surface
 </parameter_description>
 </parameter>
 </parameters>
@@ -8180,7 +8238,7 @@ This function returns the hardware (slave) #GdkDevice that has
 triggered the event, falling back to the virtual (master) device
 (as in gdk_event_get_device()) if the event wasn’t caused by
 interaction with a hardware device. This may happen for example
-in synthesized crossing events after a #GdkWindow updates its
+in synthesized crossing events after a #GdkSurface updates its
 geometry or a grab is acquired/released.
 
 If the event does not contain a device field, this function will
@@ -8243,6 +8301,22 @@ approximation of the keyval in a key event.
 </return>
 </function>
 
+<function name="gdk_event_get_surface">
+<description>
+Extracts the #GdkSurface associated with an event.
+
+
+</description>
+<parameters>
+<parameter name="event">
+<parameter_description> a #GdkEvent
+</parameter_description>
+</parameter>
+</parameters>
+<return> The #GdkSurface associated with the event
+</return>
+</function>
+
 <function name="gdk_event_get_time">
 <description>
 Returns the time stamp from @event, if there is one; otherwise
@@ -8384,22 +8458,6 @@ Extracts the scale from a touchpad event.
 </return>
 </function>
 
-<function name="gdk_event_get_window">
-<description>
-Extracts the #GdkWindow associated with an event.
-
-
-</description>
-<parameters>
-<parameter name="event">
-<parameter_description> a #GdkEvent
-</parameter_description>
-</parameter>
-</parameters>
-<return> The #GdkWindow associated with the event
-</return>
-</function>
-
 <function name="gdk_event_handler_set">
 <description>
 Sets the function to call to handle all events from GDK.
@@ -8800,9 +8858,9 @@ interval after the last presentation time, and later than @base_time.
 </parameter_description>
 </parameter>
 <parameter name="refresh_interval_return">
-<parameter_description> a location to store the determined refresh
-interval, or %NULL. A default refresh interval of 1/60th of
-a second will be stored if no history is present.
+<parameter_description> a location to store the
+determined refresh interval, or %NULL. A default refresh interval of
+1/60th of a second will be stored if no history is present.
 </parameter_description>
 </parameter>
 <parameter name="presentation_time_return">
@@ -9166,6 +9224,22 @@ Retrieves the #GdkGLContext that this @context share data with.
 </return>
 </function>
 
+<function name="gdk_gl_context_get_surface">
+<description>
+Retrieves the #GdkSurface used by the @context.
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GdkGLContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> a #GdkSurface or %NULL
+</return>
+</function>
+
 <function name="gdk_gl_context_get_use_es">
 <description>
 Checks whether the @context is using an OpenGL or OpenGL ES profile.
@@ -9206,22 +9280,6 @@ The @context must be realized prior to calling this function.
 <return></return>
 </function>
 
-<function name="gdk_gl_context_get_window">
-<description>
-Retrieves the #GdkWindow used by the @context.
-
-
-</description>
-<parameters>
-<parameter name="context">
-<parameter_description> a #GdkGLContext
-</parameter_description>
-</parameter>
-</parameters>
-<return> a #GdkWindow or %NULL
-</return>
-</function>
-
 <function name="gdk_gl_context_is_legacy">
 <description>
 Whether the #GdkGLContext is in legacy mode or not.
@@ -9438,8 +9496,8 @@ are released
 
 <function name="gdk_gl_texture_release">
 <description>
-Releases the GL resources held by a #GdkTexture that
-was created with gdk_texture_new_for_gl().
+Releases the GL resources held by a #GdkGLTexture that
+was created with gdk_gl_texture_new().
 
 The texture contents are still available via the
 gdk_texture_download() function, after this function
@@ -9447,7 +9505,7 @@ has been called.
 
 </description>
 <parameters>
-<parameter name="texture">
+<parameter name="self">
 <parameter_description> a #GdkTexture wrapping a GL texture
 </parameter_description>
 </parameter>
@@ -10131,8 +10189,8 @@ to the actual device pixels. On traditional systems this is 1, but
 on very high density outputs this can be a higher value (often 2).
 
 This can be used if you want to create pixel based data for a
-particular monitor, but most of the time you’re drawing to a window
-where it is better to use gdk_window_get_scale_factor() instead.
+particular monitor, but most of the time you’re drawing to a surface
+where it is better to use gdk_surface_get_scale_factor() instead.
 
 
 </description>
@@ -10244,6 +10302,247 @@ physical monitor is unplugged or removed.
 </return>
 </function>
 
+<function name="gdk_paintable_compute_concrete_size">
+<description>
+Applies the sizing algorithm outlined in 
+https://drafts.csswg.org/css-images-3/#default-sizing
+to the given @paintable. See that link for more details.
+
+It is not necessary to call this function when both @specified_width
+and @specified_height are known, but it is useful to call this
+function in GtkWidget:measure implementations to compute the
+other dimension when only one dimension is given.
+
+</description>
+<parameters>
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable
+</parameter_description>
+</parameter>
+<parameter name="specified_width">
+<parameter_description> the width @paintable could be drawn into or
+0.0 if unknown
+</parameter_description>
+</parameter>
+<parameter name="specified_height">
+<parameter_description> the height @paintable could be drawn into or
+0.0 if unknown
+</parameter_description>
+</parameter>
+<parameter name="default_width">
+<parameter_description> the width @paintable would be drawn into if
+no other constraints were given
+</parameter_description>
+</parameter>
+<parameter name="default_height">
+<parameter_description> the height @paintable would be drawn into if
+no other constraints were given
+</parameter_description>
+</parameter>
+<parameter name="concrete_width">
+<parameter_description> will be set to the concrete width
+computed.
+</parameter_description>
+</parameter>
+<parameter name="concrete_height">
+<parameter_description> will be set to the concrete height
+computed.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gdk_paintable_get_current_image">
+<description>
+Gets an immutable paintable for the current contents displayed by @paintable.
+
+This is useful when you want to retain the current state of an animation, for
+example to take a screenshot of a running animation.
+
+If the @paintable is already immutable, it will return itself.
+
+
+</description>
+<parameters>
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable
+</parameter_description>
+</parameter>
+</parameters>
+<return> An immutable paintable for the current
+contents of @paintable.
+</return>
+</function>
+
+<function name="gdk_paintable_get_flags">
+<description>
+Get flags for the paintable. This is oftentimes useful for optimizations.
+
+See #GdkPaintableFlags for the flags and what they mean.
+
+
+</description>
+<parameters>
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable
+</parameter_description>
+</parameter>
+</parameters>
+<return> The #GdkPaintableFlags for this paintable.
+</return>
+</function>
+
+<function name="gdk_paintable_get_intrinsic_aspect_ratio">
+<description>
+Gets the preferred aspect ratio the @paintable would like to be displayed at.
+The aspect ration is the width divided by the height, so a value of 0.5 means
+that the @paintable prefers to be displayed twice as high as it is wide.
+Consumers of this interface can use this to preserve aspect ratio when displaying
+this paintable.
+
+This is a purely informational value and does not in any way limit the values
+that may be passed to gdk_paintable_snapshot().
+
+Usually when a @paintable returns non-0 values from
+gdk_paintable_get_intrinsic_width() and gdk_paintable_get_intrinsic_height()
+the aspect ratio should conform to those values, though that is not required.
+
+If the @paintable does not have a preferred aspect ratio, it returns 0.0.
+Negative values are never returned.
+
+
+</description>
+<parameters>
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable
+</parameter_description>
+</parameter>
+</parameters>
+<return> the intrinsic aspect ratio of @paintable or 0.0 if none.
+</return>
+</function>
+
+<function name="gdk_paintable_get_intrinsic_height">
+<description>
+Gets the preferred height the @paintable would like to be displayed at.
+Consumers of this interface can use this to reserve enough space to draw
+the paintable.
+
+This is a purely informational value and does not in any way limit the values
+that may be passed to gdk_paintable_snapshot().
+
+If the @paintable does not have a preferred height, it returns 0. Negative
+values are never returned.
+
+
+</description>
+<parameters>
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable
+</parameter_description>
+</parameter>
+</parameters>
+<return> the intrinsic height of @paintable or 0 if none.
+</return>
+</function>
+
+<function name="gdk_paintable_get_intrinsic_width">
+<description>
+Gets the preferred width the @paintable would like to be displayed at.
+Consumers of this interface can use this to reserve enough space to draw
+the paintable.
+
+This is a purely informational value and does not in any way limit the values
+that may be passed to gdk_paintable_snapshot().
+
+If the @paintable does not have a preferred width, it returns 0. Negative
+values are never returned.
+
+
+</description>
+<parameters>
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable
+</parameter_description>
+</parameter>
+</parameters>
+<return> the intrinsic width of @paintable or 0 if none.
+</return>
+</function>
+
+<function name="gdk_paintable_invalidate_contents">
+<description>
+Called by implementations of #GdkPaintable to invalidate their contents.  
+Unless the contents are invalidated, implementations must guarantee that
+multiple calls to GdkPaintable::snapshot produce the same output.
+
+This function will emit the GdkPaintable::invalidate-contents signal.
+
+If a @paintable reports the %GDK_PAINTABLE_STATIC_CONTENTS flag,
+it must not call this function.
+
+</description>
+<parameters>
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gdk_paintable_invalidate_size">
+<description>
+Called by implementations of #GdkPaintable to invalidate their size.  
+As long as the size is not invalidated, @paintable must return the same values
+for its width, height and intrinsic height.
+
+This function will emit the GdkPaintable::invalidate-size signal.
+
+If a @paintable reports the %GDK_PAINTABLE_STATIC_SIZE flag,
+it must not call this function.
+
+</description>
+<parameters>
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gdk_paintable_snapshot">
+<description>
+Snapshots the given paintable with the given @width and @height at the
+current (0,0) offset of the @snapshot. If @width and @height are not larger
+than zero, this function will do nothing.
+
+Since: 4.0
+
+</description>
+<parameters>
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable
+</parameter_description>
+</parameter>
+<parameter name="snapshot">
+<parameter_description> a #GdkSnapshot to snapshot to
+</parameter_description>
+</parameter>
+<parameter name="width">
+<parameter_description> width to snapshot in
+</parameter_description>
+</parameter>
+<parameter name="height">
+<parameter_description> height to snapshot in
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gdk_pango_layout_get_clip_region">
 <description>
 Obtains a clip region which contains the areas where the given ranges
@@ -14644,7 +14943,7 @@ by GDK and must not be freed.
 <description>
 Grabs the seat so that all events corresponding to the given @capabilities
 are passed to this application until the seat is ungrabbed with gdk_seat_ungrab(),
-or the window becomes hidden. This overrides any previous grab on the
+or the surface becomes hidden. This overrides any previous grab on the
 seat by this client.
 
 As a rule of thumb, if a grab is desired over %GDK_SEAT_CAPABILITY_POINTER,
@@ -14657,10 +14956,10 @@ Grabs are used for operations which need complete control over the
 events corresponding to the given capabilities. For example in GTK+ this
 is used for Drag and Drop operations, popup menus and such.
 
-Note that if the event mask of a #GdkWindow has selected both button press
+Note that if the event mask of a #GdkSurface has selected both button press
 and button release events, or touch begin and touch end, then a press event
 will cause an automatic grab until the button is released, equivalent to a
-grab on the window with @owner_events set to %TRUE. This is done because most
+grab on the surface with @owner_events set to %TRUE. This is done because most
 applications expect to receive paired press and release events.
 
 If you set up anything at the time you take the grab that needs to be
@@ -14674,8 +14973,8 @@ events that are emitted when the grab ends unvoluntarily.
 <parameter_description> a #GdkSeat
 </parameter_description>
 </parameter>
-<parameter name="window">
-<parameter_description> the #GdkWindow which will own the grab
+<parameter name="surface">
+<parameter_description> the #GdkSurface which will own the grab
 </parameter_description>
 </parameter>
 <parameter name="capabilities">
@@ -14684,17 +14983,17 @@ events that are emitted when the grab ends unvoluntarily.
 </parameter>
 <parameter name="owner_events">
 <parameter_description> if %FALSE then all device events are reported with respect to
-@window and are only reported if selected by @event_mask. If
+@surface and are only reported if selected by @event_mask. If
 %TRUE then pointer events for this application are reported
 as normal, but pointer events outside this application are
-reported with respect to @window and only if selected by
+reported with respect to @surface and only if selected by
 @event_mask. In either mode, unreported events are discarded.
 </parameter_description>
 </parameter>
 <parameter name="cursor">
 <parameter_description> the cursor to display while the grab is active. If
 this is %NULL then the normal cursors are used for
-@window and its descendants, and the cursor for @window is used
+@surface and its descendants, and the cursor for @surface is used
 elsewhere.
 </parameter_description>
 </parameter>
@@ -14705,7 +15004,7 @@ is available.
 </parameter>
 <parameter name="prepare_func">
 <parameter_description> function to
-prepare the window to be grabbed, it can be %NULL if @window is
+prepare the surface to be grabbed, it can be %NULL if @surface is
 visible before this call.
 </parameter_description>
 </parameter>
@@ -14789,487 +15088,57 @@ to use this option.
 <return></return>
 </function>
 
-<function name="gdk_text_property_to_utf8_list_for_display">
-<description>
-Converts a text property in the given encoding to
-a list of UTF-8 strings.
-
-
-</description>
-<parameters>
-<parameter name="display">
-<parameter_description>  a #GdkDisplay
-</parameter_description>
-</parameter>
-<parameter name="encoding">
-<parameter_description> an atom representing the encoding of the text
-</parameter_description>
-</parameter>
-<parameter name="format">
-<parameter_description>   the format of the property
-</parameter_description>
-</parameter>
-<parameter name="text">
-<parameter_description> the text to convert
-</parameter_description>
-</parameter>
-<parameter name="length">
-<parameter_description>   the length of @text, in bytes
-</parameter_description>
-</parameter>
-<parameter name="list">
-<parameter_description> location to store the list
-of strings or %NULL. The list should be freed with
-g_strfreev().
-</parameter_description>
-</parameter>
-</parameters>
-<return> the number of strings in the resulting list
-</return>
-</function>
-
-<function name="gdk_texture_download">
-<description>
-Downloads the @texture into local memory. This may be
-an expensive operation, as the actual texture data may
-reside on a GPU or on a remote display server.
-
-The data format of the downloaded data is equivalent to
-%CAIRO_FORMAT_ARGB32, so every downloaded pixel requires
-4 bytes of memory.
-
-Downloading a texture into a Cairo image surface:
-|[&lt;!-- language=&quot;C&quot; --&gt;
-surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
-gdk_texture_get_width (texture),
-gdk_texture_get_height (texture));
-gdk_texture_download (texture,
-cairo_image_surface_get_data (surface),
-cairo_image_surface_get_stride (surface));
-cairo_surface_mark_dirty (surface);
-]|
-
-</description>
-<parameters>
-<parameter name="texture">
-<parameter_description> a #GdkTexture
-</parameter_description>
-</parameter>
-<parameter name="data">
-<parameter_description> pointer to enough memory to be filled with the
-downloaded data of @texture
-</parameter_description>
-</parameter>
-<parameter name="stride">
-<parameter_description> rowstride in bytes
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="gdk_texture_get_height">
-<description>
-Returns the height of the @texture.
-
-
-</description>
-<parameters>
-<parameter name="texture">
-<parameter_description> a #GdkTexture
-</parameter_description>
-</parameter>
-</parameters>
-<return> the height of the #GdkTexture
-</return>
-</function>
-
-<function name="gdk_texture_get_width">
-<description>
-Returns the width of @texture.
-
-
-</description>
-<parameters>
-<parameter name="texture">
-<parameter_description> a #GdkTexture
-</parameter_description>
-</parameter>
-</parameters>
-<return> the width of the #GdkTexture
-</return>
-</function>
-
-<function name="gdk_texture_new_for_data">
-<description>
-Creates a new texture object holding the given data.
-The data is assumed to be in CAIRO_FORMAT_ARGB32 format.
-
-
-</description>
-<parameters>
-<parameter name="data">
-<parameter_description> the pixel data
-</parameter_description>
-</parameter>
-<parameter name="width">
-<parameter_description> the number of pixels in each row
-</parameter_description>
-</parameter>
-<parameter name="height">
-<parameter_description> the number of rows
-</parameter_description>
-</parameter>
-<parameter name="stride">
-<parameter_description> the distance from the beginning of one row to the next, in bytes
-</parameter_description>
-</parameter>
-</parameters>
-<return> a new #GdkTexture
-</return>
-</function>
-
-<function name="gdk_texture_new_for_pixbuf">
-<description>
-Creates a new texture object representing the GdkPixbuf.
-
-
-</description>
-<parameters>
-<parameter name="pixbuf">
-<parameter_description> a #GdkPixbuf
-</parameter_description>
-</parameter>
-</parameters>
-<return> a new #GdkTexture
-</return>
-</function>
-
-<function name="gdk_texture_new_for_surface">
-<description>
-Creates a new texture object representing the surface.
-@surface must be an image surface with format CAIRO_FORMAT_ARGB32.
-
-
-</description>
-<parameters>
-<parameter name="surface">
-<parameter_description> a cairo image surface
-</parameter_description>
-</parameter>
-</parameters>
-<return> a new #GdkTexture
-</return>
-</function>
-
-<function name="gdk_texture_new_from_file">
-<description>
-Creates a new texture by loading an image from a file.  The file format is
-detected automatically. If %NULL is returned, then @error will be set.
-
-
-</description>
-<parameters>
-<parameter name="file">
-<parameter_description> #GFile to load
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Return location for an error
-</parameter_description>
-</parameter>
-</parameters>
-<return> A newly-created #GdkTexture or %NULL if an error occured.
-</return>
-</function>
-
-<function name="gdk_texture_new_from_resource">
-<description>
-Creates a new texture by loading an image from a resource.
-The file format is detected automatically.
-
-It is a fatal error if @resource_path does not specify a valid
-image resource and the program will abort if that happens.
-If you are unsure about the validity of a resource, use
-gdk_texture_new_from_file() to load it.
-
-
-</description>
-<parameters>
-<parameter name="resource_path">
-<parameter_description> the path of the resource file
-</parameter_description>
-</parameter>
-</parameters>
-<return> A newly-created texture
-</return>
-</function>
-
-<function name="gdk_unicode_to_keyval">
-<description>
-Convert from a ISO10646 character to a key symbol.
-
-
-</description>
-<parameters>
-<parameter name="wc">
-<parameter_description> a ISO10646 encoded character
-</parameter_description>
-</parameter>
-</parameters>
-<return> the corresponding GDK key symbol, if one exists.
-or, if there is no corresponding symbol, 
-wc | 0x01000000
-</return>
-</function>
-
-<function name="gdk_utf8_to_string_target">
-<description>
-Converts an UTF-8 string into the best possible representation
-as a STRING. The representation of characters not in STRING
-is not specified; it may be as pseudo-escape sequences
-\x{ABCD}, or it may be in some other form of approximation.
-
-
-</description>
-<parameters>
-<parameter name="str">
-<parameter_description> a UTF-8 string
-</parameter_description>
-</parameter>
-</parameters>
-<return> the newly-allocated string, or %NULL if the
-conversion failed. (It should not fail for any properly
-formed UTF-8 string unless system limits like memory or
-file descriptors are exceeded.)
-</return>
-</function>
-
-<function name="gdk_vulkan_context_get_device">
-<description>
-Gets the Vulkan device that this context is using.
-
-
-</description>
-<parameters>
-<parameter name="context">
-<parameter_description> a #GdkVulkanContext
-</parameter_description>
-</parameter>
-</parameters>
-<return> the VkDevice
-</return>
-</function>
-
-<function name="gdk_vulkan_context_get_draw_index">
-<description>
-Gets the index of the image that is currently being drawn.
-
-This function can only be used between gdk_window_begin_draw_frame() and
-gdk_window_end_draw_frame() calls for the toplevel window that the
-@context is associated with.
-
-
-</description>
-<parameters>
-<parameter name="context">
-<parameter_description> a #GdkVulkanContext
-</parameter_description>
-</parameter>
-</parameters>
-<return> the index of the images that is being drawn
-</return>
-</function>
-
-<function name="gdk_vulkan_context_get_draw_semaphore">
-<description>
-Gets the Vulkan semaphore that protects access to the image that is
-currently being drawn.
-
-This function can only be used between gdk_window_begin_draw_frame() and
-gdk_window_end_draw_frame() calls for the toplevel window that the
-@context is associated with.
-
-
-</description>
-<parameters>
-<parameter name="context">
-<parameter_description> a #GdkVulkanContext
-</parameter_description>
-</parameter>
-</parameters>
-<return> the VkSemaphore
-</return>
-</function>
-
-<function name="gdk_vulkan_context_get_image">
-<description>
-Gets the image with index @id that this context is using.
-
-
-</description>
-<parameters>
-<parameter name="context">
-<parameter_description> a #GdkVulkanContext
-</parameter_description>
-</parameter>
-<parameter name="id">
-<parameter_description> the index of the image to return
-</parameter_description>
-</parameter>
-</parameters>
-<return> the VkImage
-</return>
-</function>
-
-<function name="gdk_vulkan_context_get_image_format">
-<description>
-Gets the image format that this context is using.
-
-
-</description>
-<parameters>
-<parameter name="context">
-<parameter_description> a #GdkVulkanContext
-</parameter_description>
-</parameter>
-</parameters>
-<return> the VkFormat
-</return>
-</function>
-
-<function name="gdk_vulkan_context_get_instance">
-<description>
-Gets the Vulkan instance that is associated with @context.
-
-
-</description>
-<parameters>
-<parameter name="context">
-<parameter_description> a #GdkVulkanContext
-</parameter_description>
-</parameter>
-</parameters>
-<return> the VkInstance
-</return>
-</function>
-
-<function name="gdk_vulkan_context_get_n_images">
-<description>
-Gets the number of images that this context is using in its swap chain.
-
-
-</description>
-<parameters>
-<parameter name="context">
-<parameter_description> a #GdkVulkanContext
-</parameter_description>
-</parameter>
-</parameters>
-<return> the number of images
-</return>
-</function>
-
-<function name="gdk_vulkan_context_get_physical_device">
+<function name="gdk_surface_beep">
 <description>
-Gets the Vulkan physical device that this context is using.
-
-
-</description>
-<parameters>
-<parameter name="context">
-<parameter_description> a #GdkVulkanContext
-</parameter_description>
-</parameter>
-</parameters>
-<return> the VkPhysicalDevice
-</return>
-</function>
-
-<function name="gdk_vulkan_context_get_queue">
-<description>
-Gets the Vulkan queue that this context is using.
-
-
-</description>
-<parameters>
-<parameter name="context">
-<parameter_description> a #GdkVulkanContext
-</parameter_description>
-</parameter>
-</parameters>
-<return> the VkQueue
-</return>
-</function>
-
-<function name="gdk_vulkan_context_get_queue_family_index">
-<description>
-Gets the family index for the queue that this context is using.
-See vkGetPhysicalDeviceQueueFamilyProperties().
-
-
-</description>
-<parameters>
-<parameter name="context">
-<parameter_description> a #GdkVulkanContext
-</parameter_description>
-</parameter>
-</parameters>
-<return> the index
-</return>
-</function>
-
-<function name="gdk_window_beep">
-<description>
-Emits a short beep associated to @window in the appropriate
+Emits a short beep associated to @surface in the appropriate
 display, if supported. Otherwise, emits a short beep on
 the display just as gdk_display_beep().
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_begin_draw_frame">
+<function name="gdk_surface_begin_draw_frame">
 <description>
 Indicates that you are beginning the process of redrawing @region
-on @window, and provides you with a #GdkDrawingContext.
+on @surface, and provides you with a #GdkDrawingContext.
 
-If @window is a top level #GdkWindow, backed by a native window
+If @surface is a top level #GdkSurface, backed by a native surface
 implementation, a backing store (offscreen buffer) large enough to
 contain @region will be created. The backing store will be initialized
-with the background color or background surface for @window. Then, all
-drawing operations performed on @window will be diverted to the
-backing store. When you call gdk_window_end_frame(), the contents of
-the backing store will be copied to @window, making it visible
-on screen. Only the part of @window contained in @region will be
+with the background color or background surface for @surface. Then, all
+drawing operations performed on @surface will be diverted to the
+backing store. When you call gdk_surface_end_frame(), the contents of
+the backing store will be copied to @surface, making it visible
+on screen. Only the part of @surface contained in @region will be
 modified; that is, drawing operations are clipped to @region.
 
 The net result of all this is to remove flicker, because the user
 sees the finished product appear all at once when you call
-gdk_window_end_draw_frame(). If you draw to @window directly without
-calling gdk_window_begin_draw_frame(), the user may see flicker
+gdk_surface_end_draw_frame(). If you draw to @surface directly without
+calling gdk_surface_begin_draw_frame(), the user may see flicker
 as individual drawing operations are performed in sequence.
 
 When using GTK+, the widget system automatically places calls to
-gdk_window_begin_draw_frame() and gdk_window_end_draw_frame() around
+gdk_surface_begin_draw_frame() and gdk_surface_end_draw_frame() around
 emissions of the `GtkWidget::draw` signal. That is, if you’re
 drawing the contents of the widget yourself, you can assume that the
 widget has a cleared background, is already set as the clip region,
 and already has a backing store. Therefore in most cases, application
-code in GTK does not need to call gdk_window_begin_draw_frame()
+code in GTK does not need to call gdk_surface_begin_draw_frame()
 explicitly.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="context">
@@ -15282,23 +15151,23 @@ explicitly.
 </parameter>
 </parameters>
 <return> a #GdkDrawingContext context that should be
-used to draw the contents of the window; the returned context is owned
+used to draw the contents of the surface; the returned context is owned
 by GDK.
 </return>
 </function>
 
-<function name="gdk_window_begin_move_drag">
+<function name="gdk_surface_begin_move_drag">
 <description>
-Begins a window move operation (for a toplevel window).
+Begins a surface move operation (for a toplevel surface).
 
 This function assumes that the drag is controlled by the
-client pointer device, use gdk_window_begin_move_drag_for_device()
+client pointer device, use gdk_surface_begin_move_drag_for_device()
 to begin a drag with a different device.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="button">
@@ -15321,9 +15190,9 @@ to begin a drag with a different device.
 <return></return>
 </function>
 
-<function name="gdk_window_begin_move_drag_for_device">
+<function name="gdk_surface_begin_move_drag_for_device">
 <description>
-Begins a window move operation (for a toplevel window).
+Begins a surface move operation (for a toplevel surface).
 You might use this function to implement a “window move grip,” for
 example. The function works best with window managers that support the
 [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec)
@@ -15331,8 +15200,8 @@ but has a fallback implementation for other window managers.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="device">
@@ -15359,18 +15228,18 @@ but has a fallback implementation for other window managers.
 <return></return>
 </function>
 
-<function name="gdk_window_begin_resize_drag">
+<function name="gdk_surface_begin_resize_drag">
 <description>
-Begins a window resize operation (for a toplevel window).
+Begins a surface resize operation (for a toplevel surface).
 
 This function assumes that the drag is controlled by the
-client pointer device, use gdk_window_begin_resize_drag_for_device()
+client pointer device, use gdk_surface_begin_resize_drag_for_device()
 to begin a drag with a different device.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="edge">
@@ -15397,9 +15266,9 @@ to begin a drag with a different device.
 <return></return>
 </function>
 
-<function name="gdk_window_begin_resize_drag_for_device">
+<function name="gdk_surface_begin_resize_drag_for_device">
 <description>
-Begins a window resize operation (for a toplevel window).
+Begins a surface resize operation (for a toplevel surface).
 You might use this function to implement a “window resize grip,” for
 example; in fact #GtkStatusbar uses it. The function works best
 with window managers that support the
@@ -15408,8 +15277,8 @@ but has a fallback implementation for other window managers.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="edge">
@@ -15440,7 +15309,7 @@ but has a fallback implementation for other window managers.
 <return></return>
 </function>
 
-<function name="gdk_window_constrain_size">
+<function name="gdk_surface_constrain_size">
 <description>
 Constrains a desired width and height according to a
 set of geometry hints (such as minimum and maximum size).
@@ -15456,11 +15325,11 @@ set of geometry hints (such as minimum and maximum size).
 </parameter_description>
 </parameter>
 <parameter name="width">
-<parameter_description> desired width of window
+<parameter_description> desired width of surface
 </parameter_description>
 </parameter>
 <parameter name="height">
-<parameter_description> desired height of the window
+<parameter_description> desired height of the surface
 </parameter_description>
 </parameter>
 <parameter name="new_width">
@@ -15475,20 +15344,20 @@ set of geometry hints (such as minimum and maximum size).
 <return></return>
 </function>
 
-<function name="gdk_window_coords_from_parent">
+<function name="gdk_surface_coords_from_parent">
 <description>
-Transforms window coordinates from a parent window to a child
-window.
+Transforms surface coordinates from a parent surface to a child
+surface.
 
 Calling this function is equivalent to subtracting the return
-values of gdk_window_get_position() from the parent coordinates.
+values of gdk_surface_get_position() from the parent coordinates.
 
-See also: gdk_window_coords_to_parent()
+See also: gdk_surface_coords_to_parent()
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a child window
+<parameter name="surface">
+<parameter_description> a child surface
 </parameter_description>
 </parameter>
 <parameter name="parent_x">
@@ -15511,18 +15380,18 @@ See also: gdk_window_coords_to_parent()
 <return></return>
 </function>
 
-<function name="gdk_window_coords_to_parent">
+<function name="gdk_surface_coords_to_parent">
 <description>
-Transforms window coordinates from a child window to its parent
-window. Calling this function is equivalent to adding the return
-values of gdk_window_get_position() to the child coordinates.
+Transforms surface coordinates from a child surface to its parent
+surface. Calling this function is equivalent to adding the return
+values of gdk_surface_get_position() to the child coordinates.
 
-See also: gdk_window_coords_from_parent()
+See also: gdk_surface_coords_from_parent()
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a child window
+<parameter name="surface">
+<parameter_description> a child surface
 </parameter_description>
 </parameter>
 <parameter name="x">
@@ -15547,11 +15416,11 @@ in parent’s coordinate system, or %NULL
 <return></return>
 </function>
 
-<function name="gdk_window_create_gl_context">
+<function name="gdk_surface_create_gl_context">
 <description>
 Creates a new #GdkGLContext matching the
-framebuffer format to the visual of the #GdkWindow. The context
-is disconnected from any particular window or surface.
+framebuffer format to the visual of the #GdkSurface. The context
+is disconnected from any particular surface or surface.
 
 If the creation of the #GdkGLContext failed, @error will be set.
 
@@ -15561,8 +15430,8 @@ call gdk_gl_context_make_current() or gdk_gl_context_realize().
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -15575,28 +15444,28 @@ call gdk_gl_context_make_current() or gdk_gl_context_realize().
 </return>
 </function>
 
-<function name="gdk_window_create_similar_image_surface">
+<function name="gdk_surface_create_similar_image_surface">
 <description>
 Create a new image surface that is efficient to draw on the
-given @window.
+given @surface.
 
 Initially the surface contents are all 0 (transparent if contents
 have transparency, black otherwise.)
 
 The @width and @height of the new surface are not affected by
-the scaling factor of the @window, or by the @scale argument; they
+the scaling factor of the @surface, or by the @scale argument; they
 are the size of the surface in device pixels. If you wish to create
-an image surface capable of holding the contents of @window you can
+an image surface capable of holding the contents of @surface you can
 use:
 
 |[&lt;!-- language=&quot;C&quot; --&gt;
-int scale = gdk_window_get_scale_factor (window);
-int width = gdk_window_get_width (window) * scale;
-int height = gdk_window_get_height (window) * scale;
+int scale = gdk_surface_get_scale_factor (surface);
+int width = gdk_surface_get_width (surface) * scale;
+int height = gdk_surface_get_height (surface) * scale;
 
 // format is set elsewhere
 cairo_surface_t *surface =
-gdk_window_create_similar_image_surface (window,
+gdk_surface_create_similar_image_surface (surface,
 format,
 width, height,
 scale);
@@ -15604,13 +15473,13 @@ scale);
 
 Note that unlike cairo_surface_create_similar_image(), the new
 surface's device scale is set to @scale, or to the scale factor of
-@window if @scale is 0.
+@surface if @scale is 0.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> window to make new surface similar to, or
+<parameter name="surface">
+<parameter_description> surface to make new surface similar to, or
 %NULL if none
 </parameter_description>
 </parameter>
@@ -15627,7 +15496,7 @@ surface's device scale is set to @scale, or to the scale factor of
 </parameter_description>
 </parameter>
 <parameter name="scale">
-<parameter_description> the scale of the new surface, or 0 to use same as @window
+<parameter_description> the scale of the new surface, or 0 to use same as @surface
 </parameter_description>
 </parameter>
 </parameters>
@@ -15641,12 +15510,12 @@ or any other error occurs.
 </return>
 </function>
 
-<function name="gdk_window_create_similar_surface">
+<function name="gdk_surface_create_similar_surface">
 <description>
 Create a new surface that is as compatible as possible with the
-given @window. For example the new surface will have the same
-fallback resolution and font options as @window. Generally, the new
-surface will also use the same backend as @window, unless that is
+given @surface. For example the new surface will have the same
+fallback resolution and font options as @surface. Generally, the new
+surface will also use the same backend as @surface, unless that is
 not possible for some reason. The type of the returned surface may
 be examined with cairo_surface_get_type().
 
@@ -15656,8 +15525,8 @@ have transparency, black otherwise.)
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> window to make new surface similar to
+<parameter name="surface">
+<parameter_description> surface to make new surface similar to
 </parameter_description>
 </parameter>
 <parameter name="content">
@@ -15683,17 +15552,17 @@ or any other error occurs.
 </return>
 </function>
 
-<function name="gdk_window_create_vulkan_context">
+<function name="gdk_surface_create_vulkan_context">
 <description>
-Creates a new #GdkVulkanContext for rendering on @window.
+Creates a new #GdkVulkanContext for rendering on @surface.
 
 If the creation of the #GdkVulkanContext failed, @error will be set.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="error">
@@ -15706,116 +15575,116 @@ If the creation of the #GdkVulkanContext failed, @error will be set.
 </return>
 </function>
 
-<function name="gdk_window_deiconify">
+<function name="gdk_surface_deiconify">
 <description>
-Attempt to deiconify (unminimize) @window. On X11 the window manager may
+Attempt to deiconify (unminimize) @surface. On X11 the window manager may
 choose to ignore the request to deiconify. When using GTK+,
-use gtk_window_deiconify() instead of the #GdkWindow variant. Or better yet,
-you probably want to use gtk_window_present(), which raises the window, focuses it,
+use gtk_window_deiconify() instead of the #GdkSurface variant. Or better yet,
+you probably want to use gtk_window_present(), which raises the surface, focuses it,
 unminimizes it, and puts it on the current desktop.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_destroy">
+<function name="gdk_surface_destroy">
 <description>
-Destroys the window system resources associated with @window and decrements @window's
-reference count. The window system resources for all children of @window are also
+Destroys the window system resources associated with @surface and decrements @surface's
+reference count. The window system resources for all children of @surface are also
 destroyed, but the children’s reference counts are not decremented.
 
-Note that a window will not be destroyed automatically when its reference count
+Note that a surface will not be destroyed automatically when its reference count
 reaches zero. You must call this function yourself before that happens.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_end_draw_frame">
+<function name="gdk_surface_end_draw_frame">
 <description>
-Indicates that the drawing of the contents of @window started with
-gdk_window_begin_frame() has been completed.
+Indicates that the drawing of the contents of @surface started with
+gdk_surface_begin_frame() has been completed.
 
 This function will take care of destroying the #GdkDrawingContext.
 
 It is an error to call this function without a matching
-gdk_window_begin_frame() first.
+gdk_surface_begin_frame() first.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="context">
-<parameter_description> the #GdkDrawingContext created by gdk_window_begin_draw_frame()
+<parameter_description> the #GdkDrawingContext created by gdk_surface_begin_draw_frame()
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_focus">
+<function name="gdk_surface_focus">
 <description>
-Sets keyboard focus to @window. In most cases, gtk_window_present()
+Sets keyboard focus to @surface. In most cases, gtk_window_present()
 should be used on a #GtkWindow, rather than calling this function.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="timestamp">
-<parameter_description> timestamp of the event triggering the window focus
+<parameter_description> timestamp of the event triggering the surface focus
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_freeze_updates">
+<function name="gdk_surface_freeze_updates">
 <description>
-Temporarily freezes a window such that it won’t receive expose
-events.  The window will begin receiving expose events again when
-gdk_window_thaw_updates() is called. If gdk_window_freeze_updates()
-has been called more than once, gdk_window_thaw_updates() must be called
+Temporarily freezes a surface such that it won’t receive expose
+events.  The surface will begin receiving expose events again when
+gdk_surface_thaw_updates() is called. If gdk_surface_freeze_updates()
+has been called more than once, gdk_surface_thaw_updates() must be called
 an equal number of times to begin processing exposes.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_fullscreen">
+<function name="gdk_surface_fullscreen">
 <description>
-Moves the window into fullscreen mode. This means the
-window covers the entire screen and is above any panels
+Moves the surface into fullscreen mode. This means the
+surface covers the entire screen and is above any panels
 or task bars.
 
-If the window was already fullscreen, then this function does nothing.
+If the surface was already fullscreen, then this function does nothing.
 
-On X11, asks the window manager to put @window in a fullscreen
+On X11, asks the window manager to put @surface in a fullscreen
 state, if the window manager supports this operation. Not all
 window managers support this, and some deliberately ignore it or
 don’t have a concept of “fullscreen”; so you can’t rely on the
@@ -15825,25 +15694,25 @@ it to happen.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_fullscreen_on_monitor">
+<function name="gdk_surface_fullscreen_on_monitor">
 <description>
-Moves the window into fullscreen mode on the given monitor. This means
-the window covers the entire screen and is above any panels or task bars.
+Moves the surface into fullscreen mode on the given monitor. This means
+the surface covers the entire screen and is above any panels or task bars.
 
-If the window was already fullscreen, then this function does nothing.
+If the surface was already fullscreen, then this function does nothing.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="monitor">
@@ -15854,29 +15723,29 @@ If the window was already fullscreen, then this function does nothing.
 <return></return>
 </function>
 
-<function name="gdk_window_get_accept_focus">
+<function name="gdk_surface_get_accept_focus">
 <description>
 Determines whether or not the desktop environment shuld be hinted that
-the window does not want to receive input focus.
+the surface does not want to receive input focus.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow.
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface.
 </parameter_description>
 </parameter>
 </parameters>
-<return> whether or not the window should receive input focus.
+<return> whether or not the surface should receive input focus.
 </return>
 </function>
 
-<function name="gdk_window_get_children">
+<function name="gdk_surface_get_children">
 <description>
-Gets the list of children of @window known to GDK.
+Gets the list of children of @surface known to GDK.
 This function only returns children created via GDK,
 so for example it’s useless when used with the root window;
-it only returns windows an application created itself.
+it only returns surfaces an application created itself.
 
 The returned list must be freed, but the elements in the
 list need not be.
@@ -15884,32 +15753,32 @@ list need not be.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return>
-list of child windows inside @window
+list of child surfaces inside @surface
 </return>
 </function>
 
-<function name="gdk_window_get_children_with_user_data">
+<function name="gdk_surface_get_children_with_user_data">
 <description>
-Gets the list of children of @window known to GDK with a
+Gets the list of children of @surface known to GDK with a
 particular @user_data set on it.
 
 The returned list must be freed, but the elements in the
 list need not be.
 
 The list is returned in (relative) stacking order, i.e. the
-lowest window is first.
+lowest surface is first.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="user_data">
@@ -15918,86 +15787,65 @@ lowest window is first.
 </parameter>
 </parameters>
 <return>
-list of child windows inside @window
+list of child surfaces inside @surface
 </return>
 </function>
 
-<function name="gdk_window_get_clip_region">
-<description>
-Computes the region of a window that potentially can be written
-to by drawing primitives. This region may not take into account
-other factors such as if the window is obscured by other windows,
-but no area outside of this region will be affected by drawing
-primitives.
-
-
-</description>
-<parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
-</parameter_description>
-</parameter>
-</parameters>
-<return> a #cairo_region_t. This must be freed with cairo_region_destroy()
-when you are done.
-</return>
-</function>
-
-<function name="gdk_window_get_cursor">
+<function name="gdk_surface_get_cursor">
 <description>
 Retrieves a #GdkCursor pointer for the cursor currently set on the
-specified #GdkWindow, or %NULL.  If the return value is %NULL then
-there is no custom cursor set on the specified window, and it is
-using the cursor for its parent window.
+specified #GdkSurface, or %NULL.  If the return value is %NULL then
+there is no custom cursor set on the specified surface, and it is
+using the cursor for its parent surface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return> a #GdkCursor, or %NULL. The
-returned object is owned by the #GdkWindow and should not be
-unreferenced directly. Use gdk_window_set_cursor() to unset the
-cursor of the window
+returned object is owned by the #GdkSurface and should not be
+unreferenced directly. Use gdk_surface_set_cursor() to unset the
+cursor of the surface
 </return>
 </function>
 
-<function name="gdk_window_get_decorations">
+<function name="gdk_surface_get_decorations">
 <description>
-Returns the decorations set on the GdkWindow with
-gdk_window_set_decorations().
+Returns the decorations set on the GdkSurface with
+gdk_surface_set_decorations().
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> The toplevel #GdkWindow to get the decorations from
+<parameter name="surface">
+<parameter_description> The toplevel #GdkSurface to get the decorations from
 </parameter_description>
 </parameter>
 <parameter name="decorations">
-<parameter_description> The window decorations will be written here
+<parameter_description> The surface decorations will be written here
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if the window has decorations set, %FALSE otherwise.
+<return> %TRUE if the surface has decorations set, %FALSE otherwise.
 </return>
 </function>
 
-<function name="gdk_window_get_device_cursor">
+<function name="gdk_surface_get_device_cursor">
 <description>
 Retrieves a #GdkCursor pointer for the @device currently set on the
-specified #GdkWindow, or %NULL.  If the return value is %NULL then
-there is no custom cursor set on the specified window, and it is
-using the cursor for its parent window.
+specified #GdkSurface, or %NULL.  If the return value is %NULL then
+there is no custom cursor set on the specified surface, and it is
+using the cursor for its parent surface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow.
+<parameter name="surface">
+<parameter_description> a #GdkSurface.
 </parameter_description>
 </parameter>
 <parameter name="device">
@@ -16006,21 +15854,21 @@ using the cursor for its parent window.
 </parameter>
 </parameters>
 <return> a #GdkCursor, or %NULL. The
-returned object is owned by the #GdkWindow and should not be
-unreferenced directly. Use gdk_window_set_cursor() to unset the
-cursor of the window
+returned object is owned by the #GdkSurface and should not be
+unreferenced directly. Use gdk_surface_set_cursor() to unset the
+cursor of the surface
 </return>
 </function>
 
-<function name="gdk_window_get_device_events">
+<function name="gdk_surface_get_device_events">
 <description>
-Returns the event mask for @window corresponding to an specific device.
+Returns the event mask for @surface corresponding to an specific device.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow.
+<parameter name="surface">
+<parameter_description> a #GdkSurface.
 </parameter_description>
 </parameter>
 <parameter name="device">
@@ -16028,23 +15876,23 @@ Returns the event mask for @window corresponding to an specific device.
 </parameter_description>
 </parameter>
 </parameters>
-<return> device event mask for @window
+<return> device event mask for @surface
 </return>
 </function>
 
-<function name="gdk_window_get_device_position">
+<function name="gdk_surface_get_device_position">
 <description>
 Obtains the current device position and modifier state.
 The position is given in coordinates relative to the upper left
-corner of @window.
+corner of @surface.
 
-Use gdk_window_get_device_position_double() if you need subpixel precision.
+Use gdk_surface_get_device_position_double() if you need subpixel precision.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow.
+<parameter name="surface">
+<parameter_description> a #GdkSurface.
 </parameter_description>
 </parameter>
 <parameter name="device">
@@ -16064,23 +15912,23 @@ Use gdk_window_get_device_position_double() if you need subpixel precision.
 </parameter_description>
 </parameter>
 </parameters>
-<return> The window underneath @device
-(as with gdk_device_get_window_at_position()), or %NULL if the
-window is not known to GDK.
+<return> The surface underneath @device
+(as with gdk_device_get_surface_at_position()), or %NULL if the
+surface is not known to GDK.
 </return>
 </function>
 
-<function name="gdk_window_get_device_position_double">
+<function name="gdk_surface_get_device_position_double">
 <description>
 Obtains the current device position in doubles and modifier state.
 The position is given in coordinates relative to the upper left
-corner of @window.
+corner of @surface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow.
+<parameter name="surface">
+<parameter_description> a #GdkSurface.
 </parameter_description>
 </parameter>
 <parameter name="device">
@@ -16100,74 +15948,74 @@ corner of @window.
 </parameter_description>
 </parameter>
 </parameters>
-<return> The window underneath @device
-(as with gdk_device_get_window_at_position()), or %NULL if the
-window is not known to GDK.
+<return> The surface underneath @device
+(as with gdk_device_get_surface_at_position()), or %NULL if the
+surface is not known to GDK.
 </return>
 </function>
 
-<function name="gdk_window_get_display">
+<function name="gdk_surface_get_display">
 <description>
-Gets the #GdkDisplay associated with a #GdkWindow.
+Gets the #GdkDisplay associated with a #GdkSurface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> the #GdkDisplay associated with @window
+<return> the #GdkDisplay associated with @surface
 </return>
 </function>
 
-<function name="gdk_window_get_events">
+<function name="gdk_surface_get_events">
 <description>
-Gets the event mask for @window for all master input devices. See
-gdk_window_set_events().
+Gets the event mask for @surface for all master input devices. See
+gdk_surface_set_events().
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> event mask for @window
+<return> event mask for @surface
 </return>
 </function>
 
-<function name="gdk_window_get_focus_on_map">
+<function name="gdk_surface_get_focus_on_map">
 <description>
 Determines whether or not the desktop environment should be hinted that the
-window does not want to receive input focus when it is mapped.
+surface does not want to receive input focus when it is mapped.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow.
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface.
 </parameter_description>
 </parameter>
 </parameters>
-<return> whether or not the window wants to receive input focus when
+<return> whether or not the surface wants to receive input focus when
 it is mapped.
 </return>
 </function>
 
-<function name="gdk_window_get_frame_clock">
+<function name="gdk_surface_get_frame_clock">
 <description>
-Gets the frame clock for the window. The frame clock for a window
-never changes unless the window is reparented to a new toplevel
-window.
+Gets the frame clock for the surface. The frame clock for a surface
+never changes unless the surface is reparented to a new toplevel
+surface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> window to get frame clock for
+<parameter name="surface">
+<parameter_description> surface to get frame clock for
 </parameter_description>
 </parameter>
 </parameters>
@@ -16175,112 +16023,112 @@ window.
 </return>
 </function>
 
-<function name="gdk_window_get_frame_extents">
+<function name="gdk_surface_get_frame_extents">
 <description>
-Obtains the bounding box of the window, including window manager
+Obtains the bounding box of the surface, including window manager
 titlebar/borders if any. The frame position is given in root window
-coordinates. To get the position of the window itself (rather than
-the frame) in root window coordinates, use gdk_window_get_origin().
+coordinates. To get the position of the surface itself (rather than
+the frame) in root window coordinates, use gdk_surface_get_origin().
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="rect">
-<parameter_description> rectangle to fill with bounding box of the window frame
+<parameter_description> rectangle to fill with bounding box of the surface frame
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_get_fullscreen_mode">
+<function name="gdk_surface_get_fullscreen_mode">
 <description>
-Obtains the #GdkFullscreenMode of the @window.
+Obtains the #GdkFullscreenMode of the @surface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> The #GdkFullscreenMode applied to the window when fullscreen.
+<return> The #GdkFullscreenMode applied to the surface when fullscreen.
 </return>
 </function>
 
-<function name="gdk_window_get_geometry">
+<function name="gdk_surface_get_geometry">
 <description>
 Any of the return location arguments to this function may be %NULL,
 if you aren’t interested in getting the value of that field.
 
-The X and Y coordinates returned are relative to the parent window
-of @window, which for toplevels usually means relative to the
-window decorations (titlebar, etc.) rather than relative to the
+The X and Y coordinates returned are relative to the parent surface
+of @surface, which for toplevels usually means relative to the
+surface decorations (titlebar, etc.) rather than relative to the
 root window (screen-size background window).
 
 On the X11 platform, the geometry is obtained from the X server,
-so reflects the latest position of @window; this may be out-of-sync
-with the position of @window delivered in the most-recently-processed
-#GdkEventConfigure. gdk_window_get_position() in contrast gets the
+so reflects the latest position of @surface; this may be out-of-sync
+with the position of @surface delivered in the most-recently-processed
+#GdkEventConfigure. gdk_surface_get_position() in contrast gets the
 position from the most recent configure event.
 
-Note: If @window is not a toplevel, it is much better
-to call gdk_window_get_position(), gdk_window_get_width() and
-gdk_window_get_height() instead, because it avoids the roundtrip to
+Note: If @surface is not a toplevel, it is much better
+to call gdk_surface_get_position(), gdk_surface_get_width() and
+gdk_surface_get_height() instead, because it avoids the roundtrip to
 the X server and because these functions support the full 32-bit
-coordinate space, whereas gdk_window_get_geometry() is restricted to
+coordinate space, whereas gdk_surface_get_geometry() is restricted to
 the 16-bit coordinates of X11.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="x">
-<parameter_description> return location for X coordinate of window (relative to its parent)
+<parameter_description> return location for X coordinate of surface (relative to its parent)
 </parameter_description>
 </parameter>
 <parameter name="y">
-<parameter_description> return location for Y coordinate of window (relative to its parent)
+<parameter_description> return location for Y coordinate of surface (relative to its parent)
 </parameter_description>
 </parameter>
 <parameter name="width">
-<parameter_description> return location for width of window
+<parameter_description> return location for width of surface
 </parameter_description>
 </parameter>
 <parameter name="height">
-<parameter_description> return location for height of window
+<parameter_description> return location for height of surface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_get_group">
+<function name="gdk_surface_get_group">
 <description>
-Returns the group leader window for @window. See gdk_window_set_group().
+Returns the group leader surface for @surface. See gdk_surface_set_group().
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> the group leader window for @window
+<return> the group leader surface for @surface
 </return>
 </function>
 
-<function name="gdk_window_get_height">
+<function name="gdk_surface_get_height">
 <description>
-Returns the height of the given @window.
+Returns the height of the given @surface.
 
 On the X11 platform the returned size is the size reported in the
 most-recently-processed configure event, rather than the current
@@ -16289,44 +16137,44 @@ size on the X server.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> The height of @window
+<return> The height of @surface
 </return>
 </function>
 
-<function name="gdk_window_get_modal_hint">
+<function name="gdk_surface_get_modal_hint">
 <description>
-Determines whether or not the window manager is hinted that @window
+Determines whether or not the surface manager is hinted that @surface
 has modal behaviour.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> A toplevel #GdkWindow.
+<parameter name="surface">
+<parameter_description> A toplevel #GdkSurface.
 </parameter_description>
 </parameter>
 </parameters>
-<return> whether or not the window has the modal hint set.
+<return> whether or not the surface has the modal hint set.
 </return>
 </function>
 
-<function name="gdk_window_get_origin">
+<function name="gdk_surface_get_origin">
 <description>
-Obtains the position of a window in root window coordinates.
-(Compare with gdk_window_get_position() and
-gdk_window_get_geometry() which return the position of a window
-relative to its parent window.)
+Obtains the position of a surface in root window coordinates.
+(Compare with gdk_surface_get_position() and
+gdk_surface_get_geometry() which return the position of a surface
+relative to its parent surface.)
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="x">
@@ -16342,10 +16190,10 @@ relative to its parent window.)
 </return>
 </function>
 
-<function name="gdk_window_get_parent">
+<function name="gdk_surface_get_parent">
 <description>
-Obtains the parent of @window, as known to GDK. Does not query the
-X server; thus this returns the parent as passed to gdk_window_new(),
+Obtains the parent of @surface, as known to GDK. Does not query the
+X server; thus this returns the parent as passed to gdk_surface_new(),
 not the actual parent. This should never matter unless you’re using
 Xlib calls mixed with GDK calls on the X11 platform. It may also
 matter for toplevel windows, because the window manager may choose
@@ -16354,80 +16202,80 @@ to reparent them.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> parent of @window
+<return> parent of @surface
 </return>
 </function>
 
-<function name="gdk_window_get_pass_through">
+<function name="gdk_surface_get_pass_through">
 <description>
-Returns whether input to the window is passed through to the window
+Returns whether input to the surface is passed through to the surface
 below.
 
-See gdk_window_set_pass_through() for details
+See gdk_surface_set_pass_through() for details
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_get_position">
+<function name="gdk_surface_get_position">
 <description>
-Obtains the position of the window as reported in the
+Obtains the position of the surface as reported in the
 most-recently-processed #GdkEventConfigure. Contrast with
-gdk_window_get_geometry() which queries the X server for the
-current window position, regardless of which events have been
+gdk_surface_get_geometry() which queries the X server for the
+current surface position, regardless of which events have been
 received or processed.
 
-The position coordinates are relative to the window’s parent window.
+The position coordinates are relative to the surface’s parent surface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="x">
-<parameter_description> X coordinate of window
+<parameter_description> X coordinate of surface
 </parameter_description>
 </parameter>
 <parameter name="y">
-<parameter_description> Y coordinate of window
+<parameter_description> Y coordinate of surface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_get_root_coords">
+<function name="gdk_surface_get_root_coords">
 <description>
-Obtains the position of a window position in root
+Obtains the position of a surface position in root
 window coordinates. This is similar to
-gdk_window_get_origin() but allows you to pass
-in any position in the window, not just the origin.
+gdk_surface_get_origin() but allows you to pass
+in any position in the surface, not just the origin.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="x">
-<parameter_description> X coordinate in window
+<parameter_description> X coordinate in surface
 </parameter_description>
 </parameter>
 <parameter name="y">
-<parameter_description> Y coordinate in window
+<parameter_description> Y coordinate in surface
 </parameter_description>
 </parameter>
 <parameter name="root_x">
@@ -16442,33 +16290,33 @@ in any position in the window, not just the origin.
 <return></return>
 </function>
 
-<function name="gdk_window_get_root_origin">
+<function name="gdk_surface_get_root_origin">
 <description>
-Obtains the top-left corner of the window manager frame in root
-window coordinates.
+Obtains the top-left corner of the surface manager frame in root
+surface coordinates.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="x">
-<parameter_description> return location for X position of window frame
+<parameter_description> return location for X position of surface frame
 </parameter_description>
 </parameter>
 <parameter name="y">
-<parameter_description> return location for Y position of window frame
+<parameter_description> return location for Y position of surface frame
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_get_scale_factor">
+<function name="gdk_surface_get_scale_factor">
 <description>
-Returns the internal scale factor that maps from window coordiantes
+Returns the internal scale factor that maps from surface coordiantes
 to the actual device pixels. On traditional systems this is 1, but
 on very high density outputs this can be a higher value (often 2).
 
@@ -16478,14 +16326,14 @@ nicer. However, if you are supplying pixel-based data the scale
 value can be used to determine whether to use a pixel resource
 with higher resolution data.
 
-The scale of a window may change during runtime, if this happens
-a configure event will be sent to the toplevel window.
+The scale of a surface may change during runtime, if this happens
+a configure event will be sent to the toplevel surface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> window to get scale factor for
+<parameter name="surface">
+<parameter_description> surface to get scale factor for
 </parameter_description>
 </parameter>
 </parameters>
@@ -16493,107 +16341,102 @@ a configure event will be sent to the toplevel window.
 </return>
 </function>
 
-<function name="gdk_window_get_state">
+<function name="gdk_surface_get_state">
 <description>
-Gets the bitwise OR of the currently active window state flags,
-from the #GdkWindowState enumeration.
+Gets the bitwise OR of the currently active surface state flags,
+from the #GdkSurfaceState enumeration.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> window state bitfield
+<return> surface state bitfield
 </return>
 </function>
 
-<function name="gdk_window_get_support_multidevice">
+<function name="gdk_surface_get_support_multidevice">
 <description>
-Returns %TRUE if the window is aware of the existence of multiple
+Returns %TRUE if the surface is aware of the existence of multiple
 devices.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow.
+<parameter name="surface">
+<parameter_description> a #GdkSurface.
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if the window handles multidevice features.
+<return> %TRUE if the surface handles multidevice features.
 </return>
 </function>
 
-<function name="gdk_window_get_toplevel">
+<function name="gdk_surface_get_surface_type">
 <description>
-Gets the toplevel window that’s an ancestor of @window.
-
-Any window type but %GDK_WINDOW_CHILD is considered a
-toplevel window, as is a %GDK_WINDOW_CHILD window that
-has a root window as parent.
+Gets the type of the surface. See #GdkSurfaceType.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> the toplevel window containing @window
+<return> type of surface
 </return>
 </function>
 
-<function name="gdk_window_get_type_hint">
+<function name="gdk_surface_get_toplevel">
 <description>
-This function returns the type hint set for a window.
+Gets the toplevel surface that’s an ancestor of @surface.
+
+Any surface type but %GDK_SURFACE_CHILD is considered a
+toplevel surface, as is a %GDK_SURFACE_CHILD surface that
+has a root surface as parent.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> A toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> The type hint set for @window
+<return> the toplevel surface containing @surface
 </return>
 </function>
 
-<function name="gdk_window_get_update_area">
+<function name="gdk_surface_get_type_hint">
 <description>
-Transfers ownership of the update area from @window to the caller
-of the function. That is, after calling this function, @window will
-no longer have an invalid/dirty region; the update area is removed
-from @window and handed to you. If a window has no update area,
-gdk_window_get_update_area() returns %NULL. You are responsible for
-calling cairo_region_destroy() on the returned region if it’s non-%NULL.
+This function returns the type hint set for a surface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> A toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> the update area for @window
+<return> The type hint set for @surface
 </return>
 </function>
 
-<function name="gdk_window_get_user_data">
+<function name="gdk_surface_get_user_data">
 <description>
-Retrieves the user data for @window, which is normally the widget
-that @window belongs to. See gdk_window_set_user_data().
+Retrieves the user data for @surface, which is normally the widget
+that @surface belongs to. See gdk_surface_set_user_data().
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="data">
@@ -16604,29 +16447,9 @@ that @window belongs to. See gdk_window_set_user_data().
 <return></return>
 </function>
 
-<function name="gdk_window_get_visible_region">
+<function name="gdk_surface_get_width">
 <description>
-Computes the region of the @window that is potentially visible.
-This does not necessarily take into account if the window is
-obscured by other windows, but no area outside of this region
-is visible.
-
-
-</description>
-<parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
-</parameter_description>
-</parameter>
-</parameters>
-<return> a #cairo_region_t. This must be freed with cairo_region_destroy()
-when you are done.
-</return>
-</function>
-
-<function name="gdk_window_get_width">
-<description>
-Returns the width of the given @window.
+Returns the width of the given @surface.
 
 On the X11 platform the returned size is the size reported in the
 most-recently-processed configure event, rather than the current
@@ -16635,94 +16458,78 @@ size on the X server.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
-</parameter_description>
-</parameter>
-</parameters>
-<return> The width of @window
-</return>
-</function>
-
-<function name="gdk_window_get_window_type">
-<description>
-Gets the type of the window. See #GdkWindowType.
-
-
-</description>
-<parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> type of window
+<return> The width of @surface
 </return>
 </function>
 
-<function name="gdk_window_has_native">
+<function name="gdk_surface_has_native">
 <description>
-Checks whether the window has a native window or not.
+Checks whether the surface has a native surface or not.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if the @window has a native window, %FALSE otherwise.
+<return> %TRUE if the @surface has a native surface, %FALSE otherwise.
 </return>
 </function>
 
-<function name="gdk_window_hide">
+<function name="gdk_surface_hide">
 <description>
-For toplevel windows, withdraws them, so they will no longer be
-known to the window manager; for all windows, unmaps them, so
+For toplevel surfaces, withdraws them, so they will no longer be
+known to the window manager; for all surfaces, unmaps them, so
 they won’t be displayed. Normally done automatically as
 part of gtk_widget_hide().
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_iconify">
+<function name="gdk_surface_iconify">
 <description>
-Asks to iconify (minimize) @window. The window manager may choose
+Asks to iconify (minimize) @surface. The window manager may choose
 to ignore the request, but normally will honor it. Using
 gtk_window_iconify() is preferred, if you have a #GtkWindow widget.
 
-This function only makes sense when @window is a toplevel window.
+This function only makes sense when @surface is a toplevel surface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_input_shape_combine_region">
+<function name="gdk_surface_input_shape_combine_region">
 <description>
-Like gdk_window_shape_combine_region(), but the shape applies
+Like gdk_surface_shape_combine_region(), but the shape applies
 only to event handling. Mouse events which happen while
 the pointer position corresponds to an unset bit in the
-mask will be passed on the window below @window.
+mask will be passed on the surface below @surface.
 
-An input shape is typically used with RGBA windows.
-The alpha channel of the window defines which pixels are
+An input shape is typically used with RGBA surfaces.
+The alpha channel of the surface defines which pixels are
 invisible and allows for nicely antialiased borders,
-and the input shape controls where the window is
+and the input shape controls where the surface is
 “clickable”.
 
 On the X11 platform, this requires version 1.1 of the
@@ -16733,91 +16540,50 @@ function does nothing.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="shape_region">
-<parameter_description> region of window to be non-transparent
+<parameter_description> region of surface to be non-transparent
 </parameter_description>
 </parameter>
 <parameter name="offset_x">
-<parameter_description> X position of @shape_region in @window coordinates
+<parameter_description> X position of @shape_region in @surface coordinates
 </parameter_description>
 </parameter>
 <parameter name="offset_y">
-<parameter_description> Y position of @shape_region in @window coordinates
+<parameter_description> Y position of @shape_region in @surface coordinates
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_invalidate_maybe_recurse">
+<function name="gdk_surface_invalidate_rect">
 <description>
-Adds @region to the update area for @window. The update area is the
-region that needs to be redrawn, or “dirty region.”
-
-GDK will process all updates whenever the frame clock schedules a redraw,
-so there’s no need to do forces redraws manually, you just need to
-invalidate regions that you know should be redrawn.
-
-The @child_func parameter controls whether the region of
-each child window that intersects @region will also be invalidated.
-Only children for which @child_func returns #TRUE will have the area
-invalidated.
-
-</description>
-<parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
-</parameter_description>
-</parameter>
-<parameter name="region">
-<parameter_description> a #cairo_region_t
-</parameter_description>
-</parameter>
-<parameter name="child_func">
-<parameter_description> function to use to decide if to
-recurse to a child, %NULL means never recurse.
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> data passed to @child_func
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="gdk_window_invalidate_rect">
-<description>
-A convenience wrapper around gdk_window_invalidate_region() which
+A convenience wrapper around gdk_surface_invalidate_region() which
 invalidates a rectangular region. See
-gdk_window_invalidate_region() for details.
+gdk_surface_invalidate_region() for details.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="rect">
 <parameter_description> rectangle to invalidate or %NULL to invalidate the whole
-window
-</parameter_description>
-</parameter>
-<parameter name="invalidate_children">
-<parameter_description> whether to also invalidate child windows
+surface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_invalidate_region">
+<function name="gdk_surface_invalidate_region">
 <description>
-Adds @region to the update area for @window. The update area is the
+Adds @region to the update area for @surface. The update area is the
 region that needs to be redrawn, or “dirty region.”
 
 GDK will process all updates whenever the frame clock schedules a redraw,
@@ -16825,281 +16591,209 @@ so there’s no need to do forces redraws manually, you just need to
 invalidate regions that you know should be redrawn.
 
 The @invalidate_children parameter controls whether the region of
-each child window that intersects @region will also be invalidated.
-If %FALSE, then the update area for child windows will remain
-unaffected. See gdk_window_invalidate_maybe_recurse if you need
-fine grained control over which children are invalidated.
+each child surface that intersects @region will also be invalidated.
+If %FALSE, then the update area for child surfaces will remain
+unaffected.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="region">
 <parameter_description> a #cairo_region_t
 </parameter_description>
 </parameter>
-<parameter name="invalidate_children">
-<parameter_description> %TRUE to also invalidate child windows
-</parameter_description>
-</parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_is_destroyed">
+<function name="gdk_surface_is_destroyed">
 <description>
-Check to see if a window is destroyed..
+Check to see if a surface is destroyed..
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the window is destroyed
-</return>
-</function>
-
-<function name="gdk_window_is_input_only">
-<description>
-Determines whether or not the window is an input only window.
-
-
-</description>
-<parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if @window is input only
+<return> %TRUE if the surface is destroyed
 </return>
 </function>
 
-<function name="gdk_window_is_shaped">
+<function name="gdk_surface_is_input_only">
 <description>
-Determines whether or not the window is shaped.
+Determines whether or not the surface is an input only surface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if @window is shaped
+<return> %TRUE if @surface is input only
 </return>
 </function>
 
-<function name="gdk_window_is_viewable">
+<function name="gdk_surface_is_viewable">
 <description>
-Check if the window and all ancestors of the window are
+Check if the surface and all ancestors of the surface are
 mapped. (This is not necessarily &quot;viewable&quot; in the X sense, since
-we only check as far as we have GDK window parents, not to the root
-window.)
+we only check as far as we have GDK surface parents, not to the root
+surface.)
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if the window is viewable
+<return> %TRUE if the surface is viewable
 </return>
 </function>
 
-<function name="gdk_window_is_visible">
+<function name="gdk_surface_is_visible">
 <description>
-Checks whether the window has been mapped (with gdk_window_show() or
-gdk_window_show_unraised()).
+Checks whether the surface has been mapped (with gdk_surface_show() or
+gdk_surface_show_unraised()).
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if the window is mapped
+<return> %TRUE if the surface is mapped
 </return>
 </function>
 
-<function name="gdk_window_lower">
+<function name="gdk_surface_lower">
 <description>
-Lowers @window to the bottom of the Z-order (stacking order), so that
-other windows with the same parent window appear above @window.
-This is true whether or not the other windows are visible.
+Lowers @surface to the bottom of the Z-order (stacking order), so that
+other surfaces with the same parent surface appear above @surface.
+This is true whether or not the other surfaces are visible.
 
-If @window is a toplevel, the window manager may choose to deny the
-request to move the window in the Z-order, gdk_window_lower() only
+If @surface is a toplevel, the window manager may choose to deny the
+request to move the surface in the Z-order, gdk_surface_lower() only
 requests the restack, does not guarantee it.
 
-Note that gdk_window_show() raises the window again, so don’t call this
-function before gdk_window_show(). (Try gdk_window_show_unraised().)
+Note that gdk_surface_show() raises the surface again, so don’t call this
+function before gdk_surface_show(). (Try gdk_surface_show_unraised().)
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_maximize">
+<function name="gdk_surface_maximize">
 <description>
-Maximizes the window. If the window was already maximized, then
+Maximizes the surface. If the surface was already maximized, then
 this function does nothing.
 
-On X11, asks the window manager to maximize @window, if the window
+On X11, asks the window manager to maximize @surface, if the window
 manager supports this operation. Not all window managers support
 this, and some deliberately ignore it or don’t have a concept of
 “maximized”; so you can’t rely on the maximization actually
 happening. But it will happen with most standard window managers,
 and GDK makes a best effort to get it to happen.
 
-On Windows, reliably maximizes the window.
+On Windows, reliably maximizes the surface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_merge_child_input_shapes">
+<function name="gdk_surface_merge_child_input_shapes">
 <description>
-Merges the input shape masks for any child windows into the
-input shape mask for @window. i.e. the union of all input masks
-for @window and its children will become the new input mask
-for @window. See gdk_window_input_shape_combine_region().
+Merges the input shape masks for any child surfaces into the
+input shape mask for @surface. i.e. the union of all input masks
+for @surface and its children will become the new input mask
+for @surface. See gdk_surface_input_shape_combine_region().
 
-This function is distinct from gdk_window_set_child_input_shapes()
-because it includes @window’s input shape mask in the set of
+This function is distinct from gdk_surface_set_child_input_shapes()
+because it includes @surface’s input shape mask in the set of
 shapes to be merged.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="gdk_window_merge_child_shapes">
-<description>
-Merges the shape masks for any child windows into the
-shape mask for @window. i.e. the union of all masks
-for @window and its children will become the new mask
-for @window. See gdk_window_shape_combine_region().
-
-This function is distinct from gdk_window_set_child_shapes()
-because it includes @window’s shape mask in the set of shapes to
-be merged.
-
-</description>
-<parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_move">
+<function name="gdk_surface_move">
 <description>
-Repositions a window relative to its parent window.
-For toplevel windows, window managers may ignore or modify the move;
+Repositions a surface relative to its parent surface.
+For toplevel surfaces, window managers may ignore or modify the move;
 you should probably use gtk_window_move() on a #GtkWindow widget
-anyway, instead of using GDK functions. For child windows,
+anyway, instead of using GDK functions. For child surfaces,
 the move will reliably succeed.
 
-If you’re also planning to resize the window, use gdk_window_move_resize()
+If you’re also planning to resize the surface, use gdk_surface_move_resize()
 to both move and resize simultaneously, for a nicer visual effect.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="x">
-<parameter_description> X coordinate relative to window’s parent
+<parameter_description> X coordinate relative to surface’s parent
 </parameter_description>
 </parameter>
 <parameter name="y">
-<parameter_description> Y coordinate relative to window’s parent
+<parameter_description> Y coordinate relative to surface’s parent
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_move_region">
+<function name="gdk_surface_move_resize">
 <description>
-Move the part of @window indicated by @region by @dy pixels in the Y
-direction and @dx pixels in the X direction. The portions of @region
-that not covered by the new position of @region are invalidated.
-
-Child windows are not moved.
-
-</description>
-<parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
-</parameter_description>
-</parameter>
-<parameter name="region">
-<parameter_description> The #cairo_region_t to move
-</parameter_description>
-</parameter>
-<parameter name="dx">
-<parameter_description> Amount to move in the X direction
-</parameter_description>
-</parameter>
-<parameter name="dy">
-<parameter_description> Amount to move in the Y direction
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="gdk_window_move_resize">
-<description>
-Equivalent to calling gdk_window_move() and gdk_window_resize(),
+Equivalent to calling gdk_surface_move() and gdk_surface_resize(),
 except that both operations are performed at once, avoiding strange
-visual effects. (i.e. the user may be able to see the window first
-move, then resize, if you don’t use gdk_window_move_resize().)
+visual effects. (i.e. the user may be able to see the surface first
+move, then resize, if you don’t use gdk_surface_move_resize().)
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="x">
-<parameter_description> new X position relative to window’s parent
+<parameter_description> new X position relative to surface’s parent
 </parameter_description>
 </parameter>
 <parameter name="y">
-<parameter_description> new Y position relative to window’s parent
+<parameter_description> new Y position relative to surface’s parent
 </parameter_description>
 </parameter>
 <parameter name="width">
@@ -17114,42 +16808,42 @@ move, then resize, if you don’t use gdk_window_move_resize().)
 <return></return>
 </function>
 
-<function name="gdk_window_move_to_rect">
+<function name="gdk_surface_move_to_rect">
 <description>
-Moves @window to @rect, aligning their anchor points.
+Moves @surface to @rect, aligning their anchor points.
 
-@rect is relative to the top-left corner of the window that @window is
-transient for. @rect_anchor and @window_anchor determine anchor points on
-@rect and @window to pin together. @rect's anchor point can optionally be
+@rect is relative to the top-left corner of the surface that @surface is
+transient for. @rect_anchor and @surface_anchor determine anchor points on
+@rect and @surface to pin together. @rect's anchor point can optionally be
 offset by @rect_anchor_dx and @rect_anchor_dy, which is equivalent to
-offsetting the position of @window.
+offsetting the position of @surface.
 
-@anchor_hints determines how @window will be moved if the anchor points cause
+@anchor_hints determines how @surface will be moved if the anchor points cause
 it to move off-screen. For example, %GDK_ANCHOR_FLIP_X will replace
 %GDK_GRAVITY_NORTH_WEST with %GDK_GRAVITY_NORTH_EAST and vice versa if
-@window extends beyond the left or right edges of the monitor.
+@surface extends beyond the left or right edges of the monitor.
 
-Connect to the #GdkWindow::moved-to-rect signal to find out how it was
+Connect to the #GdkSurface::moved-to-rect signal to find out how it was
 actually positioned.
 
 Stability: Private
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> the #GdkWindow to move
+<parameter name="surface">
+<parameter_description> the #GdkSurface to move
 </parameter_description>
 </parameter>
 <parameter name="rect">
-<parameter_description> the destination #GdkRectangle to align @window with
+<parameter_description> the destination #GdkRectangle to align @surface with
 </parameter_description>
 </parameter>
 <parameter name="rect_anchor">
-<parameter_description> the point on @rect to align with @window's anchor point
+<parameter_description> the point on @rect to align with @surface's anchor point
 </parameter_description>
 </parameter>
-<parameter name="window_anchor">
-<parameter_description> the point on @window to align with @rect's anchor point
+<parameter name="surface_anchor">
+<parameter_description> the point on @surface to align with @rect's anchor point
 </parameter_description>
 </parameter>
 <parameter name="anchor_hints">
@@ -17157,62 +16851,62 @@ Stability: Private
 </parameter_description>
 </parameter>
 <parameter name="rect_anchor_dx">
-<parameter_description> horizontal offset to shift @window, i.e. @rect's anchor
+<parameter_description> horizontal offset to shift @surface, i.e. @rect's anchor
 point
 </parameter_description>
 </parameter>
 <parameter name="rect_anchor_dy">
-<parameter_description> vertical offset to shift @window, i.e. @rect's anchor point
+<parameter_description> vertical offset to shift @surface, i.e. @rect's anchor point
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_new_child">
+<function name="gdk_surface_new_child">
 <description>
-Creates a new client-side child window.
+Creates a new client-side child surface.
 
 
 </description>
 <parameters>
 <parameter name="parent">
-<parameter_description> the parent window
+<parameter_description> the parent surface
 </parameter_description>
 </parameter>
 <parameter name="position">
-<parameter_description> placement of the window inside @parent
+<parameter_description> placement of the surface inside @parent
 </parameter_description>
 </parameter>
 </parameters>
-<return> the new #GdkWindow
+<return> the new #GdkSurface
 </return>
 </function>
 
-<function name="gdk_window_new_popup">
+<function name="gdk_surface_new_popup">
 <description>
-Creates a new toplevel popup window. The window will bypass window
+Creates a new toplevel popup surface. The surface will bypass surface
 management.
 
 
 </description>
 <parameters>
 <parameter name="display">
-<parameter_description> the display to create the window on
+<parameter_description> the display to create the surface on
 </parameter_description>
 </parameter>
 <parameter name="position">
-<parameter_description> position of the window on screen
+<parameter_description> position of the surface on screen
 </parameter_description>
 </parameter>
 </parameters>
-<return> the new #GdkWindow
+<return> the new #GdkSurface
 </return>
 </function>
 
-<function name="gdk_window_new_temp">
+<function name="gdk_surface_new_temp">
 <description>
-Creates a new toplevel temporary window. The window will be
+Creates a new toplevel temporary surface. The surface will be
 situated off-screen and not handle output.
 
 You most likely do not want to use this function.
@@ -17221,141 +16915,141 @@ You most likely do not want to use this function.
 </description>
 <parameters>
 <parameter name="display">
-<parameter_description> the display to create the window on
+<parameter_description> the display to create the surface on
 </parameter_description>
 </parameter>
 </parameters>
-<return> the new #GdkWindow
+<return> the new #GdkSurface
 </return>
 </function>
 
-<function name="gdk_window_new_toplevel">
+<function name="gdk_surface_new_toplevel">
 <description>
-Creates a new toplevel window. The window will be managed by the window
+Creates a new toplevel surface. The surface will be managed by the surface
 manager.
 
 
 </description>
 <parameters>
 <parameter name="display">
-<parameter_description> the display to create the window on
+<parameter_description> the display to create the surface on
 </parameter_description>
 </parameter>
 <parameter name="width">
-<parameter_description> width of new window
+<parameter_description> width of new surface
 </parameter_description>
 </parameter>
 <parameter name="height">
-<parameter_description> height of new window
+<parameter_description> height of new surface
 </parameter_description>
 </parameter>
 </parameters>
-<return> the new #GdkWindow
+<return> the new #GdkSurface
 </return>
 </function>
 
-<function name="gdk_window_peek_children">
+<function name="gdk_surface_peek_children">
 <description>
-Like gdk_window_get_children(), but does not copy the list of
+Like gdk_surface_get_children(), but does not copy the list of
 children, so the list does not need to be freed.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return>
-a reference to the list of child windows in @window
+a reference to the list of child surfaces in @surface
 </return>
 </function>
 
-<function name="gdk_window_raise">
+<function name="gdk_surface_raise">
 <description>
-Raises @window to the top of the Z-order (stacking order), so that
-other windows with the same parent window appear below @window.
-This is true whether or not the windows are visible.
+Raises @surface to the top of the Z-order (stacking order), so that
+other surfaces with the same parent surface appear below @surface.
+This is true whether or not the surfaces are visible.
 
-If @window is a toplevel, the window manager may choose to deny the
-request to move the window in the Z-order, gdk_window_raise() only
+If @surface is a toplevel, the surface manager may choose to deny the
+request to move the surface in the Z-order, gdk_surface_raise() only
 requests the restack, does not guarantee it.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_register_dnd">
+<function name="gdk_surface_register_dnd">
 <description>
-Registers a window as a potential drop destination.
+Registers a surface as a potential drop destination.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow.
+<parameter name="surface">
+<parameter_description> a #GdkSurface.
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_resize">
+<function name="gdk_surface_resize">
 <description>
-Resizes @window; for toplevel windows, asks the window manager to resize
-the window. The window manager may not allow the resize. When using GTK+,
+Resizes @surface; for toplevel surfaces, asks the window manager to resize
+the surface. The window manager may not allow the resize. When using GTK+,
 use gtk_window_resize() instead of this low-level GDK function.
 
-Windows may not be resized below 1x1.
+Surfaces may not be resized below 1x1.
 
-If you’re also planning to move the window, use gdk_window_move_resize()
+If you’re also planning to move the surface, use gdk_surface_move_resize()
 to both move and resize simultaneously, for a nicer visual effect.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="width">
-<parameter_description> new width of the window
+<parameter_description> new width of the surface
 </parameter_description>
 </parameter>
 <parameter name="height">
-<parameter_description> new height of the window
+<parameter_description> new height of the surface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_restack">
+<function name="gdk_surface_restack">
 <description>
-Changes the position of  @window in the Z-order (stacking order), so that
+Changes the position of  @surface in the Z-order (stacking order), so that
 it is above @sibling (if @above is %TRUE) or below @sibling (if @above is
 %FALSE).
 
 If @sibling is %NULL, then this either raises (if @above is %TRUE) or
-lowers the window.
+lowers the surface.
 
-If @window is a toplevel, the window manager may choose to deny the
-request to move the window in the Z-order, gdk_window_restack() only
+If @surface is a toplevel, the window manager may choose to deny the
+request to move the surface in the Z-order, gdk_surface_restack() only
 requests the restack, does not guarantee it.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="sibling">
-<parameter_description> a #GdkWindow that is a sibling of @window, or %NULL
+<parameter_description> a #GdkSurface that is a sibling of @surface, or %NULL
 </parameter_description>
 </parameter>
 <parameter name="above">
@@ -17366,110 +17060,61 @@ requests the restack, does not guarantee it.
 <return></return>
 </function>
 
-<function name="gdk_window_scroll">
-<description>
-Scroll the contents of @window, both pixels and children, by the
-given amount. @window itself does not move. Portions of the window
-that the scroll operation brings in from offscreen areas are
-invalidated. The invalidated region may be bigger than what would
-strictly be necessary.
-
-For X11, a minimum area will be invalidated if the window has no
-subwindows, or if the edges of the window’s parent do not extend
-beyond the edges of the window. In other cases, a multi-step process
-is used to scroll the window which may produce temporary visual
-artifacts and unnecessary invalidations.
-
-</description>
-<parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
-</parameter_description>
-</parameter>
-<parameter name="dx">
-<parameter_description> Amount to scroll in the X direction
-</parameter_description>
-</parameter>
-<parameter name="dy">
-<parameter_description> Amount to scroll in the Y direction
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="gdk_window_set_accept_focus">
+<function name="gdk_surface_set_accept_focus">
 <description>
 Setting @accept_focus to %FALSE hints the desktop environment that the
-window doesn’t want to receive input focus.
+surface doesn’t want to receive input focus.
 
 On X, it is the responsibility of the window manager to interpret this
 hint. ICCCM-compliant window manager usually respect it.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="accept_focus">
-<parameter_description> %TRUE if the window should receive input focus
+<parameter_description> %TRUE if the surface should receive input focus
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_child_input_shapes">
+<function name="gdk_surface_set_child_input_shapes">
 <description>
-Sets the input shape mask of @window to the union of input shape masks
-for all children of @window, ignoring the input shape mask of @window
-itself. Contrast with gdk_window_merge_child_input_shapes() which includes
-the input shape mask of @window in the masks to be merged.
+Sets the input shape mask of @surface to the union of input shape masks
+for all children of @surface, ignoring the input shape mask of @surface
+itself. Contrast with gdk_surface_merge_child_input_shapes() which includes
+the input shape mask of @surface in the masks to be merged.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="gdk_window_set_child_shapes">
-<description>
-Sets the shape mask of @window to the union of shape masks
-for all children of @window, ignoring the shape mask of @window
-itself. Contrast with gdk_window_merge_child_shapes() which includes
-the shape mask of @window in the masks to be merged.
-
-</description>
-<parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_cursor">
+<function name="gdk_surface_set_cursor">
 <description>
-Sets the default mouse pointer for a #GdkWindow.
+Sets the default mouse pointer for a #GdkSurface.
 
-Note that @cursor must be for the same display as @window.
+Note that @cursor must be for the same display as @surface.
 
 Use gdk_cursor_new_for_display() or gdk_cursor_new_from_texture() to
 create the cursor. To make the cursor invisible, use %GDK_BLANK_CURSOR.
-Passing %NULL for the @cursor argument to gdk_window_set_cursor() means
-that @window will use the cursor of its parent window. Most windows
+Passing %NULL for the @cursor argument to gdk_surface_set_cursor() means
+that @surface will use the cursor of its parent surface. Most surfaces
 should use this default.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="cursor">
@@ -17480,11 +17125,11 @@ should use this default.
 <return></return>
 </function>
 
-<function name="gdk_window_set_decorations">
+<function name="gdk_surface_set_decorations">
 <description>
-“Decorations” are the features the window manager adds to a toplevel #GdkWindow.
+“Decorations” are the features the window manager adds to a toplevel #GdkSurface.
 This function sets the traditional Motif window manager hints that tell the
-window manager which decorations you would like your window to have.
+window manager which decorations you would like your surface to have.
 Usually you should use gtk_window_set_decorated() on a #GtkWindow instead of
 using the GDK function directly.
 
@@ -17500,8 +17145,8 @@ but very few honor all possible combinations of bits.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="decorations">
@@ -17512,19 +17157,19 @@ but very few honor all possible combinations of bits.
 <return></return>
 </function>
 
-<function name="gdk_window_set_device_cursor">
+<function name="gdk_surface_set_device_cursor">
 <description>
-Sets a specific #GdkCursor for a given device when it gets inside @window.
+Sets a specific #GdkCursor for a given device when it gets inside @surface.
 Use gdk_cursor_new_for_display() or gdk_cursor_new_from_texture() to create
 the cursor. To make the cursor invisible, use %GDK_BLANK_CURSOR. Passing
-%NULL for the @cursor argument to gdk_window_set_cursor() means that
-@window will use the cursor of its parent window. Most windows should
+%NULL for the @cursor argument to gdk_surface_set_cursor() means that
+@surface will use the cursor of its parent surface. Most surfaces should
 use this default.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="device">
@@ -17539,11 +17184,11 @@ use this default.
 <return></return>
 </function>
 
-<function name="gdk_window_set_device_events">
+<function name="gdk_surface_set_device_events">
 <description>
 Sets the event mask for a given device (Normally a floating device, not
-attached to any visible pointer) to @window. For example, an event mask
-including #GDK_BUTTON_PRESS_MASK means the window should report button
+attached to any visible pointer) to @surface. For example, an event mask
+including #GDK_BUTTON_PRESS_MASK means the surface should report button
 press events. The event mask is the bitwise OR of values from the
 #GdkEventMask enumeration.
 
@@ -17551,8 +17196,8 @@ See the [input handling overview][event-masks] for details.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="device">
@@ -17560,18 +17205,18 @@ See the [input handling overview][event-masks] for details.
 </parameter_description>
 </parameter>
 <parameter name="event_mask">
-<parameter_description> event mask for @window
+<parameter_description> event mask for @surface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_events">
+<function name="gdk_surface_set_events">
 <description>
-The event mask for a window determines which events will be reported
-for that window from all master input devices. For example, an event mask
-including #GDK_BUTTON_PRESS_MASK means the window should report button
+The event mask for a surface determines which events will be reported
+for that surface from all master input devices. For example, an event mask
+including #GDK_BUTTON_PRESS_MASK means the surface should report button
 press events. The event mask is the bitwise OR of values from the
 #GdkEventMask enumeration.
 
@@ -17579,23 +17224,23 @@ See the [input handling overview][event-masks] for details.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="event_mask">
-<parameter_description> event mask for @window
+<parameter_description> event mask for @surface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_focus_on_map">
+<function name="gdk_surface_set_focus_on_map">
 <description>
 Setting @focus_on_map to %FALSE hints the desktop environment that the
-window doesn’t want to receive input focus when it is mapped.
-focus_on_map should be turned off for windows that aren’t triggered
+surface doesn’t want to receive input focus when it is mapped.
+focus_on_map should be turned off for surfaces that aren’t triggered
 interactively (such as popups from network activity).
 
 On X, it is the responsibility of the window manager to interpret
@@ -17604,42 +17249,42 @@ manager extension specification should respect it.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="focus_on_map">
-<parameter_description> %TRUE if the window should receive input focus when mapped
+<parameter_description> %TRUE if the surface should receive input focus when mapped
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_fullscreen_mode">
+<function name="gdk_surface_set_fullscreen_mode">
 <description>
-Specifies whether the @window should span over all monitors (in a multi-head
+Specifies whether the @surface should span over all monitors (in a multi-head
 setup) or only the current monitor when in fullscreen mode.
 
 The @mode argument is from the #GdkFullscreenMode enumeration.
-If #GDK_FULLSCREEN_ON_ALL_MONITORS is specified, the fullscreen @window will
+If #GDK_FULLSCREEN_ON_ALL_MONITORS is specified, the fullscreen @surface will
 span over all monitors of the display.
 
 On X11, searches through the list of monitors display the ones
 which delimit the 4 edges of the entire display and will ask the window
-manager to span the @window over these monitors.
+manager to span the @surface over these monitors.
 
 If the XINERAMA extension is not available or not usable, this function
 has no effect.
 
 Not all window managers support this, so you can’t rely on the fullscreen
-window to span over the multiple monitors when #GDK_FULLSCREEN_ON_ALL_MONITORS
+surface to span over the multiple monitors when #GDK_FULLSCREEN_ON_ALL_MONITORS
 is specified.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="mode">
@@ -17650,7 +17295,7 @@ is specified.
 <return></return>
 </function>
 
-<function name="gdk_window_set_functions">
+<function name="gdk_surface_set_functions">
 <description>
 Sets hints about the window management functions to make available
 via buttons on the window frame.
@@ -17669,46 +17314,46 @@ enable.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="functions">
-<parameter_description> bitmask of operations to allow on @window
+<parameter_description> bitmask of operations to allow on @surface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_geometry_hints">
+<function name="gdk_surface_set_geometry_hints">
 <description>
-Sets the geometry hints for @window. Hints flagged in @geom_mask
+Sets the geometry hints for @surface. Hints flagged in @geom_mask
 are set, hints not flagged in @geom_mask are unset.
 To unset all hints, use a @geom_mask of 0 and a @geometry of %NULL.
 
-This function provides hints to the windowing system about
-acceptable sizes for a toplevel window. The purpose of
+This function provides hints to the surfaceing system about
+acceptable sizes for a toplevel surface. The purpose of
 this is to constrain user resizing, but the windowing system
 will typically  (but is not required to) also constrain the
-current size of the window to the provided values and
-constrain programatic resizing via gdk_window_resize() or
-gdk_window_move_resize().
+current size of the surface to the provided values and
+constrain programatic resizing via gdk_surface_resize() or
+gdk_surface_move_resize().
 
-Note that on X11, this effect has no effect on windows
-of type %GDK_WINDOW_TEMP since these windows are not resizable
+Note that on X11, this effect has no effect on surfaces
+of type %GDK_SURFACE_TEMP since these surfaces are not resizable
 by the user.
 
 Since you can’t count on the windowing system doing the
 constraints for programmatic resizes, you should generally
-call gdk_window_constrain_size() yourself to determine
+call gdk_surface_constrain_size() yourself to determine
 appropriate sizes.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="geometry">
@@ -17723,49 +17368,49 @@ appropriate sizes.
 <return></return>
 </function>
 
-<function name="gdk_window_set_group">
+<function name="gdk_surface_set_group">
 <description>
-Sets the group leader window for @window. By default,
-GDK sets the group leader for all toplevel windows
-to a global window implicitly created by GDK. With this function
+Sets the group leader surface for @surface. By default,
+GDK sets the group leader for all toplevel surfaces
+to a global surface implicitly created by GDK. With this function
 you can override this default.
 
-The group leader window allows the window manager to distinguish
-all windows that belong to a single application. It may for example
-allow users to minimize/unminimize all windows belonging to an
-application at once. You should only set a non-default group window
+The group leader surface allows the window manager to distinguish
+all surfaces that belong to a single application. It may for example
+allow users to minimize/unminimize all surfaces belonging to an
+application at once. You should only set a non-default group surface
 if your application pretends to be multiple applications.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="leader">
-<parameter_description> group leader window, or %NULL to restore the default group leader window
+<parameter_description> group leader surface, or %NULL to restore the default group leader surface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_icon_list">
+<function name="gdk_surface_set_icon_list">
 <description>
-Sets a list of icons for the window. One of these will be used
-to represent the window when it has been iconified. The icon is
+Sets a list of icons for the surface. One of these will be used
+to represent the surface when it has been iconified. The icon is
 usually shown in an icon box or some sort of task bar. Which icon
 size is shown depends on the window manager. The window manager
 can scale the icon  but setting several size icons can give better
 image quality since the window manager may only need to scale the
 icon by a small amount or not at all.
 
-Note that some platforms don't support window icons.
+Note that some platforms don't support surface icons.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> The #GdkWindow toplevel window to set the icon of.
+<parameter name="surface">
+<parameter_description> The #GdkSurface toplevel surface to set the icon of.
 </parameter_description>
 </parameter>
 <parameter name="surfaces">
@@ -17777,132 +17422,132 @@ A list of image surfaces, of different sizes.
 <return></return>
 </function>
 
-<function name="gdk_window_set_icon_name">
+<function name="gdk_surface_set_icon_name">
 <description>
-Windows may have a name used while minimized, distinct from the
+Surfaces may have a name used while minimized, distinct from the
 name they display in their titlebar. Most of the time this is a bad
 idea from a user interface standpoint. But you can set such a name
 with this function, if you like.
 
-After calling this with a non-%NULL @name, calls to gdk_window_set_title()
+After calling this with a non-%NULL @name, calls to gdk_surface_set_title()
 will not update the icon title.
 
 Using %NULL for @name unsets the icon title; further calls to
-gdk_window_set_title() will again update the icon title as well.
+gdk_surface_set_title() will again update the icon title as well.
 
-Note that some platforms don't support window icons.
+Note that some platforms don't support surface icons.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="name">
-<parameter_description> name of window while iconified (minimized)
+<parameter_description> name of surface while iconified (minimized)
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_keep_above">
+<function name="gdk_surface_set_keep_above">
 <description>
-Set if @window must be kept above other windows. If the
-window was already above, then this function does nothing.
+Set if @surface must be kept above other surfaces. If the
+surface was already above, then this function does nothing.
 
-On X11, asks the window manager to keep @window above, if the window
+On X11, asks the window manager to keep @surface above, if the window
 manager supports this operation. Not all window managers support
 this, and some deliberately ignore it or don’t have a concept of
-“keep above”; so you can’t rely on the window being kept above.
+“keep above”; so you can’t rely on the surface being kept above.
 But it will happen with most standard window managers,
 and GDK makes a best effort to get it to happen.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="setting">
-<parameter_description> whether to keep @window above other windows
+<parameter_description> whether to keep @surface above other surfaces
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_keep_below">
+<function name="gdk_surface_set_keep_below">
 <description>
-Set if @window must be kept below other windows. If the
-window was already below, then this function does nothing.
+Set if @surface must be kept below other surfaces. If the
+surface was already below, then this function does nothing.
 
-On X11, asks the window manager to keep @window below, if the window
+On X11, asks the window manager to keep @surface below, if the window
 manager supports this operation. Not all window managers support
 this, and some deliberately ignore it or don’t have a concept of
-“keep below”; so you can’t rely on the window being kept below.
+“keep below”; so you can’t rely on the surface being kept below.
 But it will happen with most standard window managers,
 and GDK makes a best effort to get it to happen.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="setting">
-<parameter_description> whether to keep @window below other windows
+<parameter_description> whether to keep @surface below other surfaces
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_modal_hint">
+<function name="gdk_surface_set_modal_hint">
 <description>
 The application can use this hint to tell the window manager
-that a certain window has modal behaviour. The window manager
-can use this information to handle modal windows in a special
+that a certain surface has modal behaviour. The window manager
+can use this information to handle modal surfaces in a special
 way.
 
-You should only use this on windows for which you have
-previously called gdk_window_set_transient_for()
+You should only use this on surfaces for which you have
+previously called gdk_surface_set_transient_for()
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> A toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> A toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="modal">
-<parameter_description> %TRUE if the window is modal, %FALSE otherwise.
+<parameter_description> %TRUE if the surface is modal, %FALSE otherwise.
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_opacity">
+<function name="gdk_surface_set_opacity">
 <description>
-Set @window to render as partially transparent,
+Set @surface to render as partially transparent,
 with opacity 0 being fully transparent and 1 fully opaque. (Values
 of the opacity parameter are clamped to the [0,1] range.) 
 
-For toplevel windows this depends on support from the windowing system
+For toplevel surfaces this depends on support from the windowing system
 that may not always be there. For instance, On X11, this works only on
 X screens with a compositing manager running. On Wayland, there is no
-per-window opacity value that the compositor would apply. Instead, use
-`gdk_window_set_opaque_region (window, NULL)` to tell the compositor
-that the entire window is (potentially) non-opaque, and draw your content
+per-surface opacity value that the compositor would apply. Instead, use
+`gdk_surface_set_opaque_region (surface, NULL)` to tell the compositor
+that the entire surface is (potentially) non-opaque, and draw your content
 with alpha, or use gtk_widget_set_opacity() to set an overall opacity
 for your widgets.
 
-Support for non-toplevel windows was added in 3.8.
+Support for non-toplevel surfaces was added in 3.8.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a top-level or non-native #GdkWindow
+<parameter name="surface">
+<parameter_description> a top-level or non-native #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="opacity">
@@ -17913,26 +17558,26 @@ Support for non-toplevel windows was added in 3.8.
 <return></return>
 </function>
 
-<function name="gdk_window_set_opaque_region">
+<function name="gdk_surface_set_opaque_region">
 <description>
 For optimisation purposes, compositing window managers may
-like to not draw obscured regions of windows, or turn off blending
+like to not draw obscured regions of surfaces, or turn off blending
 during for these regions. With RGB windows with no transparency,
 this is just the shape of the window, but with ARGB32 windows, the
 compositor does not know what regions of the window are transparent
 or not.
 
-This function only works for toplevel windows.
+This function only works for toplevel surfaces.
 
 GTK+ will update this property automatically if
-the @window background is opaque, as we know where the opaque regions
-are. If your window background is not opaque, please update this
+the @surface background is opaque, as we know where the opaque regions
+are. If your surface background is not opaque, please update this
 property in your #GtkWidget::style-updated handler.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a top-level or non-native #GdkWindow
+<parameter name="surface">
+<parameter_description> a top-level or non-native #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="region">
@@ -17943,31 +17588,31 @@ property in your #GtkWidget::style-updated handler.
 <return></return>
 </function>
 
-<function name="gdk_window_set_pass_through">
+<function name="gdk_surface_set_pass_through">
 <description>
-Sets whether input to the window is passed through to the window
+Sets whether input to the surface is passed through to the surface
 below.
 
 The default value of this is %FALSE, which means that pointer
-events that happen inside the window are send first to the window,
+events that happen inside the surface are send first to the surface,
 but if the event is not selected by the event mask then the event
-is sent to the parent window, and so on up the hierarchy.
+is sent to the parent surface, and so on up the hierarchy.
 
 If @pass_through is %TRUE then such pointer events happen as if the
-window wasn't there at all, and thus will be sent first to any
-windows below @window. This is useful if the window is used in a
+surface wasn't there at all, and thus will be sent first to any
+surfaces below @surface. This is useful if the surface is used in a
 transparent fashion. In the terminology of the web this would be called
 &quot;pointer-events: none&quot;.
 
-Note that a window with @pass_through %TRUE can still have a subwindow
-without pass through, so you can get events on a subset of a window. And in
+Note that a surface with @pass_through %TRUE can still have a subsurface
+without pass through, so you can get events on a subset of a surface. And in
 that cases you would get the in-between related events such as the pointer
-enter/leave events on its way to the destination window.
+enter/leave events on its way to the destination surface.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="pass_through">
@@ -17978,26 +17623,26 @@ enter/leave events on its way to the destination window.
 <return></return>
 </function>
 
-<function name="gdk_window_set_role">
+<function name="gdk_surface_set_role">
 <description>
 When using GTK+, typically you should use gtk_window_set_role() instead
 of this low-level function.
 
-The window manager and session manager use a window’s role to
-distinguish it from other kinds of window in the same application.
+The window manager and session manager use a surface’s role to
+distinguish it from other kinds of surface in the same application.
 When an application is restarted after being saved in a previous
-session, all windows with the same title and role are treated as
-interchangeable.  So if you have two windows with the same title
+session, all surfaces with the same title and role are treated as
+interchangeable.  So if you have two surfaces with the same title
 that should be distinguished for session management purposes, you
-should set the role on those windows. It doesn’t matter what string
+should set the role on those surfaces. It doesn’t matter what string
 you use for the role, as long as you have a different role for each
-non-interchangeable kind of window.
+non-interchangeable kind of surface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="role">
@@ -18008,7 +17653,7 @@ non-interchangeable kind of window.
 <return></return>
 </function>
 
-<function name="gdk_window_set_shadow_width">
+<function name="gdk_surface_set_shadow_width">
 <description>
 Newer GTK+ windows using client-side decorations use extra geometry
 around their frames for effects like shadows and invisible borders.
@@ -18018,12 +17663,12 @@ don’t feel like windows are snapping against random invisible edges.
 
 Note that this property is automatically updated by GTK+, so this
 function should only be used by applications which do not use GTK+
-to create toplevel windows.
+to create toplevel surfaces.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="left">
@@ -18046,21 +17691,21 @@ to create toplevel windows.
 <return></return>
 </function>
 
-<function name="gdk_window_set_skip_pager_hint">
+<function name="gdk_surface_set_skip_pager_hint">
 <description>
-Toggles whether a window should appear in a pager (workspace
+Toggles whether a surface should appear in a pager (workspace
 switcher, or other desktop utility program that displays a small
-thumbnail representation of the windows on the desktop). If a
-window’s semantic type as specified with gdk_window_set_type_hint()
-already fully describes the window, this function should
+thumbnail representation of the surfaces on the desktop). If a
+surface’s semantic type as specified with gdk_surface_set_type_hint()
+already fully describes the surface, this function should
 not be called in addition, instead you should
-allow the window to be treated according to standard policy for
+allow the surface to be treated according to standard policy for
 its semantic type.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="skips_pager">
@@ -18071,19 +17716,19 @@ its semantic type.
 <return></return>
 </function>
 
-<function name="gdk_window_set_skip_taskbar_hint">
+<function name="gdk_surface_set_skip_taskbar_hint">
 <description>
-Toggles whether a window should appear in a task list or window
-list. If a window’s semantic type as specified with
-gdk_window_set_type_hint() already fully describes the window, this
+Toggles whether a surface should appear in a task list or surface
+list. If a surface’s semantic type as specified with
+gdk_surface_set_type_hint() already fully describes the surface, this
 function should not be called in addition,
-instead you should allow the window to be treated according to
+instead you should allow the surface to be treated according to
 standard policy for its semantic type.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="skips_taskbar">
@@ -18094,15 +17739,15 @@ standard policy for its semantic type.
 <return></return>
 </function>
 
-<function name="gdk_window_set_startup_id">
+<function name="gdk_surface_set_startup_id">
 <description>
 When using GTK+, typically you should use gtk_window_set_startup_id()
 instead of this low-level function.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="startup_id">
@@ -18113,130 +17758,130 @@ instead of this low-level function.
 <return></return>
 </function>
 
-<function name="gdk_window_set_support_multidevice">
+<function name="gdk_surface_set_support_multidevice">
 <description>
-This function will enable multidevice features in @window.
+This function will enable multidevice features in @surface.
 
-Multidevice aware windows will need to handle properly multiple,
+Multidevice aware surfaces will need to handle properly multiple,
 per device enter/leave events, device grabs and grab ownerships.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow.
+<parameter name="surface">
+<parameter_description> a #GdkSurface.
 </parameter_description>
 </parameter>
 <parameter name="support_multidevice">
-<parameter_description> %TRUE to enable multidevice support in @window.
+<parameter_description> %TRUE to enable multidevice support in @surface.
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_title">
+<function name="gdk_surface_set_title">
 <description>
-Sets the title of a toplevel window, to be displayed in the titlebar.
-If you haven’t explicitly set the icon name for the window
-(using gdk_window_set_icon_name()), the icon name will be set to
+Sets the title of a toplevel surface, to be displayed in the titlebar.
+If you haven’t explicitly set the icon name for the surface
+(using gdk_surface_set_icon_name()), the icon name will be set to
 @title as well. @title must be in UTF-8 encoding (as with all
 user-readable strings in GDK/GTK+). @title may not be %NULL.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="title">
-<parameter_description> title of @window
+<parameter_description> title of @surface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_transient_for">
+<function name="gdk_surface_set_transient_for">
 <description>
-Indicates to the window manager that @window is a transient dialog
-associated with the application window @parent. This allows the
-window manager to do things like center @window on @parent and
-keep @window above @parent.
+Indicates to the window manager that @surface is a transient dialog
+associated with the application surface @parent. This allows the
+window manager to do things like center @surface on @parent and
+keep @surface above @parent.
 
 See gtk_window_set_transient_for() if you’re using #GtkWindow or
 #GtkDialog.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="parent">
-<parameter_description> another toplevel #GdkWindow
+<parameter_description> another toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_type_hint">
+<function name="gdk_surface_set_type_hint">
 <description>
-The application can use this call to provide a hint to the window
-manager about the functionality of a window. The window manager
+The application can use this call to provide a hint to the surface
+manager about the functionality of a surface. The window manager
 can use this information when determining the decoration and behaviour
-of the window.
+of the surface.
 
-The hint must be set before the window is mapped.
+The hint must be set before the surface is mapped.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> A toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> A toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="hint">
-<parameter_description> A hint of the function this window will have
+<parameter_description> A hint of the function this surface will have
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_urgency_hint">
+<function name="gdk_surface_set_urgency_hint">
 <description>
-Toggles whether a window needs the user's
+Toggles whether a surface needs the user's
 urgent attention.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="urgent">
-<parameter_description> %TRUE if the window is urgent
+<parameter_description> %TRUE if the surface is urgent
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_set_user_data">
+<function name="gdk_surface_set_user_data">
 <description>
 For most purposes this function is deprecated in favor of
 g_object_set_data(). However, for historical reasons GTK+ stores
-the #GtkWidget that owns a #GdkWindow as user data on the
-#GdkWindow. So, custom widget implementations should use
-this function for that. If GTK+ receives an event for a #GdkWindow,
-and the user data for the window is non-%NULL, GTK+ will assume the
+the #GtkWidget that owns a #GdkSurface as user data on the
+#GdkSurface. So, custom widget implementations should use
+this function for that. If GTK+ receives an event for a #GdkSurface,
+and the user data for the surface is non-%NULL, GTK+ will assume the
 user data is a #GtkWidget, and forward the event to that widget.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="user_data">
@@ -18247,88 +17892,49 @@ user data is a #GtkWidget, and forward the event to that widget.
 <return></return>
 </function>
 
-<function name="gdk_window_shape_combine_region">
-<description>
-Makes pixels in @window outside @shape_region be transparent,
-so that the window may be nonrectangular.
-
-If @shape_region is %NULL, the shape will be unset, so the whole
-window will be opaque again. @offset_x and @offset_y are ignored
-if @shape_region is %NULL.
-
-On the X11 platform, this uses an X server extension which is
-widely available on most common platforms, but not available on
-very old X servers, and occasionally the implementation will be
-buggy. On servers without the shape extension, this function
-will do nothing.
-
-This function works on both toplevel and child windows.
-
-</description>
-<parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
-</parameter_description>
-</parameter>
-<parameter name="shape_region">
-<parameter_description> region of window to be non-transparent
-</parameter_description>
-</parameter>
-<parameter name="offset_x">
-<parameter_description> X position of @shape_region in @window coordinates
-</parameter_description>
-</parameter>
-<parameter name="offset_y">
-<parameter_description> Y position of @shape_region in @window coordinates
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="gdk_window_show">
+<function name="gdk_surface_show">
 <description>
-Like gdk_window_show_unraised(), but also raises the window to the
-top of the window stack (moves the window to the front of the
+Like gdk_surface_show_unraised(), but also raises the surface to the
+top of the surface stack (moves the surface to the front of the
 Z-order).
 
-This function maps a window so it’s visible onscreen. Its opposite
-is gdk_window_hide().
+This function maps a surface so it’s visible onscreen. Its opposite
+is gdk_surface_hide().
 
 When implementing a #GtkWidget, you should call this function on the widget's
-#GdkWindow as part of the “map” method.
+#GdkSurface as part of the “map” method.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_show_unraised">
+<function name="gdk_surface_show_unraised">
 <description>
-Shows a #GdkWindow onscreen, but does not modify its stacking
-order. In contrast, gdk_window_show() will raise the window
-to the top of the window stack.
+Shows a #GdkSurface onscreen, but does not modify its stacking
+order. In contrast, gdk_surface_show() will raise the surface
+to the top of the surface stack.
 
 On the X11 platform, in Xlib terms, this function calls
 XMapWindow() (it also updates some internal GDK state, which means
-that you can’t really use XMapWindow() directly on a GDK window).
+that you can’t really use XMapWindow() directly on a GDK surface).
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_show_window_menu">
+<function name="gdk_surface_show_window_menu">
 <description>
 Asks the windowing system to show the window menu. The window menu
 is the menu shown when right-clicking the titlebar on traditional
@@ -18339,8 +17945,8 @@ on the window decorations.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="event">
@@ -18352,49 +17958,49 @@ on the window decorations.
 </return>
 </function>
 
-<function name="gdk_window_stick">
+<function name="gdk_surface_stick">
 <description>
-“Pins” a window such that it’s on all workspaces and does not scroll
+“Pins” a surface such that it’s on all workspaces and does not scroll
 with viewports, for window managers that have scrollable viewports.
 (When using #GtkWindow, gtk_window_stick() may be more useful.)
 
 On the X11 platform, this function depends on window manager
 support, so may have no effect with many window managers. However,
 GDK will do the best it can to convince the window manager to stick
-the window. For window managers that don’t support this operation,
+the surface. For window managers that don’t support this operation,
 there’s nothing you can do to force it to happen.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_thaw_updates">
+<function name="gdk_surface_thaw_updates">
 <description>
-Thaws a window frozen with gdk_window_freeze_updates().
+Thaws a surface frozen with gdk_surface_freeze_updates().
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_unfullscreen">
+<function name="gdk_surface_unfullscreen">
 <description>
-Moves the window out of fullscreen mode. If the window was not
+Moves the surface out of fullscreen mode. If the surface was not
 fullscreen, does nothing.
 
-On X11, asks the window manager to move @window out of the fullscreen
+On X11, asks the window manager to move @surface out of the fullscreen
 state, if the window manager supports this operation. Not all
 window managers support this, and some deliberately ignore it or
 don’t have a concept of “fullscreen”; so you can’t rely on the
@@ -18404,69 +18010,470 @@ it to happen.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_unmaximize">
+<function name="gdk_surface_unmaximize">
 <description>
-Unmaximizes the window. If the window wasn’t maximized, then this
+Unmaximizes the surface. If the surface wasn’t maximized, then this
 function does nothing.
 
-On X11, asks the window manager to unmaximize @window, if the
+On X11, asks the window manager to unmaximize @surface, if the
 window manager supports this operation. Not all window managers
 support this, and some deliberately ignore it or don’t have a
 concept of “maximized”; so you can’t rely on the unmaximization
 actually happening. But it will happen with most standard window
 managers, and GDK makes a best effort to get it to happen.
 
-On Windows, reliably unmaximizes the window.
+On Windows, reliably unmaximizes the surface.
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_unstick">
+<function name="gdk_surface_unstick">
 <description>
-Reverse operation for gdk_window_stick(); see gdk_window_stick(),
+Reverse operation for gdk_surface_stick(); see gdk_surface_stick(),
 and gtk_window_unstick().
 
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gdk_window_withdraw">
+<function name="gdk_surface_withdraw">
 <description>
-Withdraws a window (unmaps it and asks the window manager to forget about it).
-This function is not really useful as gdk_window_hide() automatically
-withdraws toplevel windows before hiding them.
+Withdraws a surface (unmaps it and asks the surface manager to forget about it).
+This function is not really useful as gdk_surface_hide() automatically
+withdraws toplevel surfaces before hiding them.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a toplevel #GdkWindow
+<parameter name="surface">
+<parameter_description> a toplevel #GdkSurface
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gdk_text_property_to_utf8_list_for_display">
+<description>
+Converts a text property in the given encoding to
+a list of UTF-8 strings.
+
+
+</description>
+<parameters>
+<parameter name="display">
+<parameter_description>  a #GdkDisplay
+</parameter_description>
+</parameter>
+<parameter name="encoding">
+<parameter_description> an atom representing the encoding of the text
+</parameter_description>
+</parameter>
+<parameter name="format">
+<parameter_description>   the format of the property
+</parameter_description>
+</parameter>
+<parameter name="text">
+<parameter_description> the text to convert
+</parameter_description>
+</parameter>
+<parameter name="length">
+<parameter_description>   the length of @text, in bytes
+</parameter_description>
+</parameter>
+<parameter name="list">
+<parameter_description> location to store the list
+of strings or %NULL. The list should be freed with
+g_strfreev().
+</parameter_description>
+</parameter>
+</parameters>
+<return> the number of strings in the resulting list
+</return>
+</function>
+
+<function name="gdk_texture_download">
+<description>
+Downloads the @texture into local memory. This may be
+an expensive operation, as the actual texture data may
+reside on a GPU or on a remote display server.
+
+The data format of the downloaded data is equivalent to
+%CAIRO_FORMAT_ARGB32, so every downloaded pixel requires
+4 bytes of memory.
+
+Downloading a texture into a Cairo image surface:
+|[&lt;!-- language=&quot;C&quot; --&gt;
+surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
+gdk_texture_get_width (texture),
+gdk_texture_get_height (texture));
+gdk_texture_download (texture,
+cairo_image_surface_get_data (surface),
+cairo_image_surface_get_stride (surface));
+cairo_surface_mark_dirty (surface);
+]|
+
+</description>
+<parameters>
+<parameter name="texture">
+<parameter_description> a #GdkTexture
+</parameter_description>
+</parameter>
+<parameter name="data">
+<parameter_description> pointer to enough memory to be filled with the
+downloaded data of @texture
+</parameter_description>
+</parameter>
+<parameter name="stride">
+<parameter_description> rowstride in bytes
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
+<function name="gdk_texture_get_height">
+<description>
+Returns the height of the @texture.
+
+
+</description>
+<parameters>
+<parameter name="texture">
+<parameter_description> a #GdkTexture
+</parameter_description>
+</parameter>
+</parameters>
+<return> the height of the #GdkTexture
+</return>
+</function>
+
+<function name="gdk_texture_get_width">
+<description>
+Returns the width of @texture.
+
+
+</description>
+<parameters>
+<parameter name="texture">
+<parameter_description> a #GdkTexture
+</parameter_description>
+</parameter>
+</parameters>
+<return> the width of the #GdkTexture
+</return>
+</function>
+
+<function name="gdk_texture_new_for_pixbuf">
+<description>
+Creates a new texture object representing the GdkPixbuf.
+
+
+</description>
+<parameters>
+<parameter name="pixbuf">
+<parameter_description> a #GdkPixbuf
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdkTexture
+</return>
+</function>
+
+<function name="gdk_texture_new_for_surface">
+<description>
+Creates a new texture object representing the surface.
+@surface must be an image surface with format CAIRO_FORMAT_ARGB32.
+
+
+</description>
+<parameters>
+<parameter name="surface">
+<parameter_description> a cairo image surface
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdkTexture
+</return>
+</function>
+
+<function name="gdk_texture_new_from_file">
+<description>
+Creates a new texture by loading an image from a file.  The file format is
+detected automatically. If %NULL is returned, then @error will be set.
+
+
+</description>
+<parameters>
+<parameter name="file">
+<parameter_description> #GFile to load
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> Return location for an error
+</parameter_description>
+</parameter>
+</parameters>
+<return> A newly-created #GdkTexture or %NULL if an error occured.
+</return>
+</function>
+
+<function name="gdk_texture_new_from_resource">
+<description>
+Creates a new texture by loading an image from a resource.
+The file format is detected automatically.
+
+It is a fatal error if @resource_path does not specify a valid
+image resource and the program will abort if that happens.
+If you are unsure about the validity of a resource, use
+gdk_texture_new_from_file() to load it.
+
+
+</description>
+<parameters>
+<parameter name="resource_path">
+<parameter_description> the path of the resource file
+</parameter_description>
+</parameter>
+</parameters>
+<return> A newly-created texture
+</return>
+</function>
+
+<function name="gdk_unicode_to_keyval">
+<description>
+Convert from a ISO10646 character to a key symbol.
+
+
+</description>
+<parameters>
+<parameter name="wc">
+<parameter_description> a ISO10646 encoded character
+</parameter_description>
+</parameter>
+</parameters>
+<return> the corresponding GDK key symbol, if one exists.
+or, if there is no corresponding symbol, 
+wc | 0x01000000
+</return>
+</function>
+
+<function name="gdk_utf8_to_string_target">
+<description>
+Converts an UTF-8 string into the best possible representation
+as a STRING. The representation of characters not in STRING
+is not specified; it may be as pseudo-escape sequences
+\x{ABCD}, or it may be in some other form of approximation.
+
+
+</description>
+<parameters>
+<parameter name="str">
+<parameter_description> a UTF-8 string
+</parameter_description>
+</parameter>
+</parameters>
+<return> the newly-allocated string, or %NULL if the
+conversion failed. (It should not fail for any properly
+formed UTF-8 string unless system limits like memory or
+file descriptors are exceeded.)
+</return>
+</function>
+
+<function name="gdk_vulkan_context_get_device">
+<description>
+Gets the Vulkan device that this context is using.
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GdkVulkanContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> the VkDevice
+</return>
+</function>
+
+<function name="gdk_vulkan_context_get_draw_index">
+<description>
+Gets the index of the image that is currently being drawn.
+
+This function can only be used between gdk_surface_begin_draw_frame() and
+gdk_surface_end_draw_frame() calls for the toplevel surface that the
+@context is associated with.
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GdkVulkanContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> the index of the images that is being drawn
+</return>
+</function>
+
+<function name="gdk_vulkan_context_get_draw_semaphore">
+<description>
+Gets the Vulkan semaphore that protects access to the image that is
+currently being drawn.
+
+This function can only be used between gdk_surface_begin_draw_frame() and
+gdk_surface_end_draw_frame() calls for the toplevel surface that the
+@context is associated with.
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GdkVulkanContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> the VkSemaphore
+</return>
+</function>
+
+<function name="gdk_vulkan_context_get_image">
+<description>
+Gets the image with index @id that this context is using.
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GdkVulkanContext
+</parameter_description>
+</parameter>
+<parameter name="id">
+<parameter_description> the index of the image to return
+</parameter_description>
+</parameter>
+</parameters>
+<return> the VkImage
+</return>
+</function>
+
+<function name="gdk_vulkan_context_get_image_format">
+<description>
+Gets the image format that this context is using.
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GdkVulkanContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> the VkFormat
+</return>
+</function>
+
+<function name="gdk_vulkan_context_get_instance">
+<description>
+Gets the Vulkan instance that is associated with @context.
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GdkVulkanContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> the VkInstance
+</return>
+</function>
+
+<function name="gdk_vulkan_context_get_n_images">
+<description>
+Gets the number of images that this context is using in its swap chain.
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GdkVulkanContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> the number of images
+</return>
+</function>
+
+<function name="gdk_vulkan_context_get_physical_device">
+<description>
+Gets the Vulkan physical device that this context is using.
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GdkVulkanContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> the VkPhysicalDevice
+</return>
+</function>
+
+<function name="gdk_vulkan_context_get_queue">
+<description>
+Gets the Vulkan queue that this context is using.
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GdkVulkanContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> the VkQueue
+</return>
+</function>
+
+<function name="gdk_vulkan_context_get_queue_family_index">
+<description>
+Gets the family index for the queue that this context is using.
+See vkGetPhysicalDeviceQueueFamilyProperties().
+
+
+</description>
+<parameters>
+<parameter name="context">
+<parameter_description> a #GdkVulkanContext
+</parameter_description>
+</parameter>
+</parameters>
+<return> the index
+</return>
+</function>
+
 </root>
diff --git a/gdk/src/gdk_docs_override.xml b/gdk/src/gdk_docs_override.xml
index 1cf65d6..82d4b31 100644
--- a/gdk/src/gdk_docs_override.xml
+++ b/gdk/src/gdk_docs_override.xml
@@ -11,10 +11,10 @@
 <substitute_type_name from="GdkFrameClockPhase" to="Gdk::FrameClock::Phase" />
 <substitute_type_name from="GdkPixbufRotation" to="Gdk::Pixbuf::Rotation" />
 <substitute_type_name from="GdkSeatCapabilities" to="Gdk::Seat::Capabilities" />
-<substitute_type_name from="GdkWindowType" to="Gdk::Window::Type" />
-<substitute_type_name from="GdkWindowState" to="Gdk::Window::State" />
-<substitute_type_name from="GdkWindowHints" to="Gdk::Window::Hints" />
-<substitute_type_name from="GdkWindowTypeHint" to="Gdk::Window::TypeHint" />
+<substitute_type_name from="GdkSurfaceType" to="Gdk::Surface::Type" />
+<substitute_type_name from="GdkSurfaceState" to="Gdk::Surface::State" />
+<substitute_type_name from="GdkSurfaceHints" to="Gdk::Surface::Hints" />
+<substitute_type_name from="GdkSurfaceTypeHint" to="Gdk::Surface::TypeHint" />
 <substitute_type_name from="GdkVisualType" to="Gdk::Visual::Type" />
 
 <substitute_enumerator_name from_prefix="CAIRO_FORMAT_" to_prefix="Cairo::Surface::Format::" />
@@ -22,10 +22,10 @@
 <substitute_enumerator_name from_prefix="GDK_DEVICE_TYPE_" to_prefix="Gdk::Device::Type::" />
 <substitute_enumerator_name from_prefix="GDK_DEVICE_TOOL_TYPE_" to_prefix="Gdk::DeviceTool::Type::" />
 <substitute_enumerator_name from_prefix="GDK_ACTION_" to_prefix="Gdk::DragAction::" />
-<substitute_enumerator_name from_prefix="GDK_WINDOW_" to_prefix="Gdk::Window::Type::" />
-<substitute_enumerator_name from_prefix="GDK_WINDOW_STATE_" to_prefix="Gdk::Window::State::" />
-<substitute_enumerator_name from_prefix="GDK_WINDOW_TYPE_HINT_" to_prefix="Gdk::Window::TypeHint::" />
-<substitute_enumerator_name from_prefix="GDK_WINDOW_EDGE_" to_prefix="Gdk::WindowEdge::" />
+<substitute_enumerator_name from_prefix="GDK_SURFACE_" to_prefix="Gdk::Surface::Type::" />
+<substitute_enumerator_name from_prefix="GDK_SURFACE_STATE_" to_prefix="Gdk::Surface::State::" />
+<substitute_enumerator_name from_prefix="GDK_SURFACE_TYPE_HINT_" to_prefix="Gdk::Surface::TypeHint::" />
+<substitute_enumerator_name from_prefix="GDK_SURFACE_EDGE_" to_prefix="Gdk::SurfaceEdge::" />
 <substitute_enumerator_name from_prefix="GDK_PIXBUF_ALPHA_" to_prefix="Gdk::PixbufAlphaMode::" />
 <substitute_enumerator_name from_prefix="G_IO_ERROR_" to_prefix="Gio::Error::" />
 <substitute_enumerator_name from_prefix="GDK_INTERP_" to_prefix="Gdk::InterpType::" />
@@ -45,6 +45,7 @@
 <substitute_enumerator_name from_prefix="GDK_SOURCE_" to_prefix="Gdk::InputSource::" />
 <substitute_enumerator_name from_prefix="GDK_SUBPIXEL_LAYOUT_" to_prefix="Gdk::SubpixelLayout::" />
 <substitute_enumerator_name from_prefix="GDK_FRAME_CLOCK_PHASE_" to_prefix="Gdk::FrameClock::Phase::" />
+<substitute_enumerator_name from_prefix="GDK_PAINTABLE_" to_prefix="Gdk::Paintable::Flags::" />
 <!-- Some enums have enumerators without unique prefixes. Handle these enumerators individually. -->
 <substitute_enumerator_name from="GDK_NOTHING" to="Gdk::Event::Type::NOTHING" />
 <substitute_enumerator_name from="GDK_POINTER_MOTION_HINT_MASK" 
to="Gdk::EventMask::POINTER_MOTION_HINT_MASK" />
@@ -56,7 +57,7 @@
 <substitute_enumerator_name from="GDK_DOUBLE_BUTTON_PRESS" to="Gdk::Event::Type::DOUBLE_BUTTON_PRESS" />
 <substitute_enumerator_name from="GDK_TRIPLE_BUTTON_PRESS" to="Gdk::Event::Type::TRIPLE_BUTTON_PRESS" />
 <substitute_enumerator_name from="GDK_BUTTON_PRESS" to="Gdk::Event::Type::BUTTON_PRESS" />
-<substitute_enumerator_name from="GDK_WINDOW_STATE" to="Gdk::Event::Type::WINDOW_STATE" />
+<substitute_enumerator_name from="GDK_SURFACE_STATE" to="Gdk::Event::Type::SURFACE_STATE" />
 <substitute_enumerator_name from="GDK_BUTTON_PRESS_MASK" to="Gdk::EventMask::BUTTON_PRESS_MASK" />
 <substitute_enumerator_name from="GDK_SUPER_MASK" to="Gdk::ModifierType::SUPER_MASK" />
 <substitute_enumerator_name from="GDK_HYPER_MASK" to="Gdk::ModifierType::HYPER_MASK" />
@@ -80,19 +81,6 @@
 </return>
 </function>
 
-
-<function name="gdk_screen_get_toplevel_windows">
-<description>
-Obtains a list of all toplevel windows known to GDK on the screen @screen.
-A toplevel window is a child of the root window (see
-gdk_get_default_root_window()).
-Since: 2.2
-</description>
-<return> list of toplevel windows.
-</return>
-</function>
-
-
 <function name="gdk_screen_list_visuals">
 <description>
 Lists the available visuals for the specified @screen.
@@ -106,7 +94,7 @@ Since: 2.2
 </function>
 
 
-<function name="gdk_window_invalidate_rect">
+<function name="gdk_surface_invalidate_rect">
 <description>
 A convenience wrapper around invalidate_region() which
 invalidates a rectangular region. See invalidate_region() for details.
@@ -115,18 +103,14 @@ invalidate the whole region.
 
 </description>
 <parameters>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 <parameter name="rect">
 <parameter_description> rectangle to invalidate
 </parameter_description>
 </parameter>
-<parameter name="invalidate_children">
-<parameter_description> whether to also invalidate child windows
-</parameter_description>
-</parameter>
 </parameters>
 <return></return>
 </function>
@@ -147,10 +131,6 @@ invalidate the whole region.
     <mapping class="DragContext" />
 </function>
 
-<function name="gdk_drag_find_window_for_screen">
-    <mapping class="DragContext" />
-</function>
-
 <function name="gdk_drag_get_selection">
     <mapping class="DragContext" />
 </function>
@@ -219,14 +199,6 @@ Since: 2.14
 </description>
 </function>
 
-<function name="gdk_window_set_cursor">
-<description>
-Sets the mouse pointer for a #GdkWindow. 
-To make the cursor invisible, use gdk_cursor_new_from_pixmap() to create
-a cursor with no pixels in it.
-</description>
-</function>
-
 <function name="gdk_cairo_create">
 <description>
 Creates a Cairo context for drawing to @drawable.
@@ -239,14 +211,4 @@ Since: 2.10
 </return>
 </function>
 
-<function name="gdk_window_get_update_area">
-<description>
-Transfers ownership of the update area from @window to the caller
-of the function. That is, after calling this function, @window will
-no longer have an invalid/dirty region; the update area is removed
-from @window and handed to you. If a window has no update area,
-get_update_area() returns an invalid Region.
-</description>
-</function>
-
 </root>
diff --git a/gdk/src/gdk_enums.defs b/gdk/src/gdk_enums.defs
index 1694147..56ea7b8 100644
--- a/gdk/src/gdk_enums.defs
+++ b/gdk/src/gdk_enums.defs
@@ -35,7 +35,7 @@
 ;; {
 ;;   GDK_MODE_DISABLED,
 ;;   GDK_MODE_SCREEN,
-;;   GDK_MODE_WINDOW
+;;   GDK_MODE_SURFACE
 ;; } GdkInputMode;
 
 (define-enum-extended InputMode
@@ -44,7 +44,7 @@
   (values
     '("disabled" "GDK_MODE_DISABLED" "0")
     '("screen" "GDK_MODE_SCREEN" "1")
-    '("window" "GDK_MODE_WINDOW" "2")
+    '("surface" "GDK_MODE_SURFACE" "2")
   )
 )
 
@@ -365,6 +365,38 @@
   )
 )
 
+;; From gdkmemorytexture.h
+
+;; Original typedef:
+;; typedef enum {
+;;   GDK_MEMORY_B8G8R8A8_PREMULTIPLIED,
+;;   GDK_MEMORY_A8R8G8B8_PREMULTIPLIED,
+;;   GDK_MEMORY_B8G8R8A8,
+;;   GDK_MEMORY_A8R8G8B8,
+;;   GDK_MEMORY_R8G8B8A8,
+;;   GDK_MEMORY_A8B8G8R8,
+;;   GDK_MEMORY_R8G8B8,
+;;   GDK_MEMORY_B8G8R8,
+;; 
+;;   GDK_MEMORY_N_FORMATS
+;; } GdkMemoryFormat;
+
+(define-enum-extended MemoryFormat
+  (in-module "Gdk")
+  (c-name "GdkMemoryFormat")
+  (values
+    '("b8g8r8a8-premultiplied" "GDK_MEMORY_B8G8R8A8_PREMULTIPLIED" "0")
+    '("a8r8g8b8-premultiplied" "GDK_MEMORY_A8R8G8B8_PREMULTIPLIED" "1")
+    '("b8g8r8a8" "GDK_MEMORY_B8G8R8A8" "2")
+    '("a8r8g8b8" "GDK_MEMORY_A8R8G8B8" "3")
+    '("r8g8b8a8" "GDK_MEMORY_R8G8B8A8" "4")
+    '("a8b8g8r8" "GDK_MEMORY_A8B8G8R8" "5")
+    '("r8g8b8" "GDK_MEMORY_R8G8B8" "6")
+    '("b8g8r8" "GDK_MEMORY_B8G8R8" "7")
+    '("n-formats" "GDK_MEMORY_N_FORMATS" "8")
+  )
+)
+
 ;; From gdkmonitor.h
 
 ;; Original typedef:
@@ -390,6 +422,23 @@
   )
 )
 
+;; From gdkpaintable.h
+
+;; Original typedef:
+;; typedef enum {
+;;   GDK_PAINTABLE_STATIC_SIZE = 1 << 0,
+;;   GDK_PAINTABLE_STATIC_CONTENTS = 1 << 1
+;; } GdkPaintableFlags;
+
+(define-flags-extended PaintableFlags
+  (in-module "Gdk")
+  (c-name "GdkPaintableFlags")
+  (values
+    '("size" "GDK_PAINTABLE_STATIC_SIZE" "1 << 0")
+    '("contents" "GDK_PAINTABLE_STATIC_CONTENTS" "1 << 1")
+  )
+)
+
 ;; From gdkseat.h
 
 ;; Original typedef:
@@ -419,6 +468,262 @@
   )
 )
 
+;; From gdksurface.h
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   GDK_SURFACE_TOPLEVEL,
+;;   GDK_SURFACE_CHILD,
+;;   GDK_SURFACE_TEMP,
+;;   GDK_SURFACE_FOREIGN,
+;;   GDK_SURFACE_SUBSURFACE
+;; } GdkSurfaceType;
+
+(define-enum-extended SurfaceType
+  (in-module "Gdk")
+  (c-name "GdkSurfaceType")
+  (values
+    '("toplevel" "GDK_SURFACE_TOPLEVEL" "0")
+    '("child" "GDK_SURFACE_CHILD" "1")
+    '("temp" "GDK_SURFACE_TEMP" "2")
+    '("foreign" "GDK_SURFACE_FOREIGN" "3")
+    '("subsurface" "GDK_SURFACE_SUBSURFACE" "4")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   GDK_HINT_POS             = 1 << 0,
+;;   GDK_HINT_MIN_SIZE    = 1 << 1,
+;;   GDK_HINT_MAX_SIZE    = 1 << 2,
+;;   GDK_HINT_BASE_SIZE   = 1 << 3,
+;;   GDK_HINT_ASPECT      = 1 << 4,
+;;   GDK_HINT_RESIZE_INC  = 1 << 5,
+;;   GDK_HINT_WIN_GRAVITY = 1 << 6,
+;;   GDK_HINT_USER_POS    = 1 << 7,
+;;   GDK_HINT_USER_SIZE   = 1 << 8
+;; } GdkSurfaceHints;
+
+(define-flags-extended SurfaceHints
+  (in-module "Gdk")
+  (c-name "GdkSurfaceHints")
+  (values
+    '("pos" "GDK_HINT_POS" "1 << 0")
+    '("min-size" "GDK_HINT_MIN_SIZE" "1 << 1")
+    '("max-size" "GDK_HINT_MAX_SIZE" "1 << 2")
+    '("base-size" "GDK_HINT_BASE_SIZE" "1 << 3")
+    '("aspect" "GDK_HINT_ASPECT" "1 << 4")
+    '("resize-inc" "GDK_HINT_RESIZE_INC" "1 << 5")
+    '("win-gravity" "GDK_HINT_WIN_GRAVITY" "1 << 6")
+    '("user-pos" "GDK_HINT_USER_POS" "1 << 7")
+    '("user-size" "GDK_HINT_USER_SIZE" "1 << 8")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   GDK_DECOR_ALL             = 1 << 0,
+;;   GDK_DECOR_BORDER  = 1 << 1,
+;;   GDK_DECOR_RESIZEH = 1 << 2,
+;;   GDK_DECOR_TITLE   = 1 << 3,
+;;   GDK_DECOR_MENU    = 1 << 4,
+;;   GDK_DECOR_MINIMIZE        = 1 << 5,
+;;   GDK_DECOR_MAXIMIZE        = 1 << 6
+;; } GdkWMDecoration;
+
+(define-flags-extended WMDecoration
+  (in-module "Gdk")
+  (c-name "GdkWMDecoration")
+  (values
+    '("all" "GDK_DECOR_ALL" "1 << 0")
+    '("border" "GDK_DECOR_BORDER" "1 << 1")
+    '("resizeh" "GDK_DECOR_RESIZEH" "1 << 2")
+    '("title" "GDK_DECOR_TITLE" "1 << 3")
+    '("menu" "GDK_DECOR_MENU" "1 << 4")
+    '("minimize" "GDK_DECOR_MINIMIZE" "1 << 5")
+    '("maximize" "GDK_DECOR_MAXIMIZE" "1 << 6")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   GDK_FUNC_ALL              = 1 << 0,
+;;   GDK_FUNC_RESIZE   = 1 << 1,
+;;   GDK_FUNC_MOVE             = 1 << 2,
+;;   GDK_FUNC_MINIMIZE = 1 << 3,
+;;   GDK_FUNC_MAXIMIZE = 1 << 4,
+;;   GDK_FUNC_CLOSE    = 1 << 5
+;; } GdkWMFunction;
+
+(define-flags-extended WMFunction
+  (in-module "Gdk")
+  (c-name "GdkWMFunction")
+  (values
+    '("all" "GDK_FUNC_ALL" "1 << 0")
+    '("resize" "GDK_FUNC_RESIZE" "1 << 1")
+    '("move" "GDK_FUNC_MOVE" "1 << 2")
+    '("minimize" "GDK_FUNC_MINIMIZE" "1 << 3")
+    '("maximize" "GDK_FUNC_MAXIMIZE" "1 << 4")
+    '("close" "GDK_FUNC_CLOSE" "1 << 5")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   GDK_GRAVITY_NORTH_WEST = 1,
+;;   GDK_GRAVITY_NORTH,
+;;   GDK_GRAVITY_NORTH_EAST,
+;;   GDK_GRAVITY_WEST,
+;;   GDK_GRAVITY_CENTER,
+;;   GDK_GRAVITY_EAST,
+;;   GDK_GRAVITY_SOUTH_WEST,
+;;   GDK_GRAVITY_SOUTH,
+;;   GDK_GRAVITY_SOUTH_EAST,
+;;   GDK_GRAVITY_STATIC
+;; } GdkGravity;
+
+(define-enum-extended Gravity
+  (in-module "Gdk")
+  (c-name "GdkGravity")
+  (values
+    '("north-west" "GDK_GRAVITY_NORTH_WEST" "1")
+    '("north" "GDK_GRAVITY_NORTH" "2")
+    '("north-east" "GDK_GRAVITY_NORTH_EAST" "3")
+    '("west" "GDK_GRAVITY_WEST" "4")
+    '("center" "GDK_GRAVITY_CENTER" "5")
+    '("east" "GDK_GRAVITY_EAST" "6")
+    '("south-west" "GDK_GRAVITY_SOUTH_WEST" "7")
+    '("south" "GDK_GRAVITY_SOUTH" "8")
+    '("south-east" "GDK_GRAVITY_SOUTH_EAST" "9")
+    '("static" "GDK_GRAVITY_STATIC" "10")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   GDK_ANCHOR_FLIP_X   = 1 << 0,
+;;   GDK_ANCHOR_FLIP_Y   = 1 << 1,
+;;   GDK_ANCHOR_SLIDE_X  = 1 << 2,
+;;   GDK_ANCHOR_SLIDE_Y  = 1 << 3,
+;;   GDK_ANCHOR_RESIZE_X = 1 << 4,
+;;   GDK_ANCHOR_RESIZE_Y = 1 << 5,
+;;   GDK_ANCHOR_FLIP     = GDK_ANCHOR_FLIP_X | GDK_ANCHOR_FLIP_Y,
+;;   GDK_ANCHOR_SLIDE    = GDK_ANCHOR_SLIDE_X | GDK_ANCHOR_SLIDE_Y,
+;;   GDK_ANCHOR_RESIZE   = GDK_ANCHOR_RESIZE_X | GDK_ANCHOR_RESIZE_Y
+;; } GdkAnchorHints;
+
+(define-flags-extended AnchorHints
+  (in-module "Gdk")
+  (c-name "GdkAnchorHints")
+  (values
+    '("flip-x" "GDK_ANCHOR_FLIP_X" "1 << 0")
+    '("flip-y" "GDK_ANCHOR_FLIP_Y" "1 << 1")
+    '("slide-x" "GDK_ANCHOR_SLIDE_X" "1 << 2")
+    '("slide-y" "GDK_ANCHOR_SLIDE_Y" "1 << 3")
+    '("resize-x" "GDK_ANCHOR_RESIZE_X" "1 << 4")
+    '("resize-y" "GDK_ANCHOR_RESIZE_Y" "1 << 5")
+    '("flip" "GDK_ANCHOR_FLIP" "0x3")
+    '("slide" "GDK_ANCHOR_SLIDE" "0xC")
+    '("resize" "GDK_ANCHOR_RESIZE" "0x30")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   GDK_SURFACE_EDGE_NORTH_WEST,
+;;   GDK_SURFACE_EDGE_NORTH,
+;;   GDK_SURFACE_EDGE_NORTH_EAST,
+;;   GDK_SURFACE_EDGE_WEST,
+;;   GDK_SURFACE_EDGE_EAST,
+;;   GDK_SURFACE_EDGE_SOUTH_WEST,
+;;   GDK_SURFACE_EDGE_SOUTH,
+;;   GDK_SURFACE_EDGE_SOUTH_EAST  
+;; } GdkSurfaceEdge;
+
+(define-enum-extended SurfaceEdge
+  (in-module "Gdk")
+  (c-name "GdkSurfaceEdge")
+  (values
+    '("north-west" "GDK_SURFACE_EDGE_NORTH_WEST" "0")
+    '("north" "GDK_SURFACE_EDGE_NORTH" "1")
+    '("north-east" "GDK_SURFACE_EDGE_NORTH_EAST" "2")
+    '("west" "GDK_SURFACE_EDGE_WEST" "3")
+    '("east" "GDK_SURFACE_EDGE_EAST" "4")
+    '("south-west" "GDK_SURFACE_EDGE_SOUTH_WEST" "5")
+    '("south" "GDK_SURFACE_EDGE_SOUTH" "6")
+    '("south-east" "GDK_SURFACE_EDGE_SOUTH_EAST" "7")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   GDK_FULLSCREEN_ON_CURRENT_MONITOR,
+;;   GDK_FULLSCREEN_ON_ALL_MONITORS
+;; } GdkFullscreenMode;
+
+(define-enum-extended FullscreenMode
+  (in-module "Gdk")
+  (c-name "GdkFullscreenMode")
+  (values
+    '("current-monitor" "GDK_FULLSCREEN_ON_CURRENT_MONITOR" "0")
+    '("all-monitors" "GDK_FULLSCREEN_ON_ALL_MONITORS" "1")
+  )
+)
+
+;; Original typedef:
+;; typedef enum
+;; {
+;;   GDK_SURFACE_STATE_WITHDRAWN        = 1 << 0,
+;;   GDK_SURFACE_STATE_ICONIFIED        = 1 << 1,
+;;   GDK_SURFACE_STATE_MAXIMIZED        = 1 << 2,
+;;   GDK_SURFACE_STATE_STICKY           = 1 << 3,
+;;   GDK_SURFACE_STATE_FULLSCREEN       = 1 << 4,
+;;   GDK_SURFACE_STATE_ABOVE            = 1 << 5,
+;;   GDK_SURFACE_STATE_BELOW            = 1 << 6,
+;;   GDK_SURFACE_STATE_FOCUSED          = 1 << 7,
+;;   GDK_SURFACE_STATE_TILED            = 1 << 8,
+;;   GDK_SURFACE_STATE_TOP_TILED        = 1 << 9,
+;;   GDK_SURFACE_STATE_TOP_RESIZABLE    = 1 << 10,
+;;   GDK_SURFACE_STATE_RIGHT_TILED      = 1 << 11,
+;;   GDK_SURFACE_STATE_RIGHT_RESIZABLE  = 1 << 12,
+;;   GDK_SURFACE_STATE_BOTTOM_TILED     = 1 << 13,
+;;   GDK_SURFACE_STATE_BOTTOM_RESIZABLE = 1 << 14,
+;;   GDK_SURFACE_STATE_LEFT_TILED       = 1 << 15,
+;;   GDK_SURFACE_STATE_LEFT_RESIZABLE   = 1 << 16
+;; } GdkSurfaceState;
+
+(define-flags-extended SurfaceState
+  (in-module "Gdk")
+  (c-name "GdkSurfaceState")
+  (values
+    '("withdrawn" "GDK_SURFACE_STATE_WITHDRAWN" "1 << 0")
+    '("iconified" "GDK_SURFACE_STATE_ICONIFIED" "1 << 1")
+    '("maximized" "GDK_SURFACE_STATE_MAXIMIZED" "1 << 2")
+    '("sticky" "GDK_SURFACE_STATE_STICKY" "1 << 3")
+    '("fullscreen" "GDK_SURFACE_STATE_FULLSCREEN" "1 << 4")
+    '("above" "GDK_SURFACE_STATE_ABOVE" "1 << 5")
+    '("below" "GDK_SURFACE_STATE_BELOW" "1 << 6")
+    '("focused" "GDK_SURFACE_STATE_FOCUSED" "1 << 7")
+    '("tiled" "GDK_SURFACE_STATE_TILED" "1 << 8")
+    '("top-tiled" "GDK_SURFACE_STATE_TOP_TILED" "1 << 9")
+    '("top-resizable" "GDK_SURFACE_STATE_TOP_RESIZABLE" "1 << 10")
+    '("right-tiled" "GDK_SURFACE_STATE_RIGHT_TILED" "1 << 11")
+    '("right-resizable" "GDK_SURFACE_STATE_RIGHT_RESIZABLE" "1 << 12")
+    '("bottom-tiled" "GDK_SURFACE_STATE_BOTTOM_TILED" "1 << 13")
+    '("bottom-resizable" "GDK_SURFACE_STATE_BOTTOM_RESIZABLE" "1 << 14")
+    '("left-tiled" "GDK_SURFACE_STATE_LEFT_TILED" "1 << 15")
+    '("left-resizable" "GDK_SURFACE_STATE_LEFT_RESIZABLE" "1 << 16")
+  )
+)
+
 ;; From gdktypes.h
 
 ;; Original typedef:
@@ -578,7 +883,7 @@
 ;; typedef enum
 ;; {
 ;;   GDK_OWNERSHIP_NONE,
-;;   GDK_OWNERSHIP_WINDOW,
+;;   GDK_OWNERSHIP_SURFACE,
 ;;   GDK_OWNERSHIP_APPLICATION
 ;; } GdkGrabOwnership;
 
@@ -587,7 +892,7 @@
   (c-name "GdkGrabOwnership")
   (values
     '("none" "GDK_OWNERSHIP_NONE" "0")
-    '("window" "GDK_OWNERSHIP_WINDOW" "1")
+    '("surface" "GDK_OWNERSHIP_SURFACE" "1")
     '("application" "GDK_OWNERSHIP_APPLICATION" "2")
   )
 )
@@ -691,40 +996,40 @@
 ;; Original typedef:
 ;; typedef enum
 ;; {
-;;   GDK_WINDOW_TYPE_HINT_NORMAL,
-;;   GDK_WINDOW_TYPE_HINT_DIALOG,
-;;   GDK_WINDOW_TYPE_HINT_MENU,                /* Torn off menu */
-;;   GDK_WINDOW_TYPE_HINT_TOOLBAR,
-;;   GDK_WINDOW_TYPE_HINT_SPLASHSCREEN,
-;;   GDK_WINDOW_TYPE_HINT_UTILITY,
-;;   GDK_WINDOW_TYPE_HINT_DOCK,
-;;   GDK_WINDOW_TYPE_HINT_DESKTOP,
-;;   GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU,       /* A drop down menu (from a menubar) */
-;;   GDK_WINDOW_TYPE_HINT_POPUP_MENU,  /* A popup menu (from right-click) */
-;;   GDK_WINDOW_TYPE_HINT_TOOLTIP,
-;;   GDK_WINDOW_TYPE_HINT_NOTIFICATION,
-;;   GDK_WINDOW_TYPE_HINT_COMBO,
-;;   GDK_WINDOW_TYPE_HINT_DND
-;; } GdkWindowTypeHint;
-
-(define-enum-extended WindowTypeHint
+;;   GDK_SURFACE_TYPE_HINT_NORMAL,
+;;   GDK_SURFACE_TYPE_HINT_DIALOG,
+;;   GDK_SURFACE_TYPE_HINT_MENU,               /* Torn off menu */
+;;   GDK_SURFACE_TYPE_HINT_TOOLBAR,
+;;   GDK_SURFACE_TYPE_HINT_SPLASHSCREEN,
+;;   GDK_SURFACE_TYPE_HINT_UTILITY,
+;;   GDK_SURFACE_TYPE_HINT_DOCK,
+;;   GDK_SURFACE_TYPE_HINT_DESKTOP,
+;;   GDK_SURFACE_TYPE_HINT_DROPDOWN_MENU,      /* A drop down menu (from a menubar) */
+;;   GDK_SURFACE_TYPE_HINT_POPUP_MENU, /* A popup menu (from right-click) */
+;;   GDK_SURFACE_TYPE_HINT_TOOLTIP,
+;;   GDK_SURFACE_TYPE_HINT_NOTIFICATION,
+;;   GDK_SURFACE_TYPE_HINT_COMBO,
+;;   GDK_SURFACE_TYPE_HINT_DND
+;; } GdkSurfaceTypeHint;
+
+(define-enum-extended SurfaceTypeHint
   (in-module "Gdk")
-  (c-name "GdkWindowTypeHint")
+  (c-name "GdkSurfaceTypeHint")
   (values
-    '("normal" "GDK_WINDOW_TYPE_HINT_NORMAL" "0")
-    '("dialog" "GDK_WINDOW_TYPE_HINT_DIALOG" "1")
-    '("menu" "GDK_WINDOW_TYPE_HINT_MENU" "2")
-    '("toolbar" "GDK_WINDOW_TYPE_HINT_TOOLBAR" "3")
-    '("splashscreen" "GDK_WINDOW_TYPE_HINT_SPLASHSCREEN" "4")
-    '("utility" "GDK_WINDOW_TYPE_HINT_UTILITY" "5")
-    '("dock" "GDK_WINDOW_TYPE_HINT_DOCK" "6")
-    '("desktop" "GDK_WINDOW_TYPE_HINT_DESKTOP" "7")
-    '("dropdown-menu" "GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU" "8")
-    '("popup-menu" "GDK_WINDOW_TYPE_HINT_POPUP_MENU" "9")
-    '("tooltip" "GDK_WINDOW_TYPE_HINT_TOOLTIP" "10")
-    '("notification" "GDK_WINDOW_TYPE_HINT_NOTIFICATION" "11")
-    '("combo" "GDK_WINDOW_TYPE_HINT_COMBO" "12")
-    '("dnd" "GDK_WINDOW_TYPE_HINT_DND" "13")
+    '("normal" "GDK_SURFACE_TYPE_HINT_NORMAL" "0")
+    '("dialog" "GDK_SURFACE_TYPE_HINT_DIALOG" "1")
+    '("menu" "GDK_SURFACE_TYPE_HINT_MENU" "2")
+    '("toolbar" "GDK_SURFACE_TYPE_HINT_TOOLBAR" "3")
+    '("splashscreen" "GDK_SURFACE_TYPE_HINT_SPLASHSCREEN" "4")
+    '("utility" "GDK_SURFACE_TYPE_HINT_UTILITY" "5")
+    '("dock" "GDK_SURFACE_TYPE_HINT_DOCK" "6")
+    '("desktop" "GDK_SURFACE_TYPE_HINT_DESKTOP" "7")
+    '("dropdown-menu" "GDK_SURFACE_TYPE_HINT_DROPDOWN_MENU" "8")
+    '("popup-menu" "GDK_SURFACE_TYPE_HINT_POPUP_MENU" "9")
+    '("tooltip" "GDK_SURFACE_TYPE_HINT_TOOLTIP" "10")
+    '("notification" "GDK_SURFACE_TYPE_HINT_NOTIFICATION" "11")
+    '("combo" "GDK_SURFACE_TYPE_HINT_COMBO" "12")
+    '("dnd" "GDK_SURFACE_TYPE_HINT_DND" "13")
   )
 )
 
@@ -792,261 +1097,3 @@
   )
 )
 
-;; From gdkwindow.h
-
-;; Original typedef:
-;; typedef enum
-;; {
-;;   GDK_WINDOW_ROOT,
-;;   GDK_WINDOW_TOPLEVEL,
-;;   GDK_WINDOW_CHILD,
-;;   GDK_WINDOW_TEMP,
-;;   GDK_WINDOW_FOREIGN,
-;;   GDK_WINDOW_SUBSURFACE
-;; } GdkWindowType;
-
-(define-enum-extended WindowType
-  (in-module "Gdk")
-  (c-name "GdkWindowType")
-  (values
-    '("root" "GDK_WINDOW_ROOT" "0")
-    '("toplevel" "GDK_WINDOW_TOPLEVEL" "1")
-    '("child" "GDK_WINDOW_CHILD" "2")
-    '("temp" "GDK_WINDOW_TEMP" "3")
-    '("foreign" "GDK_WINDOW_FOREIGN" "4")
-    '("subsurface" "GDK_WINDOW_SUBSURFACE" "5")
-  )
-)
-
-;; Original typedef:
-;; typedef enum
-;; {
-;;   GDK_HINT_POS             = 1 << 0,
-;;   GDK_HINT_MIN_SIZE    = 1 << 1,
-;;   GDK_HINT_MAX_SIZE    = 1 << 2,
-;;   GDK_HINT_BASE_SIZE   = 1 << 3,
-;;   GDK_HINT_ASPECT      = 1 << 4,
-;;   GDK_HINT_RESIZE_INC  = 1 << 5,
-;;   GDK_HINT_WIN_GRAVITY = 1 << 6,
-;;   GDK_HINT_USER_POS    = 1 << 7,
-;;   GDK_HINT_USER_SIZE   = 1 << 8
-;; } GdkWindowHints;
-
-(define-flags-extended WindowHints
-  (in-module "Gdk")
-  (c-name "GdkWindowHints")
-  (values
-    '("pos" "GDK_HINT_POS" "1 << 0")
-    '("min-size" "GDK_HINT_MIN_SIZE" "1 << 1")
-    '("max-size" "GDK_HINT_MAX_SIZE" "1 << 2")
-    '("base-size" "GDK_HINT_BASE_SIZE" "1 << 3")
-    '("aspect" "GDK_HINT_ASPECT" "1 << 4")
-    '("resize-inc" "GDK_HINT_RESIZE_INC" "1 << 5")
-    '("win-gravity" "GDK_HINT_WIN_GRAVITY" "1 << 6")
-    '("user-pos" "GDK_HINT_USER_POS" "1 << 7")
-    '("user-size" "GDK_HINT_USER_SIZE" "1 << 8")
-  )
-)
-
-;; Original typedef:
-;; typedef enum
-;; {
-;;   GDK_DECOR_ALL             = 1 << 0,
-;;   GDK_DECOR_BORDER  = 1 << 1,
-;;   GDK_DECOR_RESIZEH = 1 << 2,
-;;   GDK_DECOR_TITLE   = 1 << 3,
-;;   GDK_DECOR_MENU    = 1 << 4,
-;;   GDK_DECOR_MINIMIZE        = 1 << 5,
-;;   GDK_DECOR_MAXIMIZE        = 1 << 6
-;; } GdkWMDecoration;
-
-(define-flags-extended WMDecoration
-  (in-module "Gdk")
-  (c-name "GdkWMDecoration")
-  (values
-    '("all" "GDK_DECOR_ALL" "1 << 0")
-    '("border" "GDK_DECOR_BORDER" "1 << 1")
-    '("resizeh" "GDK_DECOR_RESIZEH" "1 << 2")
-    '("title" "GDK_DECOR_TITLE" "1 << 3")
-    '("menu" "GDK_DECOR_MENU" "1 << 4")
-    '("minimize" "GDK_DECOR_MINIMIZE" "1 << 5")
-    '("maximize" "GDK_DECOR_MAXIMIZE" "1 << 6")
-  )
-)
-
-;; Original typedef:
-;; typedef enum
-;; {
-;;   GDK_FUNC_ALL              = 1 << 0,
-;;   GDK_FUNC_RESIZE   = 1 << 1,
-;;   GDK_FUNC_MOVE             = 1 << 2,
-;;   GDK_FUNC_MINIMIZE = 1 << 3,
-;;   GDK_FUNC_MAXIMIZE = 1 << 4,
-;;   GDK_FUNC_CLOSE    = 1 << 5
-;; } GdkWMFunction;
-
-(define-flags-extended WMFunction
-  (in-module "Gdk")
-  (c-name "GdkWMFunction")
-  (values
-    '("all" "GDK_FUNC_ALL" "1 << 0")
-    '("resize" "GDK_FUNC_RESIZE" "1 << 1")
-    '("move" "GDK_FUNC_MOVE" "1 << 2")
-    '("minimize" "GDK_FUNC_MINIMIZE" "1 << 3")
-    '("maximize" "GDK_FUNC_MAXIMIZE" "1 << 4")
-    '("close" "GDK_FUNC_CLOSE" "1 << 5")
-  )
-)
-
-;; Original typedef:
-;; typedef enum
-;; {
-;;   GDK_GRAVITY_NORTH_WEST = 1,
-;;   GDK_GRAVITY_NORTH,
-;;   GDK_GRAVITY_NORTH_EAST,
-;;   GDK_GRAVITY_WEST,
-;;   GDK_GRAVITY_CENTER,
-;;   GDK_GRAVITY_EAST,
-;;   GDK_GRAVITY_SOUTH_WEST,
-;;   GDK_GRAVITY_SOUTH,
-;;   GDK_GRAVITY_SOUTH_EAST,
-;;   GDK_GRAVITY_STATIC
-;; } GdkGravity;
-
-(define-enum-extended Gravity
-  (in-module "Gdk")
-  (c-name "GdkGravity")
-  (values
-    '("north-west" "GDK_GRAVITY_NORTH_WEST" "1")
-    '("north" "GDK_GRAVITY_NORTH" "2")
-    '("north-east" "GDK_GRAVITY_NORTH_EAST" "3")
-    '("west" "GDK_GRAVITY_WEST" "4")
-    '("center" "GDK_GRAVITY_CENTER" "5")
-    '("east" "GDK_GRAVITY_EAST" "6")
-    '("south-west" "GDK_GRAVITY_SOUTH_WEST" "7")
-    '("south" "GDK_GRAVITY_SOUTH" "8")
-    '("south-east" "GDK_GRAVITY_SOUTH_EAST" "9")
-    '("static" "GDK_GRAVITY_STATIC" "10")
-  )
-)
-
-;; Original typedef:
-;; typedef enum
-;; {
-;;   GDK_ANCHOR_FLIP_X   = 1 << 0,
-;;   GDK_ANCHOR_FLIP_Y   = 1 << 1,
-;;   GDK_ANCHOR_SLIDE_X  = 1 << 2,
-;;   GDK_ANCHOR_SLIDE_Y  = 1 << 3,
-;;   GDK_ANCHOR_RESIZE_X = 1 << 4,
-;;   GDK_ANCHOR_RESIZE_Y = 1 << 5,
-;;   GDK_ANCHOR_FLIP     = GDK_ANCHOR_FLIP_X | GDK_ANCHOR_FLIP_Y,
-;;   GDK_ANCHOR_SLIDE    = GDK_ANCHOR_SLIDE_X | GDK_ANCHOR_SLIDE_Y,
-;;   GDK_ANCHOR_RESIZE   = GDK_ANCHOR_RESIZE_X | GDK_ANCHOR_RESIZE_Y
-;; } GdkAnchorHints;
-
-(define-flags-extended AnchorHints
-  (in-module "Gdk")
-  (c-name "GdkAnchorHints")
-  (values
-    '("flip-x" "GDK_ANCHOR_FLIP_X" "1 << 0")
-    '("flip-y" "GDK_ANCHOR_FLIP_Y" "1 << 1")
-    '("slide-x" "GDK_ANCHOR_SLIDE_X" "1 << 2")
-    '("slide-y" "GDK_ANCHOR_SLIDE_Y" "1 << 3")
-    '("resize-x" "GDK_ANCHOR_RESIZE_X" "1 << 4")
-    '("resize-y" "GDK_ANCHOR_RESIZE_Y" "1 << 5")
-    '("flip" "GDK_ANCHOR_FLIP" "0x3")
-    '("slide" "GDK_ANCHOR_SLIDE" "0xC")
-    '("resize" "GDK_ANCHOR_RESIZE" "0x30")
-  )
-)
-
-;; Original typedef:
-;; typedef enum
-;; {
-;;   GDK_WINDOW_EDGE_NORTH_WEST,
-;;   GDK_WINDOW_EDGE_NORTH,
-;;   GDK_WINDOW_EDGE_NORTH_EAST,
-;;   GDK_WINDOW_EDGE_WEST,
-;;   GDK_WINDOW_EDGE_EAST,
-;;   GDK_WINDOW_EDGE_SOUTH_WEST,
-;;   GDK_WINDOW_EDGE_SOUTH,
-;;   GDK_WINDOW_EDGE_SOUTH_EAST  
-;; } GdkWindowEdge;
-
-(define-enum-extended WindowEdge
-  (in-module "Gdk")
-  (c-name "GdkWindowEdge")
-  (values
-    '("north-west" "GDK_WINDOW_EDGE_NORTH_WEST" "0")
-    '("north" "GDK_WINDOW_EDGE_NORTH" "1")
-    '("north-east" "GDK_WINDOW_EDGE_NORTH_EAST" "2")
-    '("west" "GDK_WINDOW_EDGE_WEST" "3")
-    '("east" "GDK_WINDOW_EDGE_EAST" "4")
-    '("south-west" "GDK_WINDOW_EDGE_SOUTH_WEST" "5")
-    '("south" "GDK_WINDOW_EDGE_SOUTH" "6")
-    '("south-east" "GDK_WINDOW_EDGE_SOUTH_EAST" "7")
-  )
-)
-
-;; Original typedef:
-;; typedef enum
-;; {
-;;   GDK_FULLSCREEN_ON_CURRENT_MONITOR,
-;;   GDK_FULLSCREEN_ON_ALL_MONITORS
-;; } GdkFullscreenMode;
-
-(define-enum-extended FullscreenMode
-  (in-module "Gdk")
-  (c-name "GdkFullscreenMode")
-  (values
-    '("current-monitor" "GDK_FULLSCREEN_ON_CURRENT_MONITOR" "0")
-    '("all-monitors" "GDK_FULLSCREEN_ON_ALL_MONITORS" "1")
-  )
-)
-
-;; Original typedef:
-;; typedef enum
-;; {
-;;   GDK_WINDOW_STATE_WITHDRAWN        = 1 << 0,
-;;   GDK_WINDOW_STATE_ICONIFIED        = 1 << 1,
-;;   GDK_WINDOW_STATE_MAXIMIZED        = 1 << 2,
-;;   GDK_WINDOW_STATE_STICKY           = 1 << 3,
-;;   GDK_WINDOW_STATE_FULLSCREEN       = 1 << 4,
-;;   GDK_WINDOW_STATE_ABOVE            = 1 << 5,
-;;   GDK_WINDOW_STATE_BELOW            = 1 << 6,
-;;   GDK_WINDOW_STATE_FOCUSED          = 1 << 7,
-;;   GDK_WINDOW_STATE_TILED            = 1 << 8,
-;;   GDK_WINDOW_STATE_TOP_TILED        = 1 << 9,
-;;   GDK_WINDOW_STATE_TOP_RESIZABLE    = 1 << 10,
-;;   GDK_WINDOW_STATE_RIGHT_TILED      = 1 << 11,
-;;   GDK_WINDOW_STATE_RIGHT_RESIZABLE  = 1 << 12,
-;;   GDK_WINDOW_STATE_BOTTOM_TILED     = 1 << 13,
-;;   GDK_WINDOW_STATE_BOTTOM_RESIZABLE = 1 << 14,
-;;   GDK_WINDOW_STATE_LEFT_TILED       = 1 << 15,
-;;   GDK_WINDOW_STATE_LEFT_RESIZABLE   = 1 << 16
-;; } GdkWindowState;
-
-(define-flags-extended WindowState
-  (in-module "Gdk")
-  (c-name "GdkWindowState")
-  (values
-    '("withdrawn" "GDK_WINDOW_STATE_WITHDRAWN" "1 << 0")
-    '("iconified" "GDK_WINDOW_STATE_ICONIFIED" "1 << 1")
-    '("maximized" "GDK_WINDOW_STATE_MAXIMIZED" "1 << 2")
-    '("sticky" "GDK_WINDOW_STATE_STICKY" "1 << 3")
-    '("fullscreen" "GDK_WINDOW_STATE_FULLSCREEN" "1 << 4")
-    '("above" "GDK_WINDOW_STATE_ABOVE" "1 << 5")
-    '("below" "GDK_WINDOW_STATE_BELOW" "1 << 6")
-    '("focused" "GDK_WINDOW_STATE_FOCUSED" "1 << 7")
-    '("tiled" "GDK_WINDOW_STATE_TILED" "1 << 8")
-    '("top-tiled" "GDK_WINDOW_STATE_TOP_TILED" "1 << 9")
-    '("top-resizable" "GDK_WINDOW_STATE_TOP_RESIZABLE" "1 << 10")
-    '("right-tiled" "GDK_WINDOW_STATE_RIGHT_TILED" "1 << 11")
-    '("right-resizable" "GDK_WINDOW_STATE_RIGHT_RESIZABLE" "1 << 12")
-    '("bottom-tiled" "GDK_WINDOW_STATE_BOTTOM_TILED" "1 << 13")
-    '("bottom-resizable" "GDK_WINDOW_STATE_BOTTOM_RESIZABLE" "1 << 14")
-    '("left-tiled" "GDK_WINDOW_STATE_LEFT_TILED" "1 << 15")
-    '("left-resizable" "GDK_WINDOW_STATE_LEFT_RESIZABLE" "1 << 16")
-  )
-)
-
diff --git a/gdk/src/gdk_extra_objects.defs b/gdk/src/gdk_extra_objects.defs
index 4ac1214..f0c32c6 100644
--- a/gdk/src/gdk_extra_objects.defs
+++ b/gdk/src/gdk_extra_objects.defs
@@ -118,6 +118,12 @@
   (gtype-id "GDK_TYPE_KEYMAP")
 )
 
+(define-object Paintable
+  (in-module "Gdk")
+  (c-name "GdkPaintable")
+  (gtype-id "GDK_TYPE_PAINTABLE")
+)
+
 (define-object Pixbuf
   (in-module "Gdk")
   (c-name "GdkPixbuf")
@@ -142,14 +148,15 @@
   (gtype-id "GDK_TYPE_SEAT")
 )
 
+(define-object Surface
+  (in-module "Gdk")
+  (c-name "GdkSurface")
+  (gtype-id "GDK_TYPE_SURFACE")
+)
+
 (define-object Texture
   (in-module "Gdk")
   (c-name "GdkTexture")
   (gtype-id "GDK_TYPE_TEXTURE")
 )
 
-(define-object Window
-  (in-module "Gdk")
-  (c-name "GdkWindow")
-  (gtype-id "GDK_TYPE_WINDOW")
-)
diff --git a/gdk/src/gdk_methods.defs b/gdk/src/gdk_methods.defs
index fceeb8a..0f5011d 100644
--- a/gdk/src/gdk_methods.defs
+++ b/gdk/src/gdk_methods.defs
@@ -7,18 +7,11 @@
   (gtype-id "GDK_TYPE_CONTENT_PROVIDER")
 )
 
-(define-object FrameClockIdle
-  (in-module "Gdk")
-  (parent "GdkFrameClock")
-  (c-name "GdkFrameClockIdle")
-  (gtype-id "GDK_TYPE_FRAME_CLOCK_IDLE")
-)
-
-(define-object WindowImpl
+(define-object SurfaceImpl
   (in-module "Gdk")
   (parent "GObject")
-  (c-name "GdkWindowImpl")
-  (gtype-id "GDK_TYPE_WINDOW_IMPL")
+  (c-name "GdkSurfaceImpl")
+  (gtype-id "GDK_TYPE_SURFACE_IMPL")
 )
 
 ;; Enumerations and flags ...
@@ -47,7 +40,7 @@
   (values
     '("disabled" "GDK_MODE_DISABLED")
     '("screen" "GDK_MODE_SCREEN")
-    '("window" "GDK_MODE_WINDOW")
+    '("surface" "GDK_MODE_SURFACE")
   )
 )
 
@@ -229,6 +222,23 @@
   )
 )
 
+(define-enum MemoryFormat
+  (in-module "Gdk")
+  (c-name "GdkMemoryFormat")
+  (gtype-id "GDK_TYPE_MEMORY_FORMAT")
+  (values
+    '("b8g8r8a8-premultiplied" "GDK_MEMORY_B8G8R8A8_PREMULTIPLIED")
+    '("a8r8g8b8-premultiplied" "GDK_MEMORY_A8R8G8B8_PREMULTIPLIED")
+    '("b8g8r8a8" "GDK_MEMORY_B8G8R8A8")
+    '("a8r8g8b8" "GDK_MEMORY_A8R8G8B8")
+    '("r8g8b8a8" "GDK_MEMORY_R8G8B8A8")
+    '("a8b8g8r8" "GDK_MEMORY_A8B8G8R8")
+    '("r8g8b8" "GDK_MEMORY_R8G8B8")
+    '("b8g8r8" "GDK_MEMORY_B8G8R8")
+    '("n-formats" "GDK_MEMORY_N_FORMATS")
+  )
+)
+
 (define-enum SubpixelLayout
   (in-module "Gdk")
   (c-name "GdkSubpixelLayout")
@@ -243,6 +253,16 @@
   )
 )
 
+(define-flags PaintableFlags
+  (in-module "Gdk")
+  (c-name "GdkPaintableFlags")
+  (gtype-id "GDK_TYPE_PAINTABLE_FLAGS")
+  (values
+    '("size" "GDK_PAINTABLE_STATIC_SIZE")
+    '("contents" "GDK_PAINTABLE_STATIC_CONTENTS")
+  )
+)
+
 (define-flags SeatCapabilities
   (in-module "Gdk")
   (c-name "GdkSeatCapabilities")
@@ -259,6 +279,151 @@
   )
 )
 
+(define-enum SurfaceType
+  (in-module "Gdk")
+  (c-name "GdkSurfaceType")
+  (gtype-id "GDK_TYPE_SURFACE_TYPE")
+  (values
+    '("toplevel" "GDK_SURFACE_TOPLEVEL")
+    '("child" "GDK_SURFACE_CHILD")
+    '("temp" "GDK_SURFACE_TEMP")
+    '("foreign" "GDK_SURFACE_FOREIGN")
+    '("subsurface" "GDK_SURFACE_SUBSURFACE")
+  )
+)
+
+(define-flags SurfaceHints
+  (in-module "Gdk")
+  (c-name "GdkSurfaceHints")
+  (gtype-id "GDK_TYPE_SURFACE_HINTS")
+  (values
+    '("pos" "GDK_HINT_POS")
+    '("min-size" "GDK_HINT_MIN_SIZE")
+    '("max-size" "GDK_HINT_MAX_SIZE")
+    '("base-size" "GDK_HINT_BASE_SIZE")
+    '("aspect" "GDK_HINT_ASPECT")
+    '("resize-inc" "GDK_HINT_RESIZE_INC")
+    '("win-gravity" "GDK_HINT_WIN_GRAVITY")
+    '("user-pos" "GDK_HINT_USER_POS")
+    '("user-size" "GDK_HINT_USER_SIZE")
+  )
+)
+
+(define-flags WMDecoration
+  (in-module "Gdk")
+  (c-name "GdkWMDecoration")
+  (gtype-id "GDK_TYPE_WM_DECORATION")
+  (values
+    '("all" "GDK_DECOR_ALL")
+    '("border" "GDK_DECOR_BORDER")
+    '("resizeh" "GDK_DECOR_RESIZEH")
+    '("title" "GDK_DECOR_TITLE")
+    '("menu" "GDK_DECOR_MENU")
+    '("minimize" "GDK_DECOR_MINIMIZE")
+    '("maximize" "GDK_DECOR_MAXIMIZE")
+  )
+)
+
+(define-flags WMFunction
+  (in-module "Gdk")
+  (c-name "GdkWMFunction")
+  (gtype-id "GDK_TYPE_WM_FUNCTION")
+  (values
+    '("all" "GDK_FUNC_ALL")
+    '("resize" "GDK_FUNC_RESIZE")
+    '("move" "GDK_FUNC_MOVE")
+    '("minimize" "GDK_FUNC_MINIMIZE")
+    '("maximize" "GDK_FUNC_MAXIMIZE")
+    '("close" "GDK_FUNC_CLOSE")
+  )
+)
+
+(define-enum Gravity
+  (in-module "Gdk")
+  (c-name "GdkGravity")
+  (gtype-id "GDK_TYPE_GRAVITY")
+  (values
+    '("north-west" "GDK_GRAVITY_NORTH_WEST")
+    '("north" "GDK_GRAVITY_NORTH")
+    '("north-east" "GDK_GRAVITY_NORTH_EAST")
+    '("west" "GDK_GRAVITY_WEST")
+    '("center" "GDK_GRAVITY_CENTER")
+    '("east" "GDK_GRAVITY_EAST")
+    '("south-west" "GDK_GRAVITY_SOUTH_WEST")
+    '("south" "GDK_GRAVITY_SOUTH")
+    '("south-east" "GDK_GRAVITY_SOUTH_EAST")
+    '("static" "GDK_GRAVITY_STATIC")
+  )
+)
+
+(define-flags AnchorHints
+  (in-module "Gdk")
+  (c-name "GdkAnchorHints")
+  (gtype-id "GDK_TYPE_ANCHOR_HINTS")
+  (values
+    '("flip-x" "GDK_ANCHOR_FLIP_X")
+    '("flip-y" "GDK_ANCHOR_FLIP_Y")
+    '("slide-x" "GDK_ANCHOR_SLIDE_X")
+    '("slide-y" "GDK_ANCHOR_SLIDE_Y")
+    '("resize-x" "GDK_ANCHOR_RESIZE_X")
+    '("resize-y" "GDK_ANCHOR_RESIZE_Y")
+    '("flip" "GDK_ANCHOR_FLIP")
+    '("slide" "GDK_ANCHOR_SLIDE")
+    '("resize" "GDK_ANCHOR_RESIZE")
+  )
+)
+
+(define-enum SurfaceEdge
+  (in-module "Gdk")
+  (c-name "GdkSurfaceEdge")
+  (gtype-id "GDK_TYPE_SURFACE_EDGE")
+  (values
+    '("north-west" "GDK_SURFACE_EDGE_NORTH_WEST")
+    '("north" "GDK_SURFACE_EDGE_NORTH")
+    '("north-east" "GDK_SURFACE_EDGE_NORTH_EAST")
+    '("west" "GDK_SURFACE_EDGE_WEST")
+    '("east" "GDK_SURFACE_EDGE_EAST")
+    '("south-west" "GDK_SURFACE_EDGE_SOUTH_WEST")
+    '("south" "GDK_SURFACE_EDGE_SOUTH")
+    '("south-east" "GDK_SURFACE_EDGE_SOUTH_EAST")
+  )
+)
+
+(define-enum FullscreenMode
+  (in-module "Gdk")
+  (c-name "GdkFullscreenMode")
+  (gtype-id "GDK_TYPE_FULLSCREEN_MODE")
+  (values
+    '("current-monitor" "GDK_FULLSCREEN_ON_CURRENT_MONITOR")
+    '("all-monitors" "GDK_FULLSCREEN_ON_ALL_MONITORS")
+  )
+)
+
+(define-flags SurfaceState
+  (in-module "Gdk")
+  (c-name "GdkSurfaceState")
+  (gtype-id "GDK_TYPE_SURFACE_STATE")
+  (values
+    '("withdrawn" "GDK_SURFACE_STATE_WITHDRAWN")
+    '("iconified" "GDK_SURFACE_STATE_ICONIFIED")
+    '("maximized" "GDK_SURFACE_STATE_MAXIMIZED")
+    '("sticky" "GDK_SURFACE_STATE_STICKY")
+    '("fullscreen" "GDK_SURFACE_STATE_FULLSCREEN")
+    '("above" "GDK_SURFACE_STATE_ABOVE")
+    '("below" "GDK_SURFACE_STATE_BELOW")
+    '("focused" "GDK_SURFACE_STATE_FOCUSED")
+    '("tiled" "GDK_SURFACE_STATE_TILED")
+    '("top-tiled" "GDK_SURFACE_STATE_TOP_TILED")
+    '("top-resizable" "GDK_SURFACE_STATE_TOP_RESIZABLE")
+    '("right-tiled" "GDK_SURFACE_STATE_RIGHT_TILED")
+    '("right-resizable" "GDK_SURFACE_STATE_RIGHT_RESIZABLE")
+    '("bottom-tiled" "GDK_SURFACE_STATE_BOTTOM_TILED")
+    '("bottom-resizable" "GDK_SURFACE_STATE_BOTTOM_RESIZABLE")
+    '("left-tiled" "GDK_SURFACE_STATE_LEFT_TILED")
+    '("left-resizable" "GDK_SURFACE_STATE_LEFT_RESIZABLE")
+  )
+)
+
 (define-enum ByteOrder
   (in-module "Gdk")
   (c-name "GdkByteOrder")
@@ -344,7 +509,7 @@
   (gtype-id "GDK_TYPE_GRAB_OWNERSHIP")
   (values
     '("none" "GDK_OWNERSHIP_NONE")
-    '("window" "GDK_OWNERSHIP_WINDOW")
+    '("surface" "GDK_OWNERSHIP_SURFACE")
     '("application" "GDK_OWNERSHIP_APPLICATION")
   )
 )
@@ -404,25 +569,25 @@
   )
 )
 
-(define-enum WindowTypeHint
+(define-enum SurfaceTypeHint
   (in-module "Gdk")
-  (c-name "GdkWindowTypeHint")
-  (gtype-id "GDK_TYPE_WINDOW_TYPE_HINT")
+  (c-name "GdkSurfaceTypeHint")
+  (gtype-id "GDK_TYPE_SURFACE_TYPE_HINT")
   (values
-    '("normal" "GDK_WINDOW_TYPE_HINT_NORMAL")
-    '("dialog" "GDK_WINDOW_TYPE_HINT_DIALOG")
-    '("menu" "GDK_WINDOW_TYPE_HINT_MENU")
-    '("toolbar" "GDK_WINDOW_TYPE_HINT_TOOLBAR")
-    '("splashscreen" "GDK_WINDOW_TYPE_HINT_SPLASHSCREEN")
-    '("utility" "GDK_WINDOW_TYPE_HINT_UTILITY")
-    '("dock" "GDK_WINDOW_TYPE_HINT_DOCK")
-    '("desktop" "GDK_WINDOW_TYPE_HINT_DESKTOP")
-    '("dropdown-menu" "GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU")
-    '("popup-menu" "GDK_WINDOW_TYPE_HINT_POPUP_MENU")
-    '("tooltip" "GDK_WINDOW_TYPE_HINT_TOOLTIP")
-    '("notification" "GDK_WINDOW_TYPE_HINT_NOTIFICATION")
-    '("combo" "GDK_WINDOW_TYPE_HINT_COMBO")
-    '("dnd" "GDK_WINDOW_TYPE_HINT_DND")
+    '("normal" "GDK_SURFACE_TYPE_HINT_NORMAL")
+    '("dialog" "GDK_SURFACE_TYPE_HINT_DIALOG")
+    '("menu" "GDK_SURFACE_TYPE_HINT_MENU")
+    '("toolbar" "GDK_SURFACE_TYPE_HINT_TOOLBAR")
+    '("splashscreen" "GDK_SURFACE_TYPE_HINT_SPLASHSCREEN")
+    '("utility" "GDK_SURFACE_TYPE_HINT_UTILITY")
+    '("dock" "GDK_SURFACE_TYPE_HINT_DOCK")
+    '("desktop" "GDK_SURFACE_TYPE_HINT_DESKTOP")
+    '("dropdown-menu" "GDK_SURFACE_TYPE_HINT_DROPDOWN_MENU")
+    '("popup-menu" "GDK_SURFACE_TYPE_HINT_POPUP_MENU")
+    '("tooltip" "GDK_SURFACE_TYPE_HINT_TOOLTIP")
+    '("notification" "GDK_SURFACE_TYPE_HINT_NOTIFICATION")
+    '("combo" "GDK_SURFACE_TYPE_HINT_COMBO")
+    '("dnd" "GDK_SURFACE_TYPE_HINT_DND")
   )
 )
 
@@ -462,152 +627,6 @@
   )
 )
 
-(define-enum WindowType
-  (in-module "Gdk")
-  (c-name "GdkWindowType")
-  (gtype-id "GDK_TYPE_WINDOW_TYPE")
-  (values
-    '("root" "GDK_WINDOW_ROOT")
-    '("toplevel" "GDK_WINDOW_TOPLEVEL")
-    '("child" "GDK_WINDOW_CHILD")
-    '("temp" "GDK_WINDOW_TEMP")
-    '("foreign" "GDK_WINDOW_FOREIGN")
-    '("subsurface" "GDK_WINDOW_SUBSURFACE")
-  )
-)
-
-(define-flags WindowHints
-  (in-module "Gdk")
-  (c-name "GdkWindowHints")
-  (gtype-id "GDK_TYPE_WINDOW_HINTS")
-  (values
-    '("pos" "GDK_HINT_POS")
-    '("min-size" "GDK_HINT_MIN_SIZE")
-    '("max-size" "GDK_HINT_MAX_SIZE")
-    '("base-size" "GDK_HINT_BASE_SIZE")
-    '("aspect" "GDK_HINT_ASPECT")
-    '("resize-inc" "GDK_HINT_RESIZE_INC")
-    '("win-gravity" "GDK_HINT_WIN_GRAVITY")
-    '("user-pos" "GDK_HINT_USER_POS")
-    '("user-size" "GDK_HINT_USER_SIZE")
-  )
-)
-
-(define-flags WMDecoration
-  (in-module "Gdk")
-  (c-name "GdkWMDecoration")
-  (gtype-id "GDK_TYPE_WM_DECORATION")
-  (values
-    '("all" "GDK_DECOR_ALL")
-    '("border" "GDK_DECOR_BORDER")
-    '("resizeh" "GDK_DECOR_RESIZEH")
-    '("title" "GDK_DECOR_TITLE")
-    '("menu" "GDK_DECOR_MENU")
-    '("minimize" "GDK_DECOR_MINIMIZE")
-    '("maximize" "GDK_DECOR_MAXIMIZE")
-  )
-)
-
-(define-flags WMFunction
-  (in-module "Gdk")
-  (c-name "GdkWMFunction")
-  (gtype-id "GDK_TYPE_WM_FUNCTION")
-  (values
-    '("all" "GDK_FUNC_ALL")
-    '("resize" "GDK_FUNC_RESIZE")
-    '("move" "GDK_FUNC_MOVE")
-    '("minimize" "GDK_FUNC_MINIMIZE")
-    '("maximize" "GDK_FUNC_MAXIMIZE")
-    '("close" "GDK_FUNC_CLOSE")
-  )
-)
-
-(define-enum Gravity
-  (in-module "Gdk")
-  (c-name "GdkGravity")
-  (gtype-id "GDK_TYPE_GRAVITY")
-  (values
-    '("north-west" "GDK_GRAVITY_NORTH_WEST")
-    '("north" "GDK_GRAVITY_NORTH")
-    '("north-east" "GDK_GRAVITY_NORTH_EAST")
-    '("west" "GDK_GRAVITY_WEST")
-    '("center" "GDK_GRAVITY_CENTER")
-    '("east" "GDK_GRAVITY_EAST")
-    '("south-west" "GDK_GRAVITY_SOUTH_WEST")
-    '("south" "GDK_GRAVITY_SOUTH")
-    '("south-east" "GDK_GRAVITY_SOUTH_EAST")
-    '("static" "GDK_GRAVITY_STATIC")
-  )
-)
-
-(define-flags AnchorHints
-  (in-module "Gdk")
-  (c-name "GdkAnchorHints")
-  (gtype-id "GDK_TYPE_ANCHOR_HINTS")
-  (values
-    '("flip-x" "GDK_ANCHOR_FLIP_X")
-    '("flip-y" "GDK_ANCHOR_FLIP_Y")
-    '("slide-x" "GDK_ANCHOR_SLIDE_X")
-    '("slide-y" "GDK_ANCHOR_SLIDE_Y")
-    '("resize-x" "GDK_ANCHOR_RESIZE_X")
-    '("resize-y" "GDK_ANCHOR_RESIZE_Y")
-    '("flip" "GDK_ANCHOR_FLIP")
-    '("slide" "GDK_ANCHOR_SLIDE")
-    '("resize" "GDK_ANCHOR_RESIZE")
-  )
-)
-
-(define-enum WindowEdge
-  (in-module "Gdk")
-  (c-name "GdkWindowEdge")
-  (gtype-id "GDK_TYPE_WINDOW_EDGE")
-  (values
-    '("north-west" "GDK_WINDOW_EDGE_NORTH_WEST")
-    '("north" "GDK_WINDOW_EDGE_NORTH")
-    '("north-east" "GDK_WINDOW_EDGE_NORTH_EAST")
-    '("west" "GDK_WINDOW_EDGE_WEST")
-    '("east" "GDK_WINDOW_EDGE_EAST")
-    '("south-west" "GDK_WINDOW_EDGE_SOUTH_WEST")
-    '("south" "GDK_WINDOW_EDGE_SOUTH")
-    '("south-east" "GDK_WINDOW_EDGE_SOUTH_EAST")
-  )
-)
-
-(define-enum FullscreenMode
-  (in-module "Gdk")
-  (c-name "GdkFullscreenMode")
-  (gtype-id "GDK_TYPE_FULLSCREEN_MODE")
-  (values
-    '("current-monitor" "GDK_FULLSCREEN_ON_CURRENT_MONITOR")
-    '("all-monitors" "GDK_FULLSCREEN_ON_ALL_MONITORS")
-  )
-)
-
-(define-flags WindowState
-  (in-module "Gdk")
-  (c-name "GdkWindowState")
-  (gtype-id "GDK_TYPE_WINDOW_STATE")
-  (values
-    '("withdrawn" "GDK_WINDOW_STATE_WITHDRAWN")
-    '("iconified" "GDK_WINDOW_STATE_ICONIFIED")
-    '("maximized" "GDK_WINDOW_STATE_MAXIMIZED")
-    '("sticky" "GDK_WINDOW_STATE_STICKY")
-    '("fullscreen" "GDK_WINDOW_STATE_FULLSCREEN")
-    '("above" "GDK_WINDOW_STATE_ABOVE")
-    '("below" "GDK_WINDOW_STATE_BELOW")
-    '("focused" "GDK_WINDOW_STATE_FOCUSED")
-    '("tiled" "GDK_WINDOW_STATE_TILED")
-    '("top-tiled" "GDK_WINDOW_STATE_TOP_TILED")
-    '("top-resizable" "GDK_WINDOW_STATE_TOP_RESIZABLE")
-    '("right-tiled" "GDK_WINDOW_STATE_RIGHT_TILED")
-    '("right-resizable" "GDK_WINDOW_STATE_RIGHT_RESIZABLE")
-    '("bottom-tiled" "GDK_WINDOW_STATE_BOTTOM_TILED")
-    '("bottom-resizable" "GDK_WINDOW_STATE_BOTTOM_RESIZABLE")
-    '("left-tiled" "GDK_WINDOW_STATE_LEFT_TILED")
-    '("left-resizable" "GDK_WINDOW_STATE_LEFT_RESIZABLE")
-  )
-)
-
 
 ;; From gdkapplaunchcontext.h
 
@@ -716,7 +735,7 @@
   (parameters
     '("const-GdkPixbuf*" "pixbuf")
     '("int" "scale")
-    '("GdkWindow*" "for_window")
+    '("GdkSurface*" "for_surface")
   )
 )
 
@@ -725,7 +744,7 @@
   (return-type "none")
   (parameters
     '("cairo_t*" "cr")
-    '("GdkWindow*" "window")
+    '("GdkSurface*" "surface")
     '("int" "source")
     '("int" "source_type")
     '("int" "buffer_scale")
@@ -1651,7 +1670,7 @@
   (c-name "gdk_device_get_state")
   (return-type "none")
   (parameters
-    '("GdkWindow*" "window")
+    '("GdkSurface*" "surface")
     '("gdouble*" "axes")
     '("GdkModifierType*" "mask")
   )
@@ -1667,10 +1686,10 @@
   )
 )
 
-(define-method get_window_at_position
+(define-method get_surface_at_position
   (of-object "GdkDevice")
-  (c-name "gdk_device_get_window_at_position")
-  (return-type "GdkWindow*")
+  (c-name "gdk_device_get_surface_at_position")
+  (return-type "GdkSurface*")
   (parameters
     '("gint*" "win_x")
     '("gint*" "win_y")
@@ -1687,10 +1706,10 @@
   )
 )
 
-(define-method get_window_at_position_double
+(define-method get_surface_at_position_double
   (of-object "GdkDevice")
-  (c-name "gdk_device_get_window_at_position_double")
-  (return-type "GdkWindow*")
+  (c-name "gdk_device_get_surface_at_position_double")
+  (return-type "GdkSurface*")
   (parameters
     '("gdouble*" "win_x")
     '("gdouble*" "win_y")
@@ -1702,7 +1721,7 @@
   (c-name "gdk_device_get_history")
   (return-type "gboolean")
   (parameters
-    '("GdkWindow*" "window")
+    '("GdkSurface*" "surface")
     '("guint32" "start")
     '("guint32" "stop")
     '("GdkTimeCoord***" "events")
@@ -1782,7 +1801,7 @@
   (c-name "gdk_device_grab")
   (return-type "GdkGrabStatus")
   (parameters
-    '("GdkWindow*" "window")
+    '("GdkSurface*" "surface")
     '("GdkGrabOwnership" "grab_ownership")
     '("gboolean" "owner_events")
     '("GdkEventMask" "event_mask")
@@ -1810,10 +1829,10 @@
   )
 )
 
-(define-method get_last_event_window
+(define-method get_last_event_surface
   (of-object "GdkDevice")
-  (c-name "gdk_device_get_last_event_window")
-  (return-type "GdkWindow*")
+  (c-name "gdk_device_get_last_event_surface")
+  (return-type "GdkSurface*")
 )
 
 (define-method get_vendor_id
@@ -2019,7 +2038,7 @@
 (define-method get_default_group
   (of-object "GdkDisplay")
   (c-name "gdk_display_get_default_group")
-  (return-type "GdkWindow*")
+  (return-type "GdkSurface*")
 )
 
 (define-method get_clipboard
@@ -2104,12 +2123,12 @@
   )
 )
 
-(define-method get_monitor_at_window
+(define-method get_monitor_at_surface
   (of-object "GdkDisplay")
-  (c-name "gdk_display_get_monitor_at_window")
+  (c-name "gdk_display_get_monitor_at_surface")
   (return-type "GdkMonitor*")
   (parameters
-    '("GdkWindow*" "window")
+    '("GdkSurface*" "surface")
   )
 )
 
@@ -2226,16 +2245,16 @@
   (return-type "GdkDragAction")
 )
 
-(define-method get_source_window
+(define-method get_source_surface
   (of-object "GdkDragContext")
-  (c-name "gdk_drag_context_get_source_window")
-  (return-type "GdkWindow*")
+  (c-name "gdk_drag_context_get_source_surface")
+  (return-type "GdkSurface*")
 )
 
-(define-method get_dest_window
+(define-method get_dest_surface
   (of-object "GdkDragContext")
-  (c-name "gdk_drag_context_get_dest_window")
-  (return-type "GdkWindow*")
+  (c-name "gdk_drag_context_get_dest_surface")
+  (return-type "GdkSurface*")
 )
 
 (define-function gdk_drag_status
@@ -2296,7 +2315,7 @@
   (c-name "gdk_drag_begin")
   (return-type "GdkDragContext*")
   (parameters
-    '("GdkWindow*" "window")
+    '("GdkSurface*" "surface")
     '("GdkDevice*" "device")
     '("GdkContentProvider*" "content")
     '("GdkDragAction" "actions")
@@ -2322,10 +2341,10 @@
   )
 )
 
-(define-method get_drag_window
+(define-method get_drag_surface
   (of-object "GdkDragContext")
-  (c-name "gdk_drag_context_get_drag_window")
-  (return-type "GdkWindow*")
+  (c-name "gdk_drag_context_get_drag_surface")
+  (return-type "GdkSurface*")
 )
 
 (define-method set_hotspot
@@ -2353,10 +2372,10 @@
   (return-type "GdkDisplay*")
 )
 
-(define-method get_window
+(define-method get_surface
   (of-object "GdkDrawContext")
-  (c-name "gdk_draw_context_get_window")
-  (return-type "GdkWindow*")
+  (c-name "gdk_draw_context_get_surface")
+  (return-type "GdkSurface*")
 )
 
 
@@ -2368,10 +2387,10 @@
   (return-type "GType")
 )
 
-(define-method get_window
+(define-method get_surface
   (of-object "GdkDrawingContext")
-  (c-name "gdk_drawing_context_get_window")
-  (return-type "GdkWindow*")
+  (c-name "gdk_drawing_context_get_surface")
+  (return-type "GdkSurface*")
 )
 
 (define-method get_paint_context
@@ -2433,10 +2452,10 @@
   (return-type "none")
 )
 
-(define-method get_window
+(define-method get_surface
   (of-object "GdkEvent")
-  (c-name "gdk_event_get_window")
-  (return-type "GdkWindow*")
+  (c-name "gdk_event_get_surface")
+  (return-type "GdkSurface*")
 )
 
 (define-method get_time
@@ -2838,12 +2857,12 @@
   )
 )
 
-(define-method get_grab_window
+(define-method get_grab_surface
   (of-object "GdkEvent")
-  (c-name "gdk_event_get_grab_window")
+  (c-name "gdk_event_get_grab_surface")
   (return-type "gboolean")
   (parameters
-    '("GdkWindow**" "window")
+    '("GdkSurface**" "surface")
   )
 )
 
@@ -2977,15 +2996,6 @@
 
 
 
-;; From gdkframeclockidle.h
-
-(define-function gdk_frame_clock_idle_get_type
-  (c-name "gdk_frame_clock_idle_get_type")
-  (return-type "GType")
-)
-
-
-
 ;; From gdkframetimings.h
 
 (define-function gdk_frame_timings_get_type
@@ -3061,10 +3071,10 @@
   (return-type "GdkDisplay*")
 )
 
-(define-method get_window
+(define-method get_surface
   (of-object "GdkGLContext")
-  (c-name "gdk_gl_context_get_window")
-  (return-type "GdkWindow*")
+  (c-name "gdk_gl_context_get_surface")
+  (return-type "GdkSurface*")
 )
 
 (define-method get_shared_context
@@ -3203,12 +3213,10 @@
   )
 )
 
-(define-function gdk_gl_texture_release
+(define-method release
+  (of-object "GdkGLTexture")
   (c-name "gdk_gl_texture_release")
   (return-type "none")
-  (parameters
-    '("GdkTexture*" "texture")
-  )
 )
 
 
@@ -3424,6 +3432,23 @@
 
 
 
+;; From gdkmemorytexture.h
+
+(define-function gdk_memory_texture_new
+  (c-name "gdk_memory_texture_new")
+  (is-constructor-of "GdkMemoryTexture")
+  (return-type "GdkTexture*")
+  (parameters
+    '("int" "width")
+    '("int" "height")
+    '("GdkMemoryFormat" "format")
+    '("GBytes*" "bytes")
+    '("gsize" "stride")
+  )
+)
+
+
+
 ;; From gdkmonitor.h
 
 (define-function gdk_monitor_get_type
@@ -3511,6 +3536,77 @@
 
 
 
+;; From gdkpaintable.h
+
+(define-method snapshot
+  (of-object "GdkPaintable")
+  (c-name "gdk_paintable_snapshot")
+  (return-type "none")
+  (parameters
+    '("GdkSnapshot*" "snapshot")
+    '("double" "width")
+    '("double" "height")
+  )
+)
+
+(define-method get_current_image
+  (of-object "GdkPaintable")
+  (c-name "gdk_paintable_get_current_image")
+  (return-type "GdkPaintable*")
+)
+
+(define-method get_flags
+  (of-object "GdkPaintable")
+  (c-name "gdk_paintable_get_flags")
+  (return-type "GdkPaintableFlags")
+)
+
+(define-method get_intrinsic_width
+  (of-object "GdkPaintable")
+  (c-name "gdk_paintable_get_intrinsic_width")
+  (return-type "int")
+)
+
+(define-method get_intrinsic_height
+  (of-object "GdkPaintable")
+  (c-name "gdk_paintable_get_intrinsic_height")
+  (return-type "int")
+)
+
+(define-method get_intrinsic_aspect_ratio
+  (of-object "GdkPaintable")
+  (c-name "gdk_paintable_get_intrinsic_aspect_ratio")
+  (return-type "double")
+)
+
+(define-method compute_concrete_size
+  (of-object "GdkPaintable")
+  (c-name "gdk_paintable_compute_concrete_size")
+  (return-type "none")
+  (parameters
+    '("double" "specified_width")
+    '("double" "specified_height")
+    '("double" "default_width")
+    '("double" "default_height")
+    '("double*" "concrete_width")
+    '("double*" "concrete_height")
+  )
+)
+
+(define-method invalidate_contents
+  (of-object "GdkPaintable")
+  (c-name "gdk_paintable_invalidate_contents")
+  (return-type "none")
+)
+
+(define-method invalidate_size
+  (of-object "GdkPaintable")
+  (c-name "gdk_paintable_invalidate_size")
+  (return-type "none")
+)
+
+
+
 ;; From gdkpango.h
 
 (define-function gdk_pango_layout_line_get_clip_region
@@ -3705,7 +3801,7 @@
   (c-name "gdk_seat_grab")
   (return-type "GdkGrabStatus")
   (parameters
-    '("GdkWindow*" "window")
+    '("GdkSurface*" "surface")
     '("GdkSeatCapabilities" "capabilities")
     '("gboolean" "owner_events")
     '("GdkCursor*" "cursor")
@@ -3765,167 +3861,20 @@
 
 
 
-;; From gdktexture.h
+;; From gdksnapshot.h
 
-(define-function gdk_texture_new_for_data
-  (c-name "gdk_texture_new_for_data")
-  (return-type "GdkTexture*")
-  (parameters
-    '("const-guchar*" "data")
-    '("int" "width")
-    '("int" "height")
-    '("int" "stride")
-  )
-)
 
-(define-function gdk_texture_new_for_pixbuf
-  (c-name "gdk_texture_new_for_pixbuf")
-  (return-type "GdkTexture*")
-  (parameters
-    '("GdkPixbuf*" "pixbuf")
-  )
-)
 
-(define-function gdk_texture_new_from_resource
-  (c-name "gdk_texture_new_from_resource")
-  (return-type "GdkTexture*")
-  (parameters
-    '("const-char*" "resource_path")
-  )
-)
+;; From gdksurface.h
 
-(define-function gdk_texture_new_from_file
-  (c-name "gdk_texture_new_from_file")
-  (return-type "GdkTexture*")
-  (parameters
-    '("GFile*" "file")
-    '("GError**" "error")
-  )
-)
-
-(define-method get_width
-  (of-object "GdkTexture")
-  (c-name "gdk_texture_get_width")
-  (return-type "int")
-)
-
-(define-method get_height
-  (of-object "GdkTexture")
-  (c-name "gdk_texture_get_height")
-  (return-type "int")
-)
-
-(define-method download
-  (of-object "GdkTexture")
-  (c-name "gdk_texture_download")
-  (return-type "none")
-  (parameters
-    '("guchar*" "data")
-    '("gsize" "stride")
-  )
-)
-
-
-
-;; From gdktypes.h
-
-
-
-;; From gdkvulkancontext.h
-
-(define-function gdk_vulkan_error_quark
-  (c-name "gdk_vulkan_error_quark")
-  (return-type "GQuark")
-)
-
-(define-function gdk_vulkan_context_get_type
-  (c-name "gdk_vulkan_context_get_type")
-  (return-type "GType")
-)
-
-(define-function gdk_vulkan_strerror
-  (c-name "gdk_vulkan_strerror")
-  (return-type "const-char*")
-  (parameters
-    '("VkResult" "result")
-  )
-)
-
-(define-method get_instance
-  (of-object "GdkVulkanContext")
-  (c-name "gdk_vulkan_context_get_instance")
-  (return-type "VkInstance")
-)
-
-(define-method get_physical_device
-  (of-object "GdkVulkanContext")
-  (c-name "gdk_vulkan_context_get_physical_device")
-  (return-type "VkPhysicalDevice")
-)
-
-(define-method get_device
-  (of-object "GdkVulkanContext")
-  (c-name "gdk_vulkan_context_get_device")
-  (return-type "VkDevice")
-)
-
-(define-method get_queue
-  (of-object "GdkVulkanContext")
-  (c-name "gdk_vulkan_context_get_queue")
-  (return-type "VkQueue")
-)
-
-(define-method get_queue_family_index
-  (of-object "GdkVulkanContext")
-  (c-name "gdk_vulkan_context_get_queue_family_index")
-  (return-type "uint32_t")
-)
-
-(define-method get_image_format
-  (of-object "GdkVulkanContext")
-  (c-name "gdk_vulkan_context_get_image_format")
-  (return-type "VkFormat")
-)
-
-(define-method get_n_images
-  (of-object "GdkVulkanContext")
-  (c-name "gdk_vulkan_context_get_n_images")
-  (return-type "uint32_t")
-)
-
-(define-method get_image
-  (of-object "GdkVulkanContext")
-  (c-name "gdk_vulkan_context_get_image")
-  (return-type "VkImage")
-  (parameters
-    '("guint" "id")
-  )
-)
-
-(define-method get_draw_index
-  (of-object "GdkVulkanContext")
-  (c-name "gdk_vulkan_context_get_draw_index")
-  (return-type "uint32_t")
-)
-
-(define-method get_draw_semaphore
-  (of-object "GdkVulkanContext")
-  (c-name "gdk_vulkan_context_get_draw_semaphore")
-  (return-type "VkSemaphore")
-)
-
-
-
-;; From gdkwindow.h
-
-(define-function gdk_window_get_type
-  (c-name "gdk_window_get_type")
+(define-function gdk_surface_get_type
+  (c-name "gdk_surface_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_window_new_toplevel
-  (c-name "gdk_window_new_toplevel")
-  (return-type "GdkWindow*")
+(define-function gdk_surface_new_toplevel
+  (c-name "gdk_surface_new_toplevel")
+  (return-type "GdkSurface*")
   (parameters
     '("GdkDisplay*" "display")
     '("int" "width")
@@ -3933,83 +3882,83 @@
   )
 )
 
-(define-function gdk_window_new_popup
-  (c-name "gdk_window_new_popup")
-  (return-type "GdkWindow*")
+(define-function gdk_surface_new_popup
+  (c-name "gdk_surface_new_popup")
+  (return-type "GdkSurface*")
   (parameters
     '("GdkDisplay*" "display")
     '("const-GdkRectangle*" "position")
   )
 )
 
-(define-function gdk_window_new_temp
-  (c-name "gdk_window_new_temp")
-  (return-type "GdkWindow*")
+(define-function gdk_surface_new_temp
+  (c-name "gdk_surface_new_temp")
+  (return-type "GdkSurface*")
   (parameters
     '("GdkDisplay*" "display")
   )
 )
 
 (define-method new_child
-  (of-object "GdkWindow")
-  (c-name "gdk_window_new_child")
-  (return-type "GdkWindow*")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_new_child")
+  (return-type "GdkSurface*")
   (parameters
     '("const-GdkRectangle*" "position")
   )
 )
 
 (define-method destroy
-  (of-object "GdkWindow")
-  (c-name "gdk_window_destroy")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_destroy")
   (return-type "none")
 )
 
-(define-method get_window_type
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_window_type")
-  (return-type "GdkWindowType")
+(define-method get_surface_type
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_surface_type")
+  (return-type "GdkSurfaceType")
 )
 
 (define-method is_destroyed
-  (of-object "GdkWindow")
-  (c-name "gdk_window_is_destroyed")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_is_destroyed")
   (return-type "gboolean")
 )
 
 (define-method get_display
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_display")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_display")
   (return-type "GdkDisplay*")
 )
 
 (define-method show
-  (of-object "GdkWindow")
-  (c-name "gdk_window_show")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_show")
   (return-type "none")
 )
 
 (define-method hide
-  (of-object "GdkWindow")
-  (c-name "gdk_window_hide")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_hide")
   (return-type "none")
 )
 
 (define-method withdraw
-  (of-object "GdkWindow")
-  (c-name "gdk_window_withdraw")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_withdraw")
   (return-type "none")
 )
 
 (define-method show_unraised
-  (of-object "GdkWindow")
-  (c-name "gdk_window_show_unraised")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_show_unraised")
   (return-type "none")
 )
 
 (define-method move
-  (of-object "GdkWindow")
-  (c-name "gdk_window_move")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_move")
   (return-type "none")
   (parameters
     '("gint" "x")
@@ -4018,8 +3967,8 @@
 )
 
 (define-method resize
-  (of-object "GdkWindow")
-  (c-name "gdk_window_resize")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_resize")
   (return-type "none")
   (parameters
     '("gint" "width")
@@ -4028,8 +3977,8 @@
 )
 
 (define-method move_resize
-  (of-object "GdkWindow")
-  (c-name "gdk_window_move_resize")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_move_resize")
   (return-type "none")
   (parameters
     '("gint" "x")
@@ -4040,30 +3989,30 @@
 )
 
 (define-method raise
-  (of-object "GdkWindow")
-  (c-name "gdk_window_raise")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_raise")
   (return-type "none")
 )
 
 (define-method lower
-  (of-object "GdkWindow")
-  (c-name "gdk_window_lower")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_lower")
   (return-type "none")
 )
 
 (define-method restack
-  (of-object "GdkWindow")
-  (c-name "gdk_window_restack")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_restack")
   (return-type "none")
   (parameters
-    '("GdkWindow*" "sibling")
+    '("GdkSurface*" "sibling")
     '("gboolean" "above")
   )
 )
 
 (define-method focus
-  (of-object "GdkWindow")
-  (c-name "gdk_window_focus")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_focus")
   (return-type "none")
   (parameters
     '("guint32" "timestamp")
@@ -4071,8 +4020,8 @@
 )
 
 (define-method set_user_data
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_user_data")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_user_data")
   (return-type "none")
   (parameters
     '("gpointer" "user_data")
@@ -4080,14 +4029,14 @@
 )
 
 (define-method get_accept_focus
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_accept_focus")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_accept_focus")
   (return-type "gboolean")
 )
 
 (define-method set_accept_focus
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_accept_focus")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_accept_focus")
   (return-type "none")
   (parameters
     '("gboolean" "accept_focus")
@@ -4095,67 +4044,23 @@
 )
 
 (define-method get_focus_on_map
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_focus_on_map")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_focus_on_map")
   (return-type "gboolean")
 )
 
 (define-method set_focus_on_map
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_focus_on_map")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_focus_on_map")
   (return-type "none")
   (parameters
     '("gboolean" "focus_on_map")
   )
 )
 
-(define-method scroll
-  (of-object "GdkWindow")
-  (c-name "gdk_window_scroll")
-  (return-type "none")
-  (parameters
-    '("gint" "dx")
-    '("gint" "dy")
-  )
-)
-
-(define-method move_region
-  (of-object "GdkWindow")
-  (c-name "gdk_window_move_region")
-  (return-type "none")
-  (parameters
-    '("const-cairo_region_t*" "region")
-    '("gint" "dx")
-    '("gint" "dy")
-  )
-)
-
-(define-method shape_combine_region
-  (of-object "GdkWindow")
-  (c-name "gdk_window_shape_combine_region")
-  (return-type "none")
-  (parameters
-    '("const-cairo_region_t*" "shape_region")
-    '("gint" "offset_x")
-    '("gint" "offset_y")
-  )
-)
-
-(define-method set_child_shapes
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_child_shapes")
-  (return-type "none")
-)
-
-(define-method merge_child_shapes
-  (of-object "GdkWindow")
-  (c-name "gdk_window_merge_child_shapes")
-  (return-type "none")
-)
-
 (define-method input_shape_combine_region
-  (of-object "GdkWindow")
-  (c-name "gdk_window_input_shape_combine_region")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_input_shape_combine_region")
   (return-type "none")
   (parameters
     '("const-cairo_region_t*" "shape_region")
@@ -4165,20 +4070,20 @@
 )
 
 (define-method set_child_input_shapes
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_child_input_shapes")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_child_input_shapes")
   (return-type "none")
 )
 
 (define-method merge_child_input_shapes
-  (of-object "GdkWindow")
-  (c-name "gdk_window_merge_child_input_shapes")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_merge_child_input_shapes")
   (return-type "none")
 )
 
 (define-method set_pass_through
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_pass_through")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_pass_through")
   (return-type "none")
   (parameters
     '("gboolean" "pass_through")
@@ -4186,71 +4091,65 @@
 )
 
 (define-method get_pass_through
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_pass_through")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_pass_through")
   (return-type "gboolean")
 )
 
 (define-method is_visible
-  (of-object "GdkWindow")
-  (c-name "gdk_window_is_visible")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_is_visible")
   (return-type "gboolean")
 )
 
 (define-method is_viewable
-  (of-object "GdkWindow")
-  (c-name "gdk_window_is_viewable")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_is_viewable")
   (return-type "gboolean")
 )
 
 (define-method is_input_only
-  (of-object "GdkWindow")
-  (c-name "gdk_window_is_input_only")
-  (return-type "gboolean")
-)
-
-(define-method is_shaped
-  (of-object "GdkWindow")
-  (c-name "gdk_window_is_shaped")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_is_input_only")
   (return-type "gboolean")
 )
 
 (define-method get_state
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_state")
-  (return-type "GdkWindowState")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_state")
+  (return-type "GdkSurfaceState")
 )
 
 (define-method has_native
-  (of-object "GdkWindow")
-  (c-name "gdk_window_has_native")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_has_native")
   (return-type "gboolean")
 )
 
 (define-method set_type_hint
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_type_hint")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_type_hint")
   (return-type "none")
   (parameters
-    '("GdkWindowTypeHint" "hint")
+    '("GdkSurfaceTypeHint" "hint")
   )
 )
 
 (define-method get_type_hint
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_type_hint")
-  (return-type "GdkWindowTypeHint")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_type_hint")
+  (return-type "GdkSurfaceTypeHint")
 )
 
 (define-method get_modal_hint
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_modal_hint")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_modal_hint")
   (return-type "gboolean")
 )
 
 (define-method set_modal_hint
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_modal_hint")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_modal_hint")
   (return-type "none")
   (parameters
     '("gboolean" "modal")
@@ -4258,8 +4157,8 @@
 )
 
 (define-method set_skip_taskbar_hint
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_skip_taskbar_hint")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_skip_taskbar_hint")
   (return-type "none")
   (parameters
     '("gboolean" "skips_taskbar")
@@ -4267,8 +4166,8 @@
 )
 
 (define-method set_skip_pager_hint
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_skip_pager_hint")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_skip_pager_hint")
   (return-type "none")
   (parameters
     '("gboolean" "skips_pager")
@@ -4276,8 +4175,8 @@
 )
 
 (define-method set_urgency_hint
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_urgency_hint")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_urgency_hint")
   (return-type "none")
   (parameters
     '("gboolean" "urgent")
@@ -4285,30 +4184,18 @@
 )
 
 (define-method set_geometry_hints
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_geometry_hints")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_geometry_hints")
   (return-type "none")
   (parameters
     '("const-GdkGeometry*" "geometry")
-    '("GdkWindowHints" "geom_mask")
+    '("GdkSurfaceHints" "geom_mask")
   )
 )
 
-(define-method get_clip_region
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_clip_region")
-  (return-type "cairo_region_t*")
-)
-
-(define-method get_visible_region
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_visible_region")
-  (return-type "cairo_region_t*")
-)
-
 (define-method begin_draw_frame
-  (of-object "GdkWindow")
-  (c-name "gdk_window_begin_draw_frame")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_begin_draw_frame")
   (return-type "GdkDrawingContext*")
   (parameters
     '("GdkDrawContext*" "context")
@@ -4317,8 +4204,8 @@
 )
 
 (define-method end_draw_frame
-  (of-object "GdkWindow")
-  (c-name "gdk_window_end_draw_frame")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_end_draw_frame")
   (return-type "none")
   (parameters
     '("GdkDrawingContext*" "context")
@@ -4326,8 +4213,8 @@
 )
 
 (define-method set_title
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_title")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_title")
   (return-type "none")
   (parameters
     '("const-gchar*" "title")
@@ -4335,8 +4222,8 @@
 )
 
 (define-method set_role
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_role")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_role")
   (return-type "none")
   (parameters
     '("const-gchar*" "role")
@@ -4344,8 +4231,8 @@
 )
 
 (define-method set_startup_id
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_startup_id")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_startup_id")
   (return-type "none")
   (parameters
     '("const-gchar*" "startup_id")
@@ -4353,17 +4240,17 @@
 )
 
 (define-method set_transient_for
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_transient_for")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_transient_for")
   (return-type "none")
   (parameters
-    '("GdkWindow*" "parent")
+    '("GdkSurface*" "parent")
   )
 )
 
 (define-method set_cursor
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_cursor")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_cursor")
   (return-type "none")
   (parameters
     '("GdkCursor*" "cursor")
@@ -4371,14 +4258,14 @@
 )
 
 (define-method get_cursor
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_cursor")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_cursor")
   (return-type "GdkCursor*")
 )
 
 (define-method set_device_cursor
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_device_cursor")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_device_cursor")
   (return-type "none")
   (parameters
     '("GdkDevice*" "device")
@@ -4387,8 +4274,8 @@
 )
 
 (define-method get_device_cursor
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_device_cursor")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_device_cursor")
   (return-type "GdkCursor*")
   (parameters
     '("GdkDevice*" "device")
@@ -4396,8 +4283,8 @@
 )
 
 (define-method get_user_data
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_user_data")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_user_data")
   (return-type "none")
   (parameters
     '("gpointer*" "data")
@@ -4405,8 +4292,8 @@
 )
 
 (define-method get_geometry
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_geometry")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_geometry")
   (return-type "none")
   (parameters
     '("gint*" "x")
@@ -4417,20 +4304,20 @@
 )
 
 (define-method get_width
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_width")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_width")
   (return-type "int")
 )
 
 (define-method get_height
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_height")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_height")
   (return-type "int")
 )
 
 (define-method get_position
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_position")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_position")
   (return-type "none")
   (parameters
     '("gint*" "x")
@@ -4439,8 +4326,8 @@
 )
 
 (define-method get_origin
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_origin")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_origin")
   (return-type "gint")
   (parameters
     '("gint*" "x")
@@ -4449,8 +4336,8 @@
 )
 
 (define-method get_root_coords
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_root_coords")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_root_coords")
   (return-type "none")
   (parameters
     '("gint" "x")
@@ -4461,8 +4348,8 @@
 )
 
 (define-method coords_to_parent
-  (of-object "GdkWindow")
-  (c-name "gdk_window_coords_to_parent")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_coords_to_parent")
   (return-type "none")
   (parameters
     '("gdouble" "x")
@@ -4473,8 +4360,8 @@
 )
 
 (define-method coords_from_parent
-  (of-object "GdkWindow")
-  (c-name "gdk_window_coords_from_parent")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_coords_from_parent")
   (return-type "none")
   (parameters
     '("gdouble" "parent_x")
@@ -4485,8 +4372,8 @@
 )
 
 (define-method get_root_origin
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_root_origin")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_root_origin")
   (return-type "none")
   (parameters
     '("gint*" "x")
@@ -4495,8 +4382,8 @@
 )
 
 (define-method get_frame_extents
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_frame_extents")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_frame_extents")
   (return-type "none")
   (parameters
     '("GdkRectangle*" "rect")
@@ -4504,15 +4391,15 @@
 )
 
 (define-method get_scale_factor
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_scale_factor")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_scale_factor")
   (return-type "gint")
 )
 
 (define-method get_device_position
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_device_position")
-  (return-type "GdkWindow*")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_device_position")
+  (return-type "GdkSurface*")
   (parameters
     '("GdkDevice*" "device")
     '("gint*" "x")
@@ -4522,9 +4409,9 @@
 )
 
 (define-method get_device_position_double
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_device_position_double")
-  (return-type "GdkWindow*")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_device_position_double")
+  (return-type "GdkSurface*")
   (parameters
     '("GdkDevice*" "device")
     '("gdouble*" "x")
@@ -4534,32 +4421,32 @@
 )
 
 (define-method get_parent
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_parent")
-  (return-type "GdkWindow*")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_parent")
+  (return-type "GdkSurface*")
 )
 
 (define-method get_toplevel
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_toplevel")
-  (return-type "GdkWindow*")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_toplevel")
+  (return-type "GdkSurface*")
 )
 
 (define-method get_children
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_children")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_children")
   (return-type "GList*")
 )
 
 (define-method peek_children
-  (of-object "GdkWindow")
-  (c-name "gdk_window_peek_children")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_peek_children")
   (return-type "GList*")
 )
 
 (define-method get_children_with_user_data
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_children_with_user_data")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_children_with_user_data")
   (return-type "GList*")
   (parameters
     '("gpointer" "user_data")
@@ -4567,14 +4454,14 @@
 )
 
 (define-method get_events
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_events")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_events")
   (return-type "GdkEventMask")
 )
 
 (define-method set_events
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_events")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_events")
   (return-type "none")
   (parameters
     '("GdkEventMask" "event_mask")
@@ -4582,8 +4469,8 @@
 )
 
 (define-method set_device_events
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_device_events")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_device_events")
   (return-type "none")
   (parameters
     '("GdkDevice*" "device")
@@ -4592,8 +4479,8 @@
 )
 
 (define-method get_device_events
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_device_events")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_device_events")
   (return-type "GdkEventMask")
   (parameters
     '("GdkDevice*" "device")
@@ -4601,8 +4488,8 @@
 )
 
 (define-method set_icon_list
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_icon_list")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_icon_list")
   (return-type "none")
   (parameters
     '("GList*" "surfaces")
@@ -4610,8 +4497,8 @@
 )
 
 (define-method set_icon_name
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_icon_name")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_icon_name")
   (return-type "none")
   (parameters
     '("const-gchar*" "name")
@@ -4619,23 +4506,23 @@
 )
 
 (define-method set_group
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_group")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_group")
   (return-type "none")
   (parameters
-    '("GdkWindow*" "leader")
+    '("GdkSurface*" "leader")
   )
 )
 
 (define-method get_group
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_group")
-  (return-type "GdkWindow*")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_group")
+  (return-type "GdkSurface*")
 )
 
 (define-method set_decorations
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_decorations")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_decorations")
   (return-type "none")
   (parameters
     '("GdkWMDecoration" "decorations")
@@ -4643,8 +4530,8 @@
 )
 
 (define-method get_decorations
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_decorations")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_decorations")
   (return-type "gboolean")
   (parameters
     '("GdkWMDecoration*" "decorations")
@@ -4652,8 +4539,8 @@
 )
 
 (define-method set_functions
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_functions")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_functions")
   (return-type "none")
   (parameters
     '("GdkWMFunction" "functions")
@@ -4661,8 +4548,8 @@
 )
 
 (define-method create_similar_surface
-  (of-object "GdkWindow")
-  (c-name "gdk_window_create_similar_surface")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_create_similar_surface")
   (return-type "cairo_surface_t*")
   (parameters
     '("cairo_content_t" "content")
@@ -4672,8 +4559,8 @@
 )
 
 (define-method create_similar_image_surface
-  (of-object "GdkWindow")
-  (c-name "gdk_window_create_similar_image_surface")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_create_similar_image_surface")
   (return-type "cairo_surface_t*")
   (parameters
     '("cairo_format_t" "format")
@@ -4684,56 +4571,56 @@
 )
 
 (define-method beep
-  (of-object "GdkWindow")
-  (c-name "gdk_window_beep")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_beep")
   (return-type "none")
 )
 
 (define-method iconify
-  (of-object "GdkWindow")
-  (c-name "gdk_window_iconify")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_iconify")
   (return-type "none")
 )
 
 (define-method deiconify
-  (of-object "GdkWindow")
-  (c-name "gdk_window_deiconify")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_deiconify")
   (return-type "none")
 )
 
 (define-method stick
-  (of-object "GdkWindow")
-  (c-name "gdk_window_stick")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_stick")
   (return-type "none")
 )
 
 (define-method unstick
-  (of-object "GdkWindow")
-  (c-name "gdk_window_unstick")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_unstick")
   (return-type "none")
 )
 
 (define-method maximize
-  (of-object "GdkWindow")
-  (c-name "gdk_window_maximize")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_maximize")
   (return-type "none")
 )
 
 (define-method unmaximize
-  (of-object "GdkWindow")
-  (c-name "gdk_window_unmaximize")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_unmaximize")
   (return-type "none")
 )
 
 (define-method fullscreen
-  (of-object "GdkWindow")
-  (c-name "gdk_window_fullscreen")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_fullscreen")
   (return-type "none")
 )
 
 (define-method fullscreen_on_monitor
-  (of-object "GdkWindow")
-  (c-name "gdk_window_fullscreen_on_monitor")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_fullscreen_on_monitor")
   (return-type "none")
   (parameters
     '("GdkMonitor*" "monitor")
@@ -4741,8 +4628,8 @@
 )
 
 (define-method set_fullscreen_mode
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_fullscreen_mode")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_fullscreen_mode")
   (return-type "none")
   (parameters
     '("GdkFullscreenMode" "mode")
@@ -4750,20 +4637,20 @@
 )
 
 (define-method get_fullscreen_mode
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_fullscreen_mode")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_fullscreen_mode")
   (return-type "GdkFullscreenMode")
 )
 
 (define-method unfullscreen
-  (of-object "GdkWindow")
-  (c-name "gdk_window_unfullscreen")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_unfullscreen")
   (return-type "none")
 )
 
 (define-method set_keep_above
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_keep_above")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_keep_above")
   (return-type "none")
   (parameters
     '("gboolean" "setting")
@@ -4771,8 +4658,8 @@
 )
 
 (define-method set_keep_below
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_keep_below")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_keep_below")
   (return-type "none")
   (parameters
     '("gboolean" "setting")
@@ -4780,8 +4667,8 @@
 )
 
 (define-method set_opacity
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_opacity")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_opacity")
   (return-type "none")
   (parameters
     '("gdouble" "opacity")
@@ -4789,17 +4676,17 @@
 )
 
 (define-method register_dnd
-  (of-object "GdkWindow")
-  (c-name "gdk_window_register_dnd")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_register_dnd")
   (return-type "none")
 )
 
 (define-method begin_resize_drag
-  (of-object "GdkWindow")
-  (c-name "gdk_window_begin_resize_drag")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_begin_resize_drag")
   (return-type "none")
   (parameters
-    '("GdkWindowEdge" "edge")
+    '("GdkSurfaceEdge" "edge")
     '("gint" "button")
     '("gint" "root_x")
     '("gint" "root_y")
@@ -4808,11 +4695,11 @@
 )
 
 (define-method begin_resize_drag_for_device
-  (of-object "GdkWindow")
-  (c-name "gdk_window_begin_resize_drag_for_device")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_begin_resize_drag_for_device")
   (return-type "none")
   (parameters
-    '("GdkWindowEdge" "edge")
+    '("GdkSurfaceEdge" "edge")
     '("GdkDevice*" "device")
     '("gint" "button")
     '("gint" "root_x")
@@ -4822,8 +4709,8 @@
 )
 
 (define-method begin_move_drag
-  (of-object "GdkWindow")
-  (c-name "gdk_window_begin_move_drag")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_begin_move_drag")
   (return-type "none")
   (parameters
     '("gint" "button")
@@ -4834,8 +4721,8 @@
 )
 
 (define-method begin_move_drag_for_device
-  (of-object "GdkWindow")
-  (c-name "gdk_window_begin_move_drag_for_device")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_begin_move_drag_for_device")
   (return-type "none")
   (parameters
     '("GdkDevice*" "device")
@@ -4847,60 +4734,41 @@
 )
 
 (define-method invalidate_rect
-  (of-object "GdkWindow")
-  (c-name "gdk_window_invalidate_rect")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_invalidate_rect")
   (return-type "none")
   (parameters
     '("const-GdkRectangle*" "rect")
-    '("gboolean" "invalidate_children")
   )
 )
 
 (define-method invalidate_region
-  (of-object "GdkWindow")
-  (c-name "gdk_window_invalidate_region")
-  (return-type "none")
-  (parameters
-    '("const-cairo_region_t*" "region")
-    '("gboolean" "invalidate_children")
-  )
-)
-
-(define-method invalidate_maybe_recurse
-  (of-object "GdkWindow")
-  (c-name "gdk_window_invalidate_maybe_recurse")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_invalidate_region")
   (return-type "none")
   (parameters
     '("const-cairo_region_t*" "region")
-    '("GdkWindowChildFunc" "child_func")
-    '("gpointer" "user_data")
   )
 )
 
-(define-method get_update_area
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_update_area")
-  (return-type "cairo_region_t*")
-)
-
 (define-method freeze_updates
-  (of-object "GdkWindow")
-  (c-name "gdk_window_freeze_updates")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_freeze_updates")
   (return-type "none")
 )
 
 (define-method thaw_updates
-  (of-object "GdkWindow")
-  (c-name "gdk_window_thaw_updates")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_thaw_updates")
   (return-type "none")
 )
 
-(define-function gdk_window_constrain_size
-  (c-name "gdk_window_constrain_size")
+(define-function gdk_surface_constrain_size
+  (c-name "gdk_surface_constrain_size")
   (return-type "none")
   (parameters
     '("GdkGeometry*" "geometry")
-    '("GdkWindowHints" "flags")
+    '("GdkSurfaceHints" "flags")
     '("gint" "width")
     '("gint" "height")
     '("gint*" "new_width")
@@ -4909,8 +4777,8 @@
 )
 
 (define-method set_support_multidevice
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_support_multidevice")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_support_multidevice")
   (return-type "none")
   (parameters
     '("gboolean" "support_multidevice")
@@ -4918,20 +4786,20 @@
 )
 
 (define-method get_support_multidevice
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_support_multidevice")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_support_multidevice")
   (return-type "gboolean")
 )
 
 (define-method get_frame_clock
-  (of-object "GdkWindow")
-  (c-name "gdk_window_get_frame_clock")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_get_frame_clock")
   (return-type "GdkFrameClock*")
 )
 
 (define-method set_opaque_region
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_opaque_region")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_opaque_region")
   (return-type "none")
   (parameters
     '("cairo_region_t*" "region")
@@ -4939,8 +4807,8 @@
 )
 
 (define-method set_shadow_width
-  (of-object "GdkWindow")
-  (c-name "gdk_window_set_shadow_width")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_set_shadow_width")
   (return-type "none")
   (parameters
     '("gint" "left")
@@ -4951,8 +4819,8 @@
 )
 
 (define-method show_window_menu
-  (of-object "GdkWindow")
-  (c-name "gdk_window_show_window_menu")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_show_window_menu")
   (return-type "gboolean")
   (parameters
     '("GdkEvent*" "event")
@@ -4960,8 +4828,8 @@
 )
 
 (define-method create_gl_context
-  (of-object "GdkWindow")
-  (c-name "gdk_window_create_gl_context")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_create_gl_context")
   (return-type "GdkGLContext*")
   (parameters
     '("GError**" "error")
@@ -4969,8 +4837,8 @@
 )
 
 (define-method create_vulkan_context
-  (of-object "GdkWindow")
-  (c-name "gdk_window_create_vulkan_context")
+  (of-object "GdkSurface")
+  (c-name "gdk_surface_create_vulkan_context")
   (return-type "GdkVulkanContext*")
   (parameters
     '("GError**" "error")
@@ -4979,13 +4847,153 @@
 
 
 
-;; From gdkwindowimpl.h
+;; From gdksurfaceimpl.h
+
+(define-function gdk_surface_impl_get_type
+  (c-name "gdk_surface_impl_get_type")
+  (return-type "GType")
+)
+
+
+
+;; From gdktexture.h
+
+(define-function gdk_texture_new_for_pixbuf
+  (c-name "gdk_texture_new_for_pixbuf")
+  (return-type "GdkTexture*")
+  (parameters
+    '("GdkPixbuf*" "pixbuf")
+  )
+)
+
+(define-function gdk_texture_new_from_resource
+  (c-name "gdk_texture_new_from_resource")
+  (return-type "GdkTexture*")
+  (parameters
+    '("const-char*" "resource_path")
+  )
+)
+
+(define-function gdk_texture_new_from_file
+  (c-name "gdk_texture_new_from_file")
+  (return-type "GdkTexture*")
+  (parameters
+    '("GFile*" "file")
+    '("GError**" "error")
+  )
+)
+
+(define-method get_width
+  (of-object "GdkTexture")
+  (c-name "gdk_texture_get_width")
+  (return-type "int")
+)
+
+(define-method get_height
+  (of-object "GdkTexture")
+  (c-name "gdk_texture_get_height")
+  (return-type "int")
+)
+
+(define-method download
+  (of-object "GdkTexture")
+  (c-name "gdk_texture_download")
+  (return-type "none")
+  (parameters
+    '("guchar*" "data")
+    '("gsize" "stride")
+  )
+)
+
+
+
+;; From gdktypes.h
+
+
+
+;; From gdkvulkancontext.h
 
-(define-function gdk_window_impl_get_type
-  (c-name "gdk_window_impl_get_type")
+(define-function gdk_vulkan_error_quark
+  (c-name "gdk_vulkan_error_quark")
+  (return-type "GQuark")
+)
+
+(define-function gdk_vulkan_context_get_type
+  (c-name "gdk_vulkan_context_get_type")
   (return-type "GType")
 )
 
+(define-function gdk_vulkan_strerror
+  (c-name "gdk_vulkan_strerror")
+  (return-type "const-char*")
+  (parameters
+    '("VkResult" "result")
+  )
+)
+
+(define-method get_instance
+  (of-object "GdkVulkanContext")
+  (c-name "gdk_vulkan_context_get_instance")
+  (return-type "VkInstance")
+)
+
+(define-method get_physical_device
+  (of-object "GdkVulkanContext")
+  (c-name "gdk_vulkan_context_get_physical_device")
+  (return-type "VkPhysicalDevice")
+)
+
+(define-method get_device
+  (of-object "GdkVulkanContext")
+  (c-name "gdk_vulkan_context_get_device")
+  (return-type "VkDevice")
+)
+
+(define-method get_queue
+  (of-object "GdkVulkanContext")
+  (c-name "gdk_vulkan_context_get_queue")
+  (return-type "VkQueue")
+)
+
+(define-method get_queue_family_index
+  (of-object "GdkVulkanContext")
+  (c-name "gdk_vulkan_context_get_queue_family_index")
+  (return-type "uint32_t")
+)
+
+(define-method get_image_format
+  (of-object "GdkVulkanContext")
+  (c-name "gdk_vulkan_context_get_image_format")
+  (return-type "VkFormat")
+)
+
+(define-method get_n_images
+  (of-object "GdkVulkanContext")
+  (c-name "gdk_vulkan_context_get_n_images")
+  (return-type "uint32_t")
+)
+
+(define-method get_image
+  (of-object "GdkVulkanContext")
+  (c-name "gdk_vulkan_context_get_image")
+  (return-type "VkImage")
+  (parameters
+    '("guint" "id")
+  )
+)
+
+(define-method get_draw_index
+  (of-object "GdkVulkanContext")
+  (c-name "gdk_vulkan_context_get_draw_index")
+  (return-type "uint32_t")
+)
+
+(define-method get_draw_semaphore
+  (of-object "GdkVulkanContext")
+  (c-name "gdk_vulkan_context_get_draw_semaphore")
+  (return-type "VkSemaphore")
+)
+
 
 
 ;; From keyname-table.h
@@ -5063,113 +5071,123 @@
   (return-type "GType")
 )
 
+(define-function gdk_memory_format_get_type
+  (c-name "gdk_memory_format_get_type")
+  (return-type "GType")
+)
+
 (define-function gdk_subpixel_layout_get_type
   (c-name "gdk_subpixel_layout_get_type")
   (return-type "GType")
 )
 
+(define-function gdk_paintable_flags_get_type
+  (c-name "gdk_paintable_flags_get_type")
+  (return-type "GType")
+)
+
 (define-function gdk_seat_capabilities_get_type
   (c-name "gdk_seat_capabilities_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_byte_order_get_type
-  (c-name "gdk_byte_order_get_type")
+(define-function gdk_surface_type_get_type
+  (c-name "gdk_surface_type_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_modifier_type_get_type
-  (c-name "gdk_modifier_type_get_type")
+(define-function gdk_surface_hints_get_type
+  (c-name "gdk_surface_hints_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_modifier_intent_get_type
-  (c-name "gdk_modifier_intent_get_type")
+(define-function gdk_wm_decoration_get_type
+  (c-name "gdk_wm_decoration_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_grab_status_get_type
-  (c-name "gdk_grab_status_get_type")
+(define-function gdk_wm_function_get_type
+  (c-name "gdk_wm_function_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_grab_ownership_get_type
-  (c-name "gdk_grab_ownership_get_type")
+(define-function gdk_gravity_get_type
+  (c-name "gdk_gravity_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_event_mask_get_type
-  (c-name "gdk_event_mask_get_type")
+(define-function gdk_anchor_hints_get_type
+  (c-name "gdk_anchor_hints_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_gl_error_get_type
-  (c-name "gdk_gl_error_get_type")
+(define-function gdk_surface_edge_get_type
+  (c-name "gdk_surface_edge_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_vulkan_error_get_type
-  (c-name "gdk_vulkan_error_get_type")
+(define-function gdk_fullscreen_mode_get_type
+  (c-name "gdk_fullscreen_mode_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_window_type_hint_get_type
-  (c-name "gdk_window_type_hint_get_type")
+(define-function gdk_surface_state_get_type
+  (c-name "gdk_surface_state_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_axis_use_get_type
-  (c-name "gdk_axis_use_get_type")
+(define-function gdk_byte_order_get_type
+  (c-name "gdk_byte_order_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_axis_flags_get_type
-  (c-name "gdk_axis_flags_get_type")
+(define-function gdk_modifier_type_get_type
+  (c-name "gdk_modifier_type_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_window_type_get_type
-  (c-name "gdk_window_type_get_type")
+(define-function gdk_modifier_intent_get_type
+  (c-name "gdk_modifier_intent_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_window_hints_get_type
-  (c-name "gdk_window_hints_get_type")
+(define-function gdk_grab_status_get_type
+  (c-name "gdk_grab_status_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_wm_decoration_get_type
-  (c-name "gdk_wm_decoration_get_type")
+(define-function gdk_grab_ownership_get_type
+  (c-name "gdk_grab_ownership_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_wm_function_get_type
-  (c-name "gdk_wm_function_get_type")
+(define-function gdk_event_mask_get_type
+  (c-name "gdk_event_mask_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_gravity_get_type
-  (c-name "gdk_gravity_get_type")
+(define-function gdk_gl_error_get_type
+  (c-name "gdk_gl_error_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_anchor_hints_get_type
-  (c-name "gdk_anchor_hints_get_type")
+(define-function gdk_vulkan_error_get_type
+  (c-name "gdk_vulkan_error_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_window_edge_get_type
-  (c-name "gdk_window_edge_get_type")
+(define-function gdk_surface_type_hint_get_type
+  (c-name "gdk_surface_type_hint_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_fullscreen_mode_get_type
-  (c-name "gdk_fullscreen_mode_get_type")
+(define-function gdk_axis_use_get_type
+  (c-name "gdk_axis_use_get_type")
   (return-type "GType")
 )
 
-(define-function gdk_window_state_get_type
-  (c-name "gdk_window_state_get_type")
+(define-function gdk_axis_flags_get_type
+  (c-name "gdk_axis_flags_get_type")
   (return-type "GType")
 )
 
diff --git a/gdk/src/gdk_signals.defs b/gdk/src/gdk_signals.defs
index a30e89c..a2cd89c 100644
--- a/gdk/src/gdk_signals.defs
+++ b/gdk/src/gdk_signals.defs
@@ -500,10 +500,10 @@
   (construct-only #f)
 )
 
-(define-property window
+(define-property surface
   (of-object "GdkDrawContext")
   (prop-type "GParamObject")
-  (docs "The GDK window bound to the context")
+  (docs "The GDK surface bound to the context")
   (readable #t)
   (writable #t)
   (construct-only #t)
@@ -511,10 +511,10 @@
 
 ;; From GdkDrawingContext
 
-(define-property window
+(define-property surface
   (of-object "GdkDrawingContext")
   (prop-type "GParamObject")
-  (docs "The window that created the context")
+  (docs "The surface that created the context")
   (readable #t)
   (writable #t)
   (construct-only #t)
@@ -709,6 +709,20 @@
   (default-value "TRUE")
 )
 
+;; From GdkPaintable
+
+(define-signal invalidate-contents
+  (of-object "GdkPaintable")
+  (return-type "void")
+  (flags "Run Last")
+)
+
+(define-signal invalidate-size
+  (of-object "GdkPaintable")
+  (return-type "void")
+  (flags "Run Last")
+)
+
 ;; From GdkPixbuf
 
 (define-property colorspace
@@ -886,32 +900,10 @@
   (construct-only #t)
 )
 
-;; From GdkTexture
-
-(define-property width
-  (of-object "GdkTexture")
-  (prop-type "GParamInt")
-  (docs "The width of the texture")
-  (readable #t)
-  (writable #t)
-  (construct-only #t)
-  (default-value "1")
-)
-
-(define-property height
-  (of-object "GdkTexture")
-  (prop-type "GParamInt")
-  (docs "The height of the texture")
-  (readable #t)
-  (writable #t)
-  (construct-only #t)
-  (default-value "1")
-)
-
-;; From GdkWindow
+;; From GdkSurface
 
 (define-signal moved-to-rect
-  (of-object "GdkWindow")
+  (of-object "GdkSurface")
   (return-type "void")
   (flags "Run First")
   (parameters
@@ -923,7 +915,7 @@
 )
 
 (define-property cursor
-  (of-object "GdkWindow")
+  (of-object "GdkSurface")
   (prop-type "GParamObject")
   (docs "Cursor")
   (readable #t)
@@ -932,7 +924,7 @@
 )
 
 (define-property display
-  (of-object "GdkWindow")
+  (of-object "GdkSurface")
   (prop-type "GParamObject")
   (docs "Display")
   (readable #t)
@@ -941,13 +933,35 @@
 )
 
 (define-property state
-  (of-object "GdkWindow")
+  (of-object "GdkSurface")
   (prop-type "GParamFlags")
   (docs "State")
   (readable #t)
   (writable #f)
   (construct-only #f)
-  (default-value "GDK_WINDOW_STATE_WITHDRAWN")
+  (default-value "GDK_SURFACE_STATE_WITHDRAWN")
+)
+
+;; From GdkTexture
+
+(define-property width
+  (of-object "GdkTexture")
+  (prop-type "GParamInt")
+  (docs "The width of the texture")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+  (default-value "1")
+)
+
+(define-property height
+  (of-object "GdkTexture")
+  (prop-type "GParamInt")
+  (docs "The height of the texture")
+  (readable #t)
+  (writable #t)
+  (construct-only #t)
+  (default-value "1")
 )
 
 ;; From GdkGLContext
diff --git a/gtk/src/gtk_docs.xml b/gtk/src/gtk_docs.xml
index b881337..9ca0577 100644
--- a/gtk/src/gtk_docs.xml
+++ b/gtk/src/gtk_docs.xml
@@ -1965,12 +1965,6 @@ The #GtkIconSize value that specifies the size of the rendered icon.
 </description>
 </property>
 
-<property name="GtkCellRendererPixbuf:surface">
-<description>
-
-</description>
-</property>
-
 <property name="GtkCellRendererPixbuf:texture">
 <description>
 
@@ -3623,6 +3617,13 @@ The icon name to use for the primary icon for the entry.
 </description>
 </property>
 
+<property name="GtkEntry:primary-icon-paintable">
+<description>
+A #GdkPaintable to use as the primary icon for the entry.
+
+</description>
+</property>
+
 <property name="GtkEntry:primary-icon-sensitive">
 <description>
 Whether the primary icon is sensitive.
@@ -3644,13 +3645,6 @@ The representation which is used for the primary icon of the entry.
 </description>
 </property>
 
-<property name="GtkEntry:primary-icon-texture">
-<description>
-A #GdkTexture to use as the primary icon for the entry.
-
-</description>
-</property>
-
 <property name="GtkEntry:primary-icon-tooltip-markup">
 <description>
 The contents of the tooltip on the primary icon, which is marked up
@@ -3712,6 +3706,13 @@ The icon name to use for the secondary icon for the entry.
 </description>
 </property>
 
+<property name="GtkEntry:secondary-icon-paintable">
+<description>
+A #GdkPaintable to use as the secondary icon for the entry.
+
+</description>
+</property>
+
 <property name="GtkEntry:secondary-icon-sensitive">
 <description>
 Whether the secondary icon is sensitive.
@@ -3733,13 +3734,6 @@ The representation which is used for the secondary icon of the entry.
 </description>
 </property>
 
-<property name="GtkEntry:secondary-icon-texture">
-<description>
-A #GtkTexture to use as the secondary icon for the entry.
-
-</description>
-</property>
-
 <property name="GtkEntry:secondary-icon-tooltip-markup">
 <description>
 The contents of the tooltip on the secondary icon, which is marked up
@@ -5247,26 +5241,46 @@ Whether to show an entry to change the preview text.
 This enumeration specifies the granularity of font selection
 that is desired in a font chooser.
 
+This enumeration may be extended in the future; applications should
+ignore unknown values.
+
 </description>
 <parameters>
-<parameter name="GTK_FONT_CHOOSER_LEVEL_FONT">
-<parameter_description> Select an individual
-font, including a size. An example would be: &quot;Arial Bold 11&quot;
+<parameter name="GTK_FONT_CHOOSER_LEVEL_FAMILY">
+<parameter_description> Allow selecting a font family
 </parameter_description>
 </parameter>
-<parameter name="GTK_FONT_CHOOSER_LEVEL_FACE">
-<parameter_description> Select a font face,
-without a size. An example would be: &quot;Arial Bold&quot;
+<parameter name="GTK_FONT_CHOOSER_LEVEL_STYLE">
+<parameter_description> Allow selecting a specific font face
 </parameter_description>
 </parameter>
-<parameter name="GTK_FONT_CHOOSER_LEVEL_FAMILY">
-<parameter_description> Select a font family, without
-specifying the face. An example would be: &quot;Arial&quot;
+<parameter name="GTK_FONT_CHOOSER_LEVEL_SIZE">
+<parameter_description> Allow selecting a specific font size
+</parameter_description>
+</parameter>
+<parameter name="GTK_FONT_CHOOSER_LEVEL_VARIATION">
+<parameter_description> Allow changing OpenType font variation axes
+</parameter_description>
+</parameter>
+<parameter name="GTK_FONT_CHOOSER_LEVEL_FEATURES">
+<parameter_description> Allow selecting specific OpenType font features
 </parameter_description>
 </parameter>
 </parameters>
 </enum>
 
+<property name="GtkFontChooserWidget:tweak-action">
+<description>
+A toggle action that can be used to switch to the tweak page
+of the font chooser widget, which lets the user tweak the
+OpenType features and variation axes of the selected font.
+
+The action will be enabled or disabled depending on whether
+the selected font has any features or axes.
+
+</description>
+</property>
+
 <signal name="GtkGLArea::create-context">
 <description>
 The ::create-context signal is emitted when the widget is being
@@ -6471,6 +6485,13 @@ An enum for determining where a dropped item goes.
 </parameters>
 </enum>
 
+<property name="GtkImage:can-shrink">
+<description>
+If the #GtkImage can be made smaller than the image it contains.
+
+</description>
+</property>
+
 <property name="GtkImage:gicon">
 <description>
 The GIcon displayed in the GtkImage. For themed icons,
@@ -6488,6 +6509,14 @@ changed, the image will be updated automatically.
 </description>
 </property>
 
+<property name="GtkImage:keep-aspect-ratio">
+<description>
+Whether the GtkImage will render its contents trying to preserve the aspect
+ratio of the contents.
+
+</description>
+</property>
+
 <property name="GtkImage:pixel-size">
 <description>
 The &quot;pixel-size&quot; property can be used to specify a fixed size
@@ -6519,8 +6548,8 @@ and %GTK_IMAGE_GICON.
 Describes the image data representation used by a #GtkImage. If you
 want to get the image from the widget, you can only get the
 currently-stored representation. e.g.  if the
-gtk_image_get_storage_type() returns #GTK_IMAGE_SURFACE, then you can
-call gtk_image_get_surface().  For empty images, you can request any
+gtk_image_get_storage_type() returns #GTK_IMAGE_PAINTABLE, then you can
+call gtk_image_get_paintable().  For empty images, you can request any
 storage type (call any of the &quot;get&quot; functions), but they will all
 return %NULL values.
 
@@ -6540,14 +6569,9 @@ This image type was added in GTK+ 2.6
 This image type was added in GTK+ 2.14
 </parameter_description>
 </parameter>
-<parameter name="GTK_IMAGE_SURFACE">
-<parameter_description> the widget contains a #cairo_surface_t.
-This image type was added in GTK+ 3.10
-</parameter_description>
-</parameter>
-<parameter name="GTK_IMAGE_TEXTURE">
-<parameter_description> the widget contains a #GdkTexture.
-This image type was added in GTK+ 3.94
+<parameter name="GTK_IMAGE_PAINTABLE">
+<parameter_description> the widget contains a #GdkPaintable.
+This image type was added in GTK+ 3.96
 </parameter_description>
 </parameter>
 </parameters>
@@ -7295,6 +7319,19 @@ The default bindings for this signal is Ctrl-Shift-a.
 <return></return>
 </signal>
 
+<signal name="GtkListBoxRow::activate">
+<description>
+This is a keybinding signal, which will cause this row to be activated.
+
+If you want to be notified when the user activates a row (by key or not),
+use the #GtkListBox::row-activated signal on the row’s parent #GtkListBox.
+
+</description>
+<parameters>
+</parameters>
+<return></return>
+</signal>
+
 <property name="GtkListBoxRow:activatable">
 <description>
 The property determines whether the #GtkListBox::row-activated
@@ -7310,6 +7347,119 @@ The property determines whether this row can be selected.
 </description>
 </property>
 
+<property name="GtkMediaControls:media-stream">
+<description>
+The media-stream managed by this object or %NULL if none.
+
+</description>
+</property>
+
+<property name="GtkMediaFile:file">
+<description>
+The file being played back or %NULL if not playing a file.
+
+</description>
+</property>
+
+<property name="GtkMediaFile:input-stream">
+<description>
+The stream being played back or %NULL if not playing a stream, like when playing a file.
+
+</description>
+</property>
+
+<property name="GtkMediaStream:duration">
+<description>
+The stream's duration in microseconds or 0 if unknown.
+
+</description>
+</property>
+
+<property name="GtkMediaStream:ended">
+<description>
+Set when playback has finished.
+
+</description>
+</property>
+
+<property name="GtkMediaStream:error">
+<description>
+%NULL for a properly working stream or the #GError that the stream is in.
+
+</description>
+</property>
+
+<property name="GtkMediaStream:has-audio">
+<description>
+Whether the stream contains audio
+
+</description>
+</property>
+
+<property name="GtkMediaStream:has-video">
+<description>
+Whether the stream contains video
+
+</description>
+</property>
+
+<property name="GtkMediaStream:loop">
+<description>
+Try to restart the media from the beginning once it ended.
+
+</description>
+</property>
+
+<property name="GtkMediaStream:muted">
+<description>
+Whether the audio stream should be muted.
+
+</description>
+</property>
+
+<property name="GtkMediaStream:playing">
+<description>
+Whether the stream is currently playing.
+
+</description>
+</property>
+
+<property name="GtkMediaStream:prepared">
+<description>
+Whether the stream has finished initializing and existence of
+audio and video is known.
+
+</description>
+</property>
+
+<property name="GtkMediaStream:seekable">
+<description>
+Set unless the stream is known to not support seeking.
+
+</description>
+</property>
+
+<property name="GtkMediaStream:seeking">
+<description>
+Set while a seek is in progress.
+
+</description>
+</property>
+
+<property name="GtkMediaStream:timestamp">
+<description>
+The current presentation timestamp in microseconds.
+
+</description>
+</property>
+
+<property name="GtkMediaStream:volume">
+<description>
+Volume of the audio stream.
+
+</description>
+</property>
+
 <signal name="GtkMenu::move-scroll">
 <description>
 
@@ -7433,7 +7583,7 @@ use gtk_menu_attach_to_widget() directly.
 
 <property name="GtkMenu:menu-type-hint">
 <description>
-The #GdkWindowTypeHint to use for the menu's #GdkWindow.
+The #GdkSurfaceTypeHint to use for the menu's #GdkSurface.
 
 See gtk_menu_popup_at_rect (), gtk_menu_popup_at_widget (),
 gtk_menu_popup_at_pointer (), #GtkMenu:anchor-hints,
@@ -10793,7 +10943,7 @@ last char. 600 is a good value for enabling it.
 <description>
 When %TRUE, keyboard navigation and other input-related errors
 will cause a beep. Since the error bell is implemented using
-gdk_window_beep(), the windowing system may offer ways to
+gdk_surface_beep(), the windowing system may offer ways to
 configure the error bell in many ways, such as flashing the
 window or similar visual effects.
 
@@ -11431,7 +11581,7 @@ int value;
 adjustment = gtk_spin_button_get_adjustment (spin);
 value = (int)gtk_adjustment_get_value (adjustment);
 text = g_strdup_printf (&quot;%02d&quot;, value);
-gtk_entry_set_text (GTK_ENTRY (spin), text);
+gtk_spin_button_set_text (spin, text):
 g_free (text);
 
 return TRUE;
@@ -13938,6 +14088,20 @@ See also gtk_print_settings_set_paper_width().
 </parameters>
 </enum>
 
+<property name="GtkVideo:file">
+<description>
+The file played by this video if the video is playing a file.
+
+</description>
+</property>
+
+<property name="GtkVideo:media-stream">
+<description>
+The media-stream played
+
+</description>
+</property>
+
 <property name="GtkVolumeButton:use-symbolic">
 <description>
 Whether to use symbolic icons as the icons. Note that
@@ -14068,7 +14232,7 @@ widget was not associated with a screen before
 <description>
 The ::drag-begin signal is emitted on the drag source when a drag is
 started. A typical reason to connect to this signal is to set up a
-custom drag icon with e.g. gtk_drag_source_set_icon_surface().
+custom drag icon with e.g. gtk_drag_source_set_icon_paintable().
 
 Note that some widgets set up a drag icon in the default handler of
 this signal, so you may have to use g_signal_connect_after() to
@@ -14638,7 +14802,7 @@ if the widget was previously unanchored
 The ::key-press-event signal is emitted when a key is pressed. The signal
 emission will reoccur at the key-repeat rate when the key is kept pressed.
 
-To receive this signal, the #GdkWindow associated to the widget needs
+To receive this signal, the #GdkSurface associated to the widget needs
 to enable the #GDK_KEY_PRESS_MASK mask.
 
 This signal will be sent to the grab widget if there is one.
@@ -14664,7 +14828,7 @@ This signal will be sent to the grab widget if there is one.
 <description>
 The ::key-release-event signal is emitted when a key is released.
 
-To receive this signal, the #GdkWindow associated to the widget needs
+To receive this signal, the #GdkSurface associated to the widget needs
 to enable the #GDK_KEY_RELEASE_MASK mask.
 
 This signal will be sent to the grab widget if there is one.
@@ -14839,7 +15003,7 @@ been emitted, relative to @widget's top
 <signal name="GtkWidget::realize">
 <description>
 The ::realize signal is emitted when @widget is associated with a
-#GdkWindow, which means that gtk_widget_realize() has been called or the
+#GdkSurface, which means that gtk_widget_realize() has been called or the
 widget has been mapped (that is, it is going to be drawn).
 
 </description>
@@ -14949,7 +15113,7 @@ used to, for example, stop an animation on the widget.
 
 <signal name="GtkWidget::unrealize">
 <description>
-The ::unrealize signal is emitted when the #GdkWindow associated with
+The ::unrealize signal is emitted when the #GdkSurface associated with
 @widget is destroyed, which means that gtk_widget_unrealize() has been
 called or the widget has been unmapped (that is, it is going to be
 hidden).
@@ -15100,6 +15264,13 @@ more details about widget scaling.
 </description>
 </property>
 
+<property name="GtkWidget:surface">
+<description>
+The widget's surface if it is realized, %NULL otherwise.
+
+</description>
+</property>
+
 <property name="GtkWidget:tooltip-markup">
 <description>
 Sets the text of tooltip to be the given string, which is marked up
@@ -15155,13 +15326,6 @@ Whether to use the #GtkWidget:vexpand property. See gtk_widget_get_vexpand_set()
 </description>
 </property>
 
-<property name="GtkWidget:window">
-<description>
-The widget's window if it is realized, %NULL otherwise.
-
-</description>
-</property>
-
 <signal name="GtkWindow::activate-default">
 <description>
 The ::activate-default signal is a
@@ -15649,7 +15813,7 @@ Retrieves the license set using gtk_about_dialog_set_license_type()
 
 <function name="gtk_about_dialog_get_logo">
 <description>
-Returns the texture displayed as logo in the about dialog.
+Returns the paintable displayed as logo in the about dialog.
 
 
 </description>
@@ -15659,8 +15823,8 @@ Returns the texture displayed as logo in the about dialog.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the texture displayed as logo. The
-texture is owned by the about dialog. If you want to keep a
+<return> the paintable displayed as logo. The
+paintable is owned by the about dialog. If you want to keep a
 reference to it, you have to call g_object_ref() on it.
 </return>
 </function>
@@ -15964,7 +16128,7 @@ gtk_window_set_default_icon() will be used.
 </parameter_description>
 </parameter>
 <parameter name="logo">
-<parameter_description> a #GdkTexture, or %NULL
+<parameter_description> a #GdkPaintable, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
@@ -27209,42 +27373,6 @@ The array must be freed with g_free().
 </return>
 </function>
 
-<function name="gtk_container_focus_sort">
-<description>
-Sorts @children in the correct order for focusing with
-direction type @direction.
-
-
-</description>
-<parameters>
-<parameter name="container">
-<parameter_description> a #GtkContainer
-</parameter_description>
-</parameter>
-<parameter name="children">
-<parameter_description>  a list of descendents of @container (they don't
-have to be direct children)
-</parameter_description>
-</parameter>
-<parameter name="direction">
-<parameter_description> focus direction
-</parameter_description>
-</parameter>
-<parameter name="old_focus">
-<parameter_description> widget to use for the starting position, or %NULL
-to determine this automatically.
-(Note, this argument isn’t used for GTK_DIR_TAB_*,
-which is the only @direction we use currently,
-so perhaps this argument should be removed)
-</parameter_description>
-</parameter>
-</parameters>
-<return> a copy of @children, sorted in correct focusing order,
-with children that aren’t suitable for focusing in this direction
-removed.
-</return>
-</function>
-
 <function name="gtk_container_forall">
 <description>
 Invokes @callback on each direct child of @container, including
@@ -27939,6 +28067,51 @@ structure if the reference count reaches 0.
 <return></return>
 </function>
 
+<function name="gtk_css_value_get_dynamic_value">
+<description>
+Gets the dynamic value for a given timestamp. If @monotonic_time is 0,
+the default value is returned.
+
+See gtk_css_value_is_dynamic() for details about dynamic values.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a #GtkCssValue
+</parameter_description>
+</parameter>
+<parameter name="monotonic_time">
+<parameter_description> the timestamp for which to get the dynamic value
+</parameter_description>
+</parameter>
+</parameters>
+<return> The dynamic value for @value at the given
+timestamp
+</return>
+</function>
+
+<function name="gtk_css_value_is_dynamic">
+<description>
+A &quot;dynamic&quot; value has a different value at different times. This means that
+the value needs to be animated when time is progressing.
+
+Examples of dynamic values are animated images, such as videos or dynamic shaders.
+
+Use gtk_css_value_get_dynamic_value() to get the value for a given timestamp.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a #GtkCssValue
+</parameter_description>
+</parameter>
+</parameters>
+<return>%TRUE if the value is dynamic
+</return>
+</function>
+
 <function name="gtk_custom_paper_unix_dialog_new">
 <description>
 Creates a new custom paper dialog.
@@ -28670,7 +28843,7 @@ guint time)
 {
 GdkModifierType mask;
 
-gdk_window_get_pointer (gtk_widget_get_window (widget),
+gdk_surface_get_pointer (gtk_widget_get_surface (widget),
 NULL, NULL, &amp;mask);
 if (mask &amp; GDK_CONTROL_MASK)
 gdk_drag_status (context, GDK_ACTION_COPY, time);
@@ -28931,33 +29104,7 @@ with a context for the source side of a drag)
 <return></return>
 </function>
 
-<function name="gtk_drag_set_icon_surface">
-<description>
-Sets @surface as the icon for a given drag. GTK+ retains
-references for the arguments, and will release them when
-they are no longer needed.
-
-To position the surface relative to the mouse, use
-cairo_surface_set_device_offset() on @surface. The mouse
-cursor will be positioned at the (0,0) coordinate of the
-surface.
-
-</description>
-<parameters>
-<parameter name="context">
-<parameter_description> the context for a drag (This must be called
-with a context for the source side of a drag)
-</parameter_description>
-</parameter>
-<parameter name="surface">
-<parameter_description> the surface to use as icon
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="gtk_drag_set_icon_texture">
+<function name="gtk_drag_set_icon_paintable">
 <description>
 Sets @texture as the icon for a given drag. GTK+ retains
 references for the arguments, and will release them when
@@ -28974,8 +29121,8 @@ mouse cursor.
 with a context for the source side of a drag)
 </parameter_description>
 </parameter>
-<parameter name="texture">
-<parameter_description> the #GdkTexture to use as icon
+<parameter name="paintable">
+<parameter_description> the #GdkPaintable to use as icon
 </parameter_description>
 </parameter>
 <parameter name="hot_x">
@@ -29157,11 +29304,10 @@ to a themed icon. See the docs for #GtkIconTheme for more details.
 <return></return>
 </function>
 
-<function name="gtk_drag_source_set_icon_surface">
+<function name="gtk_drag_source_set_icon_paintable">
 <description>
-Sets the icon that will be used for drags from a particular widget
-from a cairo surface. GTK+ retains a reference for @surface and will
-release it when it is no longer needed.
+Sets the icon that will be used for drags from a particular source
+to @paintable.
 
 </description>
 <parameters>
@@ -29169,8 +29315,8 @@ release it when it is no longer needed.
 <parameter_description> a #GtkWidget
 </parameter_description>
 </parameter>
-<parameter name="surface">
-<parameter_description> the cairo surface for the drag icon
+<parameter name="paintable">
+<parameter_description> A #GdkPaintable
 </parameter_description>
 </parameter>
 </parameters>
@@ -30616,7 +30762,7 @@ signal handler.
 <description>
 Retrieves the #GIcon used for the icon, or %NULL if there is
 no icon or if the icon was set by some other method (e.g., by
-texture or icon name).
+paintable or icon name).
 
 
 </description>
@@ -30639,7 +30785,7 @@ or if the icon is not a #GIcon
 <description>
 Retrieves the icon name used for the icon, or %NULL if there is
 no icon or if the icon was set by some other method (e.g., by
-texture or gicon).
+paintable or gicon).
 
 
 </description>
@@ -30658,15 +30804,17 @@ wasn’t set from an icon name
 </return>
 </function>
 
-<function name="gtk_entry_get_icon_sensitive">
+<function name="gtk_entry_get_icon_paintable">
 <description>
-Returns whether the icon appears sensitive or insensitive.
+Retrieves the #GdkPaintable used for the icon.
+
+If no #GdkPaintable was used for the icon, %NULL is returned.
 
 
 </description>
 <parameters>
 <parameter name="entry">
-<parameter_description> a #GtkEntry
+<parameter_description> A #GtkEntry
 </parameter_description>
 </parameter>
 <parameter name="icon_pos">
@@ -30674,15 +30822,14 @@ Returns whether the icon appears sensitive or insensitive.
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if the icon is sensitive.
+<return> A #GdkPaintable, or %NULL if no icon is
+set for this position or the icon set is not a #GdkPaintable.
 </return>
 </function>
 
-<function name="gtk_entry_get_icon_storage_type">
+<function name="gtk_entry_get_icon_sensitive">
 <description>
-Gets the type of representation being used by the icon
-to store image data. If the icon has no image data,
-the return value will be %GTK_IMAGE_EMPTY.
+Returns whether the icon appears sensitive or insensitive.
 
 
 </description>
@@ -30696,21 +30843,21 @@ the return value will be %GTK_IMAGE_EMPTY.
 </parameter_description>
 </parameter>
 </parameters>
-<return> image representation being used
+<return> %TRUE if the icon is sensitive.
 </return>
 </function>
 
-<function name="gtk_entry_get_icon_texture">
+<function name="gtk_entry_get_icon_storage_type">
 <description>
-Retrieves the #GdkTexture used for the icon.
-
-If no #GdkTexture was used for the icon, %NULL is returned.
+Gets the type of representation being used by the icon
+to store image data. If the icon has no image data,
+the return value will be %GTK_IMAGE_EMPTY.
 
 
 </description>
 <parameters>
 <parameter name="entry">
-<parameter_description> A #GtkEntry
+<parameter_description> a #GtkEntry
 </parameter_description>
 </parameter>
 <parameter name="icon_pos">
@@ -30718,8 +30865,7 @@ If no #GdkTexture was used for the icon, %NULL is returned.
 </parameter_description>
 </parameter>
 </parameters>
-<return> A #GdkTexture, or %NULL if no icon is
-set for this position or the icon set is not a #GdkTexture.
+<return> image representation being used
 </return>
 </function>
 
@@ -31450,11 +31596,11 @@ If @icon_name is %NULL, no icon will be shown in the specified position.
 <return></return>
 </function>
 
-<function name="gtk_entry_set_icon_from_texture">
+<function name="gtk_entry_set_icon_from_paintable">
 <description>
-Sets the icon shown in the specified position using a #GdkTexture
+Sets the icon shown in the specified position using a #GdkPaintable
 
-If @texture is %NULL, no icon will be shown in the specified position.
+If @paintable is %NULL, no icon will be shown in the specified position.
 
 </description>
 <parameters>
@@ -31466,8 +31612,8 @@ If @texture is %NULL, no icon will be shown in the specified position.
 <parameter_description> Icon position
 </parameter_description>
 </parameter>
-<parameter name="texture">
-<parameter_description> A #GdkTexture, or %NULL
+<parameter name="paintable">
+<parameter_description> A #GdkPaintable, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
@@ -35714,7 +35860,7 @@ must not be modified or freed.
 
 <function name="gtk_frame_get_label_align">
 <description>
-Retrieves the X and Y alignment of the frame’s label. See
+Retrieves the X alignment of the frame’s label. See
 gtk_frame_set_label_align().
 
 </description>
@@ -35723,16 +35869,6 @@ gtk_frame_set_label_align().
 <parameter_description> a #GtkFrame
 </parameter_description>
 </parameter>
-<parameter name="xalign">
-<parameter_description> location to store X alignment of
-frame’s label, or %NULL
-</parameter_description>
-</parameter>
-<parameter name="yalign">
-<parameter_description> location to store X alignment of
-frame’s label, or %NULL
-</parameter_description>
-</parameter>
 </parameters>
 <return></return>
 </function>
@@ -35810,8 +35946,8 @@ new #GtkLabel with that text and adds it as the #GtkFrame:label-widget.
 
 <function name="gtk_frame_set_label_align">
 <description>
-Sets the alignment of the frame widget’s label. The
-default values for a newly created frame are 0.0 and 0.5.
+Sets the X alignment of the frame widget’s label. The
+default value for a newly created frame is 0.0.
 
 </description>
 <parameters>
@@ -35825,13 +35961,6 @@ of the widget. A value of 0.0 represents left alignment;
 1.0 represents right alignment.
 </parameter_description>
 </parameter>
-<parameter name="yalign">
-<parameter_description> The y alignment of the label. A value of 0.0 aligns under 
-the frame; 1.0 aligns above the frame. If the values are exactly
-0.0 or 1.0 the gap in the frame won’t be painted because the label
-will be completely above or below the frame.
-</parameter_description>
-</parameter>
 </parameters>
 <return></return>
 </function>
@@ -38389,43 +38518,6 @@ to the icon.
 </return>
 </function>
 
-<function name="gtk_icon_info_load_surface">
-<description>
-Renders an icon previously looked up in an icon theme using
-gtk_icon_theme_lookup_icon(); the size will be based on the size
-passed to gtk_icon_theme_lookup_icon(). Note that the resulting
-surface may not be exactly this size; an icon theme may have icons
-that differ slightly from their nominal sizes, and in addition GTK+
-will avoid scaling icons that it considers sufficiently close to the
-requested size or for which the source image would have to be scaled
-up too far. (This maintains sharpness.). This behaviour can be changed
-by passing the %GTK_ICON_LOOKUP_FORCE_SIZE flag when obtaining
-the #GtkIconInfo. If this flag has been specified, the pixbuf
-returned by this function will be scaled to the exact size.
-
-
-</description>
-<parameters>
-<parameter name="icon_info">
-<parameter_description> a #GtkIconInfo from gtk_icon_theme_lookup_icon()
-</parameter_description>
-</parameter>
-<parameter name="for_window">
-<parameter_description> #GdkWindow to optimize drawing for, or %NULL
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> location for error information on failure, or %NULL
-</parameter_description>
-</parameter>
-</parameters>
-<return> the rendered icon; this may be a newly
-created icon or a new reference to an internal icon, so you must
-not modify the icon. Use cairo_surface_destroy() to release your
-reference to the icon.
-</return>
-</function>
-
 <function name="gtk_icon_info_load_symbolic">
 <description>
 Loads an icon, modifying it to match the system colours for the foreground,
@@ -39137,60 +39229,6 @@ your reference to the icon. %NULL if the icon isn’t found.
 </return>
 </function>
 
-<function name="gtk_icon_theme_load_surface">
-<description>
-Looks up an icon in an icon theme for a particular window scale,
-scales it to the given size and renders it into a cairo surface. This is a
-convenience function; if more details about the icon are needed,
-use gtk_icon_theme_lookup_icon() followed by
-gtk_icon_info_load_surface().
-
-Note that you probably want to listen for icon theme changes and
-update the icon. This is usually done by connecting to the
-GtkWidget::style-set signal.
-
-
-</description>
-<parameters>
-<parameter name="icon_theme">
-<parameter_description> a #GtkIconTheme
-</parameter_description>
-</parameter>
-<parameter name="icon_name">
-<parameter_description> the name of the icon to lookup
-</parameter_description>
-</parameter>
-<parameter name="size">
-<parameter_description> the desired icon size. The resulting icon may not be
-exactly this size; see gtk_icon_info_load_icon().
-</parameter_description>
-</parameter>
-<parameter name="scale">
-<parameter_description> desired scale
-</parameter_description>
-</parameter>
-<parameter name="for_window">
-<parameter_description> #GdkWindow to optimize drawing for, or %NULL
-</parameter_description>
-</parameter>
-<parameter name="flags">
-<parameter_description> flags modifying the behavior of the icon lookup
-</parameter_description>
-</parameter>
-<parameter name="error">
-<parameter_description> Location to store error information on failure,
-or %NULL.
-</parameter_description>
-</parameter>
-</parameters>
-<return> the rendered icon; this may be
-a newly created icon or a new reference to an internal icon, so
-you must not modify the icon. Use cairo_surface_destroy() to
-release your reference to the icon. %NULL if the icon isn’t
-found.
-</return>
-</function>
-
 <function name="gtk_icon_theme_lookup_by_gicon">
 <description>
 Looks up an icon and returns a #GtkIconInfo containing information
@@ -39199,7 +39237,7 @@ into a pixbuf using gtk_icon_info_load_icon().
 
 When rendering on displays with high pixel densities you should not
 use a @size multiplied by the scaling factor returned by functions
-like gdk_window_get_scale_factor(). Instead, you should use
+like gdk_surface_get_scale_factor(). Instead, you should use
 gtk_icon_theme_lookup_by_gicon_for_scale(), as the assets loaded
 for a given scaling factor may be different.
 
@@ -39275,7 +39313,7 @@ combines these two steps if all you need is the pixbuf.)
 
 When rendering on displays with high pixel densities you should not
 use a @size multiplied by the scaling factor returned by functions
-like gdk_window_get_scale_factor(). Instead, you should use
+like gdk_surface_get_scale_factor(). Instead, you should use
 gtk_icon_theme_lookup_icon_for_scale(), as the assets loaded
 for a given scaling factor may be different.
 
@@ -41210,6 +41248,22 @@ Resets the image to be empty.
 <return></return>
 </function>
 
+<function name="gtk_image_get_can_shrink">
+<description>
+Gets the value set via gtk_image_set_can_shrink().
+
+
+</description>
+<parameters>
+<parameter name="image">
+<parameter_description> a #GtkImage
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the image can be made smaller than its contents
+</return>
+</function>
+
 <function name="gtk_image_get_gicon">
 <description>
 Gets the #GIcon and size being displayed by the #GtkImage.
@@ -41274,9 +41328,9 @@ Gets the icon size used by the @image when rendering icons.
 </return>
 </function>
 
-<function name="gtk_image_get_pixel_size">
+<function name="gtk_image_get_keep_aspect_ratio">
 <description>
-Gets the pixel size used for named icons.
+Gets the value set via gtk_image_set_keep_aspect_ratio().
 
 
 </description>
@@ -41286,15 +41340,17 @@ Gets the pixel size used for named icons.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the pixel size used for named icons.
+<return> %TRUE if the image tries to keep the contents' aspect ratio
 </return>
 </function>
 
-<function name="gtk_image_get_storage_type">
+<function name="gtk_image_get_paintable">
 <description>
-Gets the type of representation being used by the #GtkImage
-to store image data. If the #GtkImage has no image data,
-the return value will be %GTK_IMAGE_EMPTY.
+Gets the image #GdkPaintable being displayed by the #GtkImage.
+The storage type of the image must be %GTK_IMAGE_EMPTY or
+%GTK_IMAGE_PAINTABLE (see gtk_image_get_storage_type()).
+The caller of this function does not own a reference to the
+returned paintable.
 
 
 </description>
@@ -41304,17 +41360,14 @@ the return value will be %GTK_IMAGE_EMPTY.
 </parameter_description>
 </parameter>
 </parameters>
-<return> image representation being used
+<return> the displayed paintable, or %NULL if
+the image is empty
 </return>
 </function>
 
-<function name="gtk_image_get_surface">
+<function name="gtk_image_get_pixel_size">
 <description>
-Gets the image #cairo_surface_t being displayed by the #GtkImage.
-The storage type of the image must be %GTK_IMAGE_EMPTY or
-%GTK_IMAGE_SURFACE (see gtk_image_get_storage_type()).
-The caller of this function does not own a reference to the
-returned surface.
+Gets the pixel size used for named icons.
 
 
 </description>
@@ -41324,18 +41377,15 @@ returned surface.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the displayed surface, or %NULL if
-the image is empty
+<return> the pixel size used for named icons.
 </return>
 </function>
 
-<function name="gtk_image_get_texture">
+<function name="gtk_image_get_storage_type">
 <description>
-Gets the image #GdkTexture being displayed by the #GtkImage.
-The storage type of the image must be %GTK_IMAGE_EMPTY or
-%GTK_IMAGE_TEXTURE (see gtk_image_get_storage_type()).
-The caller of this function does not own a reference to the
-returned texture.
+Gets the type of representation being used by the #GtkImage
+to store image data. If the #GtkImage has no image data,
+the return value will be %GTK_IMAGE_EMPTY.
 
 
 </description>
@@ -41345,8 +41395,7 @@ returned texture.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the displayed texture, or %NULL if
-the image is empty
+<return> image representation being used
 </return>
 </function>
 
@@ -41435,6 +41484,28 @@ the icon size.
 </return>
 </function>
 
+<function name="gtk_image_new_from_paintable">
+<description>
+Creates a new #GtkImage displaying @paintable.
+The #GtkImage does not assume a reference to the
+paintable; you still need to unref it if you own references.
+#GtkImage will add its own reference rather than adopting yours.
+
+The #GtkImage will track changes to the @paintable and update
+its size and contents in response to it.
+
+
+</description>
+<parameters>
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GtkImage
+</return>
+</function>
+
 <function name="gtk_image_new_from_pixbuf">
 <description>
 Creates a new #GtkImage displaying @pixbuf.
@@ -41488,46 +41559,30 @@ displaying the file.
 </return>
 </function>
 
-<function name="gtk_image_new_from_surface">
+<function name="gtk_image_set_can_shrink">
 <description>
-Creates a new #GtkImage displaying @surface.
-The #GtkImage does not assume a reference to the
-surface; you still need to unref it if you own references.
-#GtkImage will add its own reference rather than adopting yours.
+If set to %TRUE, the @image can be made smaller than its contents.
+The contents will be scaled down when rendering.
+
+If you want to still force a minimum size manually, consider using
+gtk_widget_set_size_request().
 
+Also of note is that a similar function for growing does not exist
+because the grow behavior can be controlled via
+gtk_widget_set_halign() and gtk_widget_set_valign().
 
 </description>
 <parameters>
-<parameter name="surface">
-<parameter_description> a #cairo_surface_t, or %NULL
+<parameter name="image">
+<parameter_description> a #GtkImage
 </parameter_description>
 </parameter>
-</parameters>
-<return> a new #GtkImage
-</return>
-</function>
-
-<function name="gtk_image_new_from_texture">
-<description>
-Creates a new #GtkImage displaying @texture.
-The #GtkImage does not assume a reference to the
-texture; you still need to unref it if you own references.
-#GtkImage will add its own reference rather than adopting yours.
-
-Note that this function just creates an #GtkImage from the texture. The
-#GtkImage created will not react to state changes. Should you want that, 
-you should use gtk_image_new_from_icon_name().
-
-
-</description>
-<parameters>
-<parameter name="texture">
-<parameter_description> a #GdkTexture, or %NULL
+<parameter name="can_shrink">
+<parameter_description> if the @image can be made smaller than its contents
 </parameter_description>
 </parameter>
 </parameters>
-<return> a new #GtkImage
-</return>
+<return></return>
 </function>
 
 <function name="gtk_image_set_from_file">
@@ -41592,13 +41647,9 @@ the icon size.
 <return></return>
 </function>
 
-<function name="gtk_image_set_from_pixbuf">
+<function name="gtk_image_set_from_paintable">
 <description>
-See gtk_image_new_from_pixbuf() for details.
-
-Note: This is a helper for gtk_image_set_from_texture(), and you can't
-get back the exact pixbuf once this is called, only a texture.
-
+See gtk_image_new_from_paintable() for details.
 
 </description>
 <parameters>
@@ -41606,17 +41657,20 @@ get back the exact pixbuf once this is called, only a texture.
 <parameter_description> a #GtkImage
 </parameter_description>
 </parameter>
-<parameter name="pixbuf">
-<parameter_description> a #GdkPixbuf or %NULL
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable or %NULL
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gtk_image_set_from_resource">
+<function name="gtk_image_set_from_pixbuf">
 <description>
-See gtk_image_new_from_resource() for details.
+See gtk_image_new_from_pixbuf() for details.
+
+Note: This is a helper for gtk_image_set_from_paintable(), and you can't
+get back the exact pixbuf once this is called, only a paintable.
 
 </description>
 <parameters>
@@ -41624,17 +41678,17 @@ See gtk_image_new_from_resource() for details.
 <parameter_description> a #GtkImage
 </parameter_description>
 </parameter>
-<parameter name="resource_path">
-<parameter_description> a resource path or %NULL
+<parameter name="pixbuf">
+<parameter_description> a #GdkPixbuf or %NULL
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gtk_image_set_from_surface">
+<function name="gtk_image_set_from_resource">
 <description>
-See gtk_image_new_from_surface() for details.
+See gtk_image_new_from_resource() for details.
 
 </description>
 <parameters>
@@ -41642,17 +41696,17 @@ See gtk_image_new_from_surface() for details.
 <parameter_description> a #GtkImage
 </parameter_description>
 </parameter>
-<parameter name="surface">
-<parameter_description> a cairo_surface_t or %NULL
+<parameter name="resource_path">
+<parameter_description> a resource path or %NULL
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gtk_image_set_from_texture">
+<function name="gtk_image_set_icon_size">
 <description>
-See gtk_image_new_from_texture() for details.
+Suggests an icon size to the theme for named icons.
 
 </description>
 <parameters>
@@ -41660,17 +41714,22 @@ See gtk_image_new_from_texture() for details.
 <parameter_description> a #GtkImage
 </parameter_description>
 </parameter>
-<parameter name="texture">
-<parameter_description> a #GdkTexture or %NULL
+<parameter name="icon_size">
+<parameter_description> the new icon size
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gtk_image_set_icon_size">
+<function name="gtk_image_set_keep_aspect_ratio">
 <description>
-Suggests an icon size to the theme for named icons.
+If set to %TRUE, the @image will render its contents according to
+their aspect ratio. That means that empty space may show up at the
+top/bottom or left/right of @image.
+
+If set to %FALSE or if the contents provide no aspect ratio, the
+contents will be stretched over the image's whole area.
 
 </description>
 <parameters>
@@ -41678,8 +41737,8 @@ Suggests an icon size to the theme for named icons.
 <parameter_description> a #GtkImage
 </parameter_description>
 </parameter>
-<parameter name="icon_size">
-<parameter_description> the new icon size
+<parameter name="keep_aspect_ratio">
+<parameter_description> whether to keep aspect ratio
 </parameter_description>
 </parameter>
 </parameters>
@@ -45198,6 +45257,754 @@ when it regains control.
 <return></return>
 </function>
 
+<function name="gtk_media_controls_get_media_stream">
+<description>
+Gets the media stream managed by @controls or %NULL if none.
+
+
+</description>
+<parameters>
+<parameter name="controls">
+<parameter_description> a #GtkMediaControls
+</parameter_description>
+</parameter>
+</parameters>
+<return> The media stream managed by @controls
+</return>
+</function>
+
+<function name="gtk_media_controls_new">
+<description>
+Creates a new #GtkMediaControls managing the @stream passed to it.
+
+
+</description>
+<parameters>
+<parameter name="stream">
+<parameter_description> a #GtkMediaStream to
+manage or %NULL for none.
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GtkMediaControls
+</return>
+</function>
+
+<function name="gtk_media_file_clear">
+<description>
+Resets the media file to be empty. 
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaFile
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_file_get_file">
+<description>
+Returns the file that @self is currently playing from.
+
+When @self is not playing or not playing from a file,
+%NULL is returned.
+
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaFile
+</parameter_description>
+</parameter>
+</parameters>
+<return> The currently playing file or %NULL if not
+playing from a file.
+</return>
+</function>
+
+<function name="gtk_media_file_get_input_stream">
+<description>
+Returns the stream that @self is currently playing from.
+
+When @self is not playing or not playing from a stream,
+%NULL is returned.
+
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaFile
+</parameter_description>
+</parameter>
+</parameters>
+<return> The currently playing stream or %NULL if not
+playing from a stream.
+</return>
+</function>
+
+<function name="gtk_media_file_new">
+<description>
+Creates a new empty media file.
+
+
+</description>
+<parameters>
+</parameters>
+<return> a new #GtkMediaFile
+</return>
+</function>
+
+<function name="gtk_media_file_new_for_file">
+<description>
+Creates a new media file to play @file. 
+
+
+</description>
+<parameters>
+<parameter name="file">
+<parameter_description> The file to play
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GtkMediaFile playing @file
+</return>
+</function>
+
+<function name="gtk_media_file_new_for_filename">
+<description>
+This is a utility function that converts the given @filename
+to a #GFile and calls gtk_media_file_new_for_file().
+
+
+</description>
+<parameters>
+<parameter name="filename">
+<parameter_description> filename to open
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GtkMediaFile playing @filename
+</return>
+</function>
+
+<function name="gtk_media_file_new_for_input_stream">
+<description>
+Creates a new media file to play @stream. If you want the
+resulting media to be seekable, the stream should implement
+the #GSeekable interface.
+
+
+</description>
+<parameters>
+<parameter name="stream">
+<parameter_description> The stream to play
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GtkMediaFile
+</return>
+</function>
+
+<function name="gtk_media_file_new_for_resource">
+<description>
+This is a utility function that converts the given @resource
+to a #GFile and calls gtk_media_file_new_for_file().
+
+
+</description>
+<parameters>
+<parameter name="resource_path">
+<parameter_description> resource path to open
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GtkMediaFile playing @resource_path
+</return>
+</function>
+
+<function name="gtk_media_file_set_file">
+<description>
+If any file is still playing, stop playing it.
+
+Then start playing the given @file.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaFile
+</parameter_description>
+</parameter>
+<parameter name="file">
+<parameter_description> the file to play
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_file_set_filename">
+<description>
+This is a utility function that converts the given @filename
+to a #GFile and calls gtk_media_file_set_file().
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaFile
+</parameter_description>
+</parameter>
+<parameter name="filename">
+<parameter_description> name of file to play
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_file_set_input_stream">
+<description>
+If anything is still playing, stop playing it. Then start
+playing the given @stream.
+
+Full control about the @stream is assumed for the duration of
+playback. The stream will not bt be closed.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaFile
+</parameter_description>
+</parameter>
+<parameter name="stream">
+<parameter_description> the stream to play from
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_file_set_resource">
+<description>
+This is a utility function that converts the given @resource_path
+to a #GFile and calls gtk_media_file_set_file().
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaFile
+</parameter_description>
+</parameter>
+<parameter name="resource_path">
+<parameter_description> path to resource to play
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_ended">
+<description>
+Pauses the media stream and marks it as ended. This is a hint only, calls
+to GtkMediaStream.play() may still happen.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_error">
+<description>
+Sets @self into an error state using a printf()-style format string.
+
+This is a utility function that calls gtk_media_stream_gerror(). See
+that function for details.  
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+<parameter name="domain">
+<parameter_description> error domain
+</parameter_description>
+</parameter>
+<parameter name="code">
+<parameter_description> error code
+</parameter_description>
+</parameter>
+<parameter name="format">
+<parameter_description> printf()-style format for error message
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> parameters for message format
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_error_valist">
+<description>
+Sets @self into an error state using a printf()-style format string.
+
+This is a utility function that calls gtk_media_stream_gerror(). See
+that function for details.  
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+<parameter name="domain">
+<parameter_description> error domain
+</parameter_description>
+</parameter>
+<parameter name="code">
+<parameter_description> error code
+</parameter_description>
+</parameter>
+<parameter name="format">
+<parameter_description> printf()-style format for error message
+</parameter_description>
+</parameter>
+<parameter name="args">
+<parameter_description> #va_list of parameters for the message format
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_gerror">
+<description>
+Sets @self into an error state. This will pause the stream
+(you can check for an error via gtk_media_stream_get_error() in
+your GtkMediaStream.pause() implementation), abort pending seeks
+and mark the stream as prepared.
+
+To unset an error, the stream must be reset via a call to
+gtk_media_stream_unprepared().
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> the #GError to set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_get_duration">
+<description>
+Gets the duration of the stream. If the duration is not known,
+0 will be returned.
+
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkmediaStream
+</parameter_description>
+</parameter>
+</parameters>
+<return> the duration of the stream or 0 if not known.
+</return>
+</function>
+
+<function name="gtk_media_stream_get_error">
+<description>
+If the stream is in an error state, returns the #GError explaining that state.
+Any type of error can be reported here depending on the implementation of the
+media stream.
+
+A media stream in an error cannot be operated on, calls like
+gtk_media_stream_play() or gtk_media_stream_seek() will not have any effect.
+
+#GtkMediaStream itself does not provide a way to unset an error, but
+implementations may provide options. For example, a #GtkMediaFile will unset
+errors when a new source is set with ie gtk_media_file_set_file().
+
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+</parameters>
+<return> %NULL if not in an error state or
+the #GError of the stream
+</return>
+</function>
+
+<function name="gtk_media_stream_get_loop">
+<description>
+Returns whether the stream is set to loop. See
+gtk_media_stream_set_loop() for details.
+
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the stream should loop
+</return>
+</function>
+
+<function name="gtk_media_stream_get_muted">
+<description>
+Returns whether the audio for the stream is muted.
+See gtk_media_stream_set_muted() for details.
+
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the stream is muted
+</return>
+</function>
+
+<function name="gtk_media_stream_get_volume">
+<description>
+Returns the volume of the audio for the stream.
+See gtk_media_stream_set_volume() for details.
+
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+</parameters>
+<return> volume of the stream from 0.0 to 1.0
+</return>
+</function>
+
+<function name="gtk_media_stream_is_seekable">
+<description>
+Checks if a stream may be seekable.
+
+This is meant to be a hint. Streams may not allow seeking even if
+this function returns %TRUE. However, if this function returns
+%FALSE, streams are guaranteed to not be seekable and user interfaces
+may hide controls that allow seeking.
+
+It is allowed to call gtk_media_stream_seek() on a non-seekable
+stream, though it will not do anything.
+
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if the stream may support seeking
+</return>
+</function>
+
+<function name="gtk_media_stream_is_seeking">
+<description>
+Checks if there is currently a seek operation going on.
+
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if a seek operation is ongoing.
+</return>
+</function>
+
+<function name="gtk_media_stream_prepared">
+<description>
+Called by #GtkMediaStream implementations to advertise the stream
+being ready to play and providing details about the stream.
+
+Note that the arguments are hints. If the stream implementation
+cannot determine the correct values, it is better to err on the
+side of caution and return %TRUE. User interfaces will use those
+values to determine what controls to show.
+
+This function may not be called again until the stream has been
+reset via gtk_media_stream_unprepared().
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+<parameter name="has_audio">
+<parameter_description> %TRUE if the stream should advertise audio support
+</parameter_description>
+</parameter>
+<parameter name="has_video">
+<parameter_description> %TRUE if the stream should advertise video support
+</parameter_description>
+</parameter>
+<parameter name="seekable">
+<parameter_description> %TRUE if the stream should advertise seekability
+</parameter_description>
+</parameter>
+<parameter name="duration">
+<parameter_description> The duration of the stream or 0 if unknown
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_realize">
+<description>
+Called by users to attach the media stream to a #GdkSurface they manage.
+The stream can then access the resources of @surface for its rendering
+purposes. In particular, media streams might want to create
+#GdkGLContexts or sync to the #GdkFrameClock.
+
+Whoever calls this function is responsible for calling
+gtk_media_stream_unrealize() before either the stream or @surface get
+destroyed.
+
+Multiple calls to this function may happen from different users of the
+video, even with the same @surface. Each of these calls must be followed
+by its own call to gtk_media_stream_unrealize().
+
+It is not required to call this function to make a media stream work.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+<parameter name="surface">
+<parameter_description> a #GdkSurface
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_seek">
+<description>
+Start a seek operation on @self to @timestamp. If @timestamp is out of range,
+it will be clamped.
+
+Seek operations may not finish instantly. While a seek operation is
+in process, the GtkMediaStream:seeking property will be set.
+
+When calling gtk_media_stream_seek() during an ongoing seek operation,
+the new seek wil override any pending seek.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+<parameter name="timestamp">
+<parameter_description> timestamp to seek to.
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_seek_failed">
+<description>
+Ends a seek operation started via GtkMediaStream.seek() as a failure.
+This will not cause an error on the stream and will assume that
+playback continues as if no seek had happened.
+
+See gtk_media_stream_seek_success() for the other way of
+ending a seek.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_seek_success">
+<description>
+Ends a seek operation started via GtkMediaStream.seek() successfully.
+This function will unset the GtkMediaStream:ended property if it was
+set.
+
+See gtk_media_stream_seek_failed() for the other way of
+ending a seek.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_set_loop">
+<description>
+Sets whether the stream should loop, ie restart playback from
+the beginning instead of stopping at the end.
+
+Not all streams may support looping, in particular non-seekable
+streams. Those streams will ignore the loop setting and just end.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+<parameter name="loop">
+<parameter_description> %TRUE if the stream should loop
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_set_muted">
+<description>
+Sets whether the audio stream should be muted. Muting a stream will
+cause no audio to be played, but it does not modify the volume.
+This means that muting and then unmuting the stream will restore
+the volume settings.
+
+If the stream has no audio, calling this function will still work
+but it will not have an audible effect.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+<parameter name="muted">
+<parameter_description> %TRUE if the stream should be muted
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_set_volume">
+<description>
+Sets the volume of the audio stream. This function call will work even if
+the stream is muted.
+
+The given @volume should range from 0.0 for silence to 1.0 for as loud as
+possible. Values outside of this range will be clamped to the nearest
+value.
+
+If the stream has no audio or is muted, calling this function will still
+work but it will not have an immediate audible effect. When the stream is
+unmuted, the new volume setting will take effect.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+<parameter name="volume">
+<parameter_description> New volume of the stream from 0.0 to 1.0
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_unprepared">
+<description>
+Resets a given media stream implementation. gtk_media_stream_prepared()
+can now be called again.
+
+This function will also reset any error state the stream was in.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_unrealize">
+<description>
+Undoes a previous call to gtk_media_stream_realize() and causes
+the stream to release all resources it had allocated from @surface.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream previously realized
+</parameter_description>
+</parameter>
+<parameter name="surface">
+<parameter_description> the #GdkSurface the stream was realized with
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_media_stream_update">
+<description>
+Media stream implementations should regularly call this function to
+update the timestamp reported by the stream. It is up to
+implementations to call this at the frequency they deem appropriate.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+<parameter name="timestamp">
+<parameter_description> the new timestamp
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gtk_menu_attach">
 <description>
 Adds a new #GtkMenuItem to a (table) menu. The number of “cells” that
@@ -46259,7 +47066,7 @@ See gtk_menu_popup_at_widget () and gtk_menu_popup_at_pointer (), which
 handle more common cases for popping up menus.
 
 @menu will be positioned at @rect, aligning their anchor points. @rect is
-relative to the top-left corner of @rect_window. @rect_anchor and
+relative to the top-left corner of @rect_surface. @rect_anchor and
 @menu_anchor determine anchor points on @rect and @menu to pin together.
 @menu can optionally be offset by #GtkMenu:rect-anchor-dx and
 #GtkMenu:rect-anchor-dy.
@@ -46278,8 +47085,8 @@ Other properties that influence the behaviour of this function are
 <parameter_description> the #GtkMenu to pop up
 </parameter_description>
 </parameter>
-<parameter name="rect_window">
-<parameter_description> the #GdkWindow @rect is relative to
+<parameter name="rect_surface">
+<parameter_description> the #GdkSurface @rect is relative to
 </parameter_description>
 </parameter>
 <parameter name="rect">
@@ -59419,26 +60226,6 @@ g_object_unref().
 </return>
 </function>
 
-<function name="gtk_selection_data_get_surface">
-<description>
-Gets the contents of the selection data as a cairo surface.
-
-
-</description>
-<parameters>
-<parameter name="selection_data">
-<parameter_description> a #GtkSelectionData
-</parameter_description>
-</parameter>
-</parameters>
-<return> if the selection data
-contained a recognized image type and it could be converted to a
-cairo surface, a newly allocated surface is returned, otherwise
-%NULL.  If the result is non-%NULL it must be freed with
-g_object_unref().
-</return>
-</function>
-
 <function name="gtk_selection_data_get_target">
 <description>
 Retrieves the target of the selection.
@@ -59599,29 +60386,6 @@ otherwise %FALSE.
 </return>
 </function>
 
-<function name="gtk_selection_data_set_surface">
-<description>
-Sets the contents of the selection from a cairo image surface.
-The surface is converted to the form determined by
-@selection_data-&gt;target.
-
-
-</description>
-<parameters>
-<parameter name="selection_data">
-<parameter_description> a #GtkSelectionData
-</parameter_description>
-</parameter>
-<parameter name="surface">
-<parameter_description> a cairo image surface
-</parameter_description>
-</parameter>
-</parameters>
-<return> %TRUE if the selection was successfully set,
-otherwise %FALSE.
-</return>
-</function>
-
 <function name="gtk_selection_data_set_text">
 <description>
 Sets the contents of the selection from a UTF-8 encoded string.
@@ -60225,6 +60989,38 @@ You should try to avoid calling this function if @color is transparent.
 <return></return>
 </function>
 
+<function name="gtk_snapshot_append_layout">
+<description>
+Creates render nodes for rendering @layout in the given foregound @color
+and appends them to the current node of @snapshot without changing the
+current node.
+
+</description>
+<parameters>
+<parameter name="snapshot">
+<parameter_description> a #GtkSnapshot
+</parameter_description>
+</parameter>
+<parameter name="layout">
+<parameter_description> the #PangoLayout to render
+</parameter_description>
+</parameter>
+<parameter name="color">
+<parameter_description> the foreground color to render the layout in
+</parameter_description>
+</parameter>
+<parameter name="name">
+<parameter_description> a printf() style format string for the name for the new node
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> arguments to insert into the format string
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gtk_snapshot_append_node">
 <description>
 Appends @node to the current render node of @snapshot,
@@ -60297,6 +61093,40 @@ Tests whether the rectangle is entirely outside the clip region of @snapshot.
 </return>
 </function>
 
+<function name="gtk_snapshot_free_to_node">
+<description>
+Returns the node that was constructed by @snapshot
+and frees @snapshot.
+
+
+</description>
+<parameters>
+<parameter name="snapshot">
+<parameter_description> a #GtkSnapshot
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly-created #GskRenderNode
+</return>
+</function>
+
+<function name="gtk_snapshot_free_to_paintable">
+<description>
+Returns a paintable for the node that was
+constructed by @snapshot and frees @snapshot.
+
+
+</description>
+<parameters>
+<parameter name="snapshot">
+<parameter_description> a #GtkSnapshot
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly-created #GdkPaintable
+</return>
+</function>
+
 <function name="gtk_snapshot_get_offset">
 <description>
 Queries the offset managed by @snapshot. This offset is the
@@ -60328,10 +61158,10 @@ you.
 <return></return>
 </function>
 
-<function name="gtk_snapshot_get_renderer">
+<function name="gtk_snapshot_get_record_names">
 <description>
-Obtains the #GskRenderer that this snapshot will be
-rendered with.
+Obtains whether the snapshot is recording names
+for debugging.
 
 
 </description>
@@ -60341,7 +61171,35 @@ rendered with.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the #GskRenderer
+<return> whether the snapshot records names
+</return>
+</function>
+
+<function name="gtk_snapshot_new">
+<description>
+Creates a new #GtkSnapshot.
+
+
+</description>
+<parameters>
+<parameter name="record_names">
+<parameter_description> whether to keep node names (for debugging purposes)
+</parameter_description>
+</parameter>
+<parameter name="clip">
+<parameter_description> the clip region to use, or %NULL
+</parameter_description>
+</parameter>
+<parameter name="name">
+<parameter_description> a printf-style format string to create the node name
+</parameter_description>
+</parameter>
+<parameter name="Varargs">
+<parameter_description> arguments for @name
+</parameter_description>
+</parameter>
+</parameters>
+<return> a newly-allocated #GtkSnapshot
 </return>
 </function>
 
@@ -60654,6 +61512,46 @@ without changing the current node.
 <return></return>
 </function>
 
+<function name="gtk_snapshot_to_node">
+<description>
+Returns the render node that was constructed
+by @snapshot. After calling this function, it
+is no longer possible to add more nodes to
+@snapshot. The only function that should be
+called after this is gtk_snapshot_unref().
+
+
+</description>
+<parameters>
+<parameter name="snapshot">
+<parameter_description> a #GtkSnapshot
+</parameter_description>
+</parameter>
+</parameters>
+<return> the constructed #GskRenderNode
+</return>
+</function>
+
+<function name="gtk_snapshot_to_paintable">
+<description>
+Returns a paintable encapsulating the render node
+that was constructed by @snapshot. After calling
+this function, it is no longer possible to add more
+nodes to @snapshot. The only function that should be
+called after this is gtk_snapshot_unref().
+
+
+</description>
+<parameters>
+<parameter name="snapshot">
+<parameter_description> a #GtkSnapshot
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GdkPaintable
+</return>
+</function>
+
 <function name="gtk_spin_button_configure">
 <description>
 Changes the properties of an existing spin button. The adjustment,
@@ -67641,6 +68539,30 @@ it.
 <return></return>
 </function>
 
+<function name="gtk_text_util_create_drag_icon">
+<description>
+Creates a drag and drop icon from @text.
+
+
+</description>
+<parameters>
+<parameter name="widget">
+<parameter_description> #GtkWidget to extract the pango context
+</parameter_description>
+</parameter>
+<parameter name="text">
+<parameter_description> a #gchar to render the icon
+</parameter_description>
+</parameter>
+<parameter name="len">
+<parameter_description> length of @text, or -1 for NUL-terminated text
+</parameter_description>
+</parameter>
+</parameters>
+<return> a #GdkPaintable to use as DND icon
+</return>
+</function>
+
 <function name="gtk_text_view_add_child_at_anchor">
 <description>
 Adds a child widget in the text buffer, at the given @anchor.
@@ -67756,7 +68678,7 @@ views, since they depend on the contents of the #GtkTextBuffer.
 </return>
 </function>
 
-<function name="gtk_text_view_buffer_to_window_coords">
+<function name="gtk_text_view_buffer_to_surface_coords">
 <description>
 Converts coordinate (@buffer_x, @buffer_y) to coordinates for the window
 @win, and stores the result in (@window_x, @window_y). 
@@ -67940,7 +68862,7 @@ returned locations will be adjusted to account for the preedit
 cursor’s offset within the preedit sequence.
 
 The rectangle position is in buffer coordinates; use
-gtk_text_view_buffer_to_window_coords() to convert these
+gtk_text_view_buffer_to_surface_coords() to convert these
 coordinates to coordinates for one of the windows in the text view.
 
 </description>
@@ -68126,7 +69048,7 @@ zero, or the number of characters in the grapheme.
 <description>
 Gets a rectangle which roughly contains the character at @iter.
 The rectangle position is in buffer coordinates; use
-gtk_text_view_buffer_to_window_coords() to convert these
+gtk_text_view_buffer_to_surface_coords() to convert these
 coordinates to coordinates for one of the windows in the text view.
 
 </description>
@@ -68215,7 +69137,7 @@ edge of the line.
 <description>
 Gets the y coordinate of the top of the line containing @iter,
 and the height of the line. The coordinate is a buffer coordinate;
-convert to window coordinates with gtk_text_view_buffer_to_window_coords().
+convert to window coordinates with gtk_text_view_buffer_to_surface_coords().
 
 </description>
 <parameters>
@@ -68381,7 +69303,7 @@ Gets the top margin for text in the @text_view.
 <description>
 Fills @visible_rect with the currently-visible
 region of the buffer, in buffer coordinates. Convert to window coordinates
-with gtk_text_view_buffer_to_window_coords().
+with gtk_text_view_buffer_to_surface_coords().
 
 </description>
 <parameters>
@@ -70453,7 +71375,7 @@ and gtk_tooltip_set_icon().
 <function name="gtk_tooltip_set_icon">
 <description>
 Sets the icon of the tooltip (which is in front of the text) to be
-@texture.  If @texure is %NULL, the image will be hidden.
+@paintable.  If @paintable is %NULL, the image will be hidden.
 
 </description>
 <parameters>
@@ -70461,8 +71383,8 @@ Sets the icon of the tooltip (which is in front of the text) to be
 <parameter_description> a #GtkTooltip
 </parameter_description>
 </parameter>
-<parameter name="texture">
-<parameter_description> a #GdkTexture, or %NULL
+<parameter name="paintable">
+<parameter_description> a #GdkPaintable, or %NULL
 </parameter_description>
 </parameter>
 </parameters>
@@ -77159,6 +78081,201 @@ gtk_tree_view_enable_model_drag_source(). Calling this method sets
 <return></return>
 </function>
 
+<function name="gtk_video_get_file">
+<description>
+Gets the file played by @self or %NULL if not playing back
+a file.
+
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkVideo
+</parameter_description>
+</parameter>
+</parameters>
+<return> The file played by @self
+</return>
+</function>
+
+<function name="gtk_video_get_media_stream">
+<description>
+Gets the media stream managed by @self or %NULL if none.
+
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkVideo
+</parameter_description>
+</parameter>
+</parameters>
+<return> The media stream managed by @self
+</return>
+</function>
+
+<function name="gtk_video_new">
+<description>
+Creates a new empty #GtkVideo.
+
+
+</description>
+<parameters>
+</parameters>
+<return> a new #GtkVideo
+</return>
+</function>
+
+<function name="gtk_video_new_for_file">
+<description>
+Creates a #GtkVideo to play back the given @file.
+
+
+</description>
+<parameters>
+<parameter name="file">
+<parameter_description> a #GFile
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GtkVideo
+</return>
+</function>
+
+<function name="gtk_video_new_for_filename">
+<description>
+Creates a #GtkVideo to play back the given @filename.
+
+This is a utility function that calls gtk_video_new_for_file(),
+
+
+</description>
+<parameters>
+<parameter name="filename">
+<parameter_description> filename to play back
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GtkVideo
+</return>
+</function>
+
+<function name="gtk_video_new_for_media_stream">
+<description>
+Creates a #GtkVideo to play back the given @stream.
+
+
+</description>
+<parameters>
+<parameter name="stream">
+<parameter_description> a #GtkMediaStream
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GtkVideo
+</return>
+</function>
+
+<function name="gtk_video_new_for_resource">
+<description>
+Creates a #GtkVideo to play back the resource at the
+given @resource_path.
+
+This is a utility function that calls gtk_video_new_for_file(),
+
+
+</description>
+<parameters>
+<parameter name="resource_path">
+<parameter_description> resource path to play back
+</parameter_description>
+</parameter>
+</parameters>
+<return> a new #GtkVideo
+</return>
+</function>
+
+<function name="gtk_video_set_file">
+<description>
+Makes @self play the given @file.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkVideo
+</parameter_description>
+</parameter>
+<parameter name="file">
+<parameter_description> the file to play
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_video_set_filename">
+<description>
+Makes @self play the given @filename.
+
+This is a utility function that calls gtk_video_set_file(),
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkVideo
+</parameter_description>
+</parameter>
+<parameter name="filename">
+<parameter_description> the filename to play
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_video_set_media_stream">
+<description>
+Sets the media stream to be played back. @self will take full control
+of managing the media stream. If you want to manage a media stream
+yourself, consider using a #GtkImage for display.
+
+If you want to display a file, consider using gtk_video_set_file()
+instead.
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkVideo
+</parameter_description>
+</parameter>
+<parameter name="stream">
+<parameter_description> The media stream to play or %NULL to unset
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="gtk_video_set_resource">
+<description>
+Makes @self play the resource at the given @resource_path.
+
+This is a utility function that calls gtk_video_set_file(),
+
+</description>
+<parameters>
+<parameter name="self">
+<parameter_description> a #GtkVideo
+</parameter_description>
+</parameter>
+<parameter name="resource_path">
+<parameter_description> the resource to set
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gtk_viewport_get_shadow_type">
 <description>
 Gets the shadow type of the #GtkViewport. See
@@ -78093,9 +79210,9 @@ gtk_widget_is_drawable()) and a size must have been allocated.
 <description>
 Notifies the user about an input-related error on this widget.
 If the #GtkSettings:gtk-error-bell setting is %TRUE, it calls
-gdk_window_beep(), otherwise it does nothing.
+gdk_surface_beep(), otherwise it does nothing.
 
-Note that the effect of gdk_window_beep() can be configured in many
+Note that the effect of gdk_surface_beep() can be configured in many
 ways, depending on the windowing backend and the desktop environment
 or window manager that is used.
 
@@ -78461,7 +79578,7 @@ details.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the cursor curently in use or %NULL
+<return> the cursor currently in use or %NULL
 to use the default.
 </return>
 </function>
@@ -78641,10 +79758,10 @@ alignment.
 </return>
 </function>
 
-<function name="gtk_widget_get_has_tooltip">
+<function name="gtk_widget_get_has_surface">
 <description>
-Returns the current value of the has-tooltip property.  See
-#GtkWidget:has-tooltip for more information.
+Determines whether @widget has a #GdkSurface of its own. See
+gtk_widget_set_has_surface().
 
 
 </description>
@@ -78654,14 +79771,14 @@ Returns the current value of the has-tooltip property.  See
 </parameter_description>
 </parameter>
 </parameters>
-<return> current value of has-tooltip on @widget.
+<return> %TRUE if @widget has a surface, %FALSE otherwise
 </return>
 </function>
 
-<function name="gtk_widget_get_has_window">
+<function name="gtk_widget_get_has_tooltip">
 <description>
-Determines whether @widget has a #GdkWindow of its own. See
-gtk_widget_set_has_window().
+Returns the current value of the has-tooltip property.  See
+#GtkWidget:has-tooltip for more information.
 
 
 </description>
@@ -78671,7 +79788,7 @@ gtk_widget_set_has_window().
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if @widget has a window, %FALSE otherwise
+<return> current value of has-tooltip on @widget.
 </return>
 </function>
 
@@ -78951,7 +80068,7 @@ Returns the parent widget of @widget.
 </return>
 </function>
 
-<function name="gtk_widget_get_parent_window">
+<function name="gtk_widget_get_parent_surface">
 <description>
 Gets @widget’s parent window, or %NULL if it does not have one.
 
@@ -79121,7 +80238,7 @@ Retrieves the internal scale factor that maps from window coordinates
 to the actual device pixels. On traditional systems this is 1, on
 high density outputs, it can be a higher value (typically 2).
 
-See gdk_window_get_scale_factor().
+See gdk_surface_get_scale_factor().
 
 
 </description>
@@ -79261,6 +80378,22 @@ gtk_widget_set_support_multidevice() for more information.
 </return>
 </function>
 
+<function name="gtk_widget_get_surface">
+<description>
+Returns the widget’s surface if it is realized, %NULL otherwise
+
+
+</description>
+<parameters>
+<parameter name="widget">
+<parameter_description> a #GtkWidget
+</parameter_description>
+</parameter>
+</parameters>
+<return> @widget’s surface.
+</return>
+</function>
+
 <function name="gtk_widget_get_template_child">
 <description>
 Fetch an object build from the template XML for @widget_type in this @widget instance.
@@ -79484,22 +80617,6 @@ events, see gtk_widget_contains().
 </return>
 </function>
 
-<function name="gtk_widget_get_window">
-<description>
-Returns the widget’s window if it is realized, %NULL otherwise
-
-
-</description>
-<parameters>
-<parameter name="widget">
-<parameter_description> a #GtkWidget
-</parameter_description>
-</parameter>
-</parameters>
-<return> @widget’s window.
-</return>
-</function>
-
 <function name="gtk_widget_grab_default">
 <description>
 Causes @widget to become the default widget. @widget must be able to be
@@ -79688,9 +80805,9 @@ should take precedence over properties set in the private template XML.
 
 <function name="gtk_widget_input_shape_combine_region">
 <description>
-Sets an input shape for this widget’s GDK window. This allows for
+Sets an input shape for this widget’s GDK surface. This allows for
 windows which react to mouse click in a nonrectangular region, see
-gdk_window_input_shape_combine_region() for more information.
+gdk_surface_input_shape_combine_region() for more information.
 
 </description>
 <parameters>
@@ -81048,7 +82165,7 @@ except that the widget is not invalidated.
 <function name="gtk_widget_realize">
 <description>
 Creates the GDK (windowing system) resources associated with a
-widget.  For example, @widget-&gt;window will be created when a widget
+widget.  For example, @widget-&gt;surface will be created when a widget
 is realized.  Normally realization happens implicitly; if you show
 a widget and all its parent containers, then the widget will be
 realized and mapped automatically.
@@ -81076,14 +82193,14 @@ called after the widget is realized automatically, such as
 <return></return>
 </function>
 
-<function name="gtk_widget_register_window">
+<function name="gtk_widget_register_surface">
 <description>
-Registers a #GdkWindow with the widget and sets it up so that
-the widget receives events for it. Call gtk_widget_unregister_window()
-when destroying the window.
+Registers a #GdkSurface with the widget and sets it up so that
+the widget receives events for it. Call gtk_widget_unregister_surface()
+when destroying the surface.
 
-Before 3.8 you needed to call gdk_window_set_user_data() directly to set
-this up. This is now deprecated and you should use gtk_widget_register_window()
+Before 3.8 you needed to call gdk_surface_set_user_data() directly to set
+this up. This is now deprecated and you should use gtk_widget_register_surface()
 instead. Old code will keep working as is, although some new features like
 transparency might not work perfectly.
 
@@ -81093,8 +82210,8 @@ transparency might not work perfectly.
 <parameter_description> a #GtkWidget
 </parameter_description>
 </parameter>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
@@ -81205,9 +82322,9 @@ GdkEvent *fevent = gdk_event_new (GDK_FOCUS_CHANGE);
 
 fevent-&gt;focus_change.type = GDK_FOCUS_CHANGE;
 fevent-&gt;focus_change.in = TRUE;
-fevent-&gt;focus_change.window = _gtk_widget_get_window (widget);
-if (fevent-&gt;focus_change.window != NULL)
-g_object_ref (fevent-&gt;focus_change.window);
+fevent-&gt;focus_change.surface = _gtk_widget_get_surface (widget);
+if (fevent-&gt;focus_change.surface != NULL)
+g_object_ref (fevent-&gt;focus_change.surface);
 
 gtk_widget_send_focus_change (widget, fevent);
 
@@ -81396,7 +82513,7 @@ cursor
 <description>
 Sets a named cursor to be shown when pointer devices point towards @widget.
 
-This is a utility function that calls creates a cursor via
+This is a utility function that creates a cursor via
 gdk_cursor_new_from_name() and then sets it on @widget with
 gtk_widget_set_cursor(). See those 2 functions for details.
 
@@ -81543,10 +82660,18 @@ See the #GtkWidget:halign property.
 <return></return>
 </function>
 
-<function name="gtk_widget_set_has_tooltip">
+<function name="gtk_widget_set_has_surface">
 <description>
-Sets the has-tooltip property on @widget to @has_tooltip.  See
-#GtkWidget:has-tooltip for more information.
+Specifies whether @widget has a #GdkSurface of its own. Note that
+all realized widgets have a non-%NULL “window” pointer
+(gtk_widget_get_surface() never returns a %NULL surface when a widget
+is realized), but for many of them it’s actually the #GdkSurface of
+one of its parent widgets. Widgets that do not create a %window for
+themselves in #GtkWidget::realize must announce this by
+calling this function with @has_surface = %FALSE.
+
+This function should only be called by widget implementations,
+and they should call it in their init() function.
 
 </description>
 <parameters>
@@ -81554,26 +82679,18 @@ Sets the has-tooltip property on @widget to @has_tooltip.  See
 <parameter_description> a #GtkWidget
 </parameter_description>
 </parameter>
-<parameter name="has_tooltip">
-<parameter_description> whether or not @widget has a tooltip.
+<parameter name="has_surface">
+<parameter_description> whether or not @widget has a surface.
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gtk_widget_set_has_window">
+<function name="gtk_widget_set_has_tooltip">
 <description>
-Specifies whether @widget has a #GdkWindow of its own. Note that
-all realized widgets have a non-%NULL “window” pointer
-(gtk_widget_get_window() never returns a %NULL window when a widget
-is realized), but for many of them it’s actually the #GdkWindow of
-one of its parent widgets. Widgets that do not create a %window for
-themselves in #GtkWidget::realize must announce this by
-calling this function with @has_window = %FALSE.
-
-This function should only be called by widget implementations,
-and they should call it in their init() function.
+Sets the has-tooltip property on @widget to @has_tooltip.  See
+#GtkWidget:has-tooltip for more information.
 
 </description>
 <parameters>
@@ -81581,8 +82698,8 @@ and they should call it in their init() function.
 <parameter_description> a #GtkWidget
 </parameter_description>
 </parameter>
-<parameter name="has_window">
-<parameter_description> whether or not @widget has a window.
+<parameter name="has_tooltip">
+<parameter_description> whether or not @widget has a tooltip.
 </parameter_description>
 </parameter>
 </parameters>
@@ -81818,11 +82935,11 @@ function is gtk_widget_unparent().
 <return></return>
 </function>
 
-<function name="gtk_widget_set_parent_window">
+<function name="gtk_widget_set_parent_surface">
 <description>
 Sets a non default parent window for @widget.
 
-For #GtkWindow classes, setting a @parent_window effects whether
+For #GtkWindow classes, setting a @parent_surface effects whether
 the window is a toplevel window or can be embedded into other
 widgets.
 
@@ -81835,7 +82952,7 @@ window is realized.
 <parameter_description> a #GtkWidget.
 </parameter_description>
 </parameter>
-<parameter name="parent_window">
+<parameter name="parent_surface">
 <parameter_description> the new parent window.
 </parameter_description>
 </parameter>
@@ -81846,7 +82963,7 @@ window is realized.
 <function name="gtk_widget_set_realized">
 <description>
 Marks the widget as being realized. This function must only be 
-called after all #GdkWindows for the @widget have been created 
+called after all #GdkSurfaces for the @widget have been created 
 and registered.
 
 This function should only ever be called in a derived widget's
@@ -81999,8 +83116,8 @@ gtk_widget_is_sensitive() will make use of these.
 <description>
 Enables or disables multiple pointer awareness. If this setting is %TRUE,
 @widget will start receiving multiple, per device enter/leave events. Note
-that if custom #GdkWindows are created in #GtkWidget::realize,
-gdk_window_set_support_multidevice() will have to be called manually on them.
+that if custom #GdkSurfaces are created in #GtkWidget::realize,
+gdk_surface_set_support_multidevice() will have to be called manually on them.
 
 </description>
 <parameters>
@@ -82016,6 +83133,34 @@ gdk_window_set_support_multidevice() will have to be called manually on them.
 <return></return>
 </function>
 
+<function name="gtk_widget_set_surface">
+<description>
+Sets a widget’s surface. This function should only be used in a
+widget’s #GtkWidget::realize implementation. The %surface passed is
+usually either new surface created with gdk_surface_new(), or the
+surface of its parent widget as returned by
+gtk_widget_get_parent_surface().
+
+Widgets must indicate whether they will create their own #GdkSurface
+by calling gtk_widget_set_has_surface(). This is usually done in the
+widget’s init() function.
+
+Note that this function does not add any reference to @surface.
+
+</description>
+<parameters>
+<parameter name="widget">
+<parameter_description> a #GtkWidget
+</parameter_description>
+</parameter>
+<parameter name="surface">
+<parameter_description> a #GdkSurface
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gtk_widget_set_tooltip_markup">
 <description>
 Sets @markup as the contents of the tooltip, which is marked up with
@@ -82170,54 +83315,6 @@ some condition.
 <return></return>
 </function>
 
-<function name="gtk_widget_set_window">
-<description>
-Sets a widget’s window. This function should only be used in a
-widget’s #GtkWidget::realize implementation. The %window passed is
-usually either new window created with gdk_window_new(), or the
-window of its parent widget as returned by
-gtk_widget_get_parent_window().
-
-Widgets must indicate whether they will create their own #GdkWindow
-by calling gtk_widget_set_has_window(). This is usually done in the
-widget’s init() function.
-
-Note that this function does not add any reference to @window.
-
-</description>
-<parameters>
-<parameter name="widget">
-<parameter_description> a #GtkWidget
-</parameter_description>
-</parameter>
-<parameter name="window">
-<parameter_description> a #GdkWindow
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
-<function name="gtk_widget_shape_combine_region">
-<description>
-Sets a shape for this widget’s GDK window. This allows for
-transparent windows etc., see gdk_window_shape_combine_region()
-for more information.
-
-</description>
-<parameters>
-<parameter name="widget">
-<parameter_description> a #GtkWidget
-</parameter_description>
-</parameter>
-<parameter name="region">
-<parameter_description> shape to be added, or %NULL to remove an existing shape
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
 <function name="gtk_widget_show">
 <description>
 Flags a widget to be displayed. Any widget that isn’t shown will
@@ -82413,7 +83510,7 @@ from the parent.
 <description>
 This function is only useful in widget implementations.
 Causes a widget to be unrealized (frees all GDK resources
-associated with the widget, such as @widget-&gt;window).
+associated with the widget, such as @widget-&gt;surface).
 
 </description>
 <parameters>
@@ -82425,10 +83522,10 @@ associated with the widget, such as @widget-&gt;window).
 <return></return>
 </function>
 
-<function name="gtk_widget_unregister_window">
+<function name="gtk_widget_unregister_surface">
 <description>
-Unregisters a #GdkWindow from the widget that was previously set up with
-gtk_widget_register_window(). You need to call this when the window is
+Unregisters a #GdkSurface from the widget that was previously set up with
+gtk_widget_register_surface(). You need to call this when the surface is
 no longer used by the widget, such as when you destroy it.
 
 </description>
@@ -82437,8 +83534,8 @@ no longer used by the widget, such as when you destroy it.
 <parameter_description> a #GtkWidget
 </parameter_description>
 </parameter>
-<parameter name="window">
-<parameter_description> a #GdkWindow
+<parameter name="surface">
+<parameter_description> a #GdkSurface
 </parameter_description>
 </parameter>
 </parameters>
@@ -82665,7 +83762,7 @@ afterward, because other entities (e.g. the user or
 [window manager][gtk-X11-arch])) could iconify it
 again before your code which assumes deiconification gets to run.
 
-You can track iconification via the #GdkWindow::state property.
+You can track iconification via the #GdkSurface::state property.
 
 </description>
 <parameters>
@@ -82687,7 +83784,7 @@ again, and not all window managers honor requests to fullscreen
 windows. But normally the window will end up fullscreen. Just
 don’t write code that crashes if not.
 
-You can track iconification via the #GdkWindow::state property
+You can track iconification via the #GdkSurface::state property
 
 </description>
 <parameters>
@@ -82704,7 +83801,7 @@ You can track iconification via the #GdkWindow::state property
 Asks to place @window in the fullscreen state. Note that you shouldn't assume
 the window is definitely full screen afterward.
 
-You can track iconification via the #GdkWindow::state property
+You can track iconification via the #GdkSurface::state property
 
 </description>
 <parameters>
@@ -83566,7 +84663,7 @@ It’s permitted to call this function before showing a window,
 in which case the window will be iconified before it ever appears
 onscreen.
 
-You can track iconification via the #GdkWindow::state property.
+You can track iconification via the #GdkSurface::state property.
 
 </description>
 <parameters>
@@ -83651,7 +84748,7 @@ It’s permitted to call this function before showing a window,
 in which case the window will be maximized when it appears onscreen
 initially.
 
-You can track iconification via the #GdkWindow::state property
+You can track iconification via the #GdkSurface::state property
 or by listening to notifications on the #GtkWindow:is-maximized property.
 
 </description>
@@ -84574,7 +85671,7 @@ It’s permitted to call this function before showing a window,
 in which case the window will be kept above when it appears onscreen
 initially.
 
-You can track iconification via the #GdkWindow::state property
+You can track iconification via the #GdkSurface::state property
 
 Note that, according to the
 [Extended Window Manager Hints Specification](http://www.freedesktop.org/Standards/wm-spec),
@@ -84610,7 +85707,7 @@ It’s permitted to call this function before showing a window,
 in which case the window will be kept below when it appears onscreen
 initially.
 
-You can track iconification via the #GdkWindow::state property
+You can track iconification via the #GdkSurface::state property
 
 Note that, according to the
 [Extended Window Manager Hints Specification](http://www.freedesktop.org/Standards/wm-spec),
@@ -84809,7 +85906,7 @@ the window in the task bar. This function sets this hint.
 Startup notification identifiers are used by desktop environment to 
 track application startup, to provide user feedback and other 
 features. This function changes the corresponding property on the
-underlying GdkWindow. Normally, startup identifier is managed 
+underlying GdkSurface. Normally, startup identifier is managed 
 automatically and you should only use this function in special cases
 like transferring focus from other processes. You should use this
 function before calling gtk_window_present() or any equivalent
@@ -84899,7 +85996,7 @@ Passing %NULL for @parent unsets the current transient window.
 On Wayland, this function can also be used to attach a new
 #GTK_WINDOW_POPUP to a #GTK_WINDOW_TOPLEVEL parent already mapped
 on screen so that the #GTK_WINDOW_POPUP will be created as a
-subsurface-based window #GDK_WINDOW_SUBSURFACE which can be
+subsurface-based window #GDK_SURFACE_SUBSURFACE which can be
 positioned at will relatively to the #GTK_WINDOW_TOPLEVEL surface.
 
 On Windows, this function puts the child window on top of the parent,
@@ -84976,7 +86073,7 @@ write code that crashes if not.
 
 It’s permitted to call this function before showing a window.
 
-You can track iconification via the #GdkWindow::state property.
+You can track iconification via the #GdkSurface::state property.
 
 </description>
 <parameters>
@@ -84998,7 +86095,7 @@ again, and not all window managers honor requests to unfullscreen
 windows. But normally the window will end up restored to its normal
 state. Just don’t write code that crashes if not.
 
-You can track iconification via the #GdkWindow::state property
+You can track iconification via the #GdkSurface::state property
 
 </description>
 <parameters>
@@ -85019,7 +86116,7 @@ could maximize it again, and not all window
 managers honor requests to unmaximize. But normally the window will
 end up unmaximized. Just don’t write code that crashes if not.
 
-You can track iconification via the #GdkWindow::state property
+You can track iconification via the #GdkSurface::state property
 
 </description>
 <parameters>
@@ -85040,7 +86137,7 @@ window is definitely unstuck afterward, because other entities
 stick it again. But normally the window will
 end up stuck. Just don’t write code that crashes if not.
 
-You can track iconification via the #GdkWindow::state property.
+You can track iconification via the #GdkSurface::state property.
 
 </description>
 <parameters>
diff --git a/gtk/src/gtk_docs_override.xml b/gtk/src/gtk_docs_override.xml
index 5684704..6124628 100644
--- a/gtk/src/gtk_docs_override.xml
+++ b/gtk/src/gtk_docs_override.xml
@@ -110,7 +110,7 @@
 <substitute_enumerator_name from_prefix="GTK_INPUT_HINT_" to_prefix="Gtk::InputHints::" />
 <substitute_enumerator_name from_prefix="GTK_SHADOW_" to_prefix="Gtk::ShadowType::" />
 <substitute_enumerator_name from_prefix="GTK_MESSAGE_" to_prefix="Gtk::MessageType::" />
-<substitute_enumerator_name from_prefix="GDK_WINDOW_TYPE_HINT_" to_prefix="Gdk::Window::TypeHint::" />
+<substitute_enumerator_name from_prefix="GDK_SURFACE_TYPE_HINT_" to_prefix="Gdk::Surface::TypeHint::" />
 <substitute_enumerator_name from_prefix="GTK_BUTTON_ROLE_" to_prefix="Gtk::ButtonRole::" />
 <substitute_enumerator_name from_prefix="GTK_POPOVER_CONSTRAINT_" to_prefix="Gtk::Popover::Constraint::" />
 <substitute_enumerator_name from_prefix="GTK_RECENT_SORT_" to_prefix="Gtk::RecentSortType::" />
@@ -150,7 +150,7 @@
 <substitute_enumerator_name from="GDK_PROPERTY_CHANGE_MASK" to="Gdk::EventMask::PROPERTY_CHANGE_MASK" />
 <substitute_enumerator_name from="GDK_PROXIMITY_IN_MASK" to="Gdk::EventMask::PROXIMITY_IN_MASK" />
 <substitute_enumerator_name from="GDK_PROXIMITY_OUT_MASK" to="Gdk::EventMask::PROXIMITY_OUT_MASK" />
-<substitute_enumerator_name from="GDK_WINDOW_SUBSURFACE" to="Gdk::WindowType::SUBSURFACE" />
+<substitute_enumerator_name from="GDK_SURFACE_SUBSURFACE" to="Gdk::Surface::Type::SUBSURFACE" />
 <!-- These are preprocessor defines. Don't substitute. -->
 <substitute_enumerator_name from="GTK_BUILDER_ERROR" to="GTK_BUILDER_ERROR" />
 <substitute_enumerator_name from="G_MARKUP_ERROR" to="G_MARKUP_ERROR" />
diff --git a/gtk/src/gtk_enums.defs b/gtk/src/gtk_enums.defs
index 2fc413e..e8321f7 100644
--- a/gtk/src/gtk_enums.defs
+++ b/gtk/src/gtk_enums.defs
@@ -1626,18 +1626,22 @@
 
 ;; Original typedef:
 ;; typedef enum {
-;;   GTK_FONT_CHOOSER_LEVEL_FONT,
-;;   GTK_FONT_CHOOSER_LEVEL_FACE,
-;;   GTK_FONT_CHOOSER_LEVEL_FAMILY
+;;   GTK_FONT_CHOOSER_LEVEL_FAMILY    = 0,
+;;   GTK_FONT_CHOOSER_LEVEL_STYLE     = 1 << 0,
+;;   GTK_FONT_CHOOSER_LEVEL_SIZE      = 1 << 1,
+;;   GTK_FONT_CHOOSER_LEVEL_VARIATION = 1 << 2,
+;;   GTK_FONT_CHOOSER_LEVEL_FEATURES  = 1 << 3
 ;; } GtkFontChooserLevel;
 
-(define-enum-extended FontChooserLevel
+(define-flags-extended FontChooserLevel
   (in-module "Gtk")
   (c-name "GtkFontChooserLevel")
   (values
-    '("font" "GTK_FONT_CHOOSER_LEVEL_FONT" "0")
-    '("face" "GTK_FONT_CHOOSER_LEVEL_FACE" "1")
-    '("family" "GTK_FONT_CHOOSER_LEVEL_FAMILY" "2")
+    '("family" "GTK_FONT_CHOOSER_LEVEL_FAMILY" "0x0")
+    '("style" "GTK_FONT_CHOOSER_LEVEL_STYLE" "1 << 0")
+    '("size" "GTK_FONT_CHOOSER_LEVEL_SIZE" "1 << 1")
+    '("variation" "GTK_FONT_CHOOSER_LEVEL_VARIATION" "1 << 2")
+    '("features" "GTK_FONT_CHOOSER_LEVEL_FEATURES" "1 << 3")
   )
 )
 
@@ -1753,8 +1757,7 @@
 ;;   GTK_IMAGE_EMPTY,
 ;;   GTK_IMAGE_ICON_NAME,
 ;;   GTK_IMAGE_GICON,
-;;   GTK_IMAGE_SURFACE,
-;;   GTK_IMAGE_TEXTURE
+;;   GTK_IMAGE_PAINTABLE
 ;; } GtkImageType;
 
 (define-enum-extended ImageType
@@ -1764,8 +1767,7 @@
     '("empty" "GTK_IMAGE_EMPTY" "0")
     '("icon-name" "GTK_IMAGE_ICON_NAME" "1")
     '("gicon" "GTK_IMAGE_GICON" "2")
-    '("surface" "GTK_IMAGE_SURFACE" "3")
-    '("texture" "GTK_IMAGE_TEXTURE" "4")
+    '("paintable" "GTK_IMAGE_PAINTABLE" "3")
   )
 )
 
diff --git a/gtk/src/gtk_methods.defs b/gtk/src/gtk_methods.defs
index f65455f..81459a6 100644
--- a/gtk/src/gtk_methods.defs
+++ b/gtk/src/gtk_methods.defs
@@ -2077,14 +2077,16 @@
   )
 )
 
-(define-enum FontChooserLevel
+(define-flags FontChooserLevel
   (in-module "Gtk")
   (c-name "GtkFontChooserLevel")
   (gtype-id "GTK_TYPE_FONT_CHOOSER_LEVEL")
   (values
-    '("font" "GTK_FONT_CHOOSER_LEVEL_FONT")
-    '("face" "GTK_FONT_CHOOSER_LEVEL_FACE")
     '("family" "GTK_FONT_CHOOSER_LEVEL_FAMILY")
+    '("style" "GTK_FONT_CHOOSER_LEVEL_STYLE")
+    '("size" "GTK_FONT_CHOOSER_LEVEL_SIZE")
+    '("variation" "GTK_FONT_CHOOSER_LEVEL_VARIATION")
+    '("features" "GTK_FONT_CHOOSER_LEVEL_FEATURES")
   )
 )
 
@@ -2154,8 +2156,7 @@
     '("empty" "GTK_IMAGE_EMPTY")
     '("icon-name" "GTK_IMAGE_ICON_NAME")
     '("gicon" "GTK_IMAGE_GICON")
-    '("surface" "GTK_IMAGE_SURFACE")
-    '("texture" "GTK_IMAGE_TEXTURE")
+    '("paintable" "GTK_IMAGE_PAINTABLE")
   )
 )
 
@@ -2615,16 +2616,6 @@
   (return-type "GType")
 )
 
-(define-function gsk_pango_show_layout
-  (c-name "gsk_pango_show_layout")
-  (return-type "none")
-  (parameters
-    '("GtkSnapshot*" "snapshot")
-    '("const-GdkRGBA*" "fg_color")
-    '("PangoLayout*" "layout")
-  )
-)
-
 
 
 ;; From gtk-a11y.h
@@ -2867,7 +2858,7 @@
 (define-method get_logo
   (of-object "GtkAboutDialog")
   (c-name "gtk_about_dialog_get_logo")
-  (return-type "GdkTexture*")
+  (return-type "GdkPaintable*")
 )
 
 (define-method set_logo
@@ -2875,7 +2866,7 @@
   (c-name "gtk_about_dialog_set_logo")
   (return-type "none")
   (parameters
-    '("GdkTexture*" "logo")
+    '("GdkPaintable*" "logo")
   )
 )
 
@@ -8125,21 +8116,12 @@
   )
 )
 
-(define-function gtk_drag_set_icon_surface
-  (c-name "gtk_drag_set_icon_surface")
-  (return-type "none")
-  (parameters
-    '("GdkDragContext*" "context")
-    '("cairo_surface_t*" "surface")
-  )
-)
-
-(define-function gtk_drag_set_icon_texture
-  (c-name "gtk_drag_set_icon_texture")
+(define-function gtk_drag_set_icon_paintable
+  (c-name "gtk_drag_set_icon_paintable")
   (return-type "none")
   (parameters
     '("GdkDragContext*" "context")
-    '("GdkTexture*" "texture")
+    '("GdkPaintable*" "paintable")
     '("int" "hot_x")
     '("int" "hot_y")
   )
@@ -8342,15 +8324,6 @@
   )
 )
 
-(define-function gtk_drag_source_set_icon_surface
-  (c-name "gtk_drag_source_set_icon_surface")
-  (return-type "none")
-  (parameters
-    '("GtkWidget*" "widget")
-    '("cairo_surface_t*" "surface")
-  )
-)
-
 (define-function gtk_drag_source_set_icon_name
   (c-name "gtk_drag_source_set_icon_name")
   (return-type "none")
@@ -8369,6 +8342,15 @@
   )
 )
 
+(define-function gtk_drag_source_set_icon_paintable
+  (c-name "gtk_drag_source_set_icon_paintable")
+  (return-type "none")
+  (parameters
+    '("GtkWidget*" "widget")
+    '("GdkPaintable*" "paintable")
+  )
+)
+
 
 
 ;; From gtkdrawingarea.h
@@ -9174,13 +9156,13 @@
   )
 )
 
-(define-method set_icon_from_texture
+(define-method set_icon_from_paintable
   (of-object "GtkEntry")
-  (c-name "gtk_entry_set_icon_from_texture")
+  (c-name "gtk_entry_set_icon_from_paintable")
   (return-type "none")
   (parameters
     '("GtkEntryIconPosition" "icon_pos")
-    '("GdkTexture*" "texture")
+    '("GdkPaintable*" "paintable")
   )
 )
 
@@ -9213,10 +9195,10 @@
   )
 )
 
-(define-method get_icon_texture
+(define-method get_icon_paintable
   (of-object "GtkEntry")
-  (c-name "gtk_entry_get_icon_texture")
-  (return-type "GdkTexture*")
+  (c-name "gtk_entry_get_icon_paintable")
+  (return-type "GdkPaintable*")
   (parameters
     '("GtkEntryIconPosition" "icon_pos")
   )
@@ -11040,18 +11022,13 @@
   (return-type "none")
   (parameters
     '("gfloat" "xalign")
-    '("gfloat" "yalign")
   )
 )
 
 (define-method get_label_align
   (of-object "GtkFrame")
   (c-name "gtk_frame_get_label_align")
-  (return-type "none")
-  (parameters
-    '("gfloat*" "xalign")
-    '("gfloat*" "yalign")
-  )
+  (return-type "gfloat")
 )
 
 (define-method set_shadow_type
@@ -12121,20 +12098,6 @@
   )
 )
 
-(define-method load_surface
-  (of-object "GtkIconTheme")
-  (c-name "gtk_icon_theme_load_surface")
-  (return-type "cairo_surface_t*")
-  (parameters
-    '("const-gchar*" "icon_name")
-    '("gint" "size")
-    '("gint" "scale")
-    '("GdkWindow*" "for_window")
-    '("GtkIconLookupFlags" "flags")
-    '("GError**" "error")
-  )
-)
-
 (define-method lookup_by_gicon
   (of-object "GtkIconTheme")
   (c-name "gtk_icon_theme_lookup_by_gicon")
@@ -12232,16 +12195,6 @@
   )
 )
 
-(define-method load_surface
-  (of-object "GtkIconInfo")
-  (c-name "gtk_icon_info_load_surface")
-  (return-type "cairo_surface_t*")
-  (parameters
-    '("GdkWindow*" "for_window")
-    '("GError**" "error")
-  )
-)
-
 (define-method load_texture
   (of-object "GtkIconInfo")
   (c-name "gtk_icon_info_load_texture")
@@ -12814,7 +12767,7 @@
 (define-method create_drag_icon
   (of-object "GtkIconView")
   (c-name "gtk_icon_view_create_drag_icon")
-  (return-type "cairo_surface_t*")
+  (return-type "GdkPaintable*")
   (parameters
     '("GtkTreePath*" "path")
   )
@@ -12920,11 +12873,11 @@
   )
 )
 
-(define-function gtk_image_new_from_texture
-  (c-name "gtk_image_new_from_texture")
+(define-function gtk_image_new_from_paintable
+  (c-name "gtk_image_new_from_paintable")
   (return-type "GtkWidget*")
   (parameters
-    '("GdkTexture*" "texture")
+    '("GdkPaintable*" "paintable")
   )
 )
 
@@ -12944,14 +12897,6 @@
   )
 )
 
-(define-function gtk_image_new_from_surface
-  (c-name "gtk_image_new_from_surface")
-  (return-type "GtkWidget*")
-  (parameters
-    '("cairo_surface_t*" "surface")
-  )
-)
-
 (define-method clear
   (of-object "GtkImage")
   (c-name "gtk_image_clear")
@@ -12985,12 +12930,12 @@
   )
 )
 
-(define-method set_from_texture
+(define-method set_from_paintable
   (of-object "GtkImage")
-  (c-name "gtk_image_set_from_texture")
+  (c-name "gtk_image_set_from_paintable")
   (return-type "none")
   (parameters
-    '("GdkTexture*" "texture")
+    '("GdkPaintable*" "paintable")
   )
 )
 
@@ -13012,15 +12957,6 @@
   )
 )
 
-(define-method set_from_surface
-  (of-object "GtkImage")
-  (c-name "gtk_image_set_from_surface")
-  (return-type "none")
-  (parameters
-    '("cairo_surface_t*" "surface")
-  )
-)
-
 (define-method set_pixel_size
   (of-object "GtkImage")
   (c-name "gtk_image_set_pixel_size")
@@ -13039,22 +12975,34 @@
   )
 )
 
-(define-method get_storage_type
+(define-method set_keep_aspect_ratio
   (of-object "GtkImage")
-  (c-name "gtk_image_get_storage_type")
-  (return-type "GtkImageType")
+  (c-name "gtk_image_set_keep_aspect_ratio")
+  (return-type "none")
+  (parameters
+    '("gboolean" "keep_aspect_ratio")
+  )
 )
 
-(define-method get_surface
+(define-method set_can_shrink
   (of-object "GtkImage")
-  (c-name "gtk_image_get_surface")
-  (return-type "cairo_surface_t*")
+  (c-name "gtk_image_set_can_shrink")
+  (return-type "none")
+  (parameters
+    '("gboolean" "can_shrink")
+  )
 )
 
-(define-method get_texture
+(define-method get_storage_type
   (of-object "GtkImage")
-  (c-name "gtk_image_get_texture")
-  (return-type "GdkTexture*")
+  (c-name "gtk_image_get_storage_type")
+  (return-type "GtkImageType")
+)
+
+(define-method get_paintable
+  (of-object "GtkImage")
+  (c-name "gtk_image_get_paintable")
+  (return-type "GdkPaintable*")
 )
 
 (define-method get_icon_name
@@ -13081,6 +13029,18 @@
   (return-type "GtkIconSize")
 )
 
+(define-method get_keep_aspect_ratio
+  (of-object "GtkImage")
+  (c-name "gtk_image_get_keep_aspect_ratio")
+  (return-type "gboolean")
+)
+
+(define-method get_can_shrink
+  (of-object "GtkImage")
+  (c-name "gtk_image_get_can_shrink")
+  (return-type "gboolean")
+)
+
 
 
 ;; From gtkimcontextbroadway.h
@@ -13199,6 +13159,11 @@
 
 ;; From gtkimcontextime.h
 
+(define-function gtk_im_context_ime_get_type
+  (c-name "gtk_im_context_ime_get_type")
+  (return-type "GType")
+)
+
 (define-function gtk_im_context_ime_register_type
   (c-name "gtk_im_context_ime_register_type")
   (return-type "none")
@@ -13510,41 +13475,6 @@
 
 
 
-;; From gtkkineticscrolling.h
-
-(define-function gtk_kinetic_scrolling_new
-  (c-name "gtk_kinetic_scrolling_new")
-  (is-constructor-of "GtkKineticScrolling")
-  (return-type "GtkKineticScrolling*")
-  (parameters
-    '("gdouble" "lower")
-    '("gdouble" "upper")
-    '("gdouble" "overshoot_width")
-    '("gdouble" "decel_friction")
-    '("gdouble" "overshoot_friction")
-    '("gdouble" "initial_position")
-    '("gdouble" "initial_velocity")
-  )
-)
-
-(define-method free
-  (of-object "GtkKineticScrolling")
-  (c-name "gtk_kinetic_scrolling_free")
-  (return-type "none")
-)
-
-(define-method tick
-  (of-object "GtkKineticScrolling")
-  (c-name "gtk_kinetic_scrolling_tick")
-  (return-type "gboolean")
-  (parameters
-    '("gdouble" "time_delta")
-    '("gdouble*" "position")
-  )
-)
-
-
-
 ;; From gtklabel.h
 
 (define-function gtk_label_get_type
@@ -14952,6 +14882,365 @@
 
 
 
+;; From gtkmediacontrols.h
+
+(define-function gtk_media_controls_new
+  (c-name "gtk_media_controls_new")
+  (is-constructor-of "GtkMediaControls")
+  (return-type "GtkWidget*")
+  (parameters
+    '("GtkMediaStream*" "stream")
+  )
+)
+
+(define-method get_media_stream
+  (of-object "GtkMediaControls")
+  (c-name "gtk_media_controls_get_media_stream")
+  (return-type "GtkMediaStream*")
+)
+
+(define-method set_media_stream
+  (of-object "GtkMediaControls")
+  (c-name "gtk_media_controls_set_media_stream")
+  (return-type "none")
+  (parameters
+    '("GtkMediaStream*" "stream")
+  )
+)
+
+
+
+;; From gtkmediafile.h
+
+(define-function gtk_media_file_new
+  (c-name "gtk_media_file_new")
+  (is-constructor-of "GtkMediaFile")
+  (return-type "GtkMediaStream*")
+)
+
+(define-function gtk_media_file_new_for_filename
+  (c-name "gtk_media_file_new_for_filename")
+  (return-type "GtkMediaStream*")
+  (parameters
+    '("const-char*" "filename")
+  )
+)
+
+(define-function gtk_media_file_new_for_resource
+  (c-name "gtk_media_file_new_for_resource")
+  (return-type "GtkMediaStream*")
+  (parameters
+    '("const-char*" "resource_path")
+  )
+)
+
+(define-function gtk_media_file_new_for_file
+  (c-name "gtk_media_file_new_for_file")
+  (return-type "GtkMediaStream*")
+  (parameters
+    '("GFile*" "file")
+  )
+)
+
+(define-function gtk_media_file_new_for_input_stream
+  (c-name "gtk_media_file_new_for_input_stream")
+  (return-type "GtkMediaStream*")
+  (parameters
+    '("GInputStream*" "stream")
+  )
+)
+
+(define-method clear
+  (of-object "GtkMediaFile")
+  (c-name "gtk_media_file_clear")
+  (return-type "none")
+)
+
+(define-method set_filename
+  (of-object "GtkMediaFile")
+  (c-name "gtk_media_file_set_filename")
+  (return-type "none")
+  (parameters
+    '("const-char*" "filename")
+  )
+)
+
+(define-method set_resource
+  (of-object "GtkMediaFile")
+  (c-name "gtk_media_file_set_resource")
+  (return-type "none")
+  (parameters
+    '("const-char*" "resource_path")
+  )
+)
+
+(define-method set_file
+  (of-object "GtkMediaFile")
+  (c-name "gtk_media_file_set_file")
+  (return-type "none")
+  (parameters
+    '("GFile*" "file")
+  )
+)
+
+(define-method get_file
+  (of-object "GtkMediaFile")
+  (c-name "gtk_media_file_get_file")
+  (return-type "GFile*")
+)
+
+(define-method set_input_stream
+  (of-object "GtkMediaFile")
+  (c-name "gtk_media_file_set_input_stream")
+  (return-type "none")
+  (parameters
+    '("GInputStream*" "stream")
+  )
+)
+
+(define-method get_input_stream
+  (of-object "GtkMediaFile")
+  (c-name "gtk_media_file_get_input_stream")
+  (return-type "GInputStream*")
+)
+
+
+
+;; From gtkmediastream.h
+
+(define-method is_prepared
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_is_prepared")
+  (return-type "gboolean")
+)
+
+(define-method get_error
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_get_error")
+  (return-type "const-GError*")
+)
+
+(define-method has_audio
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_has_audio")
+  (return-type "gboolean")
+)
+
+(define-method has_video
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_has_video")
+  (return-type "gboolean")
+)
+
+(define-method play
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_play")
+  (return-type "none")
+)
+
+(define-method pause
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_pause")
+  (return-type "none")
+)
+
+(define-method get_playing
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_get_playing")
+  (return-type "gboolean")
+)
+
+(define-method set_playing
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_set_playing")
+  (return-type "none")
+  (parameters
+    '("gboolean" "playing")
+  )
+)
+
+(define-method get_ended
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_get_ended")
+  (return-type "gboolean")
+)
+
+(define-method get_timestamp
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_get_timestamp")
+  (return-type "gint64")
+)
+
+(define-method get_duration
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_get_duration")
+  (return-type "gint64")
+)
+
+(define-method is_seekable
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_is_seekable")
+  (return-type "gboolean")
+)
+
+(define-method is_seeking
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_is_seeking")
+  (return-type "gboolean")
+)
+
+(define-method seek
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_seek")
+  (return-type "none")
+  (parameters
+    '("gint64" "timestamp")
+  )
+)
+
+(define-method get_loop
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_get_loop")
+  (return-type "gboolean")
+)
+
+(define-method set_loop
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_set_loop")
+  (return-type "none")
+  (parameters
+    '("gboolean" "loop")
+  )
+)
+
+(define-method get_muted
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_get_muted")
+  (return-type "gboolean")
+)
+
+(define-method set_muted
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_set_muted")
+  (return-type "none")
+  (parameters
+    '("gboolean" "muted")
+  )
+)
+
+(define-method get_volume
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_get_volume")
+  (return-type "double")
+)
+
+(define-method set_volume
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_set_volume")
+  (return-type "none")
+  (parameters
+    '("double" "volume")
+  )
+)
+
+(define-method realize
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_realize")
+  (return-type "none")
+  (parameters
+    '("GdkSurface*" "surface")
+  )
+)
+
+(define-method unrealize
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_unrealize")
+  (return-type "none")
+  (parameters
+    '("GdkSurface*" "surface")
+  )
+)
+
+(define-method prepared
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_prepared")
+  (return-type "none")
+  (parameters
+    '("gboolean" "has_audio")
+    '("gboolean" "has_video")
+    '("gboolean" "seekable")
+    '("gint64" "duration")
+  )
+)
+
+(define-method unprepared
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_unprepared")
+  (return-type "none")
+)
+
+(define-method update
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_update")
+  (return-type "none")
+  (parameters
+    '("gint64" "timestamp")
+  )
+)
+
+(define-method ended
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_ended")
+  (return-type "none")
+)
+
+(define-method seek_success
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_seek_success")
+  (return-type "none")
+)
+
+(define-method seek_failed
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_seek_failed")
+  (return-type "none")
+)
+
+(define-method gerror
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_gerror")
+  (return-type "none")
+  (parameters
+    '("GError*" "error")
+  )
+)
+
+(define-method error
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_error")
+  (return-type "none")
+  (parameters
+    '("GQuark" "domain")
+    '("gint" "code")
+    '("const-gchar*" "format")
+  )
+  (varargs #t)
+)
+
+(define-method error_valist
+  (of-object "GtkMediaStream")
+  (c-name "gtk_media_stream_error_valist")
+  (return-type "none")
+  (parameters
+    '("GQuark" "domain")
+    '("gint" "code")
+    '("const-gchar*" "format")
+    '("va_list" "args")
+  )
+)
+
+
+
 ;; From gtkmenubar.h
 
 (define-function gtk_menu_bar_get_type
@@ -15166,7 +15455,7 @@
   (c-name "gtk_menu_popup_at_rect")
   (return-type "none")
   (parameters
-    '("GdkWindow*" "rect_window")
+    '("GdkSurface*" "rect_surface")
     '("const-GdkRectangle*" "rect")
     '("GdkGravity" "rect_anchor")
     '("GdkGravity" "menu_anchor")
@@ -21433,21 +21722,6 @@
   )
 )
 
-(define-method get_surface
-  (of-object "GtkSelectionData")
-  (c-name "gtk_selection_data_get_surface")
-  (return-type "cairo_surface_t*")
-)
-
-(define-method set_surface
-  (of-object "GtkSelectionData")
-  (c-name "gtk_selection_data_set_surface")
-  (return-type "gboolean")
-  (parameters
-    '("cairo_surface_t*" "surface")
-  )
-)
-
 (define-method get_pixbuf
   (of-object "GtkSelectionData")
   (c-name "gtk_selection_data_get_pixbuf")
@@ -21878,6 +22152,48 @@
 
 ;; From gtksnapshot.h
 
+(define-function gtk_snapshot_new
+  (c-name "gtk_snapshot_new")
+  (is-constructor-of "GtkSnapshot")
+  (return-type "GtkSnapshot*")
+  (parameters
+    '("gboolean" "record_names")
+    '("const-cairo_region_t*" "clip")
+    '("const-char*" "name")
+  )
+  (varargs #t)
+)
+
+(define-method free_to_node
+  (of-object "GtkSnapshot")
+  (c-name "gtk_snapshot_free_to_node")
+  (return-type "GskRenderNode*")
+)
+
+(define-method free_to_paintable
+  (of-object "GtkSnapshot")
+  (c-name "gtk_snapshot_free_to_paintable")
+  (return-type "GdkPaintable*")
+)
+
+(define-method to_node
+  (of-object "GtkSnapshot")
+  (c-name "gtk_snapshot_to_node")
+  (return-type "GskRenderNode*")
+)
+
+(define-method to_paintable
+  (of-object "GtkSnapshot")
+  (c-name "gtk_snapshot_to_paintable")
+  (return-type "GdkPaintable*")
+)
+
+(define-method get_record_names
+  (of-object "GtkSnapshot")
+  (c-name "gtk_snapshot_get_record_names")
+  (return-type "gboolean")
+)
+
 (define-method push
   (of-object "GtkSnapshot")
   (c-name "gtk_snapshot_push")
@@ -22072,6 +22388,18 @@
   (varargs #t)
 )
 
+(define-method append_layout
+  (of-object "GtkSnapshot")
+  (c-name "gtk_snapshot_append_layout")
+  (return-type "none")
+  (parameters
+    '("PangoLayout*" "layout")
+    '("const-GdkRGBA*" "color")
+    '("const-char*" "name")
+  )
+  (varargs #t)
+)
+
 (define-method clips_rect
   (of-object "GtkSnapshot")
   (c-name "gtk_snapshot_clips_rect")
@@ -24722,6 +25050,27 @@
 
 ;; From gtktextutil.h
 
+(define-function gtk_text_util_create_drag_icon
+  (c-name "gtk_text_util_create_drag_icon")
+  (return-type "GdkPaintable*")
+  (parameters
+    '("GtkWidget*" "widget")
+    '("gchar*" "text")
+    '("gsize" "len")
+  )
+)
+
+(define-function gtk_text_util_create_rich_drag_icon
+  (c-name "gtk_text_util_create_rich_drag_icon")
+  (return-type "GdkPaintable*")
+  (parameters
+    '("GtkWidget*" "widget")
+    '("GtkTextBuffer*" "buffer")
+    '("GtkTextIter*" "start")
+    '("GtkTextIter*" "end")
+  )
+)
+
 
 
 ;; From gtktextview.h
@@ -24906,9 +25255,9 @@
   )
 )
 
-(define-method buffer_to_window_coords
+(define-method buffer_to_surface_coords
   (of-object "GtkTextView")
-  (c-name "gtk_text_view_buffer_to_window_coords")
+  (c-name "gtk_text_view_buffer_to_surface_coords")
   (return-type "none")
   (parameters
     '("GtkTextWindowType" "win")
@@ -25854,7 +26203,7 @@
   (c-name "gtk_tooltip_set_icon")
   (return-type "none")
   (parameters
-    '("GdkTexture*" "texture")
+    '("GdkPaintable*" "paintable")
   )
 )
 
@@ -28091,7 +28440,7 @@
 (define-method create_row_drag_icon
   (of-object "GtkTreeView")
   (c-name "gtk_tree_view_create_row_drag_icon")
-  (return-type "cairo_surface_t*")
+  (return-type "GdkPaintable*")
   (parameters
     '("GtkTreePath*" "path")
   )
@@ -28456,6 +28805,96 @@
 
 
 
+;; From gtkvideo.h
+
+(define-function gtk_video_new
+  (c-name "gtk_video_new")
+  (is-constructor-of "GtkVideo")
+  (return-type "GtkWidget*")
+)
+
+(define-function gtk_video_new_for_media_stream
+  (c-name "gtk_video_new_for_media_stream")
+  (return-type "GtkWidget*")
+  (parameters
+    '("GtkMediaStream*" "stream")
+  )
+)
+
+(define-function gtk_video_new_for_file
+  (c-name "gtk_video_new_for_file")
+  (return-type "GtkWidget*")
+  (parameters
+    '("GFile*" "file")
+  )
+)
+
+(define-function gtk_video_new_for_filename
+  (c-name "gtk_video_new_for_filename")
+  (return-type "GtkWidget*")
+  (parameters
+    '("const-char*" "filename")
+  )
+)
+
+(define-function gtk_video_new_for_resource
+  (c-name "gtk_video_new_for_resource")
+  (return-type "GtkWidget*")
+  (parameters
+    '("const-char*" "resource_path")
+  )
+)
+
+(define-method get_media_stream
+  (of-object "GtkVideo")
+  (c-name "gtk_video_get_media_stream")
+  (return-type "GtkMediaStream*")
+)
+
+(define-method set_media_stream
+  (of-object "GtkVideo")
+  (c-name "gtk_video_set_media_stream")
+  (return-type "none")
+  (parameters
+    '("GtkMediaStream*" "stream")
+  )
+)
+
+(define-method get_file
+  (of-object "GtkVideo")
+  (c-name "gtk_video_get_file")
+  (return-type "GFile*")
+)
+
+(define-method set_file
+  (of-object "GtkVideo")
+  (c-name "gtk_video_set_file")
+  (return-type "none")
+  (parameters
+    '("GFile*" "file")
+  )
+)
+
+(define-method set_filename
+  (of-object "GtkVideo")
+  (c-name "gtk_video_set_filename")
+  (return-type "none")
+  (parameters
+    '("const-char*" "filename")
+  )
+)
+
+(define-method set_resource
+  (of-object "GtkVideo")
+  (c-name "gtk_video_set_resource")
+  (return-type "none")
+  (parameters
+    '("const-char*" "resource_path")
+  )
+)
+
+
+
 ;; From gtkviewport.h
 
 (define-function gtk_viewport_get_type
@@ -28987,18 +29426,18 @@
   (return-type "gboolean")
 )
 
-(define-method set_has_window
+(define-method set_has_surface
   (of-object "GtkWidget")
-  (c-name "gtk_widget_set_has_window")
+  (c-name "gtk_widget_set_has_surface")
   (return-type "none")
   (parameters
-    '("gboolean" "has_window")
+    '("gboolean" "has_surface")
   )
 )
 
-(define-method get_has_window
+(define-method get_has_surface
   (of-object "GtkWidget")
-  (c-name "gtk_widget_get_has_window")
+  (c-name "gtk_widget_get_has_surface")
   (return-type "gboolean")
 )
 
@@ -29050,19 +29489,19 @@
   (return-type "GtkWidget*")
 )
 
-(define-method set_parent_window
+(define-method set_parent_surface
   (of-object "GtkWidget")
-  (c-name "gtk_widget_set_parent_window")
+  (c-name "gtk_widget_set_parent_surface")
   (return-type "none")
   (parameters
-    '("GdkWindow*" "parent_window")
+    '("GdkSurface*" "parent_surface")
   )
 )
 
-(define-method get_parent_window
+(define-method get_parent_surface
   (of-object "GtkWidget")
-  (c-name "gtk_widget_get_parent_window")
-  (return-type "GdkWindow*")
+  (c-name "gtk_widget_get_parent_surface")
+  (return-type "GdkSurface*")
 )
 
 (define-method set_child_visible
@@ -29080,36 +29519,36 @@
   (return-type "gboolean")
 )
 
-(define-method set_window
+(define-method set_surface
   (of-object "GtkWidget")
-  (c-name "gtk_widget_set_window")
+  (c-name "gtk_widget_set_surface")
   (return-type "none")
   (parameters
-    '("GdkWindow*" "window")
+    '("GdkSurface*" "surface")
   )
 )
 
-(define-method get_window
+(define-method get_surface
   (of-object "GtkWidget")
-  (c-name "gtk_widget_get_window")
-  (return-type "GdkWindow*")
+  (c-name "gtk_widget_get_surface")
+  (return-type "GdkSurface*")
 )
 
-(define-method register_window
+(define-method register_surface
   (of-object "GtkWidget")
-  (c-name "gtk_widget_register_window")
+  (c-name "gtk_widget_register_surface")
   (return-type "none")
   (parameters
-    '("GdkWindow*" "window")
+    '("GdkSurface*" "surface")
   )
 )
 
-(define-method unregister_window
+(define-method unregister_surface
   (of-object "GtkWidget")
-  (c-name "gtk_widget_unregister_window")
+  (c-name "gtk_widget_unregister_surface")
   (return-type "none")
   (parameters
-    '("GdkWindow*" "window")
+    '("GdkSurface*" "surface")
   )
 )
 
@@ -29591,15 +30030,6 @@
   (return-type "GtkTextDirection")
 )
 
-(define-method shape_combine_region
-  (of-object "GtkWidget")
-  (c-name "gtk_widget_shape_combine_region")
-  (return-type "none")
-  (parameters
-    '("cairo_region_t*" "region")
-  )
-)
-
 (define-method input_shape_combine_region
   (of-object "GtkWidget")
   (c-name "gtk_widget_input_shape_combine_region")
@@ -30476,14 +30906,14 @@
   (c-name "gtk_window_set_type_hint")
   (return-type "none")
   (parameters
-    '("GdkWindowTypeHint" "hint")
+    '("GdkSurfaceTypeHint" "hint")
   )
 )
 
 (define-method get_type_hint
   (of-object "GtkWindow")
   (c-name "gtk_window_get_type_hint")
-  (return-type "GdkWindowTypeHint")
+  (return-type "GdkSurfaceTypeHint")
 )
 
 (define-method set_skip_taskbar_hint
@@ -30995,7 +31425,7 @@
   (c-name "gtk_window_begin_resize_drag")
   (return-type "none")
   (parameters
-    '("GdkWindowEdge" "edge")
+    '("GdkSurfaceEdge" "edge")
     '("gint" "button")
     '("gint" "root_x")
     '("gint" "root_y")
diff --git a/gtk/src/gtk_signals.defs b/gtk/src/gtk_signals.defs
index 5bfe3a0..b0b47c3 100644
--- a/gtk/src/gtk_signals.defs
+++ b/gtk/src/gtk_signals.defs
@@ -2017,7 +2017,7 @@
   (of-object "GtkCellRendererPixbuf")
   (prop-type "GParamObject")
   (docs "The pixbuf to render")
-  (readable #t)
+  (readable #f)
   (writable #t)
   (construct-only #f)
 )
@@ -2040,15 +2040,6 @@
   (construct-only #f)
 )
 
-(define-property surface
-  (of-object "GtkCellRendererPixbuf")
-  (prop-type "GParamBoxed")
-  (docs "The surface to render")
-  (readable #t)
-  (writable #t)
-  (construct-only #f)
-)
-
 (define-property texture
   (of-object "GtkCellRendererPixbuf")
   (prop-type "GParamObject")
@@ -2975,19 +2966,19 @@
   (default-value "0")
 )
 
-(define-property primary-icon-texture
+(define-property primary-icon-paintable
   (of-object "GtkEntry")
   (prop-type "GParamObject")
-  (docs "Primary texture for the entry")
+  (docs "Primary paintable for the entry")
   (readable #t)
   (writable #t)
   (construct-only #f)
 )
 
-(define-property secondary-icon-texture
+(define-property secondary-icon-paintable
   (of-object "GtkEntry")
   (prop-type "GParamObject")
-  (docs "Secondary texture for the entry")
+  (docs "Secondary paintable for the entry")
   (readable #t)
   (writable #t)
   (construct-only #f)
@@ -4026,12 +4017,12 @@
 
 (define-property level
   (of-object "GtkFontChooser")
-  (prop-type "GParamEnum")
+  (prop-type "GParamFlags")
   (docs "Whether to select family, face or font")
   (readable #t)
   (writable #t)
   (construct-only #f)
-  (default-value "GTK_FONT_CHOOSER_LEVEL_FONT")
+  (default-value "GTK_FONT_CHOOSER_LEVEL_STYLE | GTK_FONT_CHOOSER_LEVEL_SIZE | 
GTK_FONT_CHOOSER_LEVEL_VARIATION")
 )
 
 (define-property preview-text
@@ -4058,6 +4049,15 @@
 
 ;; From GtkFontChooserWidget
 
+(define-property tweak-action
+  (of-object "GtkFontChooserWidget")
+  (prop-type "GParamObject")
+  (docs "The toggle action to switch to the tweak page")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
 ;; From GtkFrame
 
 (define-property label
@@ -4080,16 +4080,6 @@
   (default-value "0")
 )
 
-(define-property label-yalign
-  (of-object "GtkFrame")
-  (prop-type "GParamFloat")
-  (docs "The vertical alignment of the label")
-  (readable #t)
-  (writable #t)
-  (construct-only #f)
-  (default-value "0.5")
-)
-
 (define-property shadow-type
   (of-object "GtkFrame")
   (prop-type "GParamEnum")
@@ -4577,19 +4567,10 @@
 
 ;; From GtkImage
 
-(define-property surface
-  (of-object "GtkImage")
-  (prop-type "GParamBoxed")
-  (docs "A cairo_surface_t to display")
-  (readable #t)
-  (writable #t)
-  (construct-only #f)
-)
-
-(define-property texture
+(define-property paintable
   (of-object "GtkImage")
   (prop-type "GParamObject")
-  (docs "A GdkTexture to display")
+  (docs "A GdkPaintable to display")
   (readable #t)
   (writable #t)
   (construct-only #f)
@@ -4674,6 +4655,26 @@
   (default-value "FALSE")
 )
 
+(define-property keep-aspect-ratio
+  (of-object "GtkImage")
+  (prop-type "GParamBoolean")
+  (docs "Render contents respecting the aspect ratio")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+  (default-value "TRUE")
+)
+
+(define-property can-shrink
+  (of-object "GtkImage")
+  (prop-type "GParamBoolean")
+  (docs "Allow image to be smaller than contents")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+  (default-value "FALSE")
+)
+
 ;; From GtkInfoBar
 
 (define-signal response
@@ -5617,7 +5618,7 @@
   (readable #t)
   (writable #t)
   (construct-only #f)
-  (default-value "GDK_WINDOW_TYPE_HINT_POPUP_MENU")
+  (default-value "GDK_SURFACE_TYPE_HINT_POPUP_MENU")
 )
 
 ;; From GtkMenuBar
@@ -7909,7 +7910,7 @@
   (readable #t)
   (writable #t)
   (construct-only #f)
-  (default-value "file,lpr")
+  (default-value "file,cups")
 )
 
 (define-property gtk-print-preview-command
@@ -11420,10 +11421,10 @@
   (default-value "")
 )
 
-(define-property window
+(define-property surface
   (of-object "GtkWidget")
   (prop-type "GParamObject")
-  (docs "The widget’s window if it is realized")
+  (docs "The widget’s surface if it is realized")
   (readable #t)
   (writable #f)
   (construct-only #f)
@@ -11758,7 +11759,7 @@
   (readable #t)
   (writable #t)
   (construct-only #f)
-  (default-value "GDK_WINDOW_TYPE_HINT_NORMAL")
+  (default-value "GDK_SURFACE_TYPE_HINT_NORMAL")
 )
 
 (define-property skip-taskbar-hint
diff --git a/tools/extra_defs_gen/generate_defs_gdk.cc b/tools/extra_defs_gen/generate_defs_gdk.cc
index fc9b7ab..7371ef7 100644
--- a/tools/extra_defs_gen/generate_defs_gdk.cc
+++ b/tools/extra_defs_gen/generate_defs_gdk.cc
@@ -51,13 +51,14 @@ int main(int /* argc */, char** /* argv */)
             << get_defs( GDK_TYPE_EVENT )
             << get_defs( GDK_TYPE_FRAME_CLOCK )
             << get_defs( GDK_TYPE_MONITOR )
+            << get_defs( GDK_TYPE_PAINTABLE )
             << get_defs( GDK_TYPE_PIXBUF )
             << get_defs( GDK_TYPE_PIXBUF_ANIMATION )
             << get_defs( GDK_TYPE_PIXBUF_LOADER )
             << get_defs( GDK_TYPE_RGBA )
             << get_defs( GDK_TYPE_SEAT )
+            << get_defs( GDK_TYPE_SURFACE )
             << get_defs( GDK_TYPE_TEXTURE )
-            << get_defs( GDK_TYPE_WINDOW )
             << get_defs( GDK_TYPE_GL_CONTEXT )
             ;
   return 0;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]