GtkTreeView: Avoid a crash with empty trees

The gesture code was assuming that the rb tree exists, which
will not be the case if the treeview is empty.

https://bugzilla.gnome.org/show_bug.cgi?id=735300
TextView: clear the background using the default bg color

Try to tidy up how the background is set on the textview:
 *) the .view class should be applied only to the text window, not
    to the margins
 *) when setting the background on the margins we must use .left etc
 *) use context_set_bg instead of manually setting the color

https://bugzilla.gnome.org/show_bug.cgi?id=735368
Adwaita: notebook background
wayland: Make toplevels' X/Y coordinates be 0

To all effects each window has its own "root" coordinates system, so set
toplevels at 0,0 in that coordinate system, so root coordinate calculations
are locally right.

https://bugzilla.gnome.org/show_bug.cgi?id=729215
gdk: Add GDK_WINDOW_SUBSURFACE window type

This window type can only be used on wayland so far, so NULL is returned
if it's attempted to be used on any other windowing backend.

https://bugzilla.gnome.org/show_bug.cgi?id=729215
wayland: Acquire wl_subcompositor interface

This will be needed for GDK_WINDOW_SUBSURFACE windows.

https://bugzilla.gnome.org/show_bug.cgi?id=729215
wayland: create a wl_subsurface interface for GDK_WINDOW_SUBSURFACE windows

This subsurface is currently dependent on the transient_for parent, so the
subsurface is repositioned relative to it.

https://bugzilla.gnome.org/show_bug.cgi?id=729215
wayland: Protect against invalid keymaps gotten from the compositor

If the compositor sends a keymap that fails on "compilation",
xkb_keymap_new_from_string() returns NULL, which makes xkb_state_new()
crash when assuming there is a keymap.

In these cases, gdk must remain with a xkb_state to handle modifiers/keys
properly, so warn about the invalid keymap string, and keep the previous
keymap (currently initialized to "us")

https://bugzilla.gnome.org/show_bug.cgi?id=735389
wayland: rename internal touch management functions

These functions arent quite related to the device manager, so rename these
more conveniently.

https://bugzilla.gnome.org/show_bug.cgi?id=734374
wayland: Store per-touch touch_down serial

https://bugzilla.gnome.org/show_bug.cgi?id=734374
wayland: Improve implicit grab serial retrieval

_gdk_wayland_device_get_button_press_serial() has been replaced by
_gdk_wayland_device_get_implicit_grab_serial(), which takes a touch/pointer
event and figures out the relevant serial, and
_gdk_wayland_device_get_last_implicit_grab_serial() which returns
the most recent serial.

The button press serial was currently used when operating popping up
xdg_shell/surface popups and window menus, so this is now touch aware, of
some sort.

https://bugzilla.gnome.org/show_bug.cgi?id=734374
wayland: Update the display serial on touch down/up events

https://bugzilla.gnome.org/show_bug.cgi?id=734374
wayland: Add internal API to unset a touch implicit grab

This removes both the wayland specific accounting, and the Gdk implicit
grab tracking.

https://bugzilla.gnome.org/show_bug.cgi?id=731380
wayland: unset sequence if the xdg surface is moved/resized through touch

The latest implicit grab serial is used in order to start the compositor
grab, If it belongs to a touch event, remove that touch sequence, as the
rest of the sequence will be gone for good.

This avoids stale sequences (and implicit grab info) after a window is
moved/resized.

https://bugzilla.gnome.org/show_bug.cgi?id=731380
Revert "Adwaita: notebook background"

Not a good solution to the problem at hand (gedit line numbering)

This reverts commit fde03c1f8174a16120264eb689415b6f7535fc81.
wayland: ensure gdk_device_manager_get_client_pointer() returns a master pointer

The internal ordering of devices isn't quite guaranteed, so ensure we're returning
the right one.

https://bugzilla.gnome.org/show_bug.cgi?id=697855
wayland: Fix x/y coordinate arguments on wl_data_device events

Those are wl_fixed_t, not int.

https://bugzilla.gnome.org/show_bug.cgi?id=697855
scalebutton: Handle smooth scroll events

This has the double effect to make scale button truly smooth, and make
scrolling work on wayland, since all scrolling is "smooth" there.

https://bugzilla.gnome.org/show_bug.cgi?id=720269
Adwaita: in app notification fixes
Adwaita: treeview checks/radios minor fix

Superfluous icon shadow in checked hover state removed.