diff --git a/data/default-style.gresource.xml b/data/default-style.gresource.xml
index 9c189170..4c3310bb 100644
--- a/data/default-style.gresource.xml
+++ b/data/default-style.gresource.xml
@@ -120,5 +120,6 @@
style/toggle-handle.png
style/toolbar-background.png
style/tooltip-background.png
+ style/window-close.png
diff --git a/data/style/default.css b/data/style/default.css
index 821afad3..c10b299a 100644
--- a/data/style/default.css
+++ b/data/style/default.css
@@ -397,18 +397,9 @@ MxToolbar {
}
MxToolbar MxButton#close-button {
+ background-image: url('window-close.png');
-mx-icon-name: window-close;
-mx-icon-size: 16;
- padding: 5 7 7 7;
-}
-
-MxToolbar MxButton#close-button:hover {
- -mx-icon-size: 16;
-}
-
-MxToolbar MxButton#close-button:active {
- -mx-icon-size: 16;
- padding: 5 7;
}
MxSlider {
diff --git a/data/style/window-close.png b/data/style/window-close.png
new file mode 100644
index 00000000..fdf3eba2
Binary files /dev/null and b/data/style/window-close.png differ
diff --git a/mx/wayland/mx-window-wayland.c b/mx/wayland/mx-window-wayland.c
index 394f991b..0d0798c0 100644
--- a/mx/wayland/mx-window-wayland.c
+++ b/mx/wayland/mx-window-wayland.c
@@ -111,15 +111,14 @@ _resize_grip_button_press_event_cb (ClutterActor *actor,
MxWindowWaylandPrivate *priv = window->priv;
ClutterStage *stage = mx_window_get_clutter_stage (priv->window);
struct wl_shell_surface *shell_surface;
- struct wl_input_device *input_device;
+ struct wl_seat *seat;
shell_surface = clutter_wayland_stage_get_wl_shell_surface (stage);
- input_device =
- clutter_wayland_input_device_get_wl_input_device (event->button.device);
+ seat = clutter_wayland_input_device_get_wl_seat (event->button.device);
wl_shell_surface_resize (shell_surface,
- input_device,
- event->button.time,
+ seat,
+ event->button.time, /* XXX serial! */
WL_SHELL_SURFACE_RESIZE_BOTTOM_RIGHT);
return FALSE;
@@ -133,13 +132,13 @@ _toolbar_button_press_event_cb (ClutterActor *actor,
MxWindowWaylandPrivate *priv = window->priv;
ClutterStage *stage = mx_window_get_clutter_stage (priv->window);
struct wl_shell_surface *shell_surface;
- struct wl_input_device *input_device;
+ struct wl_seat *seat;
shell_surface = clutter_wayland_stage_get_wl_shell_surface (stage);
- input_device =
- clutter_wayland_input_device_get_wl_input_device (event->button.device);
+ seat = clutter_wayland_input_device_get_wl_seat (event->button.device);
- wl_shell_surface_move (shell_surface, input_device, event->button.time);
+ /* XXX serial! */
+ wl_shell_surface_move (shell_surface, seat, event->button.time);
return FALSE;
}