diff --git a/demos/gtk-demo/Makefile.am b/demos/gtk-demo/Makefile.am
index d31e6bea59..f8b7c9f256 100644
--- a/demos/gtk-demo/Makefile.am
+++ b/demos/gtk-demo/Makefile.am
@@ -155,7 +155,43 @@ RESOURCES = \
css_pixbufs.css \
css_shadows.css \
cssview.css \
- reset.css
+ reset.css \
+ alias_cursor.png \
+ all_scroll_cursor.png \
+ cell_cursor.png \
+ col_resize_cursor.png \
+ copy_cursor.png \
+ crosshair_cursor.png \
+ default_cursor.png \
+ e_resize_cursor.png \
+ ew_resize_cursor.png \
+ grabbing_cursor.png \
+ grab_cursor.png \
+ hand_cursor.png \
+ help_cursor.png \
+ move_cursor.png \
+ ne_resize_cursor.png \
+ nesw_resize_cursor.png \
+ none_cursor.png \
+ no_drop_cursor.png \
+ not_allowed_cursor.png \
+ n_resize_cursor.png \
+ ns_resize_cursor.png \
+ nw_resize_cursor.png \
+ nwse_resize_cursor.png \
+ pointer_cursor.png \
+ progress_cursor.png \
+ row_resize_cursor.png \
+ se_resize_cursor.png \
+ s_resize_cursor.png \
+ sw_resize_cursor.png \
+ text_cursor.png \
+ vertical_text_cursor.png \
+ wait_cursor.png \
+ w_resize_cursor.png \
+ zoom_in_cursor.png \
+ zoom_out_cursor.png
+
iconthemedir = $(datadir)/icons/hicolor
diff --git a/demos/gtk-demo/alias_cursor.png b/demos/gtk-demo/alias_cursor.png
new file mode 100644
index 0000000000..70a7956366
Binary files /dev/null and b/demos/gtk-demo/alias_cursor.png differ
diff --git a/demos/gtk-demo/all_scroll_cursor.png b/demos/gtk-demo/all_scroll_cursor.png
new file mode 100644
index 0000000000..b42ae85b3e
Binary files /dev/null and b/demos/gtk-demo/all_scroll_cursor.png differ
diff --git a/demos/gtk-demo/cell_cursor.png b/demos/gtk-demo/cell_cursor.png
new file mode 100644
index 0000000000..0bb0935d5d
Binary files /dev/null and b/demos/gtk-demo/cell_cursor.png differ
diff --git a/demos/gtk-demo/col_resize_cursor.png b/demos/gtk-demo/col_resize_cursor.png
new file mode 100644
index 0000000000..8dbd462bb0
Binary files /dev/null and b/demos/gtk-demo/col_resize_cursor.png differ
diff --git a/demos/gtk-demo/copy_cursor.png b/demos/gtk-demo/copy_cursor.png
new file mode 100644
index 0000000000..c2350b8170
Binary files /dev/null and b/demos/gtk-demo/copy_cursor.png differ
diff --git a/demos/gtk-demo/crosshair_cursor.png b/demos/gtk-demo/crosshair_cursor.png
new file mode 100644
index 0000000000..7247e063f9
Binary files /dev/null and b/demos/gtk-demo/crosshair_cursor.png differ
diff --git a/demos/gtk-demo/cursors.c b/demos/gtk-demo/cursors.c
index 11889959d2..1ccb580f27 100644
--- a/demos/gtk-demo/cursors.c
+++ b/demos/gtk-demo/cursors.c
@@ -51,8 +51,15 @@ add_button (GtkWidget *section,
if (cursor == NULL)
image = gtk_image_new_from_icon_name ("image-missing", GTK_ICON_SIZE_MENU);
else
- image = gtk_image_new_from_pixbuf (gdk_cursor_get_image (cursor));
- gtk_widget_set_size_request (image, 24, 24);
+ {
+ gchar *path;
+
+ path = g_strdup_printf ("/cursors/%s_cursor.png", css_name);
+ g_strdelimit (path, "-", '_');
+ image = gtk_image_new_from_resource (path);
+ g_free (path);
+ }
+ gtk_widget_set_size_request (image, 32, 32);
button = gtk_button_new ();
gtk_container_add (GTK_CONTAINER (button), image);
gtk_style_context_add_class (gtk_widget_get_style_context (button), "image-button");
diff --git a/demos/gtk-demo/default_cursor.png b/demos/gtk-demo/default_cursor.png
new file mode 100644
index 0000000000..aa39aa4a6f
Binary files /dev/null and b/demos/gtk-demo/default_cursor.png differ
diff --git a/demos/gtk-demo/demo.gresource.xml b/demos/gtk-demo/demo.gresource.xml
index 91db2a526b..91f50b6e82 100644
--- a/demos/gtk-demo/demo.gresource.xml
+++ b/demos/gtk-demo/demo.gresource.xml
@@ -47,6 +47,43 @@
cssview.css
reset.css
+
+ alias_cursor.png
+ all_scroll_cursor.png
+ cell_cursor.png
+ col_resize_cursor.png
+ copy_cursor.png
+ crosshair_cursor.png
+ default_cursor.png
+ e_resize_cursor.png
+ ew_resize_cursor.png
+ grabbing_cursor.png
+ grab_cursor.png
+ hand_cursor.png
+ help_cursor.png
+ move_cursor.png
+ ne_resize_cursor.png
+ nesw_resize_cursor.png
+ no_drop_cursor.png
+ none_cursor.png
+ not_allowed_cursor.png
+ n_resize_cursor.png
+ ns_resize_cursor.png
+ nw_resize_cursor.png
+ nwse_resize_cursor.png
+ pointer_cursor.png
+ progress_cursor.png
+ row_resize_cursor.png
+ se_resize_cursor.png
+ s_resize_cursor.png
+ sw_resize_cursor.png
+ text_cursor.png
+ vertical_text_cursor.png
+ wait_cursor.png
+ w_resize_cursor.png
+ zoom_in_cursor.png
+ zoom_out_cursor.png
+
gnome-fs-directory.png
gnome-fs-regular.png
diff --git a/demos/gtk-demo/e_resize_cursor.png b/demos/gtk-demo/e_resize_cursor.png
new file mode 100644
index 0000000000..f06bf4620f
Binary files /dev/null and b/demos/gtk-demo/e_resize_cursor.png differ
diff --git a/demos/gtk-demo/ew_resize_cursor.png b/demos/gtk-demo/ew_resize_cursor.png
new file mode 100644
index 0000000000..8dbd462bb0
Binary files /dev/null and b/demos/gtk-demo/ew_resize_cursor.png differ
diff --git a/demos/gtk-demo/grab_cursor.png b/demos/gtk-demo/grab_cursor.png
new file mode 100644
index 0000000000..a920eef1cd
Binary files /dev/null and b/demos/gtk-demo/grab_cursor.png differ
diff --git a/demos/gtk-demo/grabbing_cursor.png b/demos/gtk-demo/grabbing_cursor.png
new file mode 100644
index 0000000000..33418ac148
Binary files /dev/null and b/demos/gtk-demo/grabbing_cursor.png differ
diff --git a/demos/gtk-demo/hand_cursor.png b/demos/gtk-demo/hand_cursor.png
new file mode 100644
index 0000000000..b510203e98
Binary files /dev/null and b/demos/gtk-demo/hand_cursor.png differ
diff --git a/demos/gtk-demo/help_cursor.png b/demos/gtk-demo/help_cursor.png
new file mode 100644
index 0000000000..5440fd943e
Binary files /dev/null and b/demos/gtk-demo/help_cursor.png differ
diff --git a/demos/gtk-demo/move_cursor.png b/demos/gtk-demo/move_cursor.png
new file mode 100644
index 0000000000..6028099b66
Binary files /dev/null and b/demos/gtk-demo/move_cursor.png differ
diff --git a/demos/gtk-demo/n_resize_cursor.png b/demos/gtk-demo/n_resize_cursor.png
new file mode 100644
index 0000000000..fbd842088d
Binary files /dev/null and b/demos/gtk-demo/n_resize_cursor.png differ
diff --git a/demos/gtk-demo/ne_resize_cursor.png b/demos/gtk-demo/ne_resize_cursor.png
new file mode 100644
index 0000000000..0ca3f6eb0c
Binary files /dev/null and b/demos/gtk-demo/ne_resize_cursor.png differ
diff --git a/demos/gtk-demo/nesw_resize_cursor.png b/demos/gtk-demo/nesw_resize_cursor.png
new file mode 100644
index 0000000000..aa3bf68e0b
Binary files /dev/null and b/demos/gtk-demo/nesw_resize_cursor.png differ
diff --git a/demos/gtk-demo/no_drop_cursor.png b/demos/gtk-demo/no_drop_cursor.png
new file mode 100644
index 0000000000..4f9968fae9
Binary files /dev/null and b/demos/gtk-demo/no_drop_cursor.png differ
diff --git a/demos/gtk-demo/none_cursor.png b/demos/gtk-demo/none_cursor.png
new file mode 100644
index 0000000000..ad0dae172b
Binary files /dev/null and b/demos/gtk-demo/none_cursor.png differ
diff --git a/demos/gtk-demo/not_allowed_cursor.png b/demos/gtk-demo/not_allowed_cursor.png
new file mode 100644
index 0000000000..1305af8a29
Binary files /dev/null and b/demos/gtk-demo/not_allowed_cursor.png differ
diff --git a/demos/gtk-demo/ns_resize_cursor.png b/demos/gtk-demo/ns_resize_cursor.png
new file mode 100644
index 0000000000..acb1283d8e
Binary files /dev/null and b/demos/gtk-demo/ns_resize_cursor.png differ
diff --git a/demos/gtk-demo/nw_resize_cursor.png b/demos/gtk-demo/nw_resize_cursor.png
new file mode 100644
index 0000000000..669155771a
Binary files /dev/null and b/demos/gtk-demo/nw_resize_cursor.png differ
diff --git a/demos/gtk-demo/nwse_resize_cursor.png b/demos/gtk-demo/nwse_resize_cursor.png
new file mode 100644
index 0000000000..183001db35
Binary files /dev/null and b/demos/gtk-demo/nwse_resize_cursor.png differ
diff --git a/demos/gtk-demo/pointer_cursor.png b/demos/gtk-demo/pointer_cursor.png
new file mode 100644
index 0000000000..b510203e98
Binary files /dev/null and b/demos/gtk-demo/pointer_cursor.png differ
diff --git a/demos/gtk-demo/progress_cursor.png b/demos/gtk-demo/progress_cursor.png
new file mode 100644
index 0000000000..7afe983e76
Binary files /dev/null and b/demos/gtk-demo/progress_cursor.png differ
diff --git a/demos/gtk-demo/row_resize_cursor.png b/demos/gtk-demo/row_resize_cursor.png
new file mode 100644
index 0000000000..acb1283d8e
Binary files /dev/null and b/demos/gtk-demo/row_resize_cursor.png differ
diff --git a/demos/gtk-demo/s_resize_cursor.png b/demos/gtk-demo/s_resize_cursor.png
new file mode 100644
index 0000000000..5e6bf5076a
Binary files /dev/null and b/demos/gtk-demo/s_resize_cursor.png differ
diff --git a/demos/gtk-demo/se_resize_cursor.png b/demos/gtk-demo/se_resize_cursor.png
new file mode 100644
index 0000000000..f6e4002aaa
Binary files /dev/null and b/demos/gtk-demo/se_resize_cursor.png differ
diff --git a/demos/gtk-demo/sw_resize_cursor.png b/demos/gtk-demo/sw_resize_cursor.png
new file mode 100644
index 0000000000..1963383a5a
Binary files /dev/null and b/demos/gtk-demo/sw_resize_cursor.png differ
diff --git a/demos/gtk-demo/text_cursor.png b/demos/gtk-demo/text_cursor.png
new file mode 100644
index 0000000000..53cec46b13
Binary files /dev/null and b/demos/gtk-demo/text_cursor.png differ
diff --git a/demos/gtk-demo/vertical_text_cursor.png b/demos/gtk-demo/vertical_text_cursor.png
new file mode 100644
index 0000000000..17241bcb54
Binary files /dev/null and b/demos/gtk-demo/vertical_text_cursor.png differ
diff --git a/demos/gtk-demo/w_resize_cursor.png b/demos/gtk-demo/w_resize_cursor.png
new file mode 100644
index 0000000000..65383b1f6f
Binary files /dev/null and b/demos/gtk-demo/w_resize_cursor.png differ
diff --git a/demos/gtk-demo/wait_cursor.png b/demos/gtk-demo/wait_cursor.png
new file mode 100644
index 0000000000..21ccd2f410
Binary files /dev/null and b/demos/gtk-demo/wait_cursor.png differ
diff --git a/demos/gtk-demo/zoom_in_cursor.png b/demos/gtk-demo/zoom_in_cursor.png
new file mode 100644
index 0000000000..ae3114dde4
Binary files /dev/null and b/demos/gtk-demo/zoom_in_cursor.png differ
diff --git a/demos/gtk-demo/zoom_out_cursor.png b/demos/gtk-demo/zoom_out_cursor.png
new file mode 100644
index 0000000000..846a3dd6b6
Binary files /dev/null and b/demos/gtk-demo/zoom_out_cursor.png differ