From 882c805b53d1dcdd4f9b96099414dcf50b2f7cc3 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 15 Jul 2022 22:49:42 -0400 Subject: [PATCH 1/7] gdk: Improve test coverage --- testsuite/gdk/image-data/image-cmyk.jpeg | Bin 0 -> 8635 bytes testsuite/gdk/image-data/image-gray.jpeg | Bin 0 -> 7323 bytes testsuite/gdk/image-data/image-gray.png | Bin 0 -> 7089 bytes testsuite/gdk/image-data/image-palette.png | Bin 0 -> 7743 bytes testsuite/gdk/image-data/image-tile.tiff | Bin 0 -> 266631 bytes testsuite/gdk/image-data/image-unassoc.tiff | Bin 0 -> 8575 bytes testsuite/gdk/image.c | 13 ++++++++++++- 7 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 testsuite/gdk/image-data/image-cmyk.jpeg create mode 100644 testsuite/gdk/image-data/image-gray.jpeg create mode 100644 testsuite/gdk/image-data/image-gray.png create mode 100644 testsuite/gdk/image-data/image-palette.png create mode 100644 testsuite/gdk/image-data/image-tile.tiff create mode 100644 testsuite/gdk/image-data/image-unassoc.tiff diff --git a/testsuite/gdk/image-data/image-cmyk.jpeg b/testsuite/gdk/image-data/image-cmyk.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..89537b2e612f7f1d477153a9e666fb5e7efc758a GIT binary patch literal 8635 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 T0TK_eLW0b&hmCR#T+jXoGSsSr literal 0 HcmV?d00001 diff --git a/testsuite/gdk/image-data/image-palette.png b/testsuite/gdk/image-data/image-palette.png new file mode 100644 index 0000000000000000000000000000000000000000..e70ffe3c90df495b0fd92d41a52038cd97af510f GIT binary patch literal 7743 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

t)5N?rE#FiR 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 literal 0 HcmV?d00001 diff --git a/testsuite/gdk/image-data/image-unassoc.tiff b/testsuite/gdk/image-data/image-unassoc.tiff new file mode 100644 index 0000000000000000000000000000000000000000..097721901ca8cd389e79f27a81516b2271aa8064 GIT binary patch literal 8575 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 Date: Fri, 15 Jul 2022 23:03:28 -0400 Subject: [PATCH 2/7] gdk: Drop an unused function --- gdk/gdkkeys.c | 16 ---------------- gdk/gdkkeysprivate.h | 2 -- 2 files changed, 18 deletions(-) diff --git a/gdk/gdkkeys.c b/gdk/gdkkeys.c index b06fec2dc6..714d164c84 100644 --- a/gdk/gdkkeys.c +++ b/gdk/gdkkeys.c @@ -199,22 +199,6 @@ gdk_keymap_init (GdkKeymap *keymap) keymap->cache = g_hash_table_new (g_direct_hash, g_direct_equal); } -/*< private > - * gdk_keymap_get_display: - * @keymap: a `GdkKeymap` - * - * Retrieves the `GdkDisplay` associated to the @keymap. - * - * Returns: (transfer none): a `GdkDisplay` - */ -GdkDisplay * -gdk_keymap_get_display (GdkKeymap *keymap) -{ - g_return_val_if_fail (GDK_IS_KEYMAP (keymap), NULL); - - return keymap->display; -} - /* Other key-handling stuff */ diff --git a/gdk/gdkkeysprivate.h b/gdk/gdkkeysprivate.h index cc9b17aa9a..29d2fcd670 100644 --- a/gdk/gdkkeysprivate.h +++ b/gdk/gdkkeysprivate.h @@ -89,8 +89,6 @@ struct _GdkKeymap GType gdk_keymap_get_type (void) G_GNUC_CONST; -GdkDisplay * gdk_keymap_get_display (GdkKeymap *keymap); - guint gdk_keymap_lookup_key (GdkKeymap *keymap, const GdkKeymapKey *key); gboolean gdk_keymap_translate_keyboard_state (GdkKeymap *keymap, From 14cb208ec209a944226709dea42788c043eb7982 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 15 Jul 2022 23:07:59 -0400 Subject: [PATCH 3/7] png loader: gray can have alpha --- gdk/loaders/gdkpng.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gdk/loaders/gdkpng.c b/gdk/loaders/gdkpng.c index 20711210d0..c049868caf 100644 --- a/gdk/loaders/gdkpng.c +++ b/gdk/loaders/gdkpng.c @@ -184,7 +184,8 @@ gdk_load_png (GBytes *bytes, if (color_type == PNG_COLOR_TYPE_PALETTE) png_set_palette_to_rgb (png); - if (color_type == PNG_COLOR_TYPE_GRAY) + if (color_type == PNG_COLOR_TYPE_GRAY || + color_type == PNG_COLOR_TYPE_GRAY_ALPHA) png_set_expand_gray_1_2_4_to_8 (png); if (png_get_valid (png, info, PNG_INFO_tRNS)) From 61a843e8244c0c0ffa6412eb544b89e2a5c038fa Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 15 Jul 2022 23:08:28 -0400 Subject: [PATCH 4/7] gdk: Improve test coverage --- testsuite/gdk/image-data/image-float.tiff | Bin 0 -> 20941 bytes testsuite/gdk/image.c | 1 + testsuite/gdk/rgba.c | 28 ++++++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 testsuite/gdk/image-data/image-float.tiff diff --git a/testsuite/gdk/image-data/image-float.tiff b/testsuite/gdk/image-data/image-float.tiff new file mode 100644 index 0000000000000000000000000000000000000000..cdf42dd008f055c6f7a216c7083c96a7dbf733ee GIT binary patch literal 20941 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 literal 0 HcmV?d00001 diff --git a/testsuite/gdk/image.c b/testsuite/gdk/image.c index 1bfdcf001e..12b02c172d 100644 --- a/testsuite/gdk/image.c +++ b/testsuite/gdk/image.c @@ -129,6 +129,7 @@ main (int argc, char *argv[]) g_test_add_data_func ("/image/load/tiff", "image.tiff", test_load_image); g_test_add_data_func ("/image/load/tiff2", "image-unassoc.tiff", test_load_image); g_test_add_data_func ("/image/load/tiff3", "image-tile.tiff", test_load_image); + g_test_add_data_func ("/image/load/tiff4", "image-float.tiff", test_load_image); g_test_add_data_func ("/image/load/jpeg", "image.jpeg", test_load_image); g_test_add_data_func ("/image/load/jpeg2", "image-cmyk.jpeg", test_load_image); g_test_add_data_func ("/image/load/jpeg3", "image-gray.jpeg", test_load_image); diff --git a/testsuite/gdk/rgba.c b/testsuite/gdk/rgba.c index e6f691ed77..59f32f4126 100644 --- a/testsuite/gdk/rgba.c +++ b/testsuite/gdk/rgba.c @@ -178,6 +178,33 @@ test_color_parse_nonsense (void) res = gdk_rgba_parse (&color, "rgb(0,0,0) moo"); g_assert_false (res); + + res = gdk_rgba_parse (&color, "#XGB"); + g_assert_false (res); + + res = gdk_rgba_parse (&color, "#XGBQ"); + g_assert_false (res); + + res = gdk_rgba_parse (&color, "#AAAAXGBQ"); + g_assert_false (res); +} + +static void +test_color_hash (void) +{ + GdkRGBA color1; + GdkRGBA color2; + guint hash1, hash2; + + gdk_rgba_parse (&color1, "hsla (120, 255, 50%, 0.1)"); + gdk_rgba_parse (&color2, "rgb(0,0,0)"); + + hash1 = gdk_rgba_hash (&color1); + hash2 = gdk_rgba_hash (&color2); + + g_assert_cmpuint (hash1, !=, 0); + g_assert_cmpuint (hash2, !=, 0); + g_assert_cmpuint (hash1, !=, hash2); } int @@ -189,6 +216,7 @@ main (int argc, char *argv[]) g_test_add_func ("/rgba/parse/nonsense", test_color_parse_nonsense); g_test_add_func ("/rgba/to-string", test_color_to_string); g_test_add_func ("/rgba/copy", test_color_copy); + g_test_add_func ("/rgba/hash", test_color_hash); return g_test_run (); } From 25ec58be3c35e2c83dcdc271f3bfde19c9e2f07c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 16 Jul 2022 07:23:55 -0400 Subject: [PATCH 5/7] gtk-demo: Fix icon theme breakage The starred emblem silently went away :( --- demos/gtk-demo/demo.gresource.xml | 1 + demos/gtk-demo/icons/48x48/status/starred.png | Bin 0 -> 3376 bytes 2 files changed, 1 insertion(+) create mode 100644 demos/gtk-demo/icons/48x48/status/starred.png diff --git a/demos/gtk-demo/demo.gresource.xml b/demos/gtk-demo/demo.gresource.xml index fd2d62a09a..a9d483824e 100644 --- a/demos/gtk-demo/demo.gresource.xml +++ b/demos/gtk-demo/demo.gresource.xml @@ -428,6 +428,7 @@ icons/16x16/emotes/face-laugh-symbolic.symbolic.png icons/16x16/status/battery-caution-charging-symbolic.symbolic.png icons/16x16/categories/applications-other.png + icons/48x48/status/starred.png help-overlay.ui diff --git a/demos/gtk-demo/icons/48x48/status/starred.png b/demos/gtk-demo/icons/48x48/status/starred.png new file mode 100644 index 0000000000000000000000000000000000000000..2aefe782c75f765e843f3931e7ad95e2872f1225 GIT binary patch literal 3376 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 Date: Sat, 16 Jul 2022 08:16:37 -0400 Subject: [PATCH 6/7] gtk-demo: Add a winning sound to the puzzle We should celebrate every win. --- demos/gtk-demo/sliding_puzzle.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/demos/gtk-demo/sliding_puzzle.c b/demos/gtk-demo/sliding_puzzle.c index b65bc428fb..592fe0fde2 100644 --- a/demos/gtk-demo/sliding_puzzle.c +++ b/demos/gtk-demo/sliding_puzzle.c @@ -5,6 +5,7 @@ * small sliding puzzle game. */ +#include "config.h" #include /* Include the header for the puzzle piece */ @@ -24,6 +25,30 @@ static guint height = 3; static guint pos_x; static guint pos_y; +static void +ended (GObject *object) +{ + g_object_unref (object); +} + +static void +celebrate (gboolean win) +{ + char *path; + GtkMediaStream *stream; + + if (win) + path = g_build_filename (GTK_DATADIR, "sounds", "freedesktop", "stereo", "complete.oga", NULL); + else + path = g_build_filename (GTK_DATADIR, "sounds", "freedesktop", "stereo", "dialog-error.oga", NULL); + stream = gtk_media_file_new_for_filename (path); + gtk_media_stream_set_volume (stream, 1.0); + gtk_media_stream_play (stream); + + g_signal_connect (stream, "notify::ended", G_CALLBACK (ended), NULL); + g_free (path); +} + static gboolean move_puzzle (GtkWidget *grid, int dx, @@ -157,6 +182,8 @@ check_solved (GtkWidget *grid) picture = gtk_grid_get_child_at (GTK_GRID (grid), pos_x, pos_y); gtk_picture_set_paintable (GTK_PICTURE (picture), piece); + celebrate (TRUE); + return TRUE; } From 9daf83a1da497050e00dd336e51b7c8b2f51c88e Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 16 Jul 2022 09:34:01 -0400 Subject: [PATCH 7/7] gtk-demo: Make the icon work uninstalled Include the app logo as a resource, so we can show it even when uninstalled. --- demos/gtk-demo/demo.gresource.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/demos/gtk-demo/demo.gresource.xml b/demos/gtk-demo/demo.gresource.xml index a9d483824e..65b87365e2 100644 --- a/demos/gtk-demo/demo.gresource.xml +++ b/demos/gtk-demo/demo.gresource.xml @@ -429,6 +429,7 @@ icons/16x16/status/battery-caution-charging-symbolic.symbolic.png icons/16x16/categories/applications-other.png icons/48x48/status/starred.png + data/scalable/apps/org.gtk.Demo4.svg help-overlay.ui