[gtk-web/new-website: 72/191] new files
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk-web/new-website: 72/191] new files
- Date: Thu, 21 Nov 2019 12:24:31 +0000 (UTC)
commit 0c65fcedb94e8e9bdb4711396aa372b3bbb05d41
Author: ravgeetdhillon <ravgeetdhillon gmail com>
Date: Sat Jul 6 15:46:07 2019 +0530
new files
.gitlab-ci.yml | 1 +
_config.yml | 3 +-
_data/jsons/commits.json | 462 ++++++++++++++++
_data/jsons/issues-all.json | 1145 ++++++++++++++++++++++++++++++++++++++++
_data/jsons/issues-opened.json | 1104 ++++++++++++++++++++++++++++++++++++++
_data/jsons/issues-stats.json | 9 +
_data/jsons/members-all.json | 202 +++++++
_data/jsons/members.json | 12 +
_data/jsons/milestones.json | 41 ++
_data/jsons/pipelines.json | 142 +++++
_data/navigation.yml | 2 +-
_data/stuff.yml | 2 +-
_includes/footer.html | 4 +-
_includes/header.html | 1 +
_layouts/app.html | 89 ++++
assets/avatar.png | Bin 0 -> 109105 bytes
assets/blog1.png | Bin 0 -> 9856 bytes
assets/blog2.png | Bin 0 -> 27288 bytes
assets/blog3.png | Bin 0 -> 19774 bytes
assets/css/index.css | 2 +-
assets/img/community.svg | 1 +
assets/img/symbolics.png | Bin 0 -> 1118718 bytes
assets/js/issues.js | 48 ++
blog.xml | 597 +++++++++++++++++++++
index.html | 3 +-
package-lock.json | 5 +
26 files changed, 3868 insertions(+), 7 deletions(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 60b1e9b..282ea7f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,6 +20,7 @@ before_script:
- mv node_modules/@fortawesome assets/ -f
- mv node_modules/@primer assets/ -f
- mv node_modules/slick-carousel assets/ -f
+ - mv node_modules/geopattern assets/ -f
- rm -rf node_modules
- sass assets/scss/theme.scss assets/css/theme.css
- sass assets/@primer/css/markdown/index.scss assets/css/markdown.css
diff --git a/_config.yml b/_config.yml
index c78cfab..0de9942 100644
--- a/_config.yml
+++ b/_config.yml
@@ -16,10 +16,11 @@ sass:
# - .htaccess
exclude:
- documents/
+ - node_modules/
- Gemfile
- Gemfile.lock
- package.json
- package-lock.json
-
+ - community.html
# for dev only
# keep_files: [assets]
\ No newline at end of file
diff --git a/_data/jsons/commits.json b/_data/jsons/commits.json
new file mode 100644
index 0000000..bcfa8cf
--- /dev/null
+++ b/_data/jsons/commits.json
@@ -0,0 +1,462 @@
+[
+ {
+ "name": "1422-gtkentry-s-minimum-width-is-hardcoded-to-150px",
+ "commit": {
+ "id": "0ab2d8c10c4d54d2369d8b2be85d088996f73d14",
+ "short_id": "0ab2d8c1",
+ "created_at": "2018-10-21T16:01:54.000+00:00",
+ "parent_ids": null,
+ "title": "gtkentry: set minimum-width to 1 instead of 150",
+ "message": "gtkentry: set minimum-width to 1 instead of 150",
+ "author_name": "Nelson Benítez León",
+ "author_email": "nbenitezl gmail com",
+ "authored_date": "2018-10-21T12:07:36.000+00:00",
+ "committer_name": "Nelson Benítez León",
+ "committer_email": "nbenitezl gmail com",
+ "committed_date": "2018-10-21T16:01:54.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "1422-gtkentry-s-minimum-width-is-hardcoded-to-150px-GTK3-combo-workaround",
+ "commit": {
+ "id": "9493e94376eb2173fa67c1b78f86f0d8213d6754",
+ "short_id": "9493e943",
+ "created_at": "2018-10-21T17:20:09.000+00:00",
+ "parent_ids": null,
+ "title": "gtkcombobox: in has-entry case, allow entry be shorter that 150px",
+ "message": "gtkcombobox: in has-entry case, allow entry be shorter that 150px",
+ "author_name": "Nelson Benítez León",
+ "author_email": "nbenitezl gmail com",
+ "authored_date": "2018-10-21T17:20:09.000+00:00",
+ "committer_name": "Nelson Benítez León",
+ "committer_email": "nbenitezl gmail com",
+ "committed_date": "2018-10-21T17:20:09.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "1509-don-t-show-Rejecting-Jobs-when-we-don-t-know",
+ "commit": {
+ "id": "c4c3eeb38f51e975afb2bd45996992d4b364c8de",
+ "short_id": "c4c3eeb3",
+ "created_at": "2019-02-26T17:47:19.000+00:00",
+ "parent_ids": null,
+ "title": "printing: Fix getting info for standalone IPP printers",
+ "message": "printing: Fix getting info for standalone IPP printers",
+ "author_name": "Marek Kasik",
+ "author_email": "mkasik redhat com",
+ "authored_date": "2019-02-26T17:46:19.000+00:00",
+ "committer_name": "Marek Kasik",
+ "committer_email": "mkasik redhat com",
+ "committed_date": "2019-02-26T17:47:19.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "28-adwaita-selection-mode-styling-flickers",
+ "commit": {
+ "id": "60409de89c57c1ecedc6fcdbddb603e6ec61fd58",
+ "short_id": "60409de8",
+ "created_at": "2018-02-19T19:42:25.000+00:00",
+ "parent_ids": null,
+ "title": "Adwaita: avoid using assets for selectmode checks",
+ "message": "Adwaita: avoid using assets for selectmode checks",
+ "author_name": "Jakub Steiner",
+ "author_email": "jimmac gmail com",
+ "authored_date": "2018-02-19T19:37:03.000+00:00",
+ "committer_name": "Jakub Steiner",
+ "committer_email": "jimmac gmail com",
+ "committed_date": "2018-02-19T19:42:25.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "362-gtk-fileopen-dialog-need-filetype-mime-sort-option",
+ "commit": {
+ "id": "c925221aa804aec344bdfec148a17d23299b6c59",
+ "short_id": "c925221a",
+ "created_at": "2019-05-28T02:05:51.000+00:00",
+ "parent_ids": null,
+ "title": "GtkFileChooser: add a sortable \"Type\" column",
+ "message": "GtkFileChooser: add a sortable \"Type\" column",
+ "author_name": "Nelson Benítez León",
+ "author_email": "nbenitezl gmail com",
+ "authored_date": "2019-05-20T05:25:18.000+00:00",
+ "committer_name": "Nelson Benítez León",
+ "committer_email": "nbenitezl gmail com",
+ "committed_date": "2019-05-28T02:05:51.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "665-entry-textview-deselect-text-on-focus-out-3",
+ "commit": {
+ "id": "c1c4cc649f8755c657d5572de8dd0940469344a2",
+ "short_id": "c1c4cc64",
+ "created_at": "2018-09-22T16:30:05.000+00:00",
+ "parent_ids": null,
+ "title": "Entry,TextView: Deselect text on ::focus-out",
+ "message": "Entry,TextView: Deselect text on ::focus-out",
+ "author_name": "Daniel Boles",
+ "author_email": "dboles src gmail com",
+ "authored_date": "2018-03-31T12:38:19.000+00:00",
+ "committer_name": "Daniel Boles",
+ "committer_email": "dboles src gmail com",
+ "committed_date": "2018-09-22T16:30:05.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "665-entry-textview-deselect-text-on-focus-out-4",
+ "commit": {
+ "id": "adb7b7fb60db4bcdf7c380ca4f2c64ff788d1557",
+ "short_id": "adb7b7fb",
+ "created_at": "2018-09-22T16:30:25.000+00:00",
+ "parent_ids": null,
+ "title": "Entry,TextView: Deselect text on ::focus-out",
+ "message": "Entry,TextView: Deselect text on ::focus-out",
+ "author_name": "Daniel Boles",
+ "author_email": "dboles src gmail com",
+ "authored_date": "2018-03-31T12:38:19.000+00:00",
+ "committer_name": "Daniel Boles",
+ "committer_email": "dboles src gmail com",
+ "committed_date": "2018-09-22T16:30:25.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "78-textview-forward_display_line-doesn-t-work",
+ "commit": {
+ "id": "2786f1ffdad8fd9fd799ec28b0cef4041bab7ff9",
+ "short_id": "2786f1ff",
+ "created_at": "2018-03-15T18:51:04.000+00:00",
+ "parent_ids": null,
+ "title": "TextLayout|View: Add missing (inout)s on TextIters",
+ "message": "TextLayout|View: Add missing (inout)s on TextIters",
+ "author_name": "Daniel Boles",
+ "author_email": "dboles src gnome org",
+ "authored_date": "2018-03-15T18:51:04.000+00:00",
+ "committer_name": "Daniel Boles",
+ "committer_email": "dboles src gnome org",
+ "committed_date": "2018-03-15T18:51:04.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "AUTO_DENATTIFYING",
+ "commit": {
+ "id": "9a9aea79e1147ea22c2bc39e43e9736b4a7693b8",
+ "short_id": "9a9aea79",
+ "created_at": "2000-03-03T03:52:10.000+00:00",
+ "parent_ids": null,
+ "title": "Remove my liberal use of 4 letter adjectives before merging. ;)",
+ "message": "Remove my liberal use of 4 letter adjectives before merging. ;)",
+ "author_name": "Mark Crichton",
+ "author_email": "crichton src gnome org",
+ "authored_date": "2000-03-03T03:52:10.000+00:00",
+ "committer_name": "Mark Crichton",
+ "committer_email": "crichton src gnome org",
+ "committed_date": "2000-03-03T03:52:10.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "GTK_2_13_7",
+ "commit": {
+ "id": "783a4d99ed895bdbe3c4ae53b1dacd2c64763412",
+ "short_id": "783a4d99",
+ "created_at": "2008-08-19T01:17:29.000+00:00",
+ "parent_ids": null,
+ "title": "2.13.7",
+ "message": "2.13.7",
+ "author_name": "Matthias Clasen",
+ "author_email": "matthiasc src gnome org",
+ "authored_date": "2008-08-19T01:17:29.000+00:00",
+ "committer_name": "Matthias Clasen",
+ "committer_email": "matthiasc src gnome org",
+ "committed_date": "2008-08-19T01:17:29.000+00:00"
+ },
+ "merged": true,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "a11y",
+ "commit": {
+ "id": "dd9392a58c67704f0d651b997897779dc699a813",
+ "short_id": "dd9392a5",
+ "created_at": "2012-10-03T15:47:46.000+00:00",
+ "parent_ids": null,
+ "title": "[l10n] Added Khmer translation",
+ "message": "[l10n] Added Khmer translation",
+ "author_name": "Khoem Sokhem",
+ "author_email": "khoemsokhem khmeros info",
+ "authored_date": "2012-10-03T15:47:46.000+00:00",
+ "committer_name": "Gil Forcada",
+ "committer_email": "gforcada gnome org",
+ "committed_date": "2012-10-03T15:47:46.000+00:00"
+ },
+ "merged": true,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "about-license-linke",
+ "commit": {
+ "id": "ab748d05f06562e70ac2a6a76fcd90f16bf81884",
+ "short_id": "ab748d05",
+ "created_at": "2019-01-16T04:16:16.000+00:00",
+ "parent_ids": null,
+ "title": "about dialog: Use ::activate-link for license",
+ "message": "about dialog: Use ::activate-link for license",
+ "author_name": "Matthias Clasen",
+ "author_email": "mclasen redhat com",
+ "authored_date": "2019-01-16T04:16:16.000+00:00",
+ "committer_name": "Matthias Clasen",
+ "committer_email": "mclasen redhat com",
+ "committed_date": "2019-01-16T04:16:16.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "accessible-present",
+ "commit": {
+ "id": "7d9364655d7ec85c59dfb02a994077668f56ada7",
+ "short_id": "7d936465",
+ "created_at": "2019-04-29T18:46:40.000+00:00",
+ "parent_ids": null,
+ "title": "icon view accessible: Stop presenting windows",
+ "message": "icon view accessible: Stop presenting windows",
+ "author_name": "Matthias Clasen",
+ "author_email": "mclasen redhat com",
+ "authored_date": "2019-03-18T01:27:39.000+00:00",
+ "committer_name": "Matthias Clasen",
+ "committer_email": "mclasen redhat com",
+ "committed_date": "2019-04-29T18:46:40.000+00:00"
+ },
+ "merged": true,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "add-nightly-docs-to-readme",
+ "commit": {
+ "id": "09f3a3ddd2297365565656d87631128c1ea6af5a",
+ "short_id": "09f3a3dd",
+ "created_at": "2018-08-05T20:43:22.000+00:00",
+ "parent_ids": null,
+ "title": "README: Document nightly docs location",
+ "message": "README: Document nightly docs location",
+ "author_name": "Carlos Soriano",
+ "author_email": "csoriano1618 gmail com",
+ "authored_date": "2018-08-05T20:43:22.000+00:00",
+ "committer_name": "Carlos Soriano",
+ "committer_email": "csoriano1618 gmail com",
+ "committed_date": "2018-08-05T20:43:22.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "adjustment-animation-fixes",
+ "commit": {
+ "id": "3b658d9fa0766e30a7411d742366d26d8fe4722c",
+ "short_id": "3b658d9f",
+ "created_at": "2014-07-08T17:59:49.000+00:00",
+ "parent_ids": null,
+ "title": "range: Avoid animations during slider drag",
+ "message": "range: Avoid animations during slider drag",
+ "author_name": "Carlos Garnacho",
+ "author_email": "carlosg gnome org",
+ "authored_date": "2014-07-08T13:35:18.000+00:00",
+ "committer_name": "Carlos Garnacho",
+ "committer_email": "carlosg gnome org",
+ "committed_date": "2014-07-08T17:59:49.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "adwaita",
+ "commit": {
+ "id": "9f43a46b8044008fdfdefa31bb52561c963a1fa1",
+ "short_id": "9f43a46b",
+ "created_at": "2014-06-13T17:08:29.000+00:00",
+ "parent_ids": null,
+ "title": "Adwaita: Include sources in dist",
+ "message": "Adwaita: Include sources in dist",
+ "author_name": "Matthias Clasen",
+ "author_email": "mclasen redhat com",
+ "authored_date": "2014-06-13T17:05:12.000+00:00",
+ "committer_name": "Matthias Clasen",
+ "committer_email": "mclasen redhat com",
+ "committed_date": "2014-06-13T17:08:29.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "alatiera/ccache-foo",
+ "commit": {
+ "id": "835ac788d8167726bdbebb509842541b4c0a4c4d",
+ "short_id": "835ac788",
+ "created_at": "2018-09-17T09:34:12.000+00:00",
+ "parent_ids": null,
+ "title": "Update .gitlab-ci/test-docker.sh",
+ "message": "Update .gitlab-ci/test-docker.sh",
+ "author_name": "Jordan Petridis",
+ "author_email": "jordanpetridis protonmail com",
+ "authored_date": "2018-09-17T09:34:12.000+00:00",
+ "committer_name": "Jordan Petridis",
+ "committer_email": "jordanpetridis protonmail com",
+ "committed_date": "2018-09-17T09:34:12.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "application",
+ "commit": {
+ "id": "5ae008606d34c4675b6e487006ebe696b1d375b3",
+ "short_id": "5ae00860",
+ "created_at": "2010-08-11T05:23:23.000+00:00",
+ "parent_ids": null,
+ "title": "GtkApplication rewrite",
+ "message": "GtkApplication rewrite",
+ "author_name": "Ryan Lortie",
+ "author_email": "desrt desrt ca",
+ "authored_date": "2010-08-11T05:23:23.000+00:00",
+ "committer_name": "Ryan Lortie",
+ "committer_email": "desrt desrt ca",
+ "committed_date": "2010-08-11T05:23:23.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "assistant-cleanup",
+ "commit": {
+ "id": "e5e2bd3187ca44ec88d87d68506737939a2b9f0f",
+ "short_id": "e5e2bd31",
+ "created_at": "2019-02-15T15:23:48.000+00:00",
+ "parent_ids": null,
+ "title": "Drop GtkAssistantPage::has-padding",
+ "message": "Drop GtkAssistantPage::has-padding",
+ "author_name": "Matthias Clasen",
+ "author_email": "mclasen redhat com",
+ "authored_date": "2019-02-14T19:46:01.000+00:00",
+ "committer_name": "Matthias Clasen",
+ "committer_email": "mclasen redhat com",
+ "committed_date": "2019-02-15T15:23:48.000+00:00"
+ },
+ "merged": true,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ },
+ {
+ "name": "baselineoverlay",
+ "commit": {
+ "id": "4f5289a09fe4361c4e20fe04713e1b472febbc54",
+ "short_id": "4f5289a0",
+ "created_at": "2019-05-13T18:31:14.000+00:00",
+ "parent_ids": null,
+ "title": "Remove GTK_DEBUG=baselines",
+ "message": "Remove GTK_DEBUG=baselines",
+ "author_name": "Matthias Clasen",
+ "author_email": "mclasen redhat com",
+ "authored_date": "2019-05-13T17:43:44.000+00:00",
+ "committer_name": "Matthias Clasen",
+ "committer_email": "mclasen redhat com",
+ "committed_date": "2019-05-13T18:31:14.000+00:00"
+ },
+ "merged": false,
+ "protected": false,
+ "developers_can_push": false,
+ "developers_can_merge": false,
+ "can_push": false,
+ "default": false
+ }
+]
\ No newline at end of file
diff --git a/_data/jsons/issues-all.json b/_data/jsons/issues-all.json
new file mode 100644
index 0000000..eb8581f
--- /dev/null
+++ b/_data/jsons/issues-all.json
@@ -0,0 +1,1145 @@
+[
+ {
+ "id": 68352,
+ "iid": 1986,
+ "project_id": 665,
+ "title": "gdk_window_move_to_rect() does not reposition already shown window",
+ "description": "When a GdkWindow is already positioned by gdk_window_move_to_rect() and shown, all
subsequent gdk_window_move_to_rect() calls to this window does not have any effect. It's because
xdg_positioner is created/updated only from gdk_wayland_window_create_xdg_popup() which is called in map()
only.\n\nA workaround is to encapsule gdk_window_move_to_rect() by
gtk_window_hide()/gtk_window_show().\n\nIt's firefox bug
https://bugzilla.mozilla.org/show_bug.cgi?id=1562141",
+ "state": "opened",
+ "created_at": "2019-06-28T14:06:06.568Z",
+ "updated_at": "2019-06-28T14:24:29.249Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GTK4",
+ "GdkWindow/GdkSurface",
+ "GtkWindow",
+ "Wayland"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 2045,
+ "name": "Martin Stransky",
+ "username": "stransky",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/c71c558b9395ef582fdbbe4df366595d?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/stransky"
+ },
+ "assignee": null,
+ "user_notes_count": 2,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1986",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1986",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1986/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1986/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68307,
+ "iid": 1985,
+ "project_id": 665,
+ "title": "Dynamic menus have wrong size allocated",
+ "description": "When I dynamically create a menu, the size of the menu is wrong. The menu is create like
so:\n\n```\n\tdef on_dynamic_menu_active (self, widget):\n\t\tprint (\"on_dynamic_menu_active\")\n\n\t\tfor
widget in self .menu .get_children ():\n\t\t\tself .menu .remove (widget)\n\n\t\tfor i in range (0, random
.randrange (3, 10)):\n\t\t\tmenuItem = Gtk .MenuItem (label=\"MenuItem\" + str (i))\n\t\t\tself .menu .append
(menuItem)\n\t\t\t\n\t\tself .menu .show_all ()\n```\n\nHere is the full python example, but this also
happens when I use C++.\n\n[DynamicMenu.py](/uploads/0729680a6325c57c66d4e0be2b89c6f6/DynamicMenu.py)\n\nThis
bug occurs since any of the previous versions.\nCurrent GTK version is libgtk-3-0 3.24.8-1ubuntu1",
+ "state": "opened",
+ "created_at": "2019-06-27T12:08:52.354Z",
+ "updated_at": "2019-06-28T14:24:01.149Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GtkMenu",
+ "X11"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 11946,
+ "name": "Holger Seelig",
+ "username": "create3000",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/329639d6b79508c7869d5dd50cc87fb0?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/create3000"
+ },
+ "assignee": null,
+ "user_notes_count": 13,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1985",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1985",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1985/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1985/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68289,
+ "iid": 1984,
+ "project_id": 665,
+ "title": "Popover_radius variable doesn't work on .csd popovers",
+ "description": "According to gtk-inspector, .csd popover uses `.csd menu` style (or something
similar).\n\nHow it looks now / how it should
be:\n\n![csdpopover1](/uploads/5dc72f309677060c04a5ddc0697783ec/csdpopover1.png)
![csdpopover2](/uploads/98f5c6df51be4d03c0c5045d842b91a6/csdpopover2.png)",
+ "state": "closed",
+ "created_at": "2019-06-27T06:07:21.489Z",
+ "updated_at": "2019-06-27T16:38:13.770Z",
+ "closed_at": "2019-06-27T08:40:49.296Z",
+ "closed_by": {
+ "id": 8241,
+ "name": "monday",
+ "username": "monday15",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/311094d0587de8c5e3f03ea6bd462062?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/monday15"
+ },
+ "labels": [],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 8241,
+ "name": "monday",
+ "username": "monday15",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/311094d0587de8c5e3f03ea6bd462062?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/monday15"
+ },
+ "assignee": null,
+ "user_notes_count": 0,
+ "merge_requests_count": 1,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1984",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1984",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1984/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1984/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68240,
+ "iid": 1983,
+ "project_id": 665,
+ "title": "Implement choices for GtkFileChooserNativeQuartz",
+ "description": "We added the gtk_file_chooser_add_choice() api as a replacement for embedding widgetry.
But it only ever got implemented for portals. It would be very nice to have a quartz implementation too.",
+ "state": "opened",
+ "created_at": "2019-06-25T17:48:11.173Z",
+ "updated_at": "2019-06-25T17:53:07.266Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "1. Feature",
+ "5. FileChooser",
+ "MacOS"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 652,
+ "name": "Matthias Clasen",
+ "username": "matthiasc",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/652/avatar.png",
+ "web_url": "https://gitlab.gnome.org/matthiasc"
+ },
+ "assignee": null,
+ "user_notes_count": 0,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1983",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1983",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1983/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1983/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68237,
+ "iid": 1982,
+ "project_id": 665,
+ "title": "Implement choices for GtkFileChooserNativeWin32",
+ "description": "We added the gtk_file_chooser_add_choice() api as a replacement for embedding
widgetry.\nBut it only ever got implemented for portals. It would be very nice to have a win32 implementation
too.",
+ "state": "opened",
+ "created_at": "2019-06-25T17:47:02.952Z",
+ "updated_at": "2019-06-26T07:22:21.696Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "1. Feature",
+ "5. FileChooser",
+ "GTK3",
+ "GTK4",
+ "Windows"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 652,
+ "name": "Matthias Clasen",
+ "username": "matthiasc",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/652/avatar.png",
+ "web_url": "https://gitlab.gnome.org/matthiasc"
+ },
+ "assignee": null,
+ "user_notes_count": 2,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1982",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1982",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1982/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1982/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68236,
+ "iid": 1981,
+ "project_id": 665,
+ "title": "gdk_get_default_root_window() returns GdkWindow with hwnd == null (win32)",
+ "description": "## Steps to reproduce\n\n 1. root = gdk_get_default_root_window()\n 2. hwnd =
gdk_win32_window_get_handle(root); //it's null ???\n 3. gdk_window_get_geometry(root, &x, &y, &width,
&height);\n\n## Current behavior\n(main.exe:4268): Gdk-WARNING **:
/usr/src/ports/mingw64-x86_64-gtk3/mingw64-x86_64-gtk3-3.22.28-1.noarch/src/gtk+-3.22.28/gdk/win32/gdkwindow-win32.c:2303:
GetClientRect failed with code 1400: Invalid window handle.\n\n## Expected outcome\nno WARNING output\n\n##
Version information\ncygwin/mingw gtk/3.22.28 (Windows10) 64bit build\n\n## Additional information\nI've
tried other methods such as:\n screen = gtk_window_get_screen(existing_window);\n root =
gdk_screen_get_root_window(screen);\nBut the hwnd is always null.\n\nThanks,",
+ "state": "opened",
+ "created_at": "2019-06-25T17:33:53.988Z",
+ "updated_at": "2019-06-25T18:00:14.030Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GdkWindow/GdkSurface",
+ "Windows"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 21313,
+ "name": "Peter Quiring",
+ "username": "pquiring",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/2ff02481345eeb1c2ba0941aed02c040?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/pquiring"
+ },
+ "assignee": null,
+ "user_notes_count": 1,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1981",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1981",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1981/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1981/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68218,
+ "iid": 1979,
+ "project_id": 665,
+ "title": "input on children are blocked if an overlay has a label with wrap set",
+ "description": "When an overlay have a GtkLabel as an overlay child, the inputs to normal child is
blocked if the label has `wrap` set to true, and `wrap-mode` is `word-char` or `char`.\n\nHow to
reproduce:\n1. compile the following with gtk3 and run\n2. try to click on the button below the
label\n\nResult:\n The portion of button directly below the label isn't clickable. The code works fine with
GTK4\n\nminimal code to reproduce:\n```c\n#include <gtk/gtk.h>\n\ngchar *str =\n\"<interface>\"\n\" <object
class=\\\"GtkApplicationWindow\\\" id=\\\"window\\\">\"\n\" <property
name=\\\"visible\\\">1</property>\"\n\" <property name=\\\"default-width\\\">400</property>\"\n\"
<property name=\\\"default-height\\\">300</property>\"\n\" <child>\"\n\" <object
class=\\\"GtkOverlay\\\">\"\n\" <property name=\\\"visible\\\">1</property>\"\n\n\" <child
type=\\\"overlay\\\">\"\n\" <object class=\\\"GtkLabel\\\" id=\\\"notification_label\\\">\"\n\"
<property name=\\\"halign\\\">center</property>\"\n\" <property
name=\\\"valign\\\">start</property>\"\n\" <property name=\\\"visible\\\">1</property>\"\n\"
<property name=\\\"label\\\">Very Long label just for testing purposes</property>\"\n\"
<property name=\\\"wrap\\\">1</property>\"\n\" <property
name=\\\"wrap-mode\\\">word-char</property>\"\n\" <style>\"\n\" <class
name=\\\"frame\\\" />\"\n\" <class name=\\\"app-notification\\\" />\"\n\"
</style>\"\n\" </object>\"\n\" </child>\"\n\n\" <child>\"\n\" <object
class=\\\"GtkButton\\\">\"\n\" <property name=\\\"margin-top\\\">40</property>\"\n\"
<property name=\\\"visible\\\">1</property>\"\n\" <property
name=\\\"valign\\\">center</property>\"\n\" <property name=\\\"label\\\">Very long
text</property>\"\n\" </object>\"\n\" </child>\
"\n\n\"
</object>\"\n\" </child>\"\n\" </object>\"\n\"</interface>\";\n\nstatic void\napp_activate_cb
(GApplication *app)\n{\n GtkBuilder *builder;\n GtkWidget *window;\n\n g_application_hold (app);\n\n
builder = gtk_builder_new_from_string (str, -1);\n window = GTK_WIDGET (gtk_builder_get_object (builder,
\"window\"));\n gtk_widget_show (window);\n}\n\nint\nmain (int argc,\n char *argv[])\n{\n
GtkApplication *app;\n int status;\n\n app = gtk_application_new (NULL, 0);\n\n g_signal_connect (app,
\"activate\", G_CALLBACK (app_activate_cb), NULL);\n status = g_application_run (G_APPLICATION (app), argc,
argv);\n\n return status;\n}\n```",
+ "state": "opened",
+ "created_at": "2019-06-25T11:35:35.528Z",
+ "updated_at": "2019-06-25T15:44:45.422Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GtkLabel",
+ "GtkOverlay",
+ "Input"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 372,
+ "name": "Mohammed Sadiq",
+ "username": "pksadiq",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/c921b888d8695045e07de85f7501f21c?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/pksadiq"
+ },
+ "assignee": null,
+ "user_notes_count": 6,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1979",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1979",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1979/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1979/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68186,
+ "iid": 1977,
+ "project_id": 665,
+ "title": "[Regression] GtkTreeView overdrawing in Eclipse/SWT",
+ "description": "Hello,\n\nGTK 3.24.9 has introduced a regression in the Eclipse IDE and SWT. We have
numerous instances where custom drawn trees (GtkTreeViews) now have overdrawn backgrounds/foregrounds. This
was not present in 3.24.8.\n\nI bisected and found that this commit introduced the breaking change:
https://gitlab.gnome.org/GNOME/gtk/commit/184424ae40c332da12f871298d303ee01dd8c11a\n\nWe implement custom
tree drawing by drawing on the Cairo context provided to us by the GtkTreeView->render() vfunc. I'm assuming
some change to the Cairo clip was made, and that has caused the breakage (though I have not investigated that
thoroughly).\n\n![git_repositories_overdrawn](/uploads/b3e08a2638600e8fa1bb2fe7426f465b/git_repositories_overdrawn.png)\n![open_resources_overdrawn](/uploads/65d8246aec4659040813bd5f479f173d/open_resources_overdrawn.png)",
+ "state": "opened",
+ "created_at": "2019-06-24T19:23:42.290Z",
+ "updated_at": "2019-06-25T16:05:45.693Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GtkTreeView"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 3102,
+ "name": "Eric Williams",
+ "username": "ericwill",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/85e72f0b323b2a1c21eba035b6a0b7f4?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/ericwill"
+ },
+ "assignee": null,
+ "user_notes_count": 8,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1977",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1977",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1977/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1977/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68155,
+ "iid": 1976,
+ "project_id": 665,
+ "title": "Adwaita: menus from menubars should not be rounded",
+ "description": "Menus in refreshed Adwaita have rounded corners but with exception for menus opened from
menu bar. This exception is broken since (it seems to me) last two releases of GTK3 — shadows are not rounded
in that case but background it is rounded. See attached video. It's hard to notice this bug on white
background.\n\n## Version information\nArch Linux, gtk 1:**3.24.9**-1\n\n## Additional
information\n![Nagranie_ekranu_z_24.06.2019_11_24_25](/uploads/abc36e70c8cb34861c84defa47924f94/Nagranie_ekranu_z_24.06.2019_11_24_25.webm)",
+ "state": "closed",
+ "created_at": "2019-06-24T09:28:30.937Z",
+ "updated_at": "2019-06-27T16:38:13.708Z",
+ "closed_at": "2019-06-27T08:31:17.906Z",
+ "closed_by": {
+ "id": 8241,
+ "name": "monday",
+ "username": "monday15",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/311094d0587de8c5e3f03ea6bd462062?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/monday15"
+ },
+ "labels": [
+ "Adwaita",
+ "Adwaita refresh",
+ "GTK3",
+ "GtkMenu",
+ "Theme"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 2093,
+ "name": "Tomasz Gąsior",
+ "username": "TomaszGasior",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/3030aa7a4a26a976f9e2f7f84b1694e6?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/TomaszGasior"
+ },
+ "assignee": null,
+ "user_notes_count": 0,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1976",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1976",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1976/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1976/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68154,
+ "iid": 1975,
+ "project_id": 665,
+ "title": "Better & Easyer lookout! - THE PICTURES SPEAK FOR THEMESELVES",
+ "description": "THE PICTURES SPEAK FOR THEMESELVES.\r\nI love Gnome, but many many popular application
lookout is ugly (Discord, VS-Studio...etc)\r\nMy image setup is take **more flexible** and **usable** gnome
**for everyone**.\r\nNot removed buttons, only add. More **solid** style buttons **improve usability** and
**user experience**!\r\n\r\n*Users are debating where to be items in GNOME.*\r\n\r\n
**This is a solution for everyone!**\r\n\r\nFrom which I started the Unite app which
is inactive if fedora.\r\n\r\nThanks for GNOME Desktop <3 \r\n\r\n*// Ohh and give more visibe X to
notifications in top bar please. I noob in clicking :(
*\r\n![external-application-style](/uploads/a8fdf1f0033108ac09ecbfd00a3bb7f0/external-application-style.jpg)\r\n\r\n![normal-application-now-and-excepted](/uploads/666c9560af61b34e8bafc5a9b41b7c9a/normal-application-now-and-excepted.jpg)",
+ "state": "closed",
+ "created_at": "2019-06-24T09:18:40.717Z",
+ "updated_at": "2019-06-24T16:47:28.217Z",
+ "closed_at": "2019-06-24T09:49:38.137Z",
+ "closed_by": {
+ "id": 25,
+ "name": "Emmanuele Bassi",
+ "username": "ebassi",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/25/avatar.png",
+ "web_url": "https://gitlab.gnome.org/ebassi"
+ },
+ "labels": [
+ "3. Not Actionable"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 19478,
+ "name": "Józsa Márton",
+ "username": "morfyum",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/99338bf621f349ad04ea638379851683?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/morfyum"
+ },
+ "assignee": null,
+ "user_notes_count": 2,
+ "merge_requests_count": 0,
+ "upvotes": 1,
+ "downvotes": 1,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1975",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1975",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1975/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1975/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68152,
+ "iid": 1974,
+ "project_id": 665,
+ "title": "Adwaita: make message dialogs draggable",
+ "description": "gtk3\n\nCurrent design of message dialogs does not use titlebars. I mean it's possible
to specify title for message dialog but common GNOME software like gedit or Nautilus don't do it
intentionally. \n\nIt's hard to move windows without title. I know that empty space for title is reserved at
the top of message dialog even when title itself is not specified but when user does not see title, he might
have problem with guessing how to drag message dialog.\n\nIn my private
[`gtk.css`](https://github.com/TomaszGasior/my-gnome-settings) I solved it by:\n```\nmessagedialog {\n
-GtkWidget-window-dragging: true;\n}\n```\nIt does not break custom widgets inside message dialog and it's
more intuitive. Ofc feel free to close this bug if you don't agree. :)",
+ "state": "opened",
+ "created_at": "2019-06-24T09:05:23.798Z",
+ "updated_at": "2019-06-24T16:46:17.861Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "Adwaita",
+ "GtkDialog",
+ "GtkWindow",
+ "Theme",
+ "UI/UX Design"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 2093,
+ "name": "Tomasz Gąsior",
+ "username": "TomaszGasior",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/3030aa7a4a26a976f9e2f7f84b1694e6?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/TomaszGasior"
+ },
+ "assignee": null,
+ "user_notes_count": 6,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1974",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1974",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1974/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1974/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68143,
+ "iid": 1973,
+ "project_id": 665,
+ "title": "GTK sends invalid file filter to the FileChooser portal",
+ "description": "I'm trying to add a MIME-based file filter to a file chooser button in GNOME Calendar,
but nothing happens when clicking the button. The filter is trivial, and defined via
GtkBuilder:\n\n```xml\n<object class=\"GtkFileFilter\" id=\"calendar_file_filter\">\n <mime-types>\n
<mime-type>text/calendar</mime-type>\n </mime-types>\n</object>\n```\n\nHowever, when monitoring D-Bus, this
is what is sent to the FileChooser portal:\n\n```\nstring \"wayland:BhL<&YB<a^q
2a-YeQ+>eRV\"go~/?gXp\"\nstring \"Open a File\"\narray [\n\n (...)\n\n dict entry(\n string
\"current_filter\"\n variant struct {\n string \"Calendar files\"\n
array [\n struct {\n uint32 1\n string \"text/calendar\"\n
}\n struct {\n uint32 1\n string \"\"\n
}\n ]\n }\n )\n]\n```\n\nInterestingly, this seems
to be a
GtkBuilder bug, since `gtk_file_filter_to_gvariant()` seems to output a valid variant, as confirmed
by:\n\n```javascript\nconst Gtk = imports.gi.Gtk;\n\nlet filter = new
Gtk.FileFilter();\nfilter.set_name('Test')\nfilter.add_mime_type('text/calendar');\n\nlet v =
filter.to_gvariant();\nv.print(true);\n\n// Output: \"('Test', [(uint32 1, 'text/calendar')])\"\n```",
+ "state": "closed",
+ "created_at": "2019-06-24T03:19:42.867Z",
+ "updated_at": "2019-06-25T15:51:53.594Z",
+ "closed_at": "2019-06-24T13:51:12.149Z",
+ "closed_by": {
+ "id": 338,
+ "name": "Georges Basile Stavracas Neto",
+ "username": "feaneron",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/101544d681764d2f9085dc3698e70a6f?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/feaneron"
+ },
+ "labels": [
+ "1. Bug",
+ "5. FileChooser",
+ "GTK3",
+ "GtkBuilder"
+ ],
+ "milestone": null,
+ "assignees": [
+ {
+ "id": 25,
+ "name": "Emmanuele Bassi",
+ "username": "ebassi",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/25/avatar.png",
+ "web_url": "https://gitlab.gnome.org/ebassi"
+ }
+ ],
+ "author": {
+ "id": 338,
+ "name": "Georges Basile Stavracas Neto",
+ "username": "feaneron",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/101544d681764d2f9085dc3698e70a6f?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/feaneron"
+ },
+ "assignee": {
+ "id": 25,
+ "name": "Emmanuele Bassi",
+ "username": "ebassi",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/25/avatar.png",
+ "web_url": "https://gitlab.gnome.org/ebassi"
+ },
+ "user_notes_count": 0,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1973",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1973",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1973/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1973/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68142,
+ "iid": 1972,
+ "project_id": 665,
+ "title": "Blurred outset box shadows",
+ "description": "```css\noutset-shadow {\n outline: 0 0 70 70 / 5;\n blur: 28;\n dx: 0;\n dy:
14;\n}\n```\n\n![wat](/uploads/8bdbec29fe3f2261f490f462178d10a5/wat.png)\n\nSize 70 outline still shows the
problem, size 80 does not.",
+ "state": "opened",
+ "created_at": "2019-06-24T03:13:46.644Z",
+ "updated_at": "2019-06-24T03:13:46.644Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GL Renderer",
+ "GTK4"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 658,
+ "name": "Timm Bäder",
+ "username": "baedert",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/658/avatar.png",
+ "web_url": "https://gitlab.gnome.org/baedert"
+ },
+ "assignee": null,
+ "user_notes_count": 0,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1972",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1972",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1972/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1972/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68104,
+ "iid": 1971,
+ "project_id": 665,
+ "title": "3.24.9: test suite fails if compiled with G_DISABLE_ASSERT",
+ "description": "Looks like incorrect using glib assertions.\n\nHere is some doc
https://gitlab.gnome.org/GNOME/glib/issues/976\n\n<pre>+ /usr/bin/make -O -j 48 check\nMaking check in
po\nmake[1]: Nothing to be done for 'check'.\nMaking check in po-properties\nmake[1]: Nothing to be
done for 'check'.\nMaking check in gdk\nif test -f gdkconfig.h; then :; \\\nelse rm -f stamp-gc-h;
/usr/bin/make stamp-gc-h; fi\n/usr/bin/make check-recursive\nMaking check in x11\n/usr/bin/make
check-local\nMaking check in broadway\n/usr/bin/make check-am\n/usr/bin/make check-local\nMaking check in
wayland\n/usr/bin/make check-am\n/usr/bin/make check-local\nMaking check in .\nif test -f gdkconfig.h; then
:; \\\nelse rm -f stamp-gc-h; /usr/bin/make stamp-gc-h; fi\n/usr/bin/make check-local\nMaking check in
gtk\n/usr/bin/make check-am\nmake[3]: Nothing to be done for 'included-modules'.\n/usr/bin/make
check-local\nMaking check in libgail-util\n/usr/bin/mak
e check
-local\nMaking check in modules\nMaking check in input\n/usr/bin/make check-am\n/usr/bin/make
check-local\nMaking check in printbackends\nMaking check in file\n/usr/bin/make check-local\nMaking check in
lpr\n/usr/bin/make check-local\nMaking check in cups\n/usr/bin/make check-local\n/usr/bin/make
check-local\n/usr/bin/make check-local\nMaking check in demos\nMaking check in gtk-demo\n/usr/bin/make
check-am\n/usr/bin/make check-local\nMaking check in widget-factory\n/usr/bin/make check-am\n/usr/bin/make
check-local\nMaking check in icon-browser\n/usr/bin/make check-am\nmake[3]: Nothing to be done for
'check-am'.\n/usr/bin/make check-local\nMaking check in tests\nMaking check in visuals\nmake[2]:
Nothing to be done for 'check'.\n/usr/bin/make check-local\nMaking check in testsuite\nMaking
check in gdk\n/usr/bin/make check-local\nmake[3]: Entering directory
'/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gdk'\n\n** (gtester:6769
): WARNI
NG **: 23:23:49.600: Deprecated: Since GLib 2.62, gtester and gtester-report are deprecated. Port to
TAP.\nTEST: cairo... (pid=6770)\n /drawing/set-source-big-pixbuf:
OK\nPASS: cairo\nTEST: display... (pid=6817)\n /display/unset-display:
/display/unset-display/subprocess/1: \n** (gtester:6769): CRITICAL
**: 23:23:50.178: test_log_msg: assertion 'testcase_open == 0' failed\nOK\n
/display/unset-display/subprocess/2: OK\n /display/bad-display:
/display/bad-display/subprocess/1: \n**
(gtester:6769): CRITICAL **: 23:23:50.211: test_log_msg: assertion 'testcase_open == 0'
failed\nOK\n /display/bad-display/subprocess/2: OK\nPASS: display\nTEST:
encoding... (pid=6847)\n /encoding/to-text-list:
OK\nPASS: encoding\nTEST: keysyms... (pid=6876)\n /keysyms/basic:
OK\n /keysyms/void:
OK\n /keysyms/xf86: OK\nPASS: keysyms\nTEST:
rectangle... (pid=6905)\n /rectangle/equal: OK\n
/rectangle/intersect: OK\n /rectangle/union:
OK\nPASS: rectangle\nTEST: rgba... (pid=6938)\n /rgba/parse:
OK\n /rgba/to-string:
OK\n /rgba/copy: OK\n /rgba/parse/nonsense:
OK\nPASS: rgba\nTEST: seat... (pid=6963)\n /seat/list:
OK\n /seat/default:
OK\nPASS: seat\nTEST: visual... (pid=6994)\n /visual/list:
OK\n /visual/rgba: OK\n /visual/depth:
OK\n /visual/type:
OK\nPASS: visual\nmake[3]: Leaving directory
'/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gdk'\nMaking check in gtk\n/usr/bin/make
check-am\n/usr/bin/make check-local\nmake[4]: Entering directory
'/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gtk'\n\n** (gtester:7039): WARNING **:
23:23:52.249: Deprecated: Since GLib 2.62, gtester and gtester-report are deprecated. Port to TAP.\nTEST:
accel... (pid=7040)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
accel\nTEST:
accessib
le... (pid=7083)\nPASS: accessible\nTEST: action... (pid=7111)\nTests were compiled with G_DISABLE_ASSERT
and are likely no-ops. Aborting.\nFAIL: action\nTEST: adjustment... (pid=7136)\nTests were compiled with
G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: adjustment\nTEST: bitmask... (pid=7161)\nTests were
compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: bitmask\nTEST: builder...
(pid=7162)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: builder\nTEST:
builderparser... (pid=7187)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops.
Aborting.\nFAIL: builderparser\nTEST: cellarea... (pid=7212)\nTests were compiled with G_DISABLE_ASSERT and
are likely no-ops. Aborting.\nFAIL: cellarea\nTEST: check-icon-names... (pid=7237)\nTests were compiled with
G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: check-icon-names\nTEST: check-cursor-names...
(pid=7262)\nTests were compiled with G_DISABLE_AS
SERT and
are likely no-ops. Aborting.\nFAIL: check-cursor-names\nTEST: clipboard... (pid=7287)\nTests were compiled
with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: clipboard\nTEST: cssprovider...
(pid=7312)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
cssprovider\nTEST: defaultvalue... (pid=7340)\nTests were compiled with G_DISABLE_ASSERT and are likely
no-ops. Aborting.\nFAIL: defaultvalue\nTEST: entry... (pid=7365)\nTests were compiled with G_DISABLE_ASSERT
and are likely no-ops. Aborting.\nFAIL: entry\nTEST: firefox-stylecontext... (pid=7390)\nTests were compiled
with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: firefox-stylecontext\nTEST: floating...
(pid=7418)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: floating\nTEST:
focus... (pid=7443)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
focus\nTEST: gestures... (pid=7468)\nTests were compiled
with G_D
ISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: gestures\nTEST: grid... (pid=7493)\nTests were
compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: grid\nTEST: gtkmenu...
(pid=7521)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: gtkmenu\nTEST:
icontheme... (pid=7546)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
icontheme\nTEST: keyhash... (pid=7571)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops.
Aborting.\nFAIL: keyhash\nTEST: listbox... (pid=7596)\nTests were compiled with G_DISABLE_ASSERT and are
likely no-ops. Aborting.\nFAIL: listbox\nTEST: notify... (pid=7621)\nTests were compiled with
G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: notify\nTEST: no-gtk-init... (pid=7647)\nTests were
compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: no-gtk-init\nTEST: object...
(pid=7672)\nTests were compiled with G_DISABLE_ASSERT and are lik
ely no-o
ps. Aborting.\nFAIL: object\nTEST: objects-finalize... (pid=7697)\nTests were compiled with G_DISABLE_ASSERT
and are likely no-ops. Aborting.\nFAIL: objects-finalize\nTEST: papersize... (pid=7722)\nTests were compiled
with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: papersize\nTEST: rbtree... (pid=7747)\nTests
were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: rbtree\nTEST: recentmanager...
(pid=7748)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
recentmanager\nTEST: regression-tests... (pid=7773)\nTests were compiled with G_DISABLE_ASSERT and are likely
no-ops. Aborting.\nFAIL: regression-tests\nTEST: scrolledwindow... (pid=7799)\nTests were compiled with
G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: scrolledwindow\nTEST: spinbutton...
(pid=7827)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
spinbutton\nTEST: stylecontext... (pid=7852)\nTests were compi
led with
G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: stylecontext\nTEST: templates... (pid=7880)\nTests
were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: templates\nTEST: textbuffer...
(pid=7905)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
textbuffer\nTEST: textiter... (pid=7930)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops.
Aborting.\nFAIL: textiter\nTEST: treemodel... (pid=7956)\nTests were compiled with G_DISABLE_ASSERT and are
likely no-ops. Aborting.\nFAIL: treemodel\nTEST: treepath... (pid=7984)\nTests were compiled with
G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: treepath\nTEST: treeview... (pid=8010)\nTests were
compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: treeview\nTEST: typename...
(pid=8035)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: typename\nTEST:
window... (pid=8060)\nTests were compiled with G_
DISABLE_
ASSERT and are likely no-ops. Aborting.\nFAIL: window\nTEST: displayclose... (pid=8085)\nFAIL:
displayclose\nTEST: revealer-size... (pid=8118)\nTests were compiled with G_DISABLE_ASSERT and are likely
no-ops. Aborting.\nFAIL: revealer-size\nTEST: autotestkeywords... (pid=8153)\nPASS:
autotestkeywords\nmake[4]: *** [Makefile:1966: test-cwd] Error 1\nmake[4]: Leaving directory
'/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gtk'\n</pre>",
+ "state": "opened",
+ "created_at": "2019-06-22T22:40:43.777Z",
+ "updated_at": "2019-06-27T08:23:55.801Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "Tests"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 7698,
+ "name": "Tomasz Kłoczko",
+ "username": "kloczek",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/c419cda97d411655272b2a462e32c3c0?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/kloczek"
+ },
+ "assignee": null,
+ "user_notes_count": 19,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1971",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1971",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1971/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1971/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68102,
+ "iid": 1970,
+ "project_id": 665,
+ "title": "GtkScale in GtkPopover lags in visually updating slider under Wayland",
+ "description": "Minimum test case
[scale-popover-issue.cpp](/uploads/23dbd08fb056dee04c20925aef86283e/scale-popover-issue.cpp):\n\n```cpp\n#include
<gtkmm.h>\n\nint main(int argc, char *argv[])\n{\n \tauto app = Gtk::Application::create(argc, argv,
\"org.gtkmm.examples.base\");\n\n\tauto adjustment = Gtk::Adjustment::create(0, 0, 2, 1, 1);\n\tGtk::Scale
scale;\n\tscale.set_adjustment(adjustment);\n\tscale.set_has_origin(false);\n\tscale.set_round_digits(0);\n\tscale.add_mark(0,
Gtk::POS_BOTTOM, \"\");\n\tscale.add_mark(1, Gtk::POS_BOTTOM, \"\");\n\tscale.add_mark(2, Gtk::POS_BOTTOM,
\"\");\n\tscale.set_size_request(150, -1);\n\tscale.show();\n\n\tGtk::Popover
popover;\n\tpopover.add(scale);\n\n\tGtk::MenuButton
menuButton;\n\tmenuButton.set_popover(popover);\n\tmenuButton.set_image_from_icon_name(\"open-menu-symbolic\");\n\tmenuButton.set_size_request(36,
36);\n\n\tGtk::Box contentBox;\n\tcontentBox.set_size_request(36, 36);\n\tcontentBox.pack_start(menuButton,
Gtk::PACK
_SHRINK)
;\n\n\tGtk::Box topBox{Gtk::ORIENTATION_VERTICAL};\n\ttopBox.pack_start(contentBox,
Gtk::PACK_SHRINK);\n\ttopBox.show_all();\n\n\tGtk::Window window;\n \twindow.set_default_size(300, 300);\n
\twindow.add(topBox);\n\n\treturn app->run(window);\n}\n```\n\nCompile using:\n```\ng++
scale-popover-issue.cpp -o scale-popover-issue `pkg-config gtkmm-3.0 --cflags --libs`\n```\n\nHow to trigger
the bug:\n\n1. Open the popover.\n2. Place the mouse pointer over the slider, between the first and second
notches.\n3. Trigger an increase of the slider value, either using the mouse wheel or with the keyboard
(right arrow key). At this point the displayed value over the scale will increase, but the slider won't
move.\n4. Move the mouse pointer out of the popover. At this point, the slider position will update.\n\nVideo
showing the bug (mouse pointer doesn't
appear):\n![scale-popover-bug](/uploads/2494e3441558df9e1dae78e235c74b16/scale-popover-bug.webm)\n\nI
stumbled upon this bug [in my appli
cation](
https://github.com/junrrein/pdfslicer/issues/98).\n\nThis bug doesn't happen on Xorg.\n\nUsing: \nFedora 30
\nGtk 3.24.8 \nMutter 3.32.2",
+ "state": "opened",
+ "created_at": "2019-06-22T21:30:34.099Z",
+ "updated_at": "2019-06-24T02:58:27.050Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GtkPopover",
+ "GtkScale",
+ "Wayland"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 21202,
+ "name": "Julián Unrrein",
+ "username": "junrrein",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/c25f5a439282baeb87ed0d488c836529?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/junrrein"
+ },
+ "assignee": null,
+ "user_notes_count": 2,
+ "merge_requests_count": 0,
+ "upvotes": 2,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1970",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1970",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1970/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1970/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68099,
+ "iid": 1969,
+ "project_id": 665,
+ "title": "UnicodeDecodeError in geninclude.py reading event_axes.c",
+ "description": "When building in a non-UTF-8 locale (in this case 'C'), because
`demos/gtk-demo/event_axes.c` contains Unicode characters.\n```\nTraceback (most recent call last):\n File
\"/Users/john/Development/gtk-sources/gtk/demos/gtk-demo/geninclude.py\", line 37, in <module>\n title =
f.readline().replace(\"/*\", \"\").strip()\n File
\"/Users/john/Development/gtk-build/gtk-unstable-10.9-x86_64/inst/lib/python3.6/encodings/ascii.py\", line
26, in decode\n return codecs.ascii_decode(input, self.errors)[0]\nUnicodeDecodeError: 'ascii' codec can't
decode byte 0xe2 in position 2222: ordinal not in range(128)\n```\n\nThe simplest fix is\n```\n---
a/demos/gtk-demo/geninclude.py\n+++ b/demos/gtk-demo/geninclude.py\n@@ -33,7 +33,7 @@ demos = []\n for
demo_file in in_files:\n filename = demo_file[demo_file.rfind('/')+1:]\n demo_name =
filename.replace(\".c\", \"\")\n- with open(demo_file, 'r') as f:\n+ with open(demo_file, 'r',
encoding='utf-8') as f:\
n
title = f.readline().replace(\"/*\", \"\").strip()\n```\n\nthough another option would be to require
building in a UTF-8 locale.",
+ "state": "closed",
+ "created_at": "2019-06-22T20:32:29.111Z",
+ "updated_at": "2019-06-25T07:28:31.758Z",
+ "closed_at": "2019-06-25T07:28:31.707Z",
+ "closed_by": {
+ "id": 339,
+ "name": "Christoph Reiter",
+ "username": "creiter",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/339/avatar.png",
+ "web_url": "https://gitlab.gnome.org/creiter"
+ },
+ "labels": [
+ "Build",
+ "Demos",
+ "GTK3"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 1660,
+ "name": "John Ralls",
+ "username": "jralls",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/a681e2e22ac1f89e2313732180d65ca4?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/jralls"
+ },
+ "assignee": null,
+ "user_notes_count": 2,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1969",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1969",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1969/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1969/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68097,
+ "iid": 1968,
+ "project_id": 665,
+ "title": "Gtk-3-24 Requires Harfbuzz on a Quartz-only build.",
+ "description": "And it shouldn't, the Quartz backend uses CoreText instead of Freetype & Harfbuzz.",
+ "state": "opened",
+ "created_at": "2019-06-22T17:51:24.994Z",
+ "updated_at": "2019-06-25T14:12:29.549Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "Build",
+ "GTK3",
+ "GTK4",
+ "GtkFontChooser",
+ "MacOS",
+ "Windows"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 1660,
+ "name": "John Ralls",
+ "username": "jralls",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/a681e2e22ac1f89e2313732180d65ca4?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/jralls"
+ },
+ "assignee": null,
+ "user_notes_count": 8,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1968",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1968",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1968/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1968/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68083,
+ "iid": 1967,
+ "project_id": 665,
+ "title": "build: meson cannot find cups headers",
+ "description": "Hi.\n\nOn OpenBSD, meson cannot find the cups headers. They are installed under
/usr/local/include/ \n`modules/printbackends/meson.build:98:6: ERROR: Problem encountered: Need CUPS version
= 1.7`\n\nThis is trying to configure gtk+ 3.24.9 with meson 0.51.0.\n\nExtract from the logs:\n```\nRunning
compile:\nWorking directory: /tmp/tmpj4s3ciia\nCommand line: cc -I/usr/local/include
/tmp/tmpj4s3ciia/testfile.c -pipe -D_FILE_OFFSET_BITS=64 -E -P -O2 -g -O0 \n\nCode:\n \n #ifdef
__has_include\n #if !__has_include(\"cups/cups.h\")\n #error \"Header 'cups/cups.h' could
not be found\"\n #endif\n #else\n #include <cups/cups.h>\n #endif\nCompiler
stdout:\n \n\nCompiler stderr:\n \nHas header \"cups/cups.h\" : YES \nRunning compile:\nWorking directory:
/tmp/tmpbhyqsuit\nCommand line: cc -L/usr/local/lib /tmp/tmpbhyqsuit/testfile.c -pipe -D_FILE_OFFSET_BITS=64
-o /tmp/tmpbhyqsuit/output.exe -O2 -g -O0 \n\nCo
de:\n #i
nclude<stdio.h>\n #include <cups/cups.h>\n int main(int argc, char **argv) {\n
printf(\"%ld\\n\", (long)(CUPS_VERSION_MAJOR));\n return 0;\n };\nCompiler stdout:\n
\nCompiler stderr:\n /tmp/tmpbhyqsuit/testfile.c:2:18: fatal error: 'cups/cups.h' file not found\n
#include <cups/cups.h>\n ^~~~~~~~~~~~~\n1 error generated.\n```\n\nCPPFLAGS and LDFLAGS are
set correctly:\n```\nAppending LDFLAGS from environment: ' -L/usr/local/lib'\nAppending CPPFLAGS from
environment: ' -I/usr/local/include'\n```\nBut CPPFLAGS is missing when searching for cups/cups.h.",
+ "state": "opened",
+ "created_at": "2019-06-22T09:43:07.758Z",
+ "updated_at": "2019-06-28T10:05:48.502Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "5. Printing",
+ "Build",
+ "GTK3"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 3143,
+ "name": "Antoine Jacoutot",
+ "username": "ajacoutot",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/3143/avatar.png",
+ "web_url": "https://gitlab.gnome.org/ajacoutot"
+ },
+ "assignee": null,
+ "user_notes_count": 7,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1967",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1967",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1967/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1967/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68050,
+ "iid": 1966,
+ "project_id": 665,
+ "title": "GtkFileChooserButton says \"None\" when remote files are selected",
+ "description": "Selecting a remote file won't update the button's label when it should. Tested with GTK
3.24.8. (Haven't had the time to root cause the problem
yet)\n\n[test.c](/uploads/4460d5f127bd26673dfda825b2d1299d/test.c)\n\n```\n#include <gtk/gtk.h>\n\nstatic
void\nfile_set_cb (GtkFileChooser *chooser,\n gpointer user_data)\n{\n g_message
(\"filename: %s\", gtk_file_chooser_get_filename (chooser));\n g_message (\"uri: %s\",
gtk_file_chooser_get_uri (chooser));\n}\n\nint main (int argc, char **argv)\n{\n GtkWidget *win,
*button;\n\n gtk_init (&argc, &argv);\n\n win = gtk_window_new (GTK_WINDOW_TOPLEVEL);\n
button = gtk_file_chooser_button_new (\"Select remote file\", GTK_FILE_CHOOSER_ACTION_OPEN);\n
gtk_file_chooser_button_set_width_chars (GTK_FILE_CHOOSER_BUTTON (button), 30);\n
gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (button), FALSE);\n g_signal_connect (G_OBJECT
(button),
\"file-s
et\",\n G_CALLBACK (file_set_cb), NULL);\n gtk_container_add (GTK_CONTAINER
(win), button);\n\n gtk_widget_show_all (win);\n gtk_main (); \n\n return 0;\n}\n```",
+ "state": "opened",
+ "created_at": "2019-06-21T15:19:50.838Z",
+ "updated_at": "2019-06-21T15:38:31.595Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "1. Bug",
+ "5. FileChooser",
+ "GTK3",
+ "GTK4"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 525,
+ "name": "Bastien Nocera",
+ "username": "hadess",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/f6fb75c0fdf12f4221e4925468ee7c3d?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/hadess"
+ },
+ "assignee": null,
+ "user_notes_count": 0,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1966",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1966",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1966/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1966/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68048,
+ "iid": 1965,
+ "project_id": 665,
+ "title": "gtk-3-24: Bad --enable-profiler configure.ac handling",
+ "description": "AC_ARG_ENABLE third argument means what to do if the option is passed to configure, this
includes the explicit disabling of the option.\nThus the handling is broken and profiler integration is
tested for and enabled if `--disable-profiler` or `--enable-profiler=no` is passed to configure.\n\n```\n$
./configure --disable-profiler\n<snip>\nconfigure: error: \n*** sysprof-capture-3 not found.\n```",
+ "state": "closed",
+ "created_at": "2019-06-21T13:55:32.915Z",
+ "updated_at": "2019-06-25T16:22:01.471Z",
+ "closed_at": "2019-06-25T16:22:01.423Z",
+ "closed_by": {
+ "id": 652,
+ "name": "Matthias Clasen",
+ "username": "matthiasc",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/652/avatar.png",
+ "web_url": "https://gitlab.gnome.org/matthiasc"
+ },
+ "labels": [
+ "Build",
+ "GTK3"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 839,
+ "name": "Mart Raudsepp",
+ "username": "mraudsepp",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/839/avatar.png",
+ "web_url": "https://gitlab.gnome.org/mraudsepp"
+ },
+ "assignee": null,
+ "user_notes_count": 3,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1965",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1965",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1965/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1965/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ }
+]
\ No newline at end of file
diff --git a/_data/jsons/issues-opened.json b/_data/jsons/issues-opened.json
new file mode 100644
index 0000000..d1769ce
--- /dev/null
+++ b/_data/jsons/issues-opened.json
@@ -0,0 +1,1104 @@
+[
+ {
+ "id": 68352,
+ "iid": 1986,
+ "project_id": 665,
+ "title": "gdk_window_move_to_rect() does not reposition already shown window",
+ "description": "When a GdkWindow is already positioned by gdk_window_move_to_rect() and shown, all
subsequent gdk_window_move_to_rect() calls to this window does not have any effect. It's because
xdg_positioner is created/updated only from gdk_wayland_window_create_xdg_popup() which is called in map()
only.\n\nA workaround is to encapsule gdk_window_move_to_rect() by
gtk_window_hide()/gtk_window_show().\n\nIt's firefox bug
https://bugzilla.mozilla.org/show_bug.cgi?id=1562141",
+ "state": "opened",
+ "created_at": "2019-06-28T14:06:06.568Z",
+ "updated_at": "2019-06-28T14:24:29.249Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GTK4",
+ "GdkWindow/GdkSurface",
+ "GtkWindow",
+ "Wayland"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 2045,
+ "name": "Martin Stransky",
+ "username": "stransky",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/c71c558b9395ef582fdbbe4df366595d?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/stransky"
+ },
+ "assignee": null,
+ "user_notes_count": 2,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1986",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1986",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1986/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1986/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68307,
+ "iid": 1985,
+ "project_id": 665,
+ "title": "Dynamic menus have wrong size allocated",
+ "description": "When I dynamically create a menu, the size of the menu is wrong. The menu is create like
so:\n\n```\n\tdef on_dynamic_menu_active (self, widget):\n\t\tprint (\"on_dynamic_menu_active\")\n\n\t\tfor
widget in self .menu .get_children ():\n\t\t\tself .menu .remove (widget)\n\n\t\tfor i in range (0, random
.randrange (3, 10)):\n\t\t\tmenuItem = Gtk .MenuItem (label=\"MenuItem\" + str (i))\n\t\t\tself .menu .append
(menuItem)\n\t\t\t\n\t\tself .menu .show_all ()\n```\n\nHere is the full python example, but this also
happens when I use C++.\n\n[DynamicMenu.py](/uploads/0729680a6325c57c66d4e0be2b89c6f6/DynamicMenu.py)\n\nThis
bug occurs since any of the previous versions.\nCurrent GTK version is libgtk-3-0 3.24.8-1ubuntu1",
+ "state": "opened",
+ "created_at": "2019-06-27T12:08:52.354Z",
+ "updated_at": "2019-06-28T14:39:23.627Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GtkMenu",
+ "X11"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 11946,
+ "name": "Holger Seelig",
+ "username": "create3000",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/329639d6b79508c7869d5dd50cc87fb0?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/create3000"
+ },
+ "assignee": null,
+ "user_notes_count": 14,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1985",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1985",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1985/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1985/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68240,
+ "iid": 1983,
+ "project_id": 665,
+ "title": "Implement choices for GtkFileChooserNativeQuartz",
+ "description": "We added the gtk_file_chooser_add_choice() api as a replacement for embedding widgetry.
But it only ever got implemented for portals. It would be very nice to have a quartz implementation too.",
+ "state": "opened",
+ "created_at": "2019-06-25T17:48:11.173Z",
+ "updated_at": "2019-06-25T17:53:07.266Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "1. Feature",
+ "5. FileChooser",
+ "MacOS"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 652,
+ "name": "Matthias Clasen",
+ "username": "matthiasc",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/652/avatar.png",
+ "web_url": "https://gitlab.gnome.org/matthiasc"
+ },
+ "assignee": null,
+ "user_notes_count": 0,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1983",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1983",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1983/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1983/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68237,
+ "iid": 1982,
+ "project_id": 665,
+ "title": "Implement choices for GtkFileChooserNativeWin32",
+ "description": "We added the gtk_file_chooser_add_choice() api as a replacement for embedding
widgetry.\nBut it only ever got implemented for portals. It would be very nice to have a win32 implementation
too.",
+ "state": "opened",
+ "created_at": "2019-06-25T17:47:02.952Z",
+ "updated_at": "2019-06-26T07:22:21.696Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "1. Feature",
+ "5. FileChooser",
+ "GTK3",
+ "GTK4",
+ "Windows"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 652,
+ "name": "Matthias Clasen",
+ "username": "matthiasc",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/652/avatar.png",
+ "web_url": "https://gitlab.gnome.org/matthiasc"
+ },
+ "assignee": null,
+ "user_notes_count": 2,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1982",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1982",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1982/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1982/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68236,
+ "iid": 1981,
+ "project_id": 665,
+ "title": "gdk_get_default_root_window() returns GdkWindow with hwnd == null (win32)",
+ "description": "## Steps to reproduce\n\n 1. root = gdk_get_default_root_window()\n 2. hwnd =
gdk_win32_window_get_handle(root); //it's null ???\n 3. gdk_window_get_geometry(root, &x, &y, &width,
&height);\n\n## Current behavior\n(main.exe:4268): Gdk-WARNING **:
/usr/src/ports/mingw64-x86_64-gtk3/mingw64-x86_64-gtk3-3.22.28-1.noarch/src/gtk+-3.22.28/gdk/win32/gdkwindow-win32.c:2303:
GetClientRect failed with code 1400: Invalid window handle.\n\n## Expected outcome\nno WARNING output\n\n##
Version information\ncygwin/mingw gtk/3.22.28 (Windows10) 64bit build\n\n## Additional information\nI've
tried other methods such as:\n screen = gtk_window_get_screen(existing_window);\n root =
gdk_screen_get_root_window(screen);\nBut the hwnd is always null.\n\nThanks,",
+ "state": "opened",
+ "created_at": "2019-06-25T17:33:53.988Z",
+ "updated_at": "2019-06-25T18:00:14.030Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GdkWindow/GdkSurface",
+ "Windows"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 21313,
+ "name": "Peter Quiring",
+ "username": "pquiring",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/2ff02481345eeb1c2ba0941aed02c040?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/pquiring"
+ },
+ "assignee": null,
+ "user_notes_count": 1,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1981",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1981",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1981/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1981/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68218,
+ "iid": 1979,
+ "project_id": 665,
+ "title": "input on children are blocked if an overlay has a label with wrap set",
+ "description": "When an overlay have a GtkLabel as an overlay child, the inputs to normal child is
blocked if the label has `wrap` set to true, and `wrap-mode` is `word-char` or `char`.\n\nHow to
reproduce:\n1. compile the following with gtk3 and run\n2. try to click on the button below the
label\n\nResult:\n The portion of button directly below the label isn't clickable. The code works fine with
GTK4\n\nminimal code to reproduce:\n```c\n#include <gtk/gtk.h>\n\ngchar *str =\n\"<interface>\"\n\" <object
class=\\\"GtkApplicationWindow\\\" id=\\\"window\\\">\"\n\" <property
name=\\\"visible\\\">1</property>\"\n\" <property name=\\\"default-width\\\">400</property>\"\n\"
<property name=\\\"default-height\\\">300</property>\"\n\" <child>\"\n\" <object
class=\\\"GtkOverlay\\\">\"\n\" <property name=\\\"visible\\\">1</property>\"\n\n\" <child
type=\\\"overlay\\\">\"\n\" <object class=\\\"GtkLabel\\\" id=\\\"notification_label\\\">\"\n\"
<property name=\\\"halign\\\">center</property>\"\n\" <property
name=\\\"valign\\\">start</property>\"\n\" <property name=\\\"visible\\\">1</property>\"\n\"
<property name=\\\"label\\\">Very Long label just for testing purposes</property>\"\n\"
<property name=\\\"wrap\\\">1</property>\"\n\" <property
name=\\\"wrap-mode\\\">word-char</property>\"\n\" <style>\"\n\" <class
name=\\\"frame\\\" />\"\n\" <class name=\\\"app-notification\\\" />\"\n\"
</style>\"\n\" </object>\"\n\" </child>\"\n\n\" <child>\"\n\" <object
class=\\\"GtkButton\\\">\"\n\" <property name=\\\"margin-top\\\">40</property>\"\n\"
<property name=\\\"visible\\\">1</property>\"\n\" <property
name=\\\"valign\\\">center</property>\"\n\" <property name=\\\"label\\\">Very long
text</property>\"\n\" </object>\"\n\" </child>\
"\n\n\"
</object>\"\n\" </child>\"\n\" </object>\"\n\"</interface>\";\n\nstatic void\napp_activate_cb
(GApplication *app)\n{\n GtkBuilder *builder;\n GtkWidget *window;\n\n g_application_hold (app);\n\n
builder = gtk_builder_new_from_string (str, -1);\n window = GTK_WIDGET (gtk_builder_get_object (builder,
\"window\"));\n gtk_widget_show (window);\n}\n\nint\nmain (int argc,\n char *argv[])\n{\n
GtkApplication *app;\n int status;\n\n app = gtk_application_new (NULL, 0);\n\n g_signal_connect (app,
\"activate\", G_CALLBACK (app_activate_cb), NULL);\n status = g_application_run (G_APPLICATION (app), argc,
argv);\n\n return status;\n}\n```",
+ "state": "opened",
+ "created_at": "2019-06-25T11:35:35.528Z",
+ "updated_at": "2019-06-25T15:44:45.422Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GtkLabel",
+ "GtkOverlay",
+ "Input"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 372,
+ "name": "Mohammed Sadiq",
+ "username": "pksadiq",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/c921b888d8695045e07de85f7501f21c?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/pksadiq"
+ },
+ "assignee": null,
+ "user_notes_count": 6,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1979",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1979",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1979/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1979/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68186,
+ "iid": 1977,
+ "project_id": 665,
+ "title": "[Regression] GtkTreeView overdrawing in Eclipse/SWT",
+ "description": "Hello,\n\nGTK 3.24.9 has introduced a regression in the Eclipse IDE and SWT. We have
numerous instances where custom drawn trees (GtkTreeViews) now have overdrawn backgrounds/foregrounds. This
was not present in 3.24.8.\n\nI bisected and found that this commit introduced the breaking change:
https://gitlab.gnome.org/GNOME/gtk/commit/184424ae40c332da12f871298d303ee01dd8c11a\n\nWe implement custom
tree drawing by drawing on the Cairo context provided to us by the GtkTreeView->render() vfunc. I'm assuming
some change to the Cairo clip was made, and that has caused the breakage (though I have not investigated that
thoroughly).\n\n![git_repositories_overdrawn](/uploads/b3e08a2638600e8fa1bb2fe7426f465b/git_repositories_overdrawn.png)\n![open_resources_overdrawn](/uploads/65d8246aec4659040813bd5f479f173d/open_resources_overdrawn.png)",
+ "state": "opened",
+ "created_at": "2019-06-24T19:23:42.290Z",
+ "updated_at": "2019-06-25T16:05:45.693Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GtkTreeView"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 3102,
+ "name": "Eric Williams",
+ "username": "ericwill",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/85e72f0b323b2a1c21eba035b6a0b7f4?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/ericwill"
+ },
+ "assignee": null,
+ "user_notes_count": 8,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1977",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1977",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1977/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1977/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68152,
+ "iid": 1974,
+ "project_id": 665,
+ "title": "Adwaita: make message dialogs draggable",
+ "description": "gtk3\n\nCurrent design of message dialogs does not use titlebars. I mean it's possible
to specify title for message dialog but common GNOME software like gedit or Nautilus don't do it
intentionally. \n\nIt's hard to move windows without title. I know that empty space for title is reserved at
the top of message dialog even when title itself is not specified but when user does not see title, he might
have problem with guessing how to drag message dialog.\n\nIn my private
[`gtk.css`](https://github.com/TomaszGasior/my-gnome-settings) I solved it by:\n```\nmessagedialog {\n
-GtkWidget-window-dragging: true;\n}\n```\nIt does not break custom widgets inside message dialog and it's
more intuitive. Ofc feel free to close this bug if you don't agree. :)",
+ "state": "opened",
+ "created_at": "2019-06-24T09:05:23.798Z",
+ "updated_at": "2019-06-24T16:46:17.861Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "Adwaita",
+ "GtkDialog",
+ "GtkWindow",
+ "Theme",
+ "UI/UX Design"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 2093,
+ "name": "Tomasz Gąsior",
+ "username": "TomaszGasior",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/3030aa7a4a26a976f9e2f7f84b1694e6?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/TomaszGasior"
+ },
+ "assignee": null,
+ "user_notes_count": 6,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1974",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1974",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1974/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1974/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68142,
+ "iid": 1972,
+ "project_id": 665,
+ "title": "Blurred outset box shadows",
+ "description": "```css\noutset-shadow {\n outline: 0 0 70 70 / 5;\n blur: 28;\n dx: 0;\n dy:
14;\n}\n```\n\n![wat](/uploads/8bdbec29fe3f2261f490f462178d10a5/wat.png)\n\nSize 70 outline still shows the
problem, size 80 does not.",
+ "state": "opened",
+ "created_at": "2019-06-24T03:13:46.644Z",
+ "updated_at": "2019-06-24T03:13:46.644Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GL Renderer",
+ "GTK4"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 658,
+ "name": "Timm Bäder",
+ "username": "baedert",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/658/avatar.png",
+ "web_url": "https://gitlab.gnome.org/baedert"
+ },
+ "assignee": null,
+ "user_notes_count": 0,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1972",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1972",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1972/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1972/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68104,
+ "iid": 1971,
+ "project_id": 665,
+ "title": "3.24.9: test suite fails if compiled with G_DISABLE_ASSERT",
+ "description": "Looks like incorrect using glib assertions.\n\nHere is some doc
https://gitlab.gnome.org/GNOME/glib/issues/976\n\n<pre>+ /usr/bin/make -O -j 48 check\nMaking check in
po\nmake[1]: Nothing to be done for 'check'.\nMaking check in po-properties\nmake[1]: Nothing to be
done for 'check'.\nMaking check in gdk\nif test -f gdkconfig.h; then :; \\\nelse rm -f stamp-gc-h;
/usr/bin/make stamp-gc-h; fi\n/usr/bin/make check-recursive\nMaking check in x11\n/usr/bin/make
check-local\nMaking check in broadway\n/usr/bin/make check-am\n/usr/bin/make check-local\nMaking check in
wayland\n/usr/bin/make check-am\n/usr/bin/make check-local\nMaking check in .\nif test -f gdkconfig.h; then
:; \\\nelse rm -f stamp-gc-h; /usr/bin/make stamp-gc-h; fi\n/usr/bin/make check-local\nMaking check in
gtk\n/usr/bin/make check-am\nmake[3]: Nothing to be done for 'included-modules'.\n/usr/bin/make
check-local\nMaking check in libgail-util\n/usr/bin/mak
e check
-local\nMaking check in modules\nMaking check in input\n/usr/bin/make check-am\n/usr/bin/make
check-local\nMaking check in printbackends\nMaking check in file\n/usr/bin/make check-local\nMaking check in
lpr\n/usr/bin/make check-local\nMaking check in cups\n/usr/bin/make check-local\n/usr/bin/make
check-local\n/usr/bin/make check-local\nMaking check in demos\nMaking check in gtk-demo\n/usr/bin/make
check-am\n/usr/bin/make check-local\nMaking check in widget-factory\n/usr/bin/make check-am\n/usr/bin/make
check-local\nMaking check in icon-browser\n/usr/bin/make check-am\nmake[3]: Nothing to be done for
'check-am'.\n/usr/bin/make check-local\nMaking check in tests\nMaking check in visuals\nmake[2]:
Nothing to be done for 'check'.\n/usr/bin/make check-local\nMaking check in testsuite\nMaking
check in gdk\n/usr/bin/make check-local\nmake[3]: Entering directory
'/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gdk'\n\n** (gtester:6769
): WARNI
NG **: 23:23:49.600: Deprecated: Since GLib 2.62, gtester and gtester-report are deprecated. Port to
TAP.\nTEST: cairo... (pid=6770)\n /drawing/set-source-big-pixbuf:
OK\nPASS: cairo\nTEST: display... (pid=6817)\n /display/unset-display:
/display/unset-display/subprocess/1: \n** (gtester:6769): CRITICAL
**: 23:23:50.178: test_log_msg: assertion 'testcase_open == 0' failed\nOK\n
/display/unset-display/subprocess/2: OK\n /display/bad-display:
/display/bad-display/subprocess/1: \n**
(gtester:6769): CRITICAL **: 23:23:50.211: test_log_msg: assertion 'testcase_open == 0'
failed\nOK\n /display/bad-display/subprocess/2: OK\nPASS: display\nTEST:
encoding... (pid=6847)\n /encoding/to-text-list:
OK\nPASS: encoding\nTEST: keysyms... (pid=6876)\n /keysyms/basic:
OK\n /keysyms/void:
OK\n /keysyms/xf86: OK\nPASS: keysyms\nTEST:
rectangle... (pid=6905)\n /rectangle/equal: OK\n
/rectangle/intersect: OK\n /rectangle/union:
OK\nPASS: rectangle\nTEST: rgba... (pid=6938)\n /rgba/parse:
OK\n /rgba/to-string:
OK\n /rgba/copy: OK\n /rgba/parse/nonsense:
OK\nPASS: rgba\nTEST: seat... (pid=6963)\n /seat/list:
OK\n /seat/default:
OK\nPASS: seat\nTEST: visual... (pid=6994)\n /visual/list:
OK\n /visual/rgba: OK\n /visual/depth:
OK\n /visual/type:
OK\nPASS: visual\nmake[3]: Leaving directory
'/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gdk'\nMaking check in gtk\n/usr/bin/make
check-am\n/usr/bin/make check-local\nmake[4]: Entering directory
'/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gtk'\n\n** (gtester:7039): WARNING **:
23:23:52.249: Deprecated: Since GLib 2.62, gtester and gtester-report are deprecated. Port to TAP.\nTEST:
accel... (pid=7040)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
accel\nTEST:
accessib
le... (pid=7083)\nPASS: accessible\nTEST: action... (pid=7111)\nTests were compiled with G_DISABLE_ASSERT
and are likely no-ops. Aborting.\nFAIL: action\nTEST: adjustment... (pid=7136)\nTests were compiled with
G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: adjustment\nTEST: bitmask... (pid=7161)\nTests were
compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: bitmask\nTEST: builder...
(pid=7162)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: builder\nTEST:
builderparser... (pid=7187)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops.
Aborting.\nFAIL: builderparser\nTEST: cellarea... (pid=7212)\nTests were compiled with G_DISABLE_ASSERT and
are likely no-ops. Aborting.\nFAIL: cellarea\nTEST: check-icon-names... (pid=7237)\nTests were compiled with
G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: check-icon-names\nTEST: check-cursor-names...
(pid=7262)\nTests were compiled with G_DISABLE_AS
SERT and
are likely no-ops. Aborting.\nFAIL: check-cursor-names\nTEST: clipboard... (pid=7287)\nTests were compiled
with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: clipboard\nTEST: cssprovider...
(pid=7312)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
cssprovider\nTEST: defaultvalue... (pid=7340)\nTests were compiled with G_DISABLE_ASSERT and are likely
no-ops. Aborting.\nFAIL: defaultvalue\nTEST: entry... (pid=7365)\nTests were compiled with G_DISABLE_ASSERT
and are likely no-ops. Aborting.\nFAIL: entry\nTEST: firefox-stylecontext... (pid=7390)\nTests were compiled
with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: firefox-stylecontext\nTEST: floating...
(pid=7418)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: floating\nTEST:
focus... (pid=7443)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
focus\nTEST: gestures... (pid=7468)\nTests were compiled
with G_D
ISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: gestures\nTEST: grid... (pid=7493)\nTests were
compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: grid\nTEST: gtkmenu...
(pid=7521)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: gtkmenu\nTEST:
icontheme... (pid=7546)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
icontheme\nTEST: keyhash... (pid=7571)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops.
Aborting.\nFAIL: keyhash\nTEST: listbox... (pid=7596)\nTests were compiled with G_DISABLE_ASSERT and are
likely no-ops. Aborting.\nFAIL: listbox\nTEST: notify... (pid=7621)\nTests were compiled with
G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: notify\nTEST: no-gtk-init... (pid=7647)\nTests were
compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: no-gtk-init\nTEST: object...
(pid=7672)\nTests were compiled with G_DISABLE_ASSERT and are lik
ely no-o
ps. Aborting.\nFAIL: object\nTEST: objects-finalize... (pid=7697)\nTests were compiled with G_DISABLE_ASSERT
and are likely no-ops. Aborting.\nFAIL: objects-finalize\nTEST: papersize... (pid=7722)\nTests were compiled
with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: papersize\nTEST: rbtree... (pid=7747)\nTests
were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: rbtree\nTEST: recentmanager...
(pid=7748)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
recentmanager\nTEST: regression-tests... (pid=7773)\nTests were compiled with G_DISABLE_ASSERT and are likely
no-ops. Aborting.\nFAIL: regression-tests\nTEST: scrolledwindow... (pid=7799)\nTests were compiled with
G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: scrolledwindow\nTEST: spinbutton...
(pid=7827)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
spinbutton\nTEST: stylecontext... (pid=7852)\nTests were compi
led with
G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: stylecontext\nTEST: templates... (pid=7880)\nTests
were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: templates\nTEST: textbuffer...
(pid=7905)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL:
textbuffer\nTEST: textiter... (pid=7930)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops.
Aborting.\nFAIL: textiter\nTEST: treemodel... (pid=7956)\nTests were compiled with G_DISABLE_ASSERT and are
likely no-ops. Aborting.\nFAIL: treemodel\nTEST: treepath... (pid=7984)\nTests were compiled with
G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: treepath\nTEST: treeview... (pid=8010)\nTests were
compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: treeview\nTEST: typename...
(pid=8035)\nTests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\nFAIL: typename\nTEST:
window... (pid=8060)\nTests were compiled with G_
DISABLE_
ASSERT and are likely no-ops. Aborting.\nFAIL: window\nTEST: displayclose... (pid=8085)\nFAIL:
displayclose\nTEST: revealer-size... (pid=8118)\nTests were compiled with G_DISABLE_ASSERT and are likely
no-ops. Aborting.\nFAIL: revealer-size\nTEST: autotestkeywords... (pid=8153)\nPASS:
autotestkeywords\nmake[4]: *** [Makefile:1966: test-cwd] Error 1\nmake[4]: Leaving directory
'/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gtk'\n</pre>",
+ "state": "opened",
+ "created_at": "2019-06-22T22:40:43.777Z",
+ "updated_at": "2019-06-27T08:23:55.801Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "Tests"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 7698,
+ "name": "Tomasz Kłoczko",
+ "username": "kloczek",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/c419cda97d411655272b2a462e32c3c0?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/kloczek"
+ },
+ "assignee": null,
+ "user_notes_count": 19,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1971",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1971",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1971/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1971/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68102,
+ "iid": 1970,
+ "project_id": 665,
+ "title": "GtkScale in GtkPopover lags in visually updating slider under Wayland",
+ "description": "Minimum test case
[scale-popover-issue.cpp](/uploads/23dbd08fb056dee04c20925aef86283e/scale-popover-issue.cpp):\n\n```cpp\n#include
<gtkmm.h>\n\nint main(int argc, char *argv[])\n{\n \tauto app = Gtk::Application::create(argc, argv,
\"org.gtkmm.examples.base\");\n\n\tauto adjustment = Gtk::Adjustment::create(0, 0, 2, 1, 1);\n\tGtk::Scale
scale;\n\tscale.set_adjustment(adjustment);\n\tscale.set_has_origin(false);\n\tscale.set_round_digits(0);\n\tscale.add_mark(0,
Gtk::POS_BOTTOM, \"\");\n\tscale.add_mark(1, Gtk::POS_BOTTOM, \"\");\n\tscale.add_mark(2, Gtk::POS_BOTTOM,
\"\");\n\tscale.set_size_request(150, -1);\n\tscale.show();\n\n\tGtk::Popover
popover;\n\tpopover.add(scale);\n\n\tGtk::MenuButton
menuButton;\n\tmenuButton.set_popover(popover);\n\tmenuButton.set_image_from_icon_name(\"open-menu-symbolic\");\n\tmenuButton.set_size_request(36,
36);\n\n\tGtk::Box contentBox;\n\tcontentBox.set_size_request(36, 36);\n\tcontentBox.pack_start(menuButton,
Gtk::PACK
_SHRINK)
;\n\n\tGtk::Box topBox{Gtk::ORIENTATION_VERTICAL};\n\ttopBox.pack_start(contentBox,
Gtk::PACK_SHRINK);\n\ttopBox.show_all();\n\n\tGtk::Window window;\n \twindow.set_default_size(300, 300);\n
\twindow.add(topBox);\n\n\treturn app->run(window);\n}\n```\n\nCompile using:\n```\ng++
scale-popover-issue.cpp -o scale-popover-issue `pkg-config gtkmm-3.0 --cflags --libs`\n```\n\nHow to trigger
the bug:\n\n1. Open the popover.\n2. Place the mouse pointer over the slider, between the first and second
notches.\n3. Trigger an increase of the slider value, either using the mouse wheel or with the keyboard
(right arrow key). At this point the displayed value over the scale will increase, but the slider won't
move.\n4. Move the mouse pointer out of the popover. At this point, the slider position will update.\n\nVideo
showing the bug (mouse pointer doesn't
appear):\n![scale-popover-bug](/uploads/2494e3441558df9e1dae78e235c74b16/scale-popover-bug.webm)\n\nI
stumbled upon this bug [in my appli
cation](
https://github.com/junrrein/pdfslicer/issues/98).\n\nThis bug doesn't happen on Xorg.\n\nUsing: \nFedora 30
\nGtk 3.24.8 \nMutter 3.32.2",
+ "state": "opened",
+ "created_at": "2019-06-22T21:30:34.099Z",
+ "updated_at": "2019-06-24T02:58:27.050Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GtkPopover",
+ "GtkScale",
+ "Wayland"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 21202,
+ "name": "Julián Unrrein",
+ "username": "junrrein",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/c25f5a439282baeb87ed0d488c836529?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/junrrein"
+ },
+ "assignee": null,
+ "user_notes_count": 2,
+ "merge_requests_count": 0,
+ "upvotes": 2,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1970",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1970",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1970/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1970/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68097,
+ "iid": 1968,
+ "project_id": 665,
+ "title": "Gtk-3-24 Requires Harfbuzz on a Quartz-only build.",
+ "description": "And it shouldn't, the Quartz backend uses CoreText instead of Freetype & Harfbuzz.",
+ "state": "opened",
+ "created_at": "2019-06-22T17:51:24.994Z",
+ "updated_at": "2019-06-25T14:12:29.549Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "Build",
+ "GTK3",
+ "GTK4",
+ "GtkFontChooser",
+ "MacOS",
+ "Windows"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 1660,
+ "name": "John Ralls",
+ "username": "jralls",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/a681e2e22ac1f89e2313732180d65ca4?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/jralls"
+ },
+ "assignee": null,
+ "user_notes_count": 8,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1968",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1968",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1968/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1968/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68083,
+ "iid": 1967,
+ "project_id": 665,
+ "title": "build: meson cannot find cups headers",
+ "description": "Hi.\n\nOn OpenBSD, meson cannot find the cups headers. They are installed under
/usr/local/include/ \n`modules/printbackends/meson.build:98:6: ERROR: Problem encountered: Need CUPS version
= 1.7`\n\nThis is trying to configure gtk+ 3.24.9 with meson 0.51.0.\n\nExtract from the logs:\n```\nRunning
compile:\nWorking directory: /tmp/tmpj4s3ciia\nCommand line: cc -I/usr/local/include
/tmp/tmpj4s3ciia/testfile.c -pipe -D_FILE_OFFSET_BITS=64 -E -P -O2 -g -O0 \n\nCode:\n \n #ifdef
__has_include\n #if !__has_include(\"cups/cups.h\")\n #error \"Header 'cups/cups.h' could
not be found\"\n #endif\n #else\n #include <cups/cups.h>\n #endif\nCompiler
stdout:\n \n\nCompiler stderr:\n \nHas header \"cups/cups.h\" : YES \nRunning compile:\nWorking directory:
/tmp/tmpbhyqsuit\nCommand line: cc -L/usr/local/lib /tmp/tmpbhyqsuit/testfile.c -pipe -D_FILE_OFFSET_BITS=64
-o /tmp/tmpbhyqsuit/output.exe -O2 -g -O0 \n\nCo
de:\n #i
nclude<stdio.h>\n #include <cups/cups.h>\n int main(int argc, char **argv) {\n
printf(\"%ld\\n\", (long)(CUPS_VERSION_MAJOR));\n return 0;\n };\nCompiler stdout:\n
\nCompiler stderr:\n /tmp/tmpbhyqsuit/testfile.c:2:18: fatal error: 'cups/cups.h' file not found\n
#include <cups/cups.h>\n ^~~~~~~~~~~~~\n1 error generated.\n```\n\nCPPFLAGS and LDFLAGS are
set correctly:\n```\nAppending LDFLAGS from environment: ' -L/usr/local/lib'\nAppending CPPFLAGS from
environment: ' -I/usr/local/include'\n```\nBut CPPFLAGS is missing when searching for cups/cups.h.",
+ "state": "opened",
+ "created_at": "2019-06-22T09:43:07.758Z",
+ "updated_at": "2019-06-28T10:05:48.502Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "5. Printing",
+ "Build",
+ "GTK3"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 3143,
+ "name": "Antoine Jacoutot",
+ "username": "ajacoutot",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/3143/avatar.png",
+ "web_url": "https://gitlab.gnome.org/ajacoutot"
+ },
+ "assignee": null,
+ "user_notes_count": 7,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1967",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1967",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1967/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1967/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 68050,
+ "iid": 1966,
+ "project_id": 665,
+ "title": "GtkFileChooserButton says \"None\" when remote files are selected",
+ "description": "Selecting a remote file won't update the button's label when it should. Tested with GTK
3.24.8. (Haven't had the time to root cause the problem
yet)\n\n[test.c](/uploads/4460d5f127bd26673dfda825b2d1299d/test.c)\n\n```\n#include <gtk/gtk.h>\n\nstatic
void\nfile_set_cb (GtkFileChooser *chooser,\n gpointer user_data)\n{\n g_message
(\"filename: %s\", gtk_file_chooser_get_filename (chooser));\n g_message (\"uri: %s\",
gtk_file_chooser_get_uri (chooser));\n}\n\nint main (int argc, char **argv)\n{\n GtkWidget *win,
*button;\n\n gtk_init (&argc, &argv);\n\n win = gtk_window_new (GTK_WINDOW_TOPLEVEL);\n
button = gtk_file_chooser_button_new (\"Select remote file\", GTK_FILE_CHOOSER_ACTION_OPEN);\n
gtk_file_chooser_button_set_width_chars (GTK_FILE_CHOOSER_BUTTON (button), 30);\n
gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (button), FALSE);\n g_signal_connect (G_OBJECT
(button),
\"file-s
et\",\n G_CALLBACK (file_set_cb), NULL);\n gtk_container_add (GTK_CONTAINER
(win), button);\n\n gtk_widget_show_all (win);\n gtk_main (); \n\n return 0;\n}\n```",
+ "state": "opened",
+ "created_at": "2019-06-21T15:19:50.838Z",
+ "updated_at": "2019-06-21T15:38:31.595Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "1. Bug",
+ "5. FileChooser",
+ "GTK3",
+ "GTK4"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 525,
+ "name": "Bastien Nocera",
+ "username": "hadess",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/f6fb75c0fdf12f4221e4925468ee7c3d?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/hadess"
+ },
+ "assignee": null,
+ "user_notes_count": 0,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1966",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1966",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1966/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1966/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 67894,
+ "iid": 1963,
+ "project_id": 665,
+ "title": "figure out library versioning / naming",
+ "description": "With meson, we now produce libgtk-4.so.0.9400.0, which also has a SONAME field of
libgtk-4.so.0.9400.0\n\nThe file name is fine (even though we could switch away from the interface age
madness of the libtool era) but the SONAME field should really be libgtk-4.so.0, I think.",
+ "state": "opened",
+ "created_at": "2019-06-20T17:01:00.125Z",
+ "updated_at": "2019-06-20T17:16:38.748Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK4"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 652,
+ "name": "Matthias Clasen",
+ "username": "matthiasc",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/652/avatar.png",
+ "web_url": "https://gitlab.gnome.org/matthiasc"
+ },
+ "assignee": null,
+ "user_notes_count": 0,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1963",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1963",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1963/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1963/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 67891,
+ "iid": 1962,
+ "project_id": 665,
+ "title": "Remote bookmarks aren't visible if :local-only, but still able to be navigated to",
+ "description": "Remote bookmarks aren't visible in the file chooser when the local only flag is set.
This makes some sense, however, it can cause some confusion when the remote folder is still able to be
navigated to and used via gvfsd-fuse.\n\nThis has so far been most notable to me in Firefox, which uses the
chooser with the local only flag for downloads. My SMB share bookmarks aren't visible, but I can still
navigate to the shares in the chooser (using the normal \"Other Locations\") and save to them and have it
work. The folders are essentially still usable in such a case, but the bookmarks are still not shown.",
+ "state": "opened",
+ "created_at": "2019-06-20T15:56:37.040Z",
+ "updated_at": "2019-06-20T17:27:25.998Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "5. FileChooser",
+ "GTK3"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 12250,
+ "name": "Kyle Tirak",
+ "username": "LoneFenris",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/64f895028842192267d0efac049e1979?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/LoneFenris"
+ },
+ "assignee": null,
+ "user_notes_count": 1,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1962",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1962",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1962/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1962/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 67883,
+ "iid": 1961,
+ "project_id": 665,
+ "title": "Regression in gtk-3-24: gdk_screen_get_monitor_plug_name() now returns the monitor *model*
rather than the output name",
+ "description": "In 0611cb4823c207c5468a9c1a8eac65c6eee7a214 `gdk_screen_get_monitor_plug_name()` was
converted to use `gdk_monitor_get_model()`, presumable because `gdk_monitor_get_output_name()` doesn't exist.
This breaks any application using colord-gtk to query what ICC color profile to use for a specific GtkWindow
using a late-bound color managed workflow. It also breaks the colord-gtk self tests :/\n\nThe output name is
usually something like `LVDS1` rather than the model string from the EDID.",
+ "state": "opened",
+ "created_at": "2019-06-20T13:51:05.183Z",
+ "updated_at": "2019-06-20T21:52:12.573Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "1. Regression",
+ "GTK3",
+ "GTK4",
+ "GdkMonitor"
+ ],
+ "milestone": null,
+ "assignees": [
+ {
+ "id": 25,
+ "name": "Emmanuele Bassi",
+ "username": "ebassi",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/25/avatar.png",
+ "web_url": "https://gitlab.gnome.org/ebassi"
+ }
+ ],
+ "author": {
+ "id": 284,
+ "name": "Richard Hughes",
+ "username": "hughsie",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/f2bd69757fa0308a657a2f58724720b4?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/hughsie"
+ },
+ "assignee": {
+ "id": 25,
+ "name": "Emmanuele Bassi",
+ "username": "ebassi",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/25/avatar.png",
+ "web_url": "https://gitlab.gnome.org/ebassi"
+ },
+ "user_notes_count": 2,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1961",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1961",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1961/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1961/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 67811,
+ "iid": 1959,
+ "project_id": 665,
+ "title": "GtkPaned: setting position sometimes results in unexpected position",
+ "description": "## Steps to reproduce\n\nWhen I click on `Switch` button, then i want to change the
paned orientation and set position to 50%. Some when in past that works, at this moment, i got position which
you can see on screenshots.\n\nHere is my simple application for python3 with gi:\n```python\nfrom gi import
require_version\nrequire_version('Gtk', '3.0') # noqa\n\nfrom gi.repository import Gtk\n\nWIDTH =
800\nHEIGHT = 400\n\n\nclass Window(Gtk.Window):\n def __init__(self):\n super(Window,
self).__init__()\n self.set_default_size(WIDTH, HEIGHT)\n\n box =
Gtk.Box.new(Gtk.Orientation.VERTICAL, 0)\n self.add(box)\n\n button =
Gtk.Button.new_with_label(\"Switch\")\n button.connect(\"clicked\", self.on_clicked)\n
box.pack_start(button, False, False, 0)\n\n self.paned =
Gtk.Paned(orientation=Gtk.Orientation.VERTICAL)\n box.pack_start(self.paned, True, True, 0)\n\n
left_scroll = Gtk.Scrolle
dWindow(
)\n left_scroll.add(Gtk.TextView())\n self.paned.pack1(left_scroll, True, False)\n\n
right_scroll = Gtk.ScrolledWindow()\n right_scroll.add(Gtk.TextView())\n
self.paned.pack2(right_scroll, True, False)\n\n def on_clicked(self, button):\n if
self.paned.get_orientation() == Gtk.Orientation.VERTICAL:\n
self.paned.set_orientation(Gtk.Orientation.HORIZONTAL)\n
self.paned.set_position(self.paned.get_allocated_width()/2)\n else:\n
self.paned.set_orientation(Gtk.Orientation.VERTICAL)\n
self.paned.set_position(self.paned.get_allocated_height()/2)\n\n\nwin = Window()\nwin.connect(\"destroy\",
Gtk.main_quit)\nwin.show_all()\nGtk.main()\n```\n## Current behavior\nWhen i try to set position to 50%, i
count it from allocated_size/2. Yes the allocated size returns right number. After set this position, i still
got right number, but after event (in next event for example), i got another *bad* pos
ition fr
om paned.\n\n\n## Version information\nLinux Debian 10 - Buster (Testing), stable in few next weeks on
amd64\nlibgtk-3-0 3.24.5-1\ngir1.2-gtk-3.0 3.24.5-1\npython3-gi
3.30.4-1\n\nRunning on X11 with 2048x1152, but the same on Wayland, or on 3840x2160 with 200% scale.\n\nI'm
not sure when i start observe this problem, and i was thing that is in my application Formiko
(https://github.com/ondratu/formiko), then I try in this simple test application with the same
behavior.\n\n## Additional information\n**After
start:**\n![Snímek_z_2019-06-19_07-30-32](/uploads/e76f81d570b486714ab8934ddfb7a090/Snímek_z_2019-06-19_07-30-32.png)\n\n**First
click:**\n![Snímek_z_2019-06-19_07-30-35](/uploads/d3ec37b4b9aba6a06757f5d9a74c513f/Snímek_z_2019-06-19_07-30-35.png)\n\n**Second
click:**\n![Snímek_z_2019-06-19_07-30-38](/uploads/90a3a5a99cc626d098a1dc11d8ad177e/Snímek_z_2019-06-19_07-30-38.png)",
+ "state": "opened",
+ "created_at": "2019-06-19T05:57:28.064Z",
+ "updated_at": "2019-06-21T04:35:27.002Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GtkPaned"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 21042,
+ "name": "Ondřej Tůma",
+ "username": "mcbig",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/6f7ad42c479c6cae26d81563f711b040?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/mcbig"
+ },
+ "assignee": null,
+ "user_notes_count": 2,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1959",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1959",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1959/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1959/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 67780,
+ "iid": 1958,
+ "project_id": 665,
+ "title": "Cmd-left/right don't move cursor to beginning/end of line in text widgets",
+ "description": "## Steps to reproduce\n\n 1. start gtk3-demo on macOS\n 2. open e.g. Text View ->
Hypertext \n 3. use cmd-left or cmd-right to jump to beginning or end of line\n\n<!--\n You should try and
reproduce with the demos applications available\n under the `demos` directory, or the test programs in the
`tests` directory.\n Alternatively, please attach a *small and self-contained* example\n *written in C*
that exhibits the issue.\n-->\n\n## Current behavior\n<!--\n Please describe the current behaviour\n-->\nNo
cursor movement at all\n\n## Expected outcome\n<!--\n Please describe the expected outcome\n-->\nThe cursor
jumps to beginning or end of line (it worked fine in gtk2)\n\n## Version information\n<!--\n - Which version
of GTK you are using\n - What operating system and version\n - For Linux, which distribution\n - If you
built GTK yourself, the list of options used to configure the build\n-->\n3.22.30, installed with macports on
macOS 10.14.5\n\n## Add
itional
information\n<!--\n - Screenshots or screen recordings are useful for visual errors\n - Please report any
warning or message printed on the terminal\n-->",
+ "state": "opened",
+ "created_at": "2019-06-18T12:09:25.194Z",
+ "updated_at": "2019-06-18T16:41:51.871Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GTK3",
+ "GtkTextView",
+ "MacOS"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 20773,
+ "name": "Stefan Bethge",
+ "username": "kjyv",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/efaf0d3ca7a7badfcc156b972344cbfd?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/kjyv"
+ },
+ "assignee": null,
+ "user_notes_count": 3,
+ "merge_requests_count": 0,
+ "upvotes": 0,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1958",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1958",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1958/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1958/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ },
+ {
+ "id": 67753,
+ "iid": 1957,
+ "project_id": 665,
+ "title": "InfoBars could look better",
+ "description": "The blue feels quite harsh to my
eyes:\n\n![image](/uploads/afb447d113060bf032b43770ae5b8d29/image.png)\n\n![image](/uploads/c37de0563986292724e253b6a595d15b/image.png)\n\nOther
examples of info bars which I'm yet to get screenshots of:\n\n - Software: \"Enable 3rd party repos\", [\"OS
has reached end of
life\"](https://gitlab.gnome.org/Teams/Design/software-mockups/blob/master/updates-empty-placeholders.png)
(not yet implemented), [\"this app wants your
money\"](https://gitlab.gnome.org/Teams/Design/software-mockups/blob/master/app-pages.png) (also not yet
implement)\n - Polari: \"save password\"\n - ...\n\nWe don't have to, but if we wanted we give the bars a
different appearance depending on their message type (message, warning, question, error, other).\n\n@jimmac
@snwh @bertob",
+ "state": "opened",
+ "created_at": "2019-06-17T17:16:50.779Z",
+ "updated_at": "2019-06-21T15:37:43.202Z",
+ "closed_at": null,
+ "closed_by": null,
+ "labels": [
+ "GtkInfoBar",
+ "Theme",
+ "UI/UX Design"
+ ],
+ "milestone": null,
+ "assignees": [],
+ "author": {
+ "id": 13,
+ "name": "Allan Day",
+ "username": "aday",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/89cfa0cef4cbd60fecf977c4221600af?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/aday"
+ },
+ "assignee": null,
+ "user_notes_count": 17,
+ "merge_requests_count": 0,
+ "upvotes": 2,
+ "downvotes": 0,
+ "due_date": null,
+ "confidential": false,
+ "discussion_locked": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/issues/1957",
+ "time_stats": {
+ "time_estimate": 0,
+ "total_time_spent": 0,
+ "human_time_estimate": null,
+ "human_total_time_spent": null
+ },
+ "task_completion_status": {
+ "count": 0,
+ "completed_count": 0
+ },
+ "has_tasks": false,
+ "_links": {
+ "self": "https://gitlab.gnome.org/api/v4/projects/665/issues/1957",
+ "notes": "https://gitlab.gnome.org/api/v4/projects/665/issues/1957/notes",
+ "award_emoji": "https://gitlab.gnome.org/api/v4/projects/665/issues/1957/award_emoji",
+ "project": "https://gitlab.gnome.org/api/v4/projects/665"
+ },
+ "subscribed": false
+ }
+]
\ No newline at end of file
diff --git a/_data/jsons/issues-stats.json b/_data/jsons/issues-stats.json
new file mode 100644
index 0000000..a9ddb86
--- /dev/null
+++ b/_data/jsons/issues-stats.json
@@ -0,0 +1,9 @@
+{
+ "statistics": {
+ "counts": {
+ "all": 1979,
+ "closed": 885,
+ "opened": 1094
+ }
+ }
+}
\ No newline at end of file
diff --git a/_data/jsons/members-all.json b/_data/jsons/members-all.json
new file mode 100644
index 0000000..ee5184e
--- /dev/null
+++ b/_data/jsons/members-all.json
@@ -0,0 +1,202 @@
+[
+ {
+ "id": 52,
+ "name": "Translations User D-L",
+ "username": "translations",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/98d9de4ebc4967ac54756aaa4801bc74?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/translations",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 7,
+ "name": "Ernestas Kulik",
+ "username": "ernestask",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/c207b9099bf37407b4874951c5e8b492?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/ernestask",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 23,
+ "name": "Niels De Graef",
+ "username": "nielsdg",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/7072c7ea2d395c09718ae2309fbac0eb?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/nielsdg",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 31,
+ "name": "Florian Müllner",
+ "username": "fmuellner",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/d2d8e1904049f4496dde81d0501c3d3f?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/fmuellner",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 68,
+ "name": "Tobias Mueller",
+ "username": "tobiasmue",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/68/avatar.png",
+ "web_url": "https://gitlab.gnome.org/tobiasmue",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 487,
+ "name": "Felipe Borges",
+ "username": "felipeborges",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/487/avatar.png",
+ "web_url": "https://gitlab.gnome.org/felipeborges",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 56,
+ "name": "Javier Jardón Cabezas",
+ "username": "jjardon",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/2ba373c2c947a066c1ff3b33b3be02f9?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/jjardon",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 367,
+ "name": "António Fernandes",
+ "username": "antoniof",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/837349616939f8bcb90a14106e89beb5?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/antoniof",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 3,
+ "name": "Tom Tryfonidis",
+ "username": "tomtryf",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/3a6662d2254650f109dd4ada8ce30736?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/tomtryf",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 5,
+ "name": "Federico Mena Quintero",
+ "username": "federico",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/5/avatar.png",
+ "web_url": "https://gitlab.gnome.org/federico",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 11,
+ "name": "Bastian Ilsø Hougaard",
+ "username": "bastianilso",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/c1e8e642d17decabb6cdbd8d5083f39a?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/bastianilso",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 12,
+ "name": "Iñigo Martínez",
+ "username": "inigomartinez",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/ea7029dfd36c2ffde4103b8baae75884?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/inigomartinez",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 526,
+ "name": "Andreas Nilsson",
+ "username": "andreasn",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/a1697683749d9aeda2a92bee39b6929b?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/andreasn",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 15,
+ "name": "Marcus Lundblad",
+ "username": "mlundblad",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/15/avatar.png",
+ "web_url": "https://gitlab.gnome.org/mlundblad",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 17,
+ "name": "Sam Thursfield",
+ "username": "sthursfield",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/65b9949d1179de658ed1a5009437ff51?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/sthursfield",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 19,
+ "name": "Gabriel Ivașcu",
+ "username": "gabrielivascu",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/ff37cec6e94cc5f4144cb0ec199f1d6a?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/gabrielivascu",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 20,
+ "name": "Alexandre Franke",
+ "username": "afranke",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/20/avatar.png",
+ "web_url": "https://gitlab.gnome.org/afranke",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 22,
+ "name": "Jonas Danielsson",
+ "username": "jonasdn",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/4a8598066b738b0c3000bd59475770cf?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/jonasdn",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 24,
+ "name": "Jens Georg",
+ "username": "jensgeorg",
+ "state": "active",
+ "avatar_url": "https://secure.gravatar.com/avatar/dc8558081ed3474e2fc583782dd0666c?s=80&d=identicon",
+ "web_url": "https://gitlab.gnome.org/jensgeorg",
+ "access_level": 30,
+ "expires_at": null
+ },
+ {
+ "id": 25,
+ "name": "Emmanuele Bassi",
+ "username": "ebassi",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/25/avatar.png",
+ "web_url": "https://gitlab.gnome.org/ebassi",
+ "access_level": 30,
+ "expires_at": null
+ }
+]
\ No newline at end of file
diff --git a/_data/jsons/members.json b/_data/jsons/members.json
new file mode 100644
index 0000000..3fa181e
--- /dev/null
+++ b/_data/jsons/members.json
@@ -0,0 +1,12 @@
+[
+ {
+ "id": 652,
+ "name": "Matthias Clasen",
+ "username": "matthiasc",
+ "state": "active",
+ "avatar_url": "https://gitlab.gnome.org/uploads/-/system/user/avatar/652/avatar.png",
+ "web_url": "https://gitlab.gnome.org/matthiasc",
+ "access_level": 40,
+ "expires_at": null
+ }
+]
\ No newline at end of file
diff --git a/_data/jsons/milestones.json b/_data/jsons/milestones.json
new file mode 100644
index 0000000..544c8d9
--- /dev/null
+++ b/_data/jsons/milestones.json
@@ -0,0 +1,41 @@
+[
+ {
+ "id": 600,
+ "iid": 3,
+ "project_id": 665,
+ "title": "3.24.9",
+ "description": "",
+ "state": "closed",
+ "created_at": "2019-05-31T17:13:02.725Z",
+ "updated_at": "2019-06-23T15:53:31.964Z",
+ "due_date": null,
+ "start_date": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/-/milestones/3"
+ },
+ {
+ "id": 576,
+ "iid": 2,
+ "project_id": 665,
+ "title": "3.96",
+ "description": "",
+ "state": "closed",
+ "created_at": "2019-04-01T00:44:36.308Z",
+ "updated_at": "2019-05-07T18:42:23.487Z",
+ "due_date": null,
+ "start_date": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/-/milestones/2"
+ },
+ {
+ "id": 55,
+ "iid": 1,
+ "project_id": 665,
+ "title": "4.0",
+ "description": "4.0 API series development cycle",
+ "state": "active",
+ "created_at": "2018-02-13T13:19:41.694Z",
+ "updated_at": "2018-02-13T13:21:35.862Z",
+ "due_date": null,
+ "start_date": null,
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/-/milestones/1"
+ }
+]
\ No newline at end of file
diff --git a/_data/jsons/pipelines.json b/_data/jsons/pipelines.json
new file mode 100644
index 0000000..8f55769
--- /dev/null
+++ b/_data/jsons/pipelines.json
@@ -0,0 +1,142 @@
+[
+ {
+ "id": 91407,
+ "sha": "7a190da5f4a06bc02c9979a525b82a9d4faf23c8",
+ "ref": "constraint-guide-3",
+ "status": "success",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91407"
+ },
+ {
+ "id": 91405,
+ "sha": "c4fd786866a2d8e757499f3f2d35f221d416de04",
+ "ref": "master",
+ "status": "failed",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91405"
+ },
+ {
+ "id": 91402,
+ "sha": "b236cab3baa9ee87b27521c6386cb102faabab42",
+ "ref": "constraint-guide-3",
+ "status": "success",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91402"
+ },
+ {
+ "id": 91391,
+ "sha": "1e46874eb0eb4a35a399404b4f75c4cd86e3ea64",
+ "ref": "constraint-guide-3",
+ "status": "success",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91391"
+ },
+ {
+ "id": 91390,
+ "sha": "8fa7de5563981c702809c66bf886b53bda932c85",
+ "ref": "master",
+ "status": "failed",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91390"
+ },
+ {
+ "id": 91387,
+ "sha": "12d45c01b016a5562dee4e60601e0fbd89b6dc26",
+ "ref": "wip/ebassi/constraint-layout",
+ "status": "success",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91387"
+ },
+ {
+ "id": 91375,
+ "sha": "041b64b9e2f51ba168915cc72b7018e8b3c58242",
+ "ref": "gtk-3-24",
+ "status": "success",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91375"
+ },
+ {
+ "id": 91340,
+ "sha": "615f1aed651004715108539008d58865fc09758c",
+ "ref": "constraint-guide-2",
+ "status": "failed",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91340"
+ },
+ {
+ "id": 91310,
+ "sha": "ee04ad7e96d078662d758286b9ee34d104dd08a8",
+ "ref": "constraint-guide-2",
+ "status": "failed",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91310"
+ },
+ {
+ "id": 91302,
+ "sha": "14b05b130d96cdd344077fe210dfff8a626264c3",
+ "ref": "constraint-guide-2",
+ "status": "failed",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91302"
+ },
+ {
+ "id": 91272,
+ "sha": "cf702b81a8556bf696b15404bcc5cef293110e42",
+ "ref": "wip/ebassi/constraint-layout",
+ "status": "success",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91272"
+ },
+ {
+ "id": 91261,
+ "sha": "8fcb4a0344c67cfad95c78fef7b8ddedfc66cff5",
+ "ref": "constraints-grid",
+ "status": "failed",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91261"
+ },
+ {
+ "id": 91255,
+ "sha": "7afac642259dc8bf05a53c1674596107ed9d0f83",
+ "ref": "wip/ebassi/constraint-layout",
+ "status": "success",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91255"
+ },
+ {
+ "id": 91234,
+ "sha": "afc31c477f87a688bcf140c9edc5b528fd4aa350",
+ "ref": "gtk-3-24",
+ "status": "success",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91234"
+ },
+ {
+ "id": 91194,
+ "sha": "9e6b4e82c90affff108420bcf73fd1be0464d7ae",
+ "ref": "master",
+ "status": "failed",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91194"
+ },
+ {
+ "id": 91191,
+ "sha": "ed691dcba51b440ff0d5a2cd5b0ca8ad5b25c69f",
+ "ref": "gtk-3-24",
+ "status": "success",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91191"
+ },
+ {
+ "id": 91188,
+ "sha": "4a6ff4598efe20302a93da90233d30083bd20d2e",
+ "ref": "gtk-3-24",
+ "status": "success",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91188"
+ },
+ {
+ "id": 91175,
+ "sha": "4be2e804aec568027615d2eb9e61e19534cee081",
+ "ref": "master",
+ "status": "failed",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91175"
+ },
+ {
+ "id": 91174,
+ "sha": "1f69f5196bccfb52305e739f5b0410829036dcf9",
+ "ref": "gtk-3-24",
+ "status": "success",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91174"
+ },
+ {
+ "id": 91167,
+ "sha": "1056e9976ad2a7dd99c692097ed349bf6dfa8299",
+ "ref": "master",
+ "status": "failed",
+ "web_url": "https://gitlab.gnome.org/GNOME/gtk/pipelines/91167"
+ }
+]
\ No newline at end of file
diff --git a/_data/navigation.yml b/_data/navigation.yml
index 839f727..5968702 100644
--- a/_data/navigation.yml
+++ b/_data/navigation.yml
@@ -1,5 +1,5 @@
menu_links:
- - name: GTK4+
+ - name: GTK
href: /
header: false
footer: true
diff --git a/_data/stuff.yml b/_data/stuff.yml
index 16fc0c4..223700f 100644
--- a/_data/stuff.yml
+++ b/_data/stuff.yml
@@ -27,7 +27,7 @@ features_list:
description: GTK caters for a number features like Native look and feel, theme support, Object oriented
approach that today's developers look for in a toolkit.
img: api.svg
- title: Stability
- description: GTK4 deliver the enticing features and superb performance which adds to your applications.
+ description: GTK deliver the enticing features and superb performance which adds to your applications.
img: stability.svg
news_and_events_list:
diff --git a/_includes/footer.html b/_includes/footer.html
index 1a8961b..c442982 100644
--- a/_includes/footer.html
+++ b/_includes/footer.html
@@ -3,8 +3,8 @@
<div class="row">
<div class="col-12 col-sm-5 col-md-4 py-3 py-sm-2">
<a href="https://www.gnome.org/"><img src="{{ '/assets/img/GnomeLogoHorizontal.svg' |
prepend: site.url }}" class="img-fluid pb-2" width="100" /></a>
- <p>GTK4+ is a GNOME product.</p>
- <p>GTK is maintained by the core team of <strong><a href="/community#maintainers"
class="text-muted">maintainers</a></strong> under GNOME.</p>
+ <p>GTK is a hosted by GNOME.</p>
+ <p>GTK is maintained by the core team of <strong><a href="/community#contributors"
class="text-muted">contributors</a></strong> under GNOME.</p>
{% assign date_arr = site.time | date_to_string | split: ' ' %}
{% assign year = date_arr[2] %}
<p>© 2007-{{ year }}, The GTK Project. All Rights Reserved.</p>
diff --git a/_includes/header.html b/_includes/header.html
index e98e66b..1acc753 100644
--- a/_includes/header.html
+++ b/_includes/header.html
@@ -22,6 +22,7 @@
<script src="{{ '/assets/popper.js/dist/umd/popper.min.js' | prepend: site.url }}"></script>
<script src="{{ '/assets/bootstrap/dist/js/bootstrap.min.js' | prepend: site.url }}"></script>
<script src="{{ '/assets/slick-carousel/slick/slick.min.js' | prepend: site.url }}"></script>
+ <script src="{{ '/assets/geopattern-1.2.3.min.js' | prepend: site.url }}"></script>
</head>
diff --git a/_layouts/app.html b/_layouts/app.html
new file mode 100644
index 0000000..b78732b
--- /dev/null
+++ b/_layouts/app.html
@@ -0,0 +1,89 @@
+{% assign data = site.data %}
+
+{%- include header.html -%}
+
+<section class="pb-4" id="{{ page.name }}">
+ <div class="container-fluid">
+ <div class="row">
+ <div class="col-lg-3 col-md-4 small p-0 order-2 order-md-1">
+ <div class="position-sticky top-0 text-break pt-4 px-4" id="app-sidebar">
+ <div class="pb-4 pb-md-4 col-sm-6 col-md-12">
+ <p class="text-primary mb-1"><strong>Repository</strong></p>
+ <p class="m-0"><a href="{{ page.repository }}">{{ page.repository }}</a></p>
+ </div>
+ <div class="pb-4 pb-md-4 col-sm-6 col-md-12">
+ <p class="text-primary mb-1"><strong>Category</strong></p>
+ <p class="m-0"><a href="{{ page.category }}">{{ page.category }}</a></p>
+ </div>
+ {% if page.youtube_video_url %}
+ <div class="pb-4 pb-md-4 col-sm-6 col-md-12">
+ <p class="text-primary mb-1"><strong>Downloads</strong></p>
+ {% for download in page.downloads %}
+ <span class="badge badge-dark"><a href="{{ download.link }}">{{ download.title
}}</a></span>
+ {% endfor %}
+ </div>
+ {% endif %}
+ <div class="pb-4 pb-md-4 col-sm-6 col-md-12">
+ <p class="text-primary mb-1"><strong>Keywords</strong></p>
+ {% for keyword in page.keywords %}
+ <span class="badge border {% cycle 'border-primary','border-secondary' %}">{{
keyword }}</span>
+ {% endfor %}
+ </div>
+ {% if page.website %}
+ <div class="pb-4 pb-md-4 col-sm-6 col-md-12">
+ <p class="text-primary mb-1"><strong>Website</strong></p>
+ <p class="m-0"><a href="{{ page.website }}">{{ page.website }}</a></p>
+ </div>
+ {% endif %}
+ {% if page.youtube_video_url %}
+ <div class="pb-4 pb-md-4 col-sm-6 col-md-12">
+ <p class="text-primary mb-1"><strong>Youtube</strong></p>
+ <p class="m-0"><a href="{{ page.youtube_video_url }}">Open in Youtube <i class="fas
fa-external-link-alt"></i></a></p>
+ </div>
+ {% endif %}
+ <div class="pb-4 pb-md-4 col-sm-6 col-md-12">
+ <p class="text-primary mb-1"><strong>License</strong></p>
+ <p class="m-0"><a class="text-muted">{{ page.license }}</a></p>
+ </div>
+ </div>
+ </div>
+ <div class="col-lg-7 col-md-8 py-4 px-sm-4 order-1 order-md-2">
+ <div class="d-flex flex-sm-row flex-column py-3 py-md-0 px-3 px-md-0 app-shadow">
+ <div class="d-flex justify-content-center align-items-start">
+ <img src="../{{ page.img }}" class="img-fluid app-icon w-100" />
+ </div>
+ <div class="d-flex flex-column text-sm-left text-center px-md-3">
+ <h3 class="display-4">{{ page.name }} <a
href="https://gitlab.gnome.org/ravgeetdhillon/gtk-web/blob/master/{{ page.path }}" title="<span
class='small'>Edit this app</span>" data-toggle="tooltip" data-placement="right" data-html="true"
style="font-size: 1rem;"><i class="fas fa-pen"></i></a></h3>
+ <p class="text-muted my-0">{{ page.description }}</p>
+ </div>
+ </div>
+ <br>
+ <article class="markdown-body py-3">
+ {{ page.content }}
+ </article>
+ </div>
+ <div class="col-lg-2 col-md-12 small text-break mt-4 p-0 pl-3 order-3 order-md-3">
+ <div class="border-left px-3 py-2 d-none d-lg-block">
+ <p class="text-primary mb-1"><strong>More Apps</strong></p>
+ {% for app in site.apps limit:10 %}
+ <p class="m-0"><a href="{{ app.name }}" title="<span class='small'>{{ app.description
}}</span>" class="text-muted" data-toggle="tooltip" data-placement="top" data-html="true">{{ app.name
}}</a></p>
+ {% endfor %}
+ </div>
+ <br>
+ <div class="mr-3 px-3 py-3 border border-primary rounded shadow-sm position-sticky"
style="top:16px;">
+ <p class="mb-0">Ever made an app with GTK? Add it our ever growing <a
href="#">library</a>.</p>
+ <br>
+ <p class="mb-0">Curious to make an app with GTK? Get Started <a href="#">now</a>.</p>
+ </div>
+ </div>
+ </div>
+ </div>
+</section>
+
+{%- include footer.html -%}
+
+<script>
+ $(document).ready(function(){
+ $('[data-toggle="tooltip"]').tooltip();
+ });
+</script>
\ No newline at end of file
diff --git a/assets/avatar.png b/assets/avatar.png
new file mode 100644
index 0000000..d91bce4
Binary files /dev/null and b/assets/avatar.png differ
diff --git a/assets/blog1.png b/assets/blog1.png
new file mode 100644
index 0000000..c16af91
Binary files /dev/null and b/assets/blog1.png differ
diff --git a/assets/blog2.png b/assets/blog2.png
new file mode 100644
index 0000000..4b37fc3
Binary files /dev/null and b/assets/blog2.png differ
diff --git a/assets/blog3.png b/assets/blog3.png
new file mode 100644
index 0000000..c2a4dcd
Binary files /dev/null and b/assets/blog3.png differ
diff --git a/assets/css/index.css b/assets/css/index.css
index 2423635..cc4b8f3 100644
--- a/assets/css/index.css
+++ b/assets/css/index.css
@@ -331,7 +331,7 @@ pre {
background: url("../img/back1.svg");
}
#development {
- background: url("../symbolics3.png");
+ background: url("../img/symbolics.png");
background-repeat: no-repeat;
background-size: cover;
}
diff --git a/assets/img/community.svg b/assets/img/community.svg
new file mode 100644
index 0000000..4678963
--- /dev/null
+++ b/assets/img/community.svg
@@ -0,0 +1 @@
+<svg id="d367b3a4-9f94-41ab-9b15-47294bf0cdf4" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" width="910.84" height="383.58" viewBox="0 0 910.84
383.58"><defs><linearGradient id="399db84e-063f-4006-ab6b-183263888909" x1="473.46" y1="633.68" x2="473.46"
y2="567.7" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="gray" stop-opacity="0.25"/><stop
offset="0.54" stop-color="gray" stop-opacity="0.12"/><stop offset="1" stop-color="gray"
stop-opacity="0.1"/></linearGradient><linearGradient id="4300d1ac-5f15-4e97-8465-dfc8ffeef63a" x1="595.6"
y1="570.19" x2="595.6" y2="559.23" xlink:href="#399db84e-063f-4006-ab6b-183263888909"/><linearGradient
id="b996169d-fa2e-4eeb-a2a7-4ebe9e989cde" x1="609.65" y1="634.83" x2="609.65" y2="552.65"
xlink:href="#399db84e-063f-4006-ab6b-183263888909"/><linearGradient id="3d5b2085-59d8-47fc-b1c6-f209cdbde974"
x1="770.53" y1="635.68" x2="770.53" y2="553.51" xlink:href="#399db84e-063f-4006-ab6b
-1832638
88909"/><linearGradient id="22308125-884c-4a52-9145-b5ddb7a8f7c3" x1="350.22" y1="637.66" x2="350.22"
y2="556.06" xlink:href="#399db84e-063f-4006-ab6b-183263888909"/></defs><title>ordinary day</title><g
opacity="0.2"><path
d="M488.11,463.3c0-18.53-5.71-35.37-15-47.9a44.95,44.95,0,1,0-81,0c-9.31,12.53-15,29.37-15,47.9s5.71,35.37,15,47.9a44.95,44.95,0,1,0,81,0C482.39,498.67,488.11,481.83,488.11,463.3Z"
transform="translate(-144.58 -258.21)" fill="#f28518"/><path
d="M488.11,463.3c0-18.53-5.71-35.37-15-47.9a44.95,44.95,0,1,0-81,0c-9.31,12.53-15,29.37-15,47.9s5.71,35.37,15,47.9a44.95,44.95,0,1,0,81,0C482.39,498.67,488.11,481.83,488.11,463.3Z"
transform="translate(-144.58 -258.21)" fill="#f28518" opacity="0.1"/><path
d="M490.75,463.3c0-18.53-5.71-35.37-15-47.9a44.95,44.95,0,1,0-81,0c-9.31,12.53-15,29.37-15,47.9s5.71,35.37,15,47.9a44.95,44.95,0,1,0,81,0C485,498.67,490.75,481.83,490.75,463.3Z"
transform="translate(-144.58 -258.21)" fill="#f28518"/><polygon points="295.94 375.62 285.
36 375.6
2 290.65 201.12 295.94 375.62" fill="#f28518"/><polygon points="291.97 244.73 326.34 230.2 291.97 248.71
291.97 244.73" fill="#f28518"/><polygon points="288.85 260.61 278.75 248.71 288.65 267.22 288.85 260.61"
fill="#f28518"/></g><g opacity="0.2"><path
d="M568.75,523.18c0-12-3.69-22.86-9.71-31a29.05,29.05,0,1,0-52.35,0c-6,8.1-9.71,19-9.71,31s3.69,22.86,9.71,31a29.05,29.05,0,1,0,52.35,0C565.05,546,568.75,535.16,568.75,523.18Z"
transform="translate(-144.58 -258.21)" fill="#f28518"/><path
d="M568.75,523.18c0-12-3.69-22.86-9.71-31a29.05,29.05,0,1,0-52.35,0c-6,8.1-9.71,19-9.71,31s3.69,22.86,9.71,31a29.05,29.05,0,1,0,52.35,0C565.05,546,568.75,535.16,568.75,523.18Z"
transform="translate(-144.58 -258.21)" fill="#f28518" opacity="0.1"/><path
d="M570.46,523.18c0-12-3.69-22.86-9.71-31a29.05,29.05,0,1,0-52.35,0c-6,8.1-9.71,19-9.71,31s3.69,22.86,9.71,31a29.05,29.05,0,1,0,52.35,0C566.76,546,570.46,535.16,570.46,523.18Z"
transform="translate(-144.58 -258.21)" fill="#f28518"/><polygon point
s="393.4
1 375.19 386.57 375.19 389.99 262.41 393.41 375.19" fill="#f28518"/><polygon points="390.85 290.6 413.06
281.2 390.85 293.17 390.85 290.6" fill="#f28518"/><polygon points="388.83 300.86 382.3 293.17 388.7 305.13
388.83 300.86" fill="#f28518"/></g><rect x="314.43" y="332.75" width="1.22" height="18.37"
fill="#535461"/><rect x="313.21" y="353.57" width="3.06" height="21.43" fill="#535461"/><rect x="378.11"
y="353.57" width="3.06" height="21.43" fill="#535461"/><rect x="313.21" y="353.57" width="3.06"
height="21.43" opacity="0.1"/><rect x="378.11" y="353.57" width="3.06" height="21.43" opacity="0.1"/><rect
x="523.92" y="590.97" width="1.22" height="18.37" transform="translate(904.48 942.09) rotate(-180)"
fill="#535461"/><rect x="314.43" y="332.75" width="1.22" height="18.37" opacity="0.1"/><rect x="523.92"
y="590.97" width="1.22" height="18.37" transform="translate(904.48 942.09) rotate(-180)" opacity="0.1"/><rect
x="308.92" y="331.53" width="77.15" height="3.67" fill="#535461"
/><rect
x="308.92" y="337.65" width="77.15" height="3.67" fill="#535461"/><rect x="308.92" y="343.78" width="77.15"
height="3.67" fill="#535461"/><rect x="308.92" y="350.51" width="77.15" height="6.74" fill="#535461"/><rect
x="214.93" y="110.78" width="27.55" height="53.27" fill="#e0e0e0"/><polygon points="270.96 192.53 270.96
374.39 23.57 374.39 23.57 192.53 44.39 179.73 63.99 167.68 147.57 116.3 270.96 192.53" fill="#eee"/><polygon
points="239.73 374.39 239.73 183.12 236.05 185.38 236.05 374.39 239.73 374.39" opacity="0.1"/><rect
x="119.71" y="289.59" width="55.11" height="84.5" fill="#f28518"/><circle cx="166.55" cy="331.84" r="2.45"
fill="#535461"/><rect x="214.93" y="111.4" width="27.55" height="3.06" opacity="0.1"/><rect x="210.03"
y="107.72" width="36.74" height="6.12" fill="#e0e0e0"/><rect x="23.57" y="235.39" width="247.38" height="4.9"
opacity="0.1"/><rect x="23.57" y="234.78" width="247.38" height="4.9" fill="#fff"/><rect x="232.99"
y="107.72" width="6.74" height="56.33"
opacity=
"0.1"/><rect x="228.09" y="108.03" width="1.84" height="56.33" opacity="0.1"/><polygon points="264.83 185.18
264.83 374.39 245.24 374.39 245.24 179.73 264.83 185.18" opacity="0.1"/><polygon points="58.48 167.68 58.48
374.39 38.88 374.39 38.88 179.73 58.48 167.68" opacity="0.1"/><polygon points="33.37 374.39 33.37 183.12 29.7
185.38 29.7 374.39 33.37 374.39" opacity="0.1"/><polygon points="147.57 96.09 0 203.25 9.8 219.17 147.57
125.48 285.35 219.17 295.14 203.25 147.57 96.09" opacity="0.1"/><polygon points="147.57 94.86 0 202.02 9.8
217.94 147.57 124.26 285.35 217.94 295.14 202.02 147.57 94.86" fill="#f28518"/><rect x="44.09" y="268.77"
width="51.44" height="51.44" fill="#f28518" opacity="0.7"/><rect x="41.94" y="318.67" width="55.11"
height="6.12" opacity="0.1"/><rect x="41.94" y="317.45" width="55.11" height="6.12" fill="#535461"/><polygon
points="65.59 269.07 44.39 298.32 44.39 283.42 56.31 269.07 65.59 269.07" fill="#fff"
opacity="0.15"/><polygon points="83.8 269.07 44.3
9 310.48
44.39 303.17 73.8 269.07 83.8 269.07" fill="#fff" opacity="0.15"/><line x1="44.09" y1="294.48" x2="95.52"
y2="294.48" fill="none" stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><line x1="44.39"
y1="269.07" x2="95.83" y2="269.07" fill="none" stroke="#535461" stroke-miterlimit="10"
stroke-width="2"/><line x1="69.81" y1="268.77" x2="69.81" y2="320.2" fill="none" stroke="#535461"
stroke-miterlimit="10" stroke-width="2"/><line x1="95.22" y1="269.07" x2="95.22" y2="320.51" fill="none"
stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><line x1="44.39" y1="268.46" x2="44.39" y2="319.9"
fill="none" stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><rect x="343.59" y="526.98"
width="51.44" height="51.44" transform="translate(594.03 847.18) rotate(-180)" fill="#f28518"
opacity="0.7"/><rect x="342.06" y="576.88" width="55.11" height="6.12" transform="translate(594.64 901.68)
rotate(-180)" opacity="0.1"/><rect x="342.06" y="575.66" width="55.11" height="6.12"
transfor
m="translate(594.64 899.23) rotate(-180)" fill="#535461"/><polygon points="228.94 269.07 250.14 298.32
250.14 283.42 238.22 269.07 228.94 269.07" fill="#fff" opacity="0.15"/><polygon points="210.73 269.07 250.14
310.48 250.14 303.17 220.73 269.07 210.73 269.07" fill="#fff" opacity="0.15"/><line x1="250.44" y1="294.48"
x2="199.01" y2="294.48" fill="none" stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><line
x1="250.14" y1="269.07" x2="198.7" y2="269.07" fill="none" stroke="#535461" stroke-miterlimit="10"
stroke-width="2"/><line x1="224.73" y1="268.77" x2="224.73" y2="320.2" fill="none" stroke="#535461"
stroke-miterlimit="10" stroke-width="2"/><line x1="199.31" y1="269.07" x2="199.31" y2="320.51" fill="none"
stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><line x1="250.14" y1="268.46" x2="250.14"
y2="319.9" fill="none" stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><rect x="265.82" y="422.27"
width="51.44" height="51.44" transform="translate(438.
5 637.76
) rotate(-180)" fill="#f28518" opacity="0.7"/><rect x="264.29" y="472.17" width="55.11" height="6.12"
transform="translate(439.11 692.26) rotate(-180)" opacity="0.1"/><rect x="264.29" y="470.95" width="55.11"
height="6.12" transform="translate(439.11 689.81) rotate(-180)" fill="#535461"/><polygon points="151.17
164.36 172.37 193.61 172.37 178.71 160.46 164.36 151.17 164.36" fill="#fff" opacity="0.15"/><polygon
points="132.96 164.36 172.37 205.77 172.37 198.46 142.96 164.36 132.96 164.36" fill="#fff"
opacity="0.15"/><line x1="172.68" y1="189.78" x2="121.24" y2="189.78" fill="none" stroke="#535461"
stroke-miterlimit="10" stroke-width="2"/><line x1="172.37" y1="164.36" x2="120.94" y2="164.36" fill="none"
stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><line x1="146.96" y1="164.06" x2="146.96"
y2="215.49" fill="none" stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><line x1="121.55"
y1="164.36" x2="121.55" y2="215.8" fill="none" stroke="#535461" stroke-miterli
mit="10"
stroke-width="2"/><line x1="172.37" y1="163.75" x2="172.37" y2="215.19" fill="none" stroke="#535461"
stroke-miterlimit="10" stroke-width="2"/><rect x="119.71" y="362.15" width="55.11" height="12.25"
fill="#535461"/><rect x="665.91" y="234.17" width="192.27" height="140.22" fill="#e0e0e0"/><polygon
points="844.1 374.39 844.1 183.12 840.42 185.38 840.42 374.39 844.1 374.39" opacity="0.1"/><polygon
points="854.51 374.39 854.51 183.12 850.83 185.38 850.83 374.39 854.51 374.39" opacity="0.1"/><rect
x="665.91" y="237.23" width="192.27" height="15.92" opacity="0.1"/><polygon points="876.55 250.09 583.86
250.09 583.86 115.99 828.79 115.99 876.55 250.09" fill="#f28518"/><polygon points="876.55 250.09 583.86
250.09 583.86 115.99 828.79 115.99 876.55 250.09" opacity="0.1"/><rect x="667.75" y="234.17" width="15.92"
height="140.22" opacity="0.1"/><rect x="625.8" y="110.78" width="27.55" height="53.27"
fill="#e0e0e0"/><polygon points="681.83 192.53 681.83 374.39 434.45 374.39 434.45 192.
53 455.2
7 179.73 474.86 167.68 558.45 116.3 681.83 192.53" fill="#eee"/><rect x="530.59" y="289.59" width="55.11"
height="84.5" fill="#f28518"/><circle cx="577.43" cy="331.84" r="2.45" fill="#535461"/><rect x="625.8"
y="111.4" width="27.55" height="3.06" opacity="0.1"/><rect x="620.9" y="107.72" width="36.74" height="6.12"
fill="#e0e0e0"/><rect x="434.45" y="235.39" width="247.38" height="4.9" opacity="0.1"/><rect x="434.45"
y="234.78" width="247.38" height="4.9" fill="#fff"/><rect x="643.87" y="107.72" width="6.74" height="56.33"
opacity="0.1"/><rect x="638.97" y="108.03" width="1.84" height="56.33" opacity="0.1"/><polygon points="675.71
185.18 675.71 374.39 656.11 374.39 656.11 179.73 675.71 185.18" opacity="0.1"/><polygon points="469.35 167.68
469.35 374.39 449.76 374.39 449.76 179.73 469.35 167.68" opacity="0.1"/><polygon points="444.25 374.39 444.25
183.12 440.57 185.38 440.57 374.39 444.25 374.39" opacity="0.1"/><polygon points="558.45 96.09 410.87 203.25
420.67 219.17 558.45
125.48 6
96.22 219.17 706.02 203.25 558.45 96.09" opacity="0.1"/><polygon points="558.45 94.86 410.87 202.02 420.67
217.94 558.45 124.26 696.22 217.94 706.02 202.02 558.45 94.86" fill="#f28518"/><rect x="454.96" y="268.77"
width="51.44" height="51.44" fill="#f28518" opacity="0.7"/><rect x="452.82" y="318.67" width="55.11"
height="6.12" opacity="0.1"/><rect x="452.82" y="317.45" width="55.11" height="6.12" fill="#535461"/><polygon
points="476.47 269.07 455.27 298.32 455.27 283.42 467.18 269.07 476.47 269.07" fill="#fff"
opacity="0.15"/><polygon points="494.68 269.07 455.27 310.48 455.27 303.17 484.68 269.07 494.68 269.07"
fill="#fff" opacity="0.15"/><line x1="454.96" y1="294.48" x2="506.4" y2="294.48" fill="none" stroke="#535461"
stroke-miterlimit="10" stroke-width="2"/><line x1="455.27" y1="269.07" x2="506.7" y2="269.07" fill="none"
stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><line x1="480.68" y1="268.77" x2="480.68"
y2="320.2" fill="none" stroke="#535461" stroke-miterl
imit="10
" stroke-width="2"/><line x1="506.09" y1="269.07" x2="506.09" y2="320.51" fill="none" stroke="#535461"
stroke-miterlimit="10" stroke-width="2"/><line x1="455.27" y1="268.46" x2="455.27" y2="319.9" fill="none"
stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><rect x="754.46" y="526.98" width="51.44"
height="51.44" transform="translate(1415.78 847.18) rotate(-180)" fill="#f28518" opacity="0.7"/><rect
x="752.93" y="576.88" width="55.11" height="6.12" transform="translate(1416.39 901.68) rotate(-180)"
opacity="0.1"/><rect x="752.93" y="575.66" width="55.11" height="6.12" transform="translate(1416.39 899.23)
rotate(-180)" fill="#535461"/><polygon points="639.81 269.07 661.01 298.32 661.01 283.42 649.1 269.07 639.81
269.07" fill="#fff" opacity="0.15"/><polygon points="621.6 269.07 661.01 310.48 661.01 303.17 631.6 269.07
621.6 269.07" fill="#fff" opacity="0.15"/><line x1="661.32" y1="294.48" x2="609.88" y2="294.48" fill="none"
stroke="#535461" stroke-miterlimit="10" strok
e-width=
"2"/><line x1="661.01" y1="269.07" x2="609.58" y2="269.07" fill="none" stroke="#535461"
stroke-miterlimit="10" stroke-width="2"/><line x1="635.6" y1="268.77" x2="635.6" y2="320.2" fill="none"
stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><line x1="610.19" y1="269.07" x2="610.19"
y2="320.51" fill="none" stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><line x1="661.01"
y1="268.46" x2="661.01" y2="319.9" fill="none" stroke="#535461" stroke-miterlimit="10"
stroke-width="2"/><rect x="676.69" y="422.27" width="51.44" height="51.44" transform="translate(1260.25
637.76) rotate(-180)" fill="#f28518" opacity="0.7"/><rect x="675.16" y="472.17" width="55.11" height="6.12"
transform="translate(1260.86 692.26) rotate(-180)" opacity="0.1"/><rect x="675.16" y="470.95" width="55.11"
height="6.12" transform="translate(1260.86 689.81) rotate(-180)" fill="#535461"/><polygon points="562.05
164.36 583.25 193.61 583.25 178.71 571.33 164.36 562.05 164.36" fill="#fff" opacity="
0.15"/><
polygon points="543.84 164.36 583.25 205.77 583.25 198.46 553.84 164.36 543.84 164.36" fill="#fff"
opacity="0.15"/><line x1="583.55" y1="189.78" x2="532.12" y2="189.78" fill="none" stroke="#535461"
stroke-miterlimit="10" stroke-width="2"/><line x1="583.25" y1="164.36" x2="531.81" y2="164.36" fill="none"
stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><line x1="557.83" y1="164.06" x2="557.83"
y2="215.49" fill="none" stroke="#535461" stroke-miterlimit="10" stroke-width="2"/><line x1="532.42"
y1="164.36" x2="532.42" y2="215.8" fill="none" stroke="#535461" stroke-miterlimit="10"
stroke-width="2"/><line x1="583.25" y1="163.75" x2="583.25" y2="215.19" fill="none" stroke="#535461"
stroke-miterlimit="10" stroke-width="2"/><rect x="530.59" y="362.15" width="55.11" height="12.25"
fill="#535461"/><rect x="696.53" y="278.87" width="139.61" height="63.68" fill="#f28518" opacity="0.7"/><rect
x="694.69" y="340.71" width="143.29" height="6.12" opacity="0.1"/><rect x="694.69" y="33
9.49" wi
dth="143.29" height="6.12" fill="#535461"/><polygon points="715.82 278.87 696.53 294.79 696.53 303.06 726.53
278.87 715.82 278.87" fill="#fff" opacity="0.2"/><rect x="763.88" y="279.87" width="4.9" height="63.68"
fill="#535461"/><rect x="696.88" y="279.87" width="4.9" height="63.68" fill="#535461"/><rect x="830.88"
y="279.87" width="4.9" height="63.68" fill="#535461"/><rect x="908.46" y="499.12" width="4.9" height="139.61"
transform="translate(1335.25 -600.2) rotate(90)" fill="#535461"/><rect x="908.46" y="470.12" width="4.9"
height="139.61" transform="translate(1306.25 -629.2) rotate(90)" fill="#535461"/><polygon points="734.8
278.87 696.53 315.3 696.53 324.49 743.06 278.76 734.8 278.87" fill="#fff" opacity="0.2"/><path
d="M434.52,553.61a37.3,37.3,0,0,0-7-22.19,20.82,20.82,0,1,0-37.52,0,38.85,38.85,0,0,0,0,44.38,20.82,20.82,0,1,0,37.52,0A37.3,37.3,0,0,0,434.52,553.61Z"
transform="translate(-144.58 -258.21)" fill="#4db6ac"/><path d="M434.52,553.61a37.3,37.3,0,0,0-7-22.19,20.
82,20.82
,0,1,0-37.52,0,38.85,38.85,0,0,0,0,44.38,20.82,20.82,0,1,0,37.52,0A37.3,37.3,0,0,0,434.52,553.61Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><path
d="M435.74,553.61a37.3,37.3,0,0,0-7-22.19,20.82,20.82,0,1,0-37.52,0,38.85,38.85,0,0,0,0,44.38,20.82,20.82,0,1,0,37.52,0A37.3,37.3,0,0,0,435.74,553.61Z"
transform="translate(-144.58 -258.21)" fill="#4db6ac"/><polygon points="267.89 374.39 263 374.39 265.45
293.56 267.89 374.39" fill="#5d291b"/><polygon points="266.06 313.77 281.98 307.04 266.06 315.61 266.06
313.77" fill="#5d291b"/><polygon points="264.61 321.12 259.94 315.61 264.52 324.18 264.61 321.12"
fill="#5d291b"/><path
d="M1054.2,553.61a37.3,37.3,0,0,0-7-22.19,20.82,20.82,0,1,0-37.52,0,38.85,38.85,0,0,0,0,44.38,20.82,20.82,0,1,0,37.52,0A37.3,37.3,0,0,0,1054.2,553.61Z"
transform="translate(-144.58 -258.21)" fill="#4db6ac"/><path
d="M1054.2,553.61a37.3,37.3,0,0,0-7-22.19,20.82,20.82,0,1,0-37.52,0,38.85,38.85,0,0,0,0,44.38,20.82,20.82,0,1,0,37.52,0A37.3,37.3,0,0,0,1
054.2,55
3.61Z" transform="translate(-144.58 -258.21)" opacity="0.1"/><path
d="M1055.42,553.61a37.3,37.3,0,0,0-7-22.19,20.82,20.82,0,1,0-37.52,0,38.85,38.85,0,0,0,0,44.38,20.82,20.82,0,1,0,37.52,0A37.3,37.3,0,0,0,1055.42,553.61Z"
transform="translate(-144.58 -258.21)" fill="#4db6ac"/><polygon points="887.57 374.39 882.68 374.39 885.13
293.56 887.57 374.39" fill="#5d291b"/><polygon points="885.74 313.77 901.66 307.04 885.74 315.61 885.74
313.77" fill="#5d291b"/><polygon points="884.29 321.12 879.61 315.61 884.2 324.18 884.29 321.12"
fill="#5d291b"/><path
d="M604.13,553.61a37.3,37.3,0,0,0-7-22.19,20.82,20.82,0,1,0-37.52,0,38.85,38.85,0,0,0,0,44.38,20.82,20.82,0,1,0,37.52,0A37.3,37.3,0,0,0,604.13,553.61Z"
transform="translate(-144.58 -258.21)" fill="#4db6ac"/><path
d="M604.13,553.61a37.3,37.3,0,0,0-7-22.19,20.82,20.82,0,1,0-37.52,0,38.85,38.85,0,0,0,0,44.38,20.82,20.82,0,1,0,37.52,0A37.3,37.3,0,0,0,604.13,553.61Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><path d="M605.36,55
3.61a37.
3,37.3,0,0,0-7-22.19,20.82,20.82,0,1,0-37.52,0,38.85,38.85,0,0,0,0,44.38,20.82,20.82,0,1,0,37.52,0A37.3,37.3,0,0,0,605.36,553.61Z"
transform="translate(-144.58 -258.21)" fill="#4db6ac"/><polygon points="437.51 374.39 432.61 374.39 435.06
293.56 437.51 374.39" fill="#5d291b"/><polygon points="435.67 313.77 451.59 307.04 435.67 315.61 435.67
313.77" fill="#5d291b"/><polygon points="434.23 321.12 429.55 315.61 434.13 324.18 434.23 321.12"
fill="#5d291b"/><g opacity="0.7"><path
d="M482.05,606.28l-.5-.09,1-3.67c1.57-11.75-4.35-12.93-6.57-13a7.3,7.3,0,0,0-.78-.24v-1.39a7.36,7.36,0,0,0,5.49-5.94h0c.35,0,.64-.54.64-1.2a1.66,1.66,0,0,0-.28-1q0-.38,0-.77a7.65,7.65,0,0,0-2.36-5.54,4.93,4.93,0,0,0-.54-1.46c-.54-1-1.45-2-1.08-3l-2.39.25,0-1.58c-.75.13-1.06,1-1.5,1.62-1.07,1.48-3.2,1.69-4.62,2.84-.48.39-1.56,1.59-1.36,2.37a7.63,7.63,0,0,0-1.46,4.5q0,.39,0,.77a1.66,1.66,0,0,0-.28,1c0,.66.29,1.2.64,1.2h0a7.36,7.36,0,0,0,5.49,5.94v1.39a7.3,7.3,0,0,0-.78.24c-2.22,0-8.14,1.22-6.57,13l1,3.67-.2
4,0a2.73
,2.73,0,0,0-2.18,3.18l3.92,21a.83.83,0,0,0,1,.66l.69-.13v.41a2.3,2.3,0,0,0-1.28,2.06v.26h4.63v-.26a2.29,2.29,0,0,0-1.12-2v-.91l.63-.12a.83.83,0,0,0,.66-1l-3.69-19.75h10.22l-3.69,19.75a.83.83,0,0,0,.66,1l.63.12v.91a2.29,2.29,0,0,0-1.12,2v.26h4.63v-.26a2.3,2.3,0,0,0-1.28-2.06V631l.69.13a.83.83,0,0,0,1-.66l4-21.28A2.45,2.45,0,0,0,482.05,606.28Z"
transform="translate(-144.58 -258.21)" fill="url(#399db84e-063f-4006-ab6b-183263888909)"/></g><rect
x="324.09" y="370.06" width="2.15" height="2.92" fill="#fdb797"/><rect x="331.47" y="370.06" width="2.15"
height="2.92" fill="#fdb797"/><rect x="321.79" y="346.08" width="14.15" height="5.07" fill="#4d8af0"/><g
opacity="0.05"><rect x="321.79" y="346.08" width="14.15" height="5.07"/></g><path
d="M466.36,605.21a54,54,0,0,0,7.07,1.23,54,54,0,0,0,7.07-1.23v-.77H466.36Z" transform="translate(-144.58
-258.21)" opacity="0.1"/><path
d="M480.51,605.06a54,54,0,0,1-7.07,1.23,54,54,0,0,1-7.07-1.23V596.6a7.07,7.07,0,0,1,7.07-7.07h0a7.07,7.07,0,0,1,7.0
7,7.07Z"
transform="translate(-144.58 -258.21)" fill="#f55f44"/><path
d="M327.17,327.78h3.38a0,0,0,0,1,0,0v3.88a1.66,1.66,0,0,1-1.66,1.66h-.06a1.66,1.66,0,0,1-1.66-1.66v-3.88A0,0,0,0,1,327.17,327.78Z"
fill="#fdb797"/><path
d="M471.07,629.36l-2.71.51a1.16,1.16,0,0,1-1.35-.93l-3.49-18.68a3.82,3.82,0,0,1,3.06-4.46l.09,0a1.16,1.16,0,0,1,1.35.93l4,21.3A1.16,1.16,0,0,1,471.07,629.36Z"
transform="translate(-144.58 -258.21)" fill="#4d8af0"/><path
d="M475.89,629.37l2.52.47a1.25,1.25,0,0,0,1.46-1l3.49-18.68a3.73,3.73,0,0,0-3-4.35l-.09,0a1.25,1.25,0,0,0-1.46,1l-3.94,21.11A1.25,1.25,0,0,0,475.89,629.37Z"
transform="translate(-144.58 -258.21)" fill="#4d8af0"/><path
d="M471.75,588.56a7.08,7.08,0,0,0,3.38,0v-2.41h-3.38Z" transform="translate(-144.58 -258.21)"
opacity="0.1"/><circle cx="328.86" cy="321.63" r="7.38" fill="#333"/><circle cx="328.86" cy="323.32" r="7.07"
fill="#fdb797"/><path
d="M468.77,573.24c1.36-1.11,3.42-1.31,4.44-2.74.43-.59.73-1.43,1.45-1.55l0,1.52,2.3-.24c-.36,1,.52,2,1,2.89a4.
75,4.75,
0,0,1,.61,2.23c-.8.48-1.79,0-2.68-.32a9.88,9.88,0,0,0-2.69-.33,5.59,5.59,0,0,0-1.39.08,7,7,0,0,0-1.15.42c-.61.26-2.55,1.22-3.12.6S468.24,573.66,468.77,573.24Z"
transform="translate(-144.58 -258.21)" fill="#333"/><path
d="M469.15,578a3.24,3.24,0,0,0,1.25.38,11,11,0,0,0,5.37-.6,2.62,2.62,0,0,0,1.69,1.43,7.77,7.77,0,0,0,2.27.25.84.84,0,0,0,.49-.09c.34-.23.18-.76,0-1.12l-1-1.79a5.3,5.3,0,0,0-1-1.47,4.33,4.33,0,0,0-2.06-.88,11.6,11.6,0,0,0-5.28.18C469,574.78,466.63,576.46,469.15,578Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><path
d="M469.15,577.83a3.24,3.24,0,0,0,1.25.38,11,11,0,0,0,5.37-.6,2.62,2.62,0,0,0,1.69,1.43,7.77,7.77,0,0,0,2.27.25.84.84,0,0,0,.49-.09c.34-.23.18-.76,0-1.12l-1-1.79a5.3,5.3,0,0,0-1-1.47,4.33,4.33,0,0,0-2.06-.88,11.6,11.6,0,0,0-5.28.18C469,574.62,466.63,576.31,469.15,577.83Z"
transform="translate(-144.58 -258.21)" fill="#333"/><ellipse cx="335.85" cy="323.32" rx="0.62" ry="1.15"
fill="#fdb797"/><ellipse cx="321.86" cy="323.32" rx="0.62" ry="1.1
5" fill=
"#fdb797"/><path
d="M471.77,590s-8.95-1.39-7.1,12.44l1.08,4,3.08-.12s-2-4.61-.77-7.69S471.77,590,471.77,590Z"
transform="translate(-144.58 -258.21)" fill="#f55f44"/><path
d="M475.1,590s8.95-1.39,7.1,12.44l-1.08,4-3.08-.12s2-4.61.77-7.69S475.1,590,475.1,590Z"
transform="translate(-144.58 -258.21)" fill="#f55f44"/><circle cx="322.86" cy="348.69" r="1.69"
fill="#fdb797"/><circle cx="335.16" cy="348.69" r="1.69" fill="#fdb797"/><path
d="M325.05,371.76h.08a2.19,2.19,0,0,1,2.19,2.19v.27a0,0,0,0,1,0,0h-4.46a0,0,0,0,1,0,0v-.27a2.19,2.19,0,0,1,2.19-2.19Z"
fill="#333"/><path
d="M332.58,371.76h.08a2.19,2.19,0,0,1,2.19,2.19v.27a0,0,0,0,1,0,0H330.4a0,0,0,0,1,0,0v-.27A2.19,2.19,0,0,1,332.58,371.76Z"
fill="#333"/><path d="M467.9,597.37s-.62,3.23.46,4.61" transform="translate(-144.58 -258.21)"
opacity="0.1"/><path d="M479,597.37s.62,3.23-.46,4.61" transform="translate(-144.58 -258.21)"
opacity="0.1"/><circle cx="447.31" cy="300.3" r="3.06" fill="#f55f44"/><path d="M595.58,569.32v.87l3.69-2.
33-.39-.
49-.18.11-2.86-4.19v-2.43l-1.09.1v-.39c-2.87-3.3-3.17.39-2.57,1.46a6.52,6.52,0,0,0,1.68,1.85c.61.51,1.66,4.36,1.92,5.32Z"
transform="translate(-144.58 -258.21)" fill="url(#4300d1ac-5f15-4e97-8465-dfc8ffeef63a)"/><path
d="M619.56,567.38l-.5-.34h0l-.46-1.36h-.17l-.57-1.14a4.69,4.69,0,0,0,1.31-1,5.89,5.89,0,0,0,1.5-4.93c0-.53.83-1.89-1.77-2.6a3.58,3.58,0,0,0-2.73-3.11,9.91,9.91,0,0,0-3.07-.27,3.86,3.86,0,0,0-3.74,3.64s-.6.19-.64,2.16h.08a5.67,5.67,0,0,0,4.14,6.87l0,.21.11.05.37,1-1.18.71-2.37.08a9.29,9.29,0,0,0-3.19.68,47.63,47.63,0,0,1-6.13,1.72l-1.26-1.8-3.69,2.55,2.43,3.71a5.63,5.63,0,0,0,1.26.72h0l.11,0a10,10,0,0,0,1.86.52,18.55,18.55,0,0,0,6.42.1h0l.83,16.73h.05l-.39,2.87c-3.89,4.86-5,19-5,19L609,630.68c-.11.47-.55,1.49-2.3,2.21-2.36,1,1.67,1.65,1.67,1.65l3.66-1.13c.3.61,2,1.42,2,1.42l7.29-.19V631h-.1s.68-6.51.19-7.87,0-8,0-8l.39-14.09a7.79,7.79,0,0,0,.29-7.29,6.76,6.76,0,0,1-.61-2.15,7,7,0,0,0,.12-3.68c-.87-5.51,1.94-11,1.94-11h0A9.5,9.5,0,0,0,619.56,567.38Zm-4.35,64.5-.8
2-2.94-.
19.05-3.56-15,3.3-6.9v6.61l1.85,12.93V631A1.93,1.93,0,0,1,615.21,631.88Z" transform="translate(-144.58
-258.21)" fill="url(#b996169d-fa2e-4eeb-a2a7-4ebe9e989cde)"/><path
d="M596.31,562.15v2.33l2.78,4.07-2.78,1.81s-1.24-4.76-1.9-5.32a6.27,6.27,0,0,1-1.62-1.77c-.57-1-.29-4.58,2.47-1.4v.37Z"
transform="translate(-144.58 -258.21)" fill="#fda57d"/><path
d="M618.46,567.72l-1.1-2.2a.41.41,0,0,0-.34-.22l-4.18-.21a.41.41,0,0,0-.4.55l1.08,2.79a.41.41,0,0,0,.42.26l4.2-.37A.41.41,0,0,0,618.46,567.72Z"
transform="translate(-144.58 -258.21)" fill="#fda57d"/><polygon points="473.57 308.56 474.28 310.64 466.98
310.38 469.79 308.7 473.57 308.56" fill="#edeef9"/><polygon points="455.03 310.66 454.66 310.2 451.48 312.06
451.48 312.9 455.03 310.66" fill="#edeef9"/><path
d="M621.06,589.54a6.94,6.94,0,0,0,.49,4.27,7.49,7.49,0,0,1-.28,7l-.37,13.54s-.47,6.35,0,7.66-.19,7.56-.19,7.56h-5.23v-4.2L613.71,613v-6.35l-3.18,6.63,3.64,15.32-4.76,2-6-17.18s1-13.54,4.76-18.21l.7-5.09Z"
transform="translate(-1
44.58 -2
58.21)" fill="#7a7478"/><path d="M620.81,633v-3.46h-5.32s-.37,1.4-2.8,1.68,1.12,2,1.12,2Z"
transform="translate(-144.58 -258.21)" fill="#333"/><path
d="M615.06,630.88l-.93-3.33L609,629s0,1.45-2.25,2.37,1.61,1.59,1.61,1.59Z" transform="translate(-144.58
-258.21)" fill="#333"/><path
d="M608.9,590.31l12.16-.49A6.8,6.8,0,0,0,621,592a1.46,1.46,0,0,1-1.75,1l-10.64-.33Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><path
d="M618.61,568.08l.48.33a9.12,9.12,0,0,1,3.86,9.2h0s-2.71,5.3-1.87,10.6-1.87,4.48-1.87,4.48l-10.69-.33-.79-16.08s-6.44.92-9.34-1.32l-2.33-3.57,3.55-2.45,1.21,1.73a45.77,45.77,0,0,0,5.89-1.65,8.92,8.92,0,0,1,3.06-.66Z"
transform="translate(-144.58 -258.21)" fill="#252a62"/><path d="M618.52,594s.65,3.27-3.08,8.69"
transform="translate(-144.58 -258.21)" opacity="0.1"/><path
d="M607.69,576.3s-4.48-1.49-6.44-1.49-1.63.85-1.63.85A15.62,15.62,0,0,0,607.69,576.3Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><path d="M612.77,565.27l1.78.21c.06,0,.11.08.14
.19-.39.
71-.88,1.13-1.42,1.13a1.1,1.1,0,0,1-.54-.15l-.14-.83C612.55,565.54,612.64,565.25,612.77,565.27Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><circle cx="469.44" cy="302.95" r="5.45"
fill="#fda57d"/><path
d="M609.38,558.08h0l.27.25a.94.94,0,0,1-.27,1.56h0s2.44,2.44,2.78,2.89-.06,1.65-.06,1.65-1.08,2,4.6,1.53c0,0,3.74-.79,3.35-5.84,0-.51.79-1.82-1.7-2.5h0a3.44,3.44,0,0,0-2.63-3,9.52,9.52,0,0,0-3-.26A3.71,3.71,0,0,0,609.38,558.08Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><path
d="M609.26,557.78h0s-.58.18-.61,2.08l.82-.06s1.9,5.09,1.7,4.43c-.74-2.44.74-2,1.08-1.53s-.06,1.65-.06,1.65-1.08,2,4.6,1.53c0,0,3.74-.79,3.35-5.84,0-.51.79-1.82-1.7-2.5h0a3.44,3.44,0,0,0-2.63-3,9.52,9.52,0,0,0-3-.26A3.71,3.71,0,0,0,609.26,557.78Z"
transform="translate(-144.58 -258.21)" fill="#72351c"/><path
d="M213.42,617.53c0-.28,0-.56,0-.85a11,11,0,0,0-16.61-9.49,11,11,0,0,0-18.59-1.32,11,11,0,0,0-10.6,17.89,11,11,0,0,0,14.87,14,11,11,0,0,0,11.94-1.81,10.94,10.94,0,0,0,11,2.18,11,
11,0,0,0
,7.92-20.55Z" transform="translate(-144.58 -258.21)" fill="#4db6ac"/><path
d="M213.42,617.53c0-.28,0-.56,0-.85a11,11,0,0,0-16.61-9.49,11,11,0,0,0-18.59-1.32,11,11,0,0,0-10.6,17.89,11,11,0,0,0,14.87,14,11,11,0,0,0,11.94-1.81,10.94,10.94,0,0,0,11,2.18,11,11,0,0,0,7.92-20.55Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><path
d="M214.65,617.53c0-.28,0-.56,0-.85a11,11,0,0,0-16.61-9.49,11,11,0,0,0-18.59-1.32,11,11,0,0,0-10.6,17.89,11,11,0,0,0,14.87,14,11,11,0,0,0,11.94-1.81,10.94,10.94,0,0,0,11,2.18,11,11,0,0,0,7.92-20.55Z"
transform="translate(-144.58 -258.21)" fill="#4db6ac"/><path
d="M987.41,613.25c0-.28,0-.56,0-.85a11,11,0,0,0-16.61-9.49,11,11,0,0,0-18.59-1.32,11,11,0,0,0-10.6,17.89,17.25,17.25,0,0,0,26.82,12.14,13.72,13.72,0,1,0,18.94-18.37Z"
transform="translate(-144.58 -258.21)" fill="#4db6ac"/><path
d="M987.41,613.25c0-.28,0-.56,0-.85a11,11,0,0,0-16.61-9.49,11,11,0,0,0-18.59-1.32,11,11,0,0,0-10.6,17.89,17.25,17.25,0,0,0,26.82,12.14,13.72,13.72,0,1,0,18.94-18.37Z
" transf
orm="translate(-144.58 -258.21)" opacity="0.1"/><path
d="M988.63,613.25c0-.28,0-.56,0-.85a11,11,0,0,0-16.61-9.49,11,11,0,0,0-18.59-1.32,11,11,0,0,0-10.6,17.89,17.25,17.25,0,0,0,26.82,12.14,13.72,13.72,0,1,0,18.94-18.37Z"
transform="translate(-144.58 -258.21)" fill="#4db6ac"/><rect x="9.49" y="374.39" width="897.68"
height="9.18" fill="#333"/><circle cx="807.69" cy="28.24" r="28.24" fill="#ffffa5"/><g opacity="0.3"><rect
x="599.83" y="27.99" width="94.52" height="18.44" rx="9.22" ry="9.22" fill="#e0e0e0"/><rect x="576.78"
y="46.43" width="94.52" height="18.44" rx="9.22" ry="9.22" fill="#e0e0e0"/><rect x="599.83" y="64.87"
width="94.52" height="18.44" rx="9.22" ry="9.22" fill="#e0e0e0"/></g><g opacity="0.3"><rect x="163.85"
y="18.8" width="94.52" height="18.44" rx="9.22" ry="9.22" fill="#e0e0e0"/><rect x="140.8" y="37.24"
width="94.52" height="18.44" rx="9.22" ry="9.22" fill="#e0e0e0"/><rect x="163.85" y="55.69" width="94.52"
height="18.44" rx="9.22" ry="9.22" fill="#e0e0e0"/>
</g><g o
pacity="0.3"><path d="M229.58,343.58h20.17S242.15,357,229.58,343.58Z" transform="translate(-144.58 -258.21)"
fill="#030b44"/><path d="M230.8,349.31,244,334.07S249.2,348.63,230.8,349.31Z" transform="translate(-144.58
-258.21)" fill="#030b44"/></g><g opacity="0.3"><path d="M450.85,270.72H471S463.42,284.16,450.85,270.72Z"
transform="translate(-144.58 -258.21)" fill="#030b44"/><path
d="M452.06,276.44l13.22-15.23S470.46,275.76,452.06,276.44Z" transform="translate(-144.58 -258.21)"
fill="#030b44"/></g><g opacity="0.3"><path d="M863.8,336.24h21.64S877.28,350.66,863.8,336.24Z"
transform="translate(-144.58 -258.21)" fill="#030b44"/><path
d="M865.1,342.37,879.29,326S884.84,341.65,865.1,342.37Z" transform="translate(-144.58 -258.21)"
fill="#030b44"/></g><g opacity="0.5"><path
d="M783.26,632.76c-1.23-.73-1.88-3.16-2.07-4l-1.47-18.93a67.35,67.35,0,0,0-5.28-15.19c-.05-5.31-.25-22.12-.72-23.93L771,567.32a6.65,6.65,0,0,1,.44-.75l.15,0,.19-.23a4.59,4.59,0,0,0,2.38-6.74c.68-.5-.19-.71-.19-.71
h0a4.59,
4.59,0,0,0-5.19-3.52,2.49,2.49,0,0,0-2.39-1.81h-.14a2.49,2.49,0,0,1,2.24,1.74,6.32,6.32,0,0,0-3.17-1.75h-.14a2.48,2.48,0,0,1,1.38.52h-.22a2.49,2.49,0,0,0-1.26,4.64,4.59,4.59,0,0,0,.25,3.07,3.65,3.65,0,0,0,2,3.84l-.3.68c-.36,0-3.29.37-5.17,7-.81,1.67-1.42,4.36-1.38,8.72-.08,1.12-.14,2.31-.17,3.59l-1.36,5.6,0,0v.14h0a48.94,48.94,0,0,0,.74,13.43c.51,2.49.91,5,.67,5.86-.54,2-2.46,9.17-2.19,11.38l-.64,3.87,0,0-2.4,4.56s1.48,1.35,2.06,1.39,1.26,1,1.26,1,3.45,2.66,4.62,1.84-.44-1.8-1.54-3.15c-.9-1.11-.67-3.61-.56-4.48l5.15-18.28a52.71,52.71,0,0,0,.59-7.7,4.1,4.1,0,0,0,1.33.71.83.83,0,0,0,.5,0l.33,1.19s5.94,8.49,6.11,10.53.85,9.45,1.87,11.44l.74,3.85h0l-.68,5.11a6.79,6.79,0,0,0,2.42.59c.56-.17,1.53.53,1.53.53s4.15,1.31,5,.13S784.76,633.64,783.26,632.76Z"
transform="translate(-144.58 -258.21)" fill="url(#3d5b2085-59d8-47fc-b1c6-f209cdbde974)"/></g><path
d="M772.85,592.72l1.47,3.44s-.16-22.56-.71-24.64l-3.55-4.32-1.2,3.17,2.73,3.39a30.52,30.52,0,0,1,1.42,9.94C772.74,588.63,772.85,592.
72,772.8
5,592.72Z" transform="translate(-144.58 -258.21)" fill="#3ad29f"/><path
d="M772.85,592.72l1.47,3.44s-.16-22.56-.71-24.64l-3.55-4.32-1.2,3.17,2.73,3.39a30.52,30.52,0,0,1,1.42,9.94C772.74,588.63,772.85,592.72,772.85,592.72Z"
transform="translate(-144.58 -258.21)" fill="#381e1d"/><path
d="M772.68,592.72l1.47,3.44s-.16-22.56-.71-24.64l-3.55-4.32-1.2,3.17,2.73,3.39a30.52,30.52,0,0,1,1.42,9.94C772.57,588.63,772.68,592.72,772.68,592.72Z"
transform="translate(-144.58 -258.21)" fill="#333"/><path
d="M759.27,591.22a47.41,47.41,0,0,0,.7,13.21c.49,2.4.88,4.81.64,5.66-.52,1.9-2.38,8.85-2.11,11l-.61,3.73,3.33,1.22,5-17.72a67.91,67.91,0,0,0,0-18.09l-7,1Z"
transform="translate(-144.58 -258.21)" fill="#4d8af0"/><path
d="M758.07,624.55l-2.46,4.67s1.43,1.31,2,1.34,1.21,1,1.21,1,3.32,2.57,4.46,1.77-.42-1.74-1.49-3-.5-4.62-.5-4.62Z"
transform="translate(-144.58 -258.21)" fill="#381e1d"/><path
d="M768.86,602.72s5.74,8.19,5.9,10.16.82,9.12,1.8,11l.71,3.71h3.55l-1.42-18.35a67.91,67.91,0,0,0-6.23-17
l-6.28,3
.44Z" transform="translate(-144.58 -258.21)" fill="#4d8af0"/><path
d="M773.26,593.62c0,.44-5,0-5,0v-21.3l2.29-3.39a10.35,10.35,0,0,1,1.74,3.54,33.17,33.17,0,0,1,1.32,4.38c.17.93-.44,2.22-.33,3.39A51.08,51.08,0,0,1,773.26,593.62Z"
transform="translate(-144.58 -258.21)" fill="#fff"/><path
d="M770.25,570.14a7.59,7.59,0,0,1,1.72-3.3l-4.26-1.09-1,2.35Z" transform="translate(-144.58 -258.21)"
fill="#fda57d"/><path
d="M767.08,567.4s-6-.14-6.53,18.65l-1.31,5.41s10.6,17.37,12.73,3.28c0,0,1.15-15.35-1.09-20.54l1.09-2.62Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><path
d="M767.08,567.24s-6-.14-6.53,18.65l-1.31,5.41s10.6,17.37,12.73,3.28c0,0,1.15-15.35-1.09-20.54l1.09-2.62Z"
transform="translate(-144.58 -258.21)" fill="#333"/><path
d="M764.65,594.58s-.39,5.77,3.41,7a.81.81,0,0,0,1.06-.72c.06-1-.25-3-2.06-7.08Z" transform="translate(-144.58
-258.21)" opacity="0.1"/><path
d="M764.87,594.47s-.39,5.77,3.41,7a.81.81,0,0,0,1.06-.72c.06-1-.25-3-2.06-7.08Z" transform="translate(-14
4.58 -25
8.21)" fill="#fda57d"/><circle cx="626.79" cy="319.22" r="0.22" fill="#fa9221"/><circle cx="626.79"
cy="327.41" r="0.22" fill="#fa9221"/><path
d="M777.36,627.32l-.7,5.23a6.55,6.55,0,0,0,2.33.57c.54-.17,1.48.51,1.48.51s4,1.27,4.79.13-1-1.49-2.45-2.34-2.06-4.17-2.06-4.17Z"
transform="translate(-144.58 -258.21)" fill="#381e1d"/><path
d="M765.58,571.47s-5.46-1.09-4.81,12.78c0,0,1.31,10.16,3.61,10.82l3.44-.87-1.37-9.5,1.37-4.92S768.91,572.35,765.58,571.47Z"
transform="translate(-144.58 -258.21)" fill="#daa4a2" opacity="0.1"/><path
d="M766.07,571.47s-5.46-1.09-4.81,12.78c0,0,1.31,10.16,3.61,10.82l3.44-.87-1.37-9.5,1.37-4.92S769.41,572.35,766.07,571.47Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><path
d="M765.8,571.47s-5.46-1.09-4.81,12.78c0,0,1.31,10.16,3.61,10.82l3.44-.87-1.37-9.5,1.37-4.92S769.13,572.35,765.8,571.47Z"
transform="translate(-144.58 -258.21)" fill="#333"/><polygon points="620.28 337.14 620.28 336.79 622.99
336.11 623.11 336.4 620.28 337.14" opacity="0.1
"/><poly
gon points="620.49 311.05 626.17 315.97 626.33 315.86 620.59 311 620.49 311.05" opacity="0.1"/><polygon
points="627.46 335.58 627.44 335.85 628.55 335.71 628.49 335.58 627.46 335.58" opacity="0.1"/><path
d="M767.25,566.42a5,5,0,0,0,3,1.28,4.42,4.42,0,0,0,1.28-.19A3.77,3.77,0,0,1,772,567l-4.26-1.09Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><circle cx="624.91" cy="302.86" r="4.42"
fill="#fdd835"/><circle cx="625.65" cy="304.91" r="4.42" fill="#fda57d"/><path
d="M765.83,561.07s-1.66,4.34,1.85,5.67h0a2.07,2.07,0,0,0,.52-3.32Z" transform="translate(-144.58 -258.21)"
fill="#fdd835"/><circle cx="621.85" cy="299.63" r="2.4" fill="#fdd835"/><path
d="M773.81,560.1s1.53.37-1.15,1.3a3.39,3.39,0,0,0-2,1.81,2.08,2.08,0,0,1-2.88,1l-.85-.47-1.47-3.44,1.75-2,3-.38Z"
transform="translate(-144.58 -258.21)" fill="#fdd835"/><path
d="M768.61,557.35a2.4,2.4,0,0,0-2.27-2.4h.14a2.4,2.4,0,1,1,0,4.81h-.14A2.4,2.4,0,0,0,768.61,557.35Z"
transform="translate(-144.58 -258.21)" fill="#fdd835"
/><path
d="M767.58,557.35a2.4,2.4,0,0,0-2.27-2.4h.14a2.4,2.4,0,1,1,0,4.81h-.14A2.4,2.4,0,0,0,767.58,557.35Z"
transform="translate(-144.58 -258.21)" fill="#fdd835"/><ellipse cx="624.47" cy="306.35" rx="0.44" ry="0.76"
fill="#fda57d"/><g opacity="0.5"><path
d="M368.4,634.71c-1.24-.74-1.9-3.19-2.09-4.06l-1.48-19.14a68.1,68.1,0,0,0-5.34-15.36c-.05-5.37-.25-22.37-.73-24.19l-2.86-3.47a6.56,6.56,0,0,1,.47-.71h0l.73,2.06,2.63-.29-1.42-2.72a4.75,4.75,0,0,0,.89-6.44,1.17,1.17,0,0,0,0-1.48,6.08,6.08,0,0,0-1.56-1.3,5.55,5.55,0,0,0-8.1,7.57,1.21,1.21,0,0,1-.55.35,5.06,5.06,0,0,0-2.31,1.57,1,1,0,0,0,.2,1.45l.43.27a1,1,0,0,0,1.12-.07l.89-.74a.07.07,0,0,1,.1.1.87.87,0,0,0,.42,1.43h0l0,0a11.66,11.66,0,0,0-2.37,3.67c-1.19,1.45-2.28,4.39-2.2,10.29q-.13,1.61-.18,3.45l-1.37,5.67s-10.59,19.52-8,22.1c0,0,1.59.28,3.82.87l-6.34,8.4.09.08-4,3s.74,1.89,1.26,2.18.69,1.49.69,1.49,1.95,3.95,3.38,3.72.4-1.83,0-3.55c-.31-1.34.87-3.36,1.4-4.2l.14.14s7.52-5.65,10.4-8.81a21.52,21.52,0,0,1,4.31,2.46,100.39,100.39,0,0,
0,4.19-1
4h0l0,0c1.78,2.65,4.77,7.3,4.89,8.75.17,2.06.86,9.56,1.89,11.56l.74,3.89h0l-.69,5.16a6.86,6.86,0,0,0,2.44.6c.56-.17,1.55.53,1.55.53s4.2,1.33,5,.13S369.92,635.61,368.4,634.71Z"
transform="translate(-144.58 -258.21)" fill="url(#22308125-884c-4a52-9145-b5ddb7a8f7c3)"/></g><circle
cx="209.02" cy="304.93" r="5.31"/><path
d="M340.86,613.72l-6.9,9.15,2.79,2.68s9.68-7.27,10.89-9.67a1,1,0,0,0,.12-.41C347.76,613.66,340.86,613.72,340.86,613.72Z"
transform="translate(-144.58 -258.21)" fill="#7a7478"/><path
d="M353.62,604.3s5.75,8.22,5.92,10.19.82,9.15,1.81,11.06l.71,3.72h3.56l-1.42-18.4a68.09,68.09,0,0,0-6.24-17l-6.3,3.45Z"
transform="translate(-144.58 -258.21)" fill="#7a7478"/><rect x="208.41" y="315.61" width="5.04"
height="21.36" fill="#fff"/><path
d="M357.46,594.28l1.48,3.45s-.16-22.62-.71-24.7l-3.56-4.33-1.2,3.18,2.74,3.4a30.6,30.6,0,0,1,1.42,10C357.35,590.17,357.46,594.28,357.46,594.28Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><polygon points="212.88 308.95 214.74 31
2.51 212
.22 312.79 210.96 309.23 212.88 308.95"/><circle cx="210.52" cy="306.38" r="4.55" fill="#fda57d"/><path
d="M355.1,570.94a6.33,6.33,0,0,1,1.64-2.63l-4.27-1.1-1,2.36Z" transform="translate(-144.58 -258.21)"
fill="#fda57d"/><path
d="M353.18,569.14s-7.39-.55-7.89,18.29L344,592.85s-10.13,18.68-7.61,21.14c0,0,9.53,1.7,14.46,5.48a111.08,111.08,0,0,0,5.92-23.33s1.15-15.39-1.1-20.59l1.1-2.63Z"
transform="translate(-144.58 -258.21)" fill="#3ad29f"/><path
d="M357.62,594.28l1.48,3.45s-.16-22.62-.71-24.7l-3.56-4.33-1.2,3.18,2.74,3.4a30.6,30.6,0,0,1,1.42,10C357.51,590.17,357.62,594.28,357.62,594.28Z"
transform="translate(-144.58 -258.21)" fill="#3ad29f"/><path
d="M357.62,594.28l1.48,3.45s-.16-22.62-.71-24.7l-3.56-4.33-1.2,3.18,2.74,3.4a30.6,30.6,0,0,1,1.42,10C357.51,590.17,357.62,594.28,357.62,594.28Z"
transform="translate(-144.58 -258.21)" opacity="0.05"/><path
d="M349.4,596.14s-.39,5.79,3.41,7a.81.81,0,0,0,1.06-.72c.06-1-.25-3-2.06-7.1Z" transform="translate(-144.58
-258.21)" opacity="0
.1"/><pa
th d="M349.62,596s-.39,5.79,3.41,7a.81.81,0,0,0,1.06-.72c.06-1-.25-3-2.06-7.1Z" transform="translate(-144.58
-258.21)" fill="#fda57d"/><circle cx="211.56" cy="320.73" r="0.22" fill="#4d8af0"/><circle cx="211.56"
cy="328.94" r="0.22" fill="#4d8af0"/><path
d="M334.45,622.65l-4.27,3.12s.71,1.81,1.2,2.08.66,1.42.66,1.42,1.86,3.78,3.23,3.56.38-1.75,0-3.4,1.59-4.38,1.59-4.38Z"
transform="translate(-144.58 -258.21)"/><path
d="M362.14,629l-.7,5.24a6.57,6.57,0,0,0,2.34.57c.54-.17,1.48.51,1.48.51s4,1.27,4.81.13-1-1.49-2.45-2.35-2.07-4.18-2.07-4.18Z"
transform="translate(-144.58 -258.21)"/><path
d="M350.34,573s-5.48-1.1-4.82,12.82c0,0,1.31,10.19,3.61,10.84l3.45-.88-1.37-9.53,1.37-4.93S353.68,573.85,350.34,573Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><path
d="M350.83,573s-5.48-1.1-4.82,12.82c0,0,1.31,10.19,3.61,10.84l3.45-.88-1.37-9.53,1.37-4.93S354.17,573.85,350.83,573Z"
transform="translate(-144.58 -258.21)" opacity="0.1"/><path d="M350.56,573s-5.48-1.1-4.82,12.82c0,0,1
.31,10.1
9,3.61,10.84l3.45-.88-1.37-9.53,1.37-4.93S353.9,573.85,350.56,573Z" transform="translate(-144.58 -258.21)"
fill="#3ad29f"/><polygon points="205.03 338.7 205.03 338.35 207.75 337.66 207.87 337.96 205.03 338.7"
opacity="0.1"/><polygon points="205.24 312.54 210.93 317.47 211.1 317.36 205.35 312.49 205.24 312.54"
opacity="0.1"/><polygon points="206.85 312.49 210.06 311.88 212.85 315.61 211.23 316.58 206.85 312.49"
fill="#3ad29f"/><path
d="M358.74,562.06l-2.08,2.2v1.35a6.78,6.78,0,0,1-.51,2.57l-1.4,3.4a.92.92,0,0,1-1.19.5l-1.18-.47a.92.92,0,0,1-.5-1.22l.33-.75a.07.07,0,0,0-.12-.07l-.67,1a.92.92,0,0,1-1,.36l-.65-.16a.83.83,0,0,1-.4-1.37h0a.07.07,0,0,0-.09-.1l-.85.7a.92.92,0,0,1-1.08.07l-.41-.26a.92.92,0,0,1-.19-1.38,4.84,4.84,0,0,1,2.21-1.5c1-.28,1.36-2,1.48-3.51a5,5,0,0,1,3.22-4.3,4.33,4.33,0,0,1,5.07,1.46A1.12,1.12,0,0,1,358.74,562.06Z"
transform="translate(-144.58 -258.21)"/><polygon points="212.23 336.97 212.21 337.24 213.32 337.11 213.26
336.97 212.23 336.97" opacity="0.1"/><
path d="
M356.77,595.45h.41S356,606,354.93,606.21l-.09-.13S356.66,597.48,356.77,595.45Z" transform="translate(-144.58
-258.21)" opacity="0.1"/></svg>
\ No newline at end of file
diff --git a/assets/img/symbolics.png b/assets/img/symbolics.png
new file mode 100644
index 0000000..5d0c711
Binary files /dev/null and b/assets/img/symbolics.png differ
diff --git a/assets/js/issues.js b/assets/js/issues.js
new file mode 100644
index 0000000..8a015aa
--- /dev/null
+++ b/assets/js/issues.js
@@ -0,0 +1,48 @@
+function getFormatDate(date) {
+ var months = ['January', 'Feburary', 'March', 'April', 'May', 'June', 'July', 'August', 'September',
'October', 'November', 'December'];
+ var date = new Date(date);
+ date = date.getDate() + " " + months[date.getMonth()] + ", " + date.getFullYear();
+ return date;
+}
+
+function populateIssues(obj) {
+ var issues = JSON.parse(obj);
+ var i, l = issues.length;
+ var issue;
+ issues_holder.innerHTML = "";
+ for(i = 0; i < l; i++) {
+ issue = `
+ <div class="col-md-4 col-sm-6 p-2">
+ <div class="col p-3 h-100 bg-light rounded overflow-hidden shadow-sm-hover border-trans">
+ <div class="d-flex justify-content-between align-items-center p-2">
+ <h5 class="m-0 font-weight-normal">#${issues[i].iid}</h5>
+ <a class="btn btn-primary btn-sm" href="${issues[i].web_url}" data-toggle="tooltip"
title="View on Gitlab"><i class="fab fa-gitlab"></i></a>
+ </div>
+ <div class="d-flex align-items-center p-2">
+ <h6 class="card-title">${issues[i].title}</h6>
+ </div>
+ <div class="d-flex flex-column justify-content-center text-muted p-2">
+ <p class="m-0">Opened on ${getFormatDate(issues[i].created_at)}</p>
+ <p class="m-0">by <a href="${issues[i].author.web_url}">${issues[i].author.name}</a></p>
+ </div>
+ </div>
+ </div>
+ `;
+ issues_holder.innerHTML += issue;
+ }
+}
+
+function getIssues() {
+
+}
+
+var issues_holder = document.querySelector("#issues");
+issues_holder.innerHTML = "Loading...";
+var ajax = new XMLHttpRequest();
+ajax.onreadystatechange = function() {
+ if (this.readyState == 4 && this.status == 200) {
+ populateIssues(this.responseText);
+ }
+};
+ajax.open("GET", "https://gitlab.gnome.org/api/v4/projects/665/issues?state=opened", true);
+ajax.send();
\ No newline at end of file
diff --git a/blog.xml b/blog.xml
new file mode 100644
index 0000000..f53b5f7
--- /dev/null
+++ b/blog.xml
@@ -0,0 +1,597 @@
+<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
+ xmlns:content="http://purl.org/rss/1.0/modules/content/"
+ xmlns:wfw="http://wellformedweb.org/CommentAPI/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:atom="http://www.w3.org/2005/Atom"
+ xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
+ xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
+ >
+
+<channel>
+ <title>GTK Development Blog</title>
+ <atom:link href="https://blog.gtk.org/feed/" rel="self" type="application/rss+xml" />
+ <link>https://blog.gtk.org</link>
+ <description>All things GTK</description>
+ <lastBuildDate>Wed, 08 May 2019 10:49:56 +0000</lastBuildDate>
+ <language>en-US</language>
+ <sy:updatePeriod>
+ hourly </sy:updatePeriod>
+ <sy:updateFrequency>
+ 1 </sy:updateFrequency>
+ <generator>https://wordpress.org/?v=5.2.2</generator>
+ <item>
+ <title>GTK 3.96.0</title>
+ <link>https://blog.gtk.org/2019/05/08/gtk-3-96-0/</link>
+ <comments>https://blog.gtk.org/2019/05/08/gtk-3-96-0/#comments</comments>
+ <pubDate>Wed, 08 May 2019 04:20:47 +0000</pubDate>
+ <dc:creator><![CDATA[mclasen]]></dc:creator>
+ <category><![CDATA[uncategorized]]></category>
+ <category><![CDATA[announcement]]></category>
+ <category><![CDATA[development]]></category>
+ <category><![CDATA[GTK+]]></category>
+ <category><![CDATA[Release]]></category>
+
+ <guid isPermaLink="false">http://blog.gtk.org/?p=1084</guid>
+ <description><![CDATA[This week, we released GTK 3.96.0. Again, it has been a
while since the last release, so it is worth summarizing whats new in this release. There is really too much
here to cover it all, so this post will only highlight the most important changes. This release is another
milestone on our way towards … <a href="https://blog.gtk.org/2019/05/08/gtk-3-96-0/"
class="more-link">Continue reading<span class="screen-reader-text"> "GTK 3.96.0"</span></a>]]></description>
+ <content:encoded><![CDATA[<p>This week, we
released GTK 3.96.0. Again, it has been a while since the last release, so it is worth summarizing whats new
in this release. There is really too much here to cover it all, so this post will only highlight the most
important changes.</p>
+<p>This release is another milestone on our way towards GTK 4. And while there are still some unfinished
things, this release is much closer to we hope to achieve with GTK 4.</p>
+<h3>GSK</h3>
+<p>GSK has seen a number of bug fixes and new tests that are made much easier using a new debug tool,
gtk4-node-editor. It can load and display serialized render node trees, such as this one that was saved from
the GTK inspector, and compare the output of different renderers.</p>
+<p><a href="https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-20-43-31.png"><img
class="alignnone size-full wp-image-1099"
src="https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-20-43-31.png" alt="" width="1920"
height="1080" srcset="https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-20-43-31.png 1920w,
https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-20-43-31-300x169.png 300w,
https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-20-43-31-768x432.png 768w,
https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-20-43-31-1024x576.png 1024w,
https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-20-43-31-1200x675.png 1200w" sizes="(max-width:
709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></a></p>
+<p>The 3D transformation support has been brought up to the level where we can do animated transitions like
the cube spin below.</p>
+<p><a href="https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-21-15-18.png"><img
class="alignnone size-full wp-image-1102"
src="https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-21-15-18.png" alt="" width="1920"
height="1080" srcset="https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-21-15-18.png 1920w,
https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-21-15-18-300x169.png 300w,
https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-21-15-18-768x432.png 768w,
https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-21-15-18-1024x576.png 1024w,
https://blog.gtk.org/files/2019/05/Screenshot-from-2019-05-06-21-15-18-1200x675.png 1200w" sizes="(max-width:
709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /></a></p>
+<h3>GDK</h3>
+<p>The trend to move toward Wayland inspired APIs has continued, with more X11-only apis being moved to the
X11 backend or just removed. Use of child surfaces and global coordinates has been greatly reduced, but this
work remains incomplete.</p>
+<p>The refactoring of Drag-and-Drop has also continued, with the introduction of <code>GdkDrag</code> and
<code>GdkDrop</code> objects. The GTK part of this refactoring is still incomplete.</p>
+<p>Events have been simplified and are now used just for input. Other event have been replaced by signals
and properties on <code>GdkSurface</code>. In detail, expose events have been replaced by the
<code>::render</code> signal, configure events have been replaced by the <code>::size-changed</code> signal.
Map events have been replaced by the <code>:mapped</code> property, and <code>gdk_event_handler_set()</code>
has been replaced by the <code>::event</code> signal.</p>
+<p>The Wayland backend has gained support for the Settings portal for <code>GtkSettings</code>, and uses the
text-input-unstable-v3 protocol for its input method support.</p>
+<h3>GTK</h3>
+<h4>Widgets</h4>
+<p>One big change for custom widgets is the introduction of <code>GtkLayoutManager</code>, which is a new
delegate object that takes over size allocation. Layout managers can optionally use layout children for
holding layout properties. This replaces the layout-related child properties in GTK containers such as
<code>GtkBox</code> or <code>GtkGrid</code>.</p>
+<p>A number of layout managers are available:</p>
+<ul>
+<li><code>GtkBinLayout</code>, for simple single-child containers</li>
+<li><code>GtkBoxLayout</code>, for children that are arranged linearly</li>
+<li><code>GtkGridLayout</code>, for children that are arranged in a grid</li>
+<li><code>GtkFixedLayout</code>, for freely positioned and transformed children</li>
+<li><code>GtkCustomLayout</code>, as a quick way to turn traditional <code>measure</code> and
<code>size_allocate</code> vfuncs into a layout manager</li>
+</ul>
+<p>More layout manager implementations will appear in the future. Most prominently, work is underway on a
constraints-based layout manager.</p>
+<p><code>GtkAssistant</code>, <code>GtkStack</code> and <code>GtkNotebook</code> have publicly<br />
+accessible page objects for their children. The page objects<br />
+are also exposed via a list model. They non-layout related child properties of these containers have been
converted into regular properties on these page objects.</p>
+<p>Since all existing child properties have been converted to regular properties, moved to layout properties
or moved to such page objects, support for child properties has been dropped from
<code>GtkContainer</code>.</p>
+<p>The core <code>GtkEntry</code> functionality has been moved into a new <code>GtkText</code> widget, which
also implements an expanded <code>GtkEditable</code> interface. All existing entry subclasses in GTK have
been turned into <code>GtkEditable</code> implementations wrapping a <code>GtkText</code> widget. This also
includes a new <code>GtkPasswordEntry</code>.</p>
+<h4>Other Changes</h4>
+<p>GTK widgets can transform their children using projective linear<br />
+transformations. This functionality is available in CSS and<br />
+as a <code>GskTransform</code> argument to <code>gtk_widget_allocate</code>. <code>GtkFixed</code> is<br />
+the first container that exposes this functionality. For further examples,<br />
+see the swing transition of <code>GtkRevealer</code>, the rotate transitions<br />
+of <code>GtkStack</code> or the Fixed Layout example in gtk4-demo.</p>
+<p>A number of list models have been introduced, for internal use<br />
+and as public API: <code>GtkMapListModel</code>, <code>GtkSliceListModel</code>,
<code>GtkSortListModel</code>, <code>GtkSelectionModel</code>, <code>GtkSingleSelection</code>. These will
become more widely used when we introduce a list model-based <code>GtkListView</code>.</p>
+<p><code>GtkBuilder</code> can specify object-valued properties inline, instead of referring to them by ID,
and the <code>simplify</code> command of gtk4-builder-tool has gained an option to automatically convert GTK
3 UI definition files to GTK 4.</p>
+<h3>Coming soon</h3>
+<p>For more information on the things that are still still coming for GTK 4, find us on <a
href="https://discourse.gnome.org">Discourse</a>, IRC, or look <a
href="https://gitlab.gnome.org/GNOME/gtk/milestones/1">here</a>.</p>
+]]></content:encoded>
+
<wfw:commentRss>https://blog.gtk.org/2019/05/08/gtk-3-96-0/feed/</wfw:commentRss>
+ <slash:comments>3</slash:comments>
+ </item>
+ <item>
+ <title>Layout managers in GTK 4</title>
+ <link>https://blog.gtk.org/2019/03/27/layout-managers-in-gtk-4/</link>
+
<comments>https://blog.gtk.org/2019/03/27/layout-managers-in-gtk-4/#comments</comments>
+ <pubDate>Wed, 27 Mar 2019 16:53:25 +0000</pubDate>
+ <dc:creator><![CDATA[Emmanuele Bassi]]></dc:creator>
+ <category><![CDATA[uncategorized]]></category>
+ <category><![CDATA[development]]></category>
+
+ <guid isPermaLink="false">http://blog.gtk.org/?p=1048</guid>
+ <description><![CDATA[Containers and layout policies have been a staple of
GTK’s design since the very beginning. If you wanted your widget to lay out its children according to a
specific policy, you had to implement GtkContainer for handling the addition, removal, and iteration of the
child widgets, and then you had to implement the size negotiation … <a
href="https://blog.gtk.org/2019/03/27/layout-managers-in-gtk-4/" class="more-link">Continue reading<span
class="screen-reader-text"> "Layout managers in GTK 4"</span></a>]]></description>
+ <content:encoded><![CDATA[<p>Containers and
layout policies have been a staple of GTK’s design since the very beginning. If you wanted your widget
to lay out its children according to a specific policy, you had to implement <code>GtkContainer</code> for
handling the addition, removal, and iteration of the child widgets, and then you had to implement the size
negotiation virtual functions from <code>GtkWidget</code> to measure, position, and size each child.</p>
+<p>One of the major themes of the GTK 4 development cycle is to delegate more functionality to ancillary
objects instead of encoding it into the base classes provided by GTK. For instance, we moved the event
handling from signal handlers described by <code>GtkWidget</code> into event controllers, and rendering is
delegated to <code>GtkSnapshot</code> objects. Another step in that direction is decoupling the layout
mechanism from <code>GtkWidget</code> itself to an ancillary type, <code>GtkLayoutManager</code>.</p>
+<h2>Layout Managers</h2>
+<p>A layout manager is the object responsible for measuring and sizing a widget and its children. Each
<code>GtkWidget</code> owns a <code>GtkLayoutManager</code>, and uses it in place of the
<code>measure()</code> and <code>allocate()</code> virtual functions—which are going away. The gist of the
change: instead of subclassing a <code>GtkWidget</code> to implement its layout policy, you subclass
<code>GtkLayoutManager</code>, and then assign the layout manager to a widget.</p>
+<p>Just like in the old <code>GtkWidget</code> code, you will need to override a virtual function to measure
the layout, called <code>measure()</code>, which replaces the <code>get_preferred_*</code> family of virtual
functions of GTK 3:</p>
+<pre>static void
+layout_measure (GtkLayoutManager *layout_manager,
+ GtkWidget *widget,
+ GtkOrientation orientation,
+ int for_size,
+ int *minimum,
+ int *natural,
+ int *minimum_baseline,
+ int *natural_baseline)</pre>
+<p>After measuring, you need to assign the size to the layout; this happens in the <code>allocate()</code>
virtual function, which replaces the venerable <code>size_allocate()</code> virtual function of previous GTK
major versions:</p>
+<pre>static void
+layout_allocate (GtkLayoutManager *layout_manager,
+ GtkWidget *widget,
+ int width,
+ int height,
+ int baseline)</pre>
+<p>On the more esoteric side, you can also override the <code>get_request_mode()</code> virtual function,
which allows you to declare whether the layout manager requests a constant size, or if one of its sizes
depend on the opposite one, like height-for-width or width-for-height:</p>
+<pre>static GtkSizeRequestMode
+layout_get_request_mode (GtkLayoutManager *layout_manager,
+ GtkWidget *widget)</pre>
+<p>As you may notice, each virtual function gets passed the layout manager instance, as well as the widget
that is using the layout manager.</p>
+<p>Of course, this has bigger implications on various aspects of how GTK widgets work, the most obvious
being that all the complexity for the layout code can now stay confined into its own object, typically not
derivable, whereas the widgets can stay derivable and become simpler.</p>
+<p>Another feature of this work is that you can change layout managers at run time, if you want to change
the layout policy of a container; you can also have a per-widget layout policy, without adding more
complexity to the widget code.</p>
+<p>Finally, layout managers allow us to get rid of one of the special cases of GTK, namely: container child
properties.</p>
+<h2>Child properties</h2>
+<p>Deep in the guts of <code>GtkContainer</code> sits what’s essentially a copy of the GObject
property-related code, and whose only job is to implement “child” properties for types deriving
from <code>GtkContainer</code>. These container/child properties exist only as long as a child is parented to
a specific class of container, and are used for a variety of reasons—but, generally, to control layout
options, like the packing direction in boxes and box-like containers; the fixed positioning inside
<code>GtkFixed</code>; or the expand/fill rules for notebook tab widgets.</p>
+<p>Child properties are hard to use, as they require ad hoc API instead of the usual <code>GObject</code>
one, and thus require special casing in <code>GtkBuilder</code>, gtk-doc, and language bindings. Child
properties are also attached to the actual direct child of the container, so if a widget interposes a
child—like, say, <code>GtkScrolledWindow</code> or <code>GtkListBox</code> do—then you need to keep a
reference to <em>that</em> child around in order to change the layout that applies <em>to your own
widget</em>.</p>
+<p>In GTK’s master branch <a href="https://gitlab.gnome.org/GNOME/gtk/issues/1096">we got rid of most
of them</a>—either by simply removing them when there’s actual widget API that implements the same
functionality, or by creating ancillary GObject types and moving child properties to those types. The end
goal is to remove all of them, and the relative API from <code>GtkContainer</code>, by the time GTK 4 rolls
out. For layout-related properties, <code>GtkLayoutManager</code> provides its own API so that objects are
created and destroyed automatically once a child is added to, or removed from, a widget using a layout
manager, respectively. The object created is introspectable, and does not require special casing when it
comes to documentation or bindings.</p>
+<p>You start from deriving your own type from the <code>GtkLayoutChild</code> class, and adding properties
just like you would for any other <code>GObject</code> type. Then, you override
<code>GtkLayoutManager</code>‘s <code>create_layout_child()</code> virtual function:</p>
+<pre>static GtkLayoutChild *
+create_layout_child (GtkLayoutManager *manager,
+ GtkWidget *container,
+ GtkWidget *child)
+{
+ // The simplest implementation
+ return g_object_new (your_layout_child_get_type (),
+ "layout-manager", manager,
+ "child-widget", child,
+ "some-property", some_property_initial_state,
+ NULL);
+}</pre>
+<p>After that, you can access your layout child object as long as a widget is still a child of the container
using the layout manager; if the child is removed from its parent, or the container changes the layout
manager, the layout child is automatically collected.</p>
+<h2>New layout managers</h2>
+<p>Of course, just having the <code>GtkLayoutManager</code> class in GTK would not do us any good. GTK 4
introduces various layout managers for application and widget developers:</p>
+<ul>
+<li><code>GtkBinLayout</code> implements the layout policy of <code>GtkBin</code>, with the added twist that
it supports multiple children stacked on top of each other, similarly to how <code>GtkOverlay</code> works.
You can use each widget’s alignment and expansion properties to control their location within the
allocated area, and the <code>GtkBinLayout</code> will always ask for as much space as it’s needed to
allocate its largest child.</li>
+<li><code>GtkBoxLayout</code> is a straight port of the layout policy implemented by <code>GtkBox</code>;
<code>GtkBox</code> itself has been ported to use <code>GtkBoxLayout</code> internally.</li>
+<li><code>GtkFixedLayout</code> is a port of the fixed layout positioning policy of <code>GtkFixed</code>
and <code>GtkLayout</code>, with the added functionality of letting you define a generic transformation,
instead of a pure 2D translation for each child; <code>GtkFixed</code> has been modified to use
<code>GtkFixedLayout</code> and use a 2D translation—and <code>GtkLayout</code> has been merged into
<code>GtkFixed</code>, as its only distinguishing feature was the implementation of the
<code>GtkScrollable</code> interface.</li>
+<li><code>GtkCustomLayout</code> is a convenience layout manager that takes functions that used to be
GtkWidget virtual function overrides, and it’s mostly meant to be a bridge while porting existing
widgets towards the layout manager future.</li>
+</ul>
+<p>We are still in the process of implementing <code>GtkGridLayout</code> and make <code>GtkGrid</code> use
it internally, following the same pattern as <code>GtkBoxLayout</code> and <code>GtkBox</code>. Other widgets
inside GTK will get their own layout managers along the way, but in the meantime they can use
<code>GtkCustomLayout</code>.</p>
+<p>The final step is to implement a constraint-based layout manager, which would let us create complex,
responsive user interfaces without resorting to packing widgets into nested hierarchies. Constraint-based
layouts deserve their own blog post, so stay tuned!</p>
+]]></content:encoded>
+
<wfw:commentRss>https://blog.gtk.org/2019/03/27/layout-managers-in-gtk-4/feed/</wfw:commentRss>
+ <slash:comments>3</slash:comments>
+ </item>
+ <item>
+ <title>Entries in GTK 4</title>
+ <link>https://blog.gtk.org/2019/03/15/entries-in-gtk-4/</link>
+
<comments>https://blog.gtk.org/2019/03/15/entries-in-gtk-4/#comments</comments>
+ <pubDate>Fri, 15 Mar 2019 20:43:40 +0000</pubDate>
+ <dc:creator><![CDATA[mclasen]]></dc:creator>
+ <category><![CDATA[uncategorized]]></category>
+
+ <guid isPermaLink="false">http://blog.gtk.org/?p=1023</guid>
+ <description><![CDATA[One of the larger refactorings that recently landed in
GTK master is re-doing the entry hierarchy. This post is summarizing what has changed, and why we think
things are better this way. Entries in GTK 3 Lets start by looking at how things are in GTK 3. GtkEntry is
the basic class here. It implements … <a href="https://blog.gtk.org/2019/03/15/entries-in-gtk-4/"
class="more-link">Continue reading<span class="screen-reader-text"> "Entries in GTK
4"</span></a>]]></description>
+ <content:encoded><![CDATA[<p>One of the
larger refactorings that recently landed in GTK master is re-doing the entry hierarchy. This post is
summarizing what has changed, and why we think things are better this way.</p>
+<h2>Entries in GTK 3</h2>
+<p>Lets start by looking at how things are in GTK 3.</p>
+<p>GtkEntry is the basic class here. It implements the GtkEditable interface. GtkSpinButton is a subclass of
GtkEntry. Over the years, more things were added. GtkEntry gained support for entry completion, and for
embedding icons, and for displaying progress. And we added another subclass, GtkSearchEntry.</p>
+<p>Some problems with this approach are immediately apparent. gtkentry.c is more than 11100 lines of code.
It it not only very hard to add more features to this big codebase, it is also hard to subclass it –
and that is the only way to create your own entries, since all the single-line text editing functionality is
inside GtkEntry.</p>
+<p>The GtkEditable interface is really old – it has been around since before GTK 2. Unfortunately, it
has not really been successful as an interface – GtkEntry is the only implementation, and it uses the
interface functions internally in a confusing way.</p>
+<h2>Entries in GTK 4</h2>
+<p>Now lets look at how things are looking in GTK master.</p>
+<p>The first thing we’ve done is to move the core text editing functionality of GtkEntry into a new
widget called GtkText. This is basically an entry minus all the extras, like icons, completion and
progress.</p>
+<p>We’ve made the GtkEditable interface more useful, by adding some more common functionality (like
width-chars and max-width-chars) to it, and made GtkText implement it. We also added helper APIs to make it
easy to delegate a GtkEditable implementation to another object.</p>
+<p>The ‘complex’ entry widgets (GtkEntry, GtkSpinButton, GtkSearchEntry) are now all composite
widgets, which contain a GtkText child, and delegate their GtkEditable implementation to this child.</p>
+<p>Finally, we added a new GtkPasswordEntry widget, which takes over the corresponding functionality that
GtkEntry used to have, such as showing a Caps Lock warning</p>
+<p><a href="https://blog.gtk.org/files/2019/03/passwordentry2.png"><img class="aligncenter"
src="https://blog.gtk.org/files/2019/03/passwordentry2.png" alt="" width="287" height="200" /></a></p>
+<p>or letting the user peek at the content.</p>
+<p><a href="https://blog.gtk.org/files/2019/03/passwordentry1.png"><img class="aligncenter"
src="https://blog.gtk.org/files/2019/03/passwordentry1.png" alt="" width="288" height="201" /></a></p>
+<h2>Why is this better?</h2>
+<p>One of the main goals of this refactoring was to make it easier to create custom entry widgets outside
GTK.</p>
+<p>In the past, this required subclassing GtkEntry, and navigating a complex maze of vfuncs to override.
Now, you can just add a GtkText widget, delegate your GtkEditable implementation to it, and have a functional
entry widget with very little effort.</p>
+<p>And you have a lot of flexibility in adding fancy things around the GtkText component. As an example,
we’ve added a <a
href="https://gitlab.gnome.org/GNOME/gtk/blob/master/demos/gtk-demo/demotaggedentry.c">tagged entry</a> to
gtk4-demo that can now be implemented easily outside GTK itself.</p>
+<p><a href="https://blog.gtk.org/files/2019/03/taggedentry.png"><img class="size-full wp-image-1029
aligncenter" src="https://blog.gtk.org/files/2019/03/taggedentry.png" alt="" width="314" height="207"
srcset="https://blog.gtk.org/files/2019/03/taggedentry.png 314w,
https://blog.gtk.org/files/2019/03/taggedentry-300x198.png 300w" sizes="(max-width: 314px) 85vw, 314px"
/></a></p>
+<h2>Will this affect you when porting from GTK 3?</h2>
+<p>There are a few possible gotcha’s to keep in mind while porting code to this new style of doing
entries.</p>
+<p>GtkSearchEntry and GtkSpinButton are no longer derived from GtkEntry. If you see runtime warnings about
casting from one of these classes to GtkEntry, you most likely need to switch to using GtkEditable APIs.</p>
+<p>GtkEntry and other complex entry widgets are no longer focusable – the focus goes to the contained
GtkText instead. But gtk_widget_grab_focus() will still work, and move the focus the right place. It is
unlikely that you are affected by this.</p>
+<p>The Caps Lock warning functionality has been removed from GtkEntry. If you were using a GtkEntry with
visibility==FALSE for passwords, you should just switch to GtkPasswordEntry.</p>
+<p>If you are using a GtkEntry for basic editing functionality and don’t need any of the extra entry
functionality, you should consider using a GtkText instead.</p>
+]]></content:encoded>
+
<wfw:commentRss>https://blog.gtk.org/2019/03/15/entries-in-gtk-4/feed/</wfw:commentRss>
+ <slash:comments>4</slash:comments>
+ </item>
+ <item>
+ <title>Testing Discourse for GTK</title>
+ <link>https://blog.gtk.org/2019/03/05/testing-discourse-for-gtk/</link>
+
<comments>https://blog.gtk.org/2019/03/05/testing-discourse-for-gtk/#comments</comments>
+ <pubDate>Tue, 05 Mar 2019 15:16:11 +0000</pubDate>
+ <dc:creator><![CDATA[Emmanuele Bassi]]></dc:creator>
+ <category><![CDATA[uncategorized]]></category>
+
+ <guid isPermaLink="false">http://blog.gtk.org/?p=1008</guid>
+ <description><![CDATA[For the past 20 years or so, GTK used IRC and mailing
lists for discussions related to the project. Over the years, use of email for communication has declined,
and the overhead of maintaining the infrastructure has increased; sending email to hundreds or thousands of
people has become increasingly indistinguishable from spam, in the eyes … <a
href="https://blog.gtk.org/2019/03/05/testing-discourse-for-gtk/" class="more-link">Continue reading<span
class="screen-reader-text"> "Testing Discourse for GTK"</span></a>]]></description>
+ <content:encoded><![CDATA[<p>For the past 20
years or so, GTK used IRC and mailing lists for discussions related to the project. Over the years, use of
email for communication has declined, and the overhead of maintaining the infrastructure has increased;
sending email to hundreds or thousands of people has become increasingly indistinguishable from spam, in the
eyes of service providers, and GNOME had to try and ask for exceptions—which are not easy to get, and are
quite easy to be revoked. On top of that, the infrastructure in use for managing mailing lists is quite old
and crumbly, and it’s unnecessarily split into various sub-categories that make following discussions
harder than necessary.</p>
+<p>After discussions among the GTK team, with the GNOME infrastructure maintainers, and with the GTK
community at large, we decided to start a trial run of <a href="https://www.discourse.org/">Discourse</a> as
a replacement for mailing lists, first and foremost, and as a way to provide an official location for the GTK
community to discuss the development of, and with, GTK—as well as the rest of the core GNOME platform: GLib,
Pango, GdkPixbuf, etc.</p>
+<p>You can find the Discourse instance on <a href="https://discourse.gnome.org">discourse.gnome.org</a>. On
it, you can use the <a href="https://discourse.gnome.org/c/platform">Platform</a> and <a
href="https://discourse.gnome.org/c/platform/core">Core</a> categories for discussions about the core GNOME
platform; you can use the appropriate <a href="https://discourse.gnome.org/tags/">tags</a> for your topics,
and subscribe to the ones you’re interested in.</p>
+<p>We’re planning to move some of the pages on the wiki to Discourse as well, especially the ones
where we expect feedback from the community.</p>
+<p>We’re still <a href="https://gitlab.gnome.org/Infrastructure/Infrastructure/issues/109">working on
how to migrate users</a> of the various mailing lists related to GTK, in order to close the lists and have a
single venue instead of splitting the community; in the meantime, if you’re subscribed to one or more
of these lists:</p>
+<ul>
+<li>gtk-devel-list</li>
+<li>gtk-app-devel-list</li>
+<li>gtk-list</li>
+<li>gtk-i18n-list</li>
+</ul>
+<p>then you may want to have a look at Discourse, and join the discussions there.</p>
+]]></content:encoded>
+
<wfw:commentRss>https://blog.gtk.org/2019/03/05/testing-discourse-for-gtk/feed/</wfw:commentRss>
+ <slash:comments>2</slash:comments>
+ </item>
+ <item>
+ <title>Report from the GTK hackfest in Brussels</title>
+ <link>https://blog.gtk.org/2019/02/08/report-from-the-gtk-hackfest-in-brussels/</link>
+ <pubDate>Fri, 08 Feb 2019 14:18:14 +0000</pubDate>
+ <dc:creator><![CDATA[Emmanuele Bassi]]></dc:creator>
+ <category><![CDATA[uncategorized]]></category>
+
+ <guid isPermaLink="false">http://blog.gtk.org/?p=993</guid>
+ <description><![CDATA[Thanks to the GNOME Foundation, various GTK developers
were able to meet in Brussels right after FOSDEM, for one of our yearly hackfests. The main topics of the
hackfest were: recap the work that landed into the master branch in the past 6-12 months, in order to have
everyone on the same page discuss the … <a
href="https://blog.gtk.org/2019/02/08/report-from-the-gtk-hackfest-in-brussels/" class="more-link">Continue
reading<span class="screen-reader-text"> "Report from the GTK hackfest in
Brussels"</span></a>]]></description>
+ <content:encoded><![CDATA[<p>Thanks to the <a
href="https://www.gnome.org/foundation/">GNOME Foundation</a>, various GTK developers were able to meet in
Brussels right after <a href="https://fosdem.org/2019/">FOSDEM</a>, for one of our <a
href="https://wiki.gnome.org/Hackfests/GTK2019">yearly hackfests</a>.</p>
+<p>The main topics of the hackfest were:</p>
+<ul>
+<li>recap the work that landed into the master branch in the past 6-12 months, in order to have everyone on
the same page</li>
+<li>discuss the features still in flight in separate branches, assess their state of completion, and
identify blockers</li>
+<li>figure out what are the blockers for the first release of GTK 4.0</li>
+</ul>
+<p>Hackfests allow us to have this kind of discussions with a large bandwidth at our disposal, compared to
online communication channels, so they are very important for the project.</p>
+<p>You can see the <a href="https://wiki.gnome.org/Hackfests/GTK2019/Agenda">full agenda on the wiki</a>,
and we’ll make sure to write articles on the biggest items on it.</p>
+<p>The largest items of the discussion were the introduction of new list models and list/grid view widgets;
a unified key handling API; the decoupling of layout management policies from containers, and the
introduction of constraint layout management; the possibility of merging widgets from libhandy, to allow for
writing applications responsive to form factor changes; the switch to a purely declarative menu description
API, and the removal of public menu widgets; adding 2D and 3D transformations to <code>GtkWidget</code>;
implementing an animation API that applications can consume.</p>
+<ul>
+<li><strong>list models and list/grid widgets</strong> — we’d really like to retire
<code>GtkTreeView</code> and <code>GtkIconView</code>, but the existing replacements, <code>GtkListBox</code>
and <code>GtkFlowBox</code>, are not performant enough when scaling to very large and dynamic data sets. We
need better data storage types, that can be composed to perform operations such as mapping, filtering, and
sorting, but can also avoid iterating over all the elements when sizing and drawing widgets. Benjamin Otte
already <a href="https://gnome.pages.gitlab.gnome.org/gtk/gtk/Lists.html">added various models</a> to GTK,
and is working on a list and a grid view widgets that can efficiently display their contents. Benjamin and
other GNOME application developers are in the process of identifying various stakeholders for a separate
hackfest specifically for gathering more requirements and getting feedback on the new API.</li>
+<li><strong>unified key handling API</strong> — now that we moved all our pointer and touch input handling
away from events and towards gestures, we want to do the same for key handling, like key bindings, mnemonics,
and accelerators. The overall design is based on triggering actions, and allow introspection of all the
“shortcuts” currently available to the GTK inspector, for ease of debugging. There is <a
href="https://gitlab.gnome.org/GNOME/gtk/tree/wip/otte/shortcut">a development branch</a> already
available.</li>
+<li><strong>layout managers</strong> — in GTK 3, layout is imposed by containers on their children; we want
to be able to decouple that from widgets and move it into a separate delegate objects hierarchy. Layout
managers allow us to reduce the complexity of writing new widgets; they keep the layout code in a separate,
non-derivable type; and they allow us to simplify the toolkit internals to the point that we might even make
<code>GtkWidget</code> and instantiable type in the future. Layout managers are the first step towards adding
constraint-based layout management to GTK, which do away with nesting boxes to create complex UIs. There is
<a href="https://gitlab.gnome.org/GNOME/gtk/tree/wip/layout-manager">a development branch</a> already
available. For more information on constraint layouts, you can see the <a
href="https://ebassi.github.io/emeus/">Emeus experimental library</a> for GTK 3.</li>
+<li><strong>merging widgets from libhandy</strong> — Adrien Plazas gave <a
href="http://bytesgnomeschozo.blogspot.com/2019/02/fosdem-and-gtk-hackfest-2019.html">an overview</a> of
what’s currently provided by <a href="https://gitlab.gnome.org/Community/Purism/libhandy">libhandy</a>,
and what would be useful to have straight from GTK4 in the future. We discussed reactive layouts, and the
ability express sizing with percentages, as well as possibly using constraints to get similar results.</li>
+<li><strong>declarative menus</strong> — GTK has iterated over different menus API over the years; from
building menus out of widgets, to <code>GtkUIManager</code>, to <code>GtkBuilder</code>, to
<code>GMenu</code>; we also moved to declaring the behaviour of pop up menus, in order to have the windowing
system display them more accurately without exposing global coordinates. There’s a lot of overlap, but
no clear winner, mostly because we still allow using widgets to build application menus and context menus.
Fully switching to declarative style menus, adding new API to make them more expressive, and making GtkMenu
and friends private implementations for the toolkit, would allow us to get things like being able to inspect
all menus, even out of process; menus manipulable by plugin systems without necessarily creating widgets and
keeping track of them; avoiding positioning bugs. There is <a
href="https://wiki.gnome.org/Projects/GTK/Menus">a full strawman proposal</a>
availabl
e on the wiki, and Matthias Clasen is working on switching context menus to <code>GMenu</code> in <a
href="https://gitlab.gnome.org/GNOME/gtk/tree/wip/matthiasc/context-menu">a development branch</a>.</li>
+<li><strong>widget transformations</strong> — Sadly, Timm Bädert couldn’t make it to the hackfest, but
we’ve been reviewing his <a
href="https://gitlab.gnome.org/GNOME/gtk/tree/wip/baedert/transforms6">development branch</a> that adds 2D
and 3D transformations to GTK widgets, and we’re very excited about it.</li>
+<li><strong>animations</strong> — one last thing we’d like to land for GTK4 is an animation framework
for GTK widgets to replace the current generic “frame tick callback”. The model for it is the <a
href="https://developer.gnome.org/clutter/stable/ClutterActor.html#clutter-actor-animation">Clutter explicit
animation API</a>, which in turn was based on Core Animation and CSS3 transitions. This work is still in the
design phase, but you can expect development branches for it to land soon.</li>
+</ul>
+<p>Aside from the big topics, we also discussed various smaller ones:</p>
+<ul>
+<li>improving performance and memory use; we want to expose the SysProf counters during the frame clock
phases, so we can easily identify problems.</li>
+<li>improving the test suite, especially when it comes to reporting failures; right now, we have to go
through the CI failure log, but we’d like to publish proper reports using the GitLab CI
infrastructure</li>
+<li>replacing child properties with real <code>GObject</code> properties on ancillary objects, especially
for layout managers; would make documentation, introspection, and usage clearer.</li>
+<li>finishing the drag and drop rework, to get a more modern API.</li>
+<li>adding a top-level interface for “window-like” objects—such as windows, dialogs, popovers,
menus/popups—useful for establishing common behaviour, and removing hacks and complexity in
<code>GtkWindow</code>.</li>
+</ul>
+<p>And, finally, yes: <a
href="https://mail.gnome.org/archives/gtk-devel-list/2019-February/msg00000.html">we did remove the
“plus” from GTK</a>. <img src="https://blog.gtk.org/wp-includes/images/smilies/face-wink.png"
alt=";-)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
+]]></content:encoded>
+ </item>
+ <item>
+ <title>Theme changes, revisited</title>
+ <link>https://blog.gtk.org/2019/01/21/theme-changes-revisited/</link>
+
<comments>https://blog.gtk.org/2019/01/21/theme-changes-revisited/#comments</comments>
+ <pubDate>Mon, 21 Jan 2019 16:21:00 +0000</pubDate>
+ <dc:creator><![CDATA[mclasen]]></dc:creator>
+ <category><![CDATA[uncategorized]]></category>
+
+ <guid isPermaLink="false">http://blog.gtk.org/?p=986</guid>
+ <description><![CDATA[A quick update on last weeks post about theme changes:
We’ve made a 3.24.4 release, to fix up a few oversights in 3.24.3. This release does not include the
new theme yet, we will push that to the next release. We’ve also made another NewAdwaita tarball, which
includes refinements based on some of the suggestions … <a
href="https://blog.gtk.org/2019/01/21/theme-changes-revisited/" class="more-link">Continue reading<span
class="screen-reader-text"> "Theme changes, revisited"</span></a>]]></description>
+ <content:encoded><![CDATA[<p>A quick update
on last weeks <a href="http://blog.gtk.org/2019/01/14/theme-changes-in-gtk-3/">post</a> about theme
changes:</p>
+<p>We’ve made a 3.24.4 <a
href="https://download.gnome.org/sources/gtk+/3.24/gtk+-3.24.4.tar.xz">release</a>, to fix up a few
oversights in 3.24.3. This release does <em>not</em> include the new theme yet, we will push that to the next
release.</p>
+<p>We’ve also made another <a
href="https://download.gnome.org/misc/testing/Adwaita/NewAdwaita-2.tar.xz">NewAdwaita</a> tarball, which
includes refinements based on some of the suggestions we received since last week.</p>
+<p>Try it out, and tell us about it!</p>
+]]></content:encoded>
+
<wfw:commentRss>https://blog.gtk.org/2019/01/21/theme-changes-revisited/feed/</wfw:commentRss>
+ <slash:comments>12</slash:comments>
+ </item>
+ <item>
+ <title>Theme changes in GTK 3</title>
+ <link>https://blog.gtk.org/2019/01/14/theme-changes-in-gtk-3/</link>
+
<comments>https://blog.gtk.org/2019/01/14/theme-changes-in-gtk-3/#comments</comments>
+ <pubDate>Mon, 14 Jan 2019 19:20:40 +0000</pubDate>
+ <dc:creator><![CDATA[mclasen]]></dc:creator>
+ <category><![CDATA[uncategorized]]></category>
+
+ <guid isPermaLink="false">http://blog.gtk.org/?p=926</guid>
+ <description><![CDATA[Adwaita has been the default GTK+ theme for quite a
while now (on all platforms). It has served us well, but Adwaita hasn’t seen major updates in some
time, and there is a desire to give it a refresh. Updating Adwaita is a challenge, since most GTK
applications are using the stable 3.x series, and … <a
href="https://blog.gtk.org/2019/01/14/theme-changes-in-gtk-3/" class="more-link">Continue reading<span
class="screen-reader-text"> "Theme changes in GTK 3"</span></a>]]></description>
+ <content:encoded><![CDATA[<p>Adwaita has been
the default GTK+ theme for quite <a
href="https://blogs.gnome.org/mclasen/2014/06/13/a-new-default-theme-for-gtk/">a while</a> now (on all
platforms). It has served us well, but Adwaita hasn’t seen major updates in some time, and there is a
desire to give it a refresh.</p>
+<p>Updating Adwaita is a challenge, since most GTK applications are using the stable 3.x series, and some of
them include Adwaita-compatible theming for their own custom widgets. Given the stable nature of this release
series, we don’t want to cause theme compatibility issues for applications. At the same time, 3.x is
the main GTK version in use today, and we want to ensure that GTK applications don’t feel stale or old
fashioned.</p>
+<h2>A trial</h2>
+<p>A number of approaches to this problem have been considered and discussed. Out of these, a tentative plan
has been put forward to trial a limited set of theme changes, with the possibility of including them in a
future GTK 3 release.</p>
+<p>Our hope is that, due to the limited nature of the theme changes, they shouldn’t cause issues for
applications. However, we don’t want to put our faith in hope alone. Therefore, the next three weeks
are being designated as a testing and consultation period, and if things go well, we hope to merge the theme
into the GTK 3.24.4 release.</p>
+<p>It should be emphasised that these changes are confined to Adwaita itself. GTK’s CSS selectors and
classes have not been changed since GTK 3.22, and the changes in Adwaita won’t impact other GTK themes.</p>
+<p>The Adwaita updated theme is being made available as a separate tarball in parallel with the GTK 3.24.3
release, and can be downloaded <a href="https://download.gnome.org/misc/testing/Adwaita">here</a>. GTK
application developers are invited to try 3.24.3 along with the new version of Adwaita, and report any issues
that they encounter. The GTK team and Adwaita authors will also be conducting their own tests. Details of how
to test the new theme in various ways are described <a
href="https://download.gnome.org/misc/testing/Adwaita/README">here</a>.</p>
+<p>We are hoping to strike a balance between GTK’s stability promises on the one hand, and the desire
to provide up-to-date applications on the other. It is a delicate balance to get right and we are keen to
engage with GTK users as part of this process!</p>
+<h2>Theme changes</h2>
+<p>The rest of this post summarises which changes are have been made to the theme. This will hopefully
demonstrate the limited extent of these changes. It will also help developers know what to look for when
testing.</p>
+<h3>Colors</h3>
+<p>Many of the Adwaita colors have been very slightly tweaked. The new colors are more vivid than the
previous versions, and so give Adwaita more energy and vibrancy. The new colors also form part of a more
extensive palette, which is being used for application icons. These colours can also be used in custom
application styling.</p>
+<p><a href="https://blog.gtk.org/files/2019/01/color-palette.png"><img class="size-full wp-image-968
aligncenter" src="https://blog.gtk.org/files/2019/01/color-palette.png" alt="" width="639" height="504"
srcset="https://blog.gtk.org/files/2019/01/color-palette.png 639w,
https://blog.gtk.org/files/2019/01/color-palette-300x237.png 300w" sizes="(max-width: 709px) 85vw,
(max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></a></p>
+<p>The color changes are subtle, so any compatibility issues between the new and the old versions should not
be serious. Blue is still blue (just a slightly different shade!) Red is still red. Visually, the dark and
light versions of the theme remain largely the same.</p>
+<p>Adwaita’s dark variant, showing the slight color changes between old (left) and new (right).</p>
+<p><a href="https://blog.gtk.org/files/2019/01/colors.png"><img class="aligncenter wp-image-944 size-full"
src="https://blog.gtk.org/files/2019/01/colors.png" alt="" width="1060" height="400"
srcset="https://blog.gtk.org/files/2019/01/colors.png 1060w,
https://blog.gtk.org/files/2019/01/colors-300x113.png 300w,
https://blog.gtk.org/files/2019/01/colors-768x290.png 768w,
https://blog.gtk.org/files/2019/01/colors-1024x386.png 1024w" sizes="(max-width: 709px) 85vw, (max-width:
909px) 67vw, (max-width: 1362px) 62vw, 840px" /></a>Note that the red of the button has been toned down a bit
in the dark theme.</p>
+<h3>Header bars and buttons</h3>
+<p>Most widgets have not been specifically changed in the updated version of Adwaita. However, two places
where there are widget-specific changes are header bars and buttons. In both cases, an effort has been made
to be lighter and more elegant.</p>
+<p>Buttons have had their solid borders replaced with shadows. Their background is also flatter and their
corners are more rounded. Their shape has also been changed very slightly.</p>
+<p>Header bars have been updated to complement the button changes. This has primarily been done by darkening
their background, in order to give buttons sufficient contrast. The contrast between header bars’ focused and
unfocused states has also been increased. This makes it easier for users to identify the focused window.</p>
+<p>At first glance, these changes are some of the most significant, but they are achieved with some quite
minor code changes.</p>
+<p>The header bar in GNOME’s Calendar app (old version on top, new version on the bottom):</p>
+<p><a href="https://blog.gtk.org/files/2019/01/headerbars.png"><img class="aligncenter wp-image-953
size-full" src="https://blog.gtk.org/files/2019/01/headerbars.png" alt="" width="940" height="400"
srcset="https://blog.gtk.org/files/2019/01/headerbars.png 940w,
https://blog.gtk.org/files/2019/01/headerbars-300x128.png 300w,
https://blog.gtk.org/files/2019/01/headerbars-768x327.png 768w" sizes="(max-width: 709px) 85vw, (max-width:
909px) 67vw, (max-width: 1362px) 62vw, 840px" /></a></p>
+<h3>Switches</h3>
+<p>Aside from header bars and buttons, the only other widget to be changed is switches. When GTK first
introduced switches, they were a fairly new concept on the desktop. For this reason, they included explicit
“ON” and “OFF” labels, in order to communicate how the switches operated. Since then, switch widgets have
become ubiquitous, and users have become familiar with switches that don’t contain labels.</p>
+<p>The latest Adwaita changes bring the theme into line with other platforms and make switches more compact
and modern in appearance, by removing the labels and introducing a more rounded shape.</p>
+<div style="width: 800px;" class="wp-video"><!--[if lt IE
9]><script>document.createElement('video');</script><![endif]-->
+<video class="wp-video-shortcode" id="video-926-1" width="800" height="600" preload="metadata"
controls="controls"><source type="video/webm"
src="https://blog.gtk.org/files/2019/01/adwaita-settings.webm?_=1" /><a
href="https://blog.gtk.org/files/2019/01/adwaita-settings.webm">https://blog.gtk.org/files/2019/01/adwaita-settings.webm</a></video></div>
+<h3>Elsewhere, no change</h3>
+<p>Aside from the changes described above, very little has changed in Adwaita. The vast majority of widgets
remain the same, albeit with very slightly altered colours. Generally, UI layouts shouldn’t alter and users
should feel comfortable with the changes.</p>
+<p>Spot the difference (the old version of Adwaita is on the left and the new version is on the right):</p>
+<p><a href="https://blog.gtk.org/files/2019/01/no-change.png"><img class="alignnone size-full wp-image-959"
src="https://blog.gtk.org/files/2019/01/no-change.png" alt="" width="820" height="240"
srcset="https://blog.gtk.org/files/2019/01/no-change.png 820w,
https://blog.gtk.org/files/2019/01/no-change-300x88.png 300w,
https://blog.gtk.org/files/2019/01/no-change-768x225.png 768w" sizes="(max-width: 709px) 85vw, (max-width:
909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px" /></a></p>
+<h2>Conclusion</h2>
+<p>Please try the new theme. We hope you like it!</p>
+<p>And we appreciate your feedback—in particular if you are a GTK application developer. You can provide it
on irc (in the #gtk+ channel on GimpNet) or via the gtk-devel-list mailing list, or by filing an issue in <a
href="https://gitlab.gnome.org/GNOME/gtk">gitlab</a>.</p>
+]]></content:encoded>
+
<wfw:commentRss>https://blog.gtk.org/2019/01/14/theme-changes-in-gtk-3/feed/</wfw:commentRss>
+ <slash:comments>61</slash:comments>
+ <enclosure url="https://blog.gtk.org/files/2019/01/adwaita-settings.webm"
length="121954" type="video/webm" />
+ </item>
+ <item>
+ <title>A report from the Guadec GTK+ BoF</title>
+ <link>https://blog.gtk.org/2018/07/12/a-report-from-the-guadec-gtk-bof/</link>
+ <pubDate>Thu, 12 Jul 2018 12:11:20 +0000</pubDate>
+ <dc:creator><![CDATA[mclasen]]></dc:creator>
+ <category><![CDATA[uncategorized]]></category>
+
+ <guid isPermaLink="false">http://blog.gtk.org/?p=894</guid>
+ <description><![CDATA[The GTK+ team had a full day planning session during
the BoF days at Guadec, and we had a full room, including representatives from several downstreams, not just
GNOME. We had a pretty packed agenda, too. GTK+ 3 We started out by reviewing the GTK+ 3 plans that
we’ve outlined earlier. In addition to what … <a
href="https://blog.gtk.org/2018/07/12/a-report-from-the-guadec-gtk-bof/" class="more-link">Continue
reading<span class="screen-reader-text"> "A report from the Guadec GTK+ BoF"</span></a>]]></description>
+ <content:encoded><![CDATA[<p>The GTK+ team
had a full day planning session during the BoF days at Guadec, and we had a full room, including
representatives from several downstreams, not just GNOME.</p>
+<p>We had a pretty packed <a href="https://wiki.gnome.org/GUADEC/2018/Hacking%20days/GtkBOF">agenda</a>,
too.<br />
+<a href="https://blog.gtk.org/files/2018/07/20180709_105816.jpg"><img class="size-medium wp-image-896
aligncenter" src="https://blog.gtk.org/files/2018/07/20180709_105816-300x225.jpg" alt="" width="300"
height="225" srcset="https://blog.gtk.org/files/2018/07/20180709_105816-300x225.jpg 300w,
https://blog.gtk.org/files/2018/07/20180709_105816-768x576.jpg 768w,
https://blog.gtk.org/files/2018/07/20180709_105816-1024x768.jpg 1024w,
https://blog.gtk.org/files/2018/07/20180709_105816-1200x900.jpg 1200w" sizes="(max-width: 300px) 85vw, 300px"
/></a></p>
+<h3>GTK+ 3</h3>
+<p>We started out by reviewing the GTK+ 3 plans that we’ve outlined <a
href="https://blog.gtk.org/2018/06/23/a-gtk-3-update/">earlier</a>.</p>
+<p>In addition to what was mentioned there, we also plan to backport the new event controllers, to make
porting to GTK+ 4 easier. We will also add meson build support to help with Windows builds.</p>
+<p>The 3.24 releases will effectively be a continuation of the 3.22 branch and should be entirely safe to
put out as stable updates in distributions.</p>
+<p>We plan to release GTK+ 3.24.0 in time for GNOME 3.30.</p>
+<h3>GTK+ 4 leftovers</h3>
+<p>The bulk of the day was taken up by GTK+ 4 discussion. We’ve reviewed the list of leftover tasks on
the roadmap:</p>
+<ul>
+<li>Finish DND: Gestures on the GTK+ level, local shortcuts</li>
+<li>Introduce GtkToplevel and cleanly support popovers</li>
+<li>Add transformations</li>
+<li>Create a shortcuts event controller to replace key bindings</li>
+<li>Port GtkTextView to render nodes</li>
+<li>Profile the cairo backend, make sure its performance is on par with GTK+ 3</li>
+<li>Port various dependent libraries:
+<ul>
+<li>vte</li>
+<li>webkit</li>
+<li>libchamplain</li>
+<li>gtk-vnc</li>
+<li>gtk-spice</li>
+</ul>
+</li>
+</ul>
+<p>Most of these tasks have names next to them, but if you want to help with any of these tasks, by all
means, contact us!</p>
+<p>Noticeably absent from this list are a few things that were on the roadmap before:</p>
+<ul>
+<li>Constraint-based layout (emeus)</li>
+<li>Shader compiler and application provided shaders</li>
+<li>Designer support</li>
+</ul>
+<p>All of these can still happen if merge requests appear, but we don’t think that we should block on
them. They can be developed externally to GTK+ 4, and become GTK+ 5 material.</p>
+<h3>GTK+ backends</h3>
+<p>We spent some time evaluating the state of GDK backends in GTK+ master.</p>
+<p>The Windows backend is in OK shape. We have several people who help with maintenance and feature
development for it, meson makes building it a lot easier, and we have ci for it.</p>
+<p>The Quartz backend is in a much worse state. It has not been kept in buildable shape, nobody is providing
fixes or feature development for it, and we don’t have ci. We had a macbook offered that could be used
for ci, and it was suggested that we could use travis ci for the OS X.</p>
+<h3>GTK+ timeline</h3>
+<p>We spent a long time on this, and did not reach a 100% consensus, but it seems realistic to aim for a
GTK+ 4 release in spring of 2019, if we keep making good progress on the outstanding leftovers.</p>
+<p>When we release GTK+ 3.96, we will also announce a date for GTK+ 4.0. We hope to be able commit to
release before GNOME 3.32, so GNOME application developers can switch their master branches to GTK+ 4 without
worrying about whether that will disrupt other development for 3.32.</p>
+<h3>Application porting</h3>
+<p>We really want feedback from application ports at this point. But we are in a bit of a difficult
position, since we can’t plausibly claim to be done with major API work until the GtkToplevel and
shortcuts controller work is done.</p>
+<p>Our recommendation to app authors at this point is:</p>
+<ul>
+<li>If you are a bit adventurous, do a port to 3.94 on a branch. It should be possible to keep it working
without too much work during the remainder of GTK+ 4 development.</li>
+<li>If you are not quite as adventurous, wait until 3.24 is released, use it to prepare your port, and port
to GTK+ 3.96.</li>
+<li>Either way, please make your port available to users for testing, either as a regular release, or as a
Flatpak with a bundled GTK+.</li>
+</ul>
+<h3>GLib diversion</h3>
+<p>In the afternoon, we spent a while talking about GLib. We went over a laundry list of larger and smaller
items. Notable highlights: GProperty may happen for 2.60 and we may be able to use g_autoptr soon.</p>
+<h3>Other ideas</h3>
+<p>We discussed a great number of other things that we could and should do.</p>
+<p>For example, it was suggested (and generally agreed to) that we should merge gsk into gdk, since it is
small and the internals are somewhat intertwined. It was also suggested to create subdirectories in gtk/, for
example for the css machinery.</p>
+]]></content:encoded>
+ </item>
+ <item>
+ <title>News from GLib 2.58</title>
+ <link>https://blog.gtk.org/2018/07/11/news-from-glib-2-58/</link>
+
<comments>https://blog.gtk.org/2018/07/11/news-from-glib-2-58/#comments</comments>
+ <pubDate>Wed, 11 Jul 2018 13:44:52 +0000</pubDate>
+ <dc:creator><![CDATA[Emmanuele Bassi]]></dc:creator>
+ <category><![CDATA[uncategorized]]></category>
+ <category><![CDATA[development]]></category>
+ <category><![CDATA[GLib]]></category>
+ <category><![CDATA[Release]]></category>
+
+ <guid isPermaLink="false">http://blog.gtk.org/?p=903</guid>
+ <description><![CDATA[Next September, GLib will hit version 2.58. There have
been a few changes during the past two development cycles, most notably the improvement of the Meson build,
which in turn led to an improved portability of GLib to platforms such as Windows, macOS, and Android. It is
time to take stock of the current status … <a
href="https://blog.gtk.org/2018/07/11/news-from-glib-2-58/" class="more-link">Continue reading<span
class="screen-reader-text"> "News from GLib 2.58"</span></a>]]></description>
+ <content:encoded><![CDATA[<p>Next September,
GLib will hit version 2.58. There have been a few changes during the past two development cycles, most
notably the improvement of the Meson build, which in turn led to an improved portability of GLib to platforms
such as Windows, macOS, and Android. It is time to take stock of the current status of GLib, and to highlight
some of the changes that will impact GLib-based code.</p>
+<ul>
+<li><strong>Meson</strong> – Thanks to the ongoing work of Nirbheek Chauhan and Xavier Claessens, the Meson
build has been constantly improving, to the point that we can start switching to it as the default build
system. The plan—as <a href="https://mail.gnome.org/archives/gtk-devel-list/2018-June/msg00000.html">outlined
on the mailing list</a>—is to release GLib 2.58 using Meson, while keeping the Autotools build in tree and
available in the release archive; then, we’ll drop the Autotools build during the following development
cycle, and release GLib 2.60 without Autotools support. Linux distributors are very much welcome to start
testing the Meson build in their builders; we’ve been running the Meson build as part of our <acronym
title="Continuous Integration">CI</acronym> process for a while, now, but more exposure will bring out
eventual regressions that we missed; additionally, it would be stellar if people with different toolchains
than GCC/Clang/MSVC
would s
tart trying the Meson build and report bugs. In the meantime, if you’re using GLib on macOS and
Windows, we already recommend you switch to Meson to build GLib, as it’s easier and better integrated
with those platforms than Autotools</li>
+<li><strong>Reliability and portability</strong> – GLib switched to GitLab alongside the rest of GNOME,
which meant being able to run continuous integration outside of the <a href="https://build.gnome.org/">GNOME
Continuous</a> builds. Now we run <acronym title="Continuous Integration">CI</acronym> on multiple
toolchains, multiple build systems, and multiple platforms for every commit and merge request, which
significantly reduces the chances of a broken build. We’ve also improved the code coverage in the test
suite. Of course, we could always do better; for instance, we don’t have a <acronym title="Continuous
Integration">CI</acronym> runner for macOS and the Solaris family of OSes, and more runners for the *BSD
family would be greatly appreciated. We’ve issued <a
href="https://mail.gnome.org/archives/gtk-devel-list/2018-May/msg00019.html">a call for help</a>, if you have
a spare machine and some bandwidth that you can donate</li>
+<li><strong>File monitoring on *BSD</strong> – Apropos the *BSD family, the <code>kqueue</code> backend for
file monitoring in GIO has been completely overhauled by Martin Pieuchot and Ting-Wei Lan; the new code is
simpler, more robust, and passes all the tests</li>
+<li><strong>Use <code>posix_spawn()</code> for efficient process launching</strong> — Thanks to Daniel
Drake, GLib now can use <code>posix_spawn()</code> under <a
href="https://gitlab.gnome.org/GNOME/glib/blob/master/glib/gspawn.c#L730-748">specific circumstances</a>, if
the platform’s C library supports it; this allows hitting fast paths in the kernel, compared to
manually calling <code>fork() + exec()</code>; those fast paths are especially beneficial when running on
memory constrained platforms</li>
+<li><strong>Reference counting types and allocations</strong> — GLib uses reference counting as a memory
management and garbage collection mechanism in many of its types, but lacks the public API to allow other
people to implement the same semantics in their own data structures; this leads to much copy-pasting and
re-implementations, and typically to things like undefined behavior when it comes to saturation and thread
safety. GLib 2.58 has a <code>grefcount</code> and a <code>gatomicrefcount</code> types, alongside their API,
to reduce this duplication. Additionally, taking a cue from other languages like Rust, GLib provides a way to
add reference counting semantics on memory allocations, by adding a low level API that allows you to allocate
structures that do not have a reference count field, and automatically add reference counting semantics to
them</li>
+<li><strong>Deprecations</strong> – A few soft deprecations have become real deprecations in this last
development cycle:
+<ul>
+<li style="list-style-type: none">
+<ul>
+<li><code>g_type_class_add_private()</code> has finally been deprecated, <a
href="https://www.bassi.io/articles/2013/06/21/the-king-is-dead/">five years</a> after we introduced the
instance private data macros; if you’re still using that function in your class initialization, please
switch to <code>G_DEFINE_TYPE_WITH_PRIVATE</code> or <code>G_ADD_PRIVATE</code></li>
+<li><code>g_main_context_wait()</code> is officially deprecated, but you should have already seen run time
warnings about its use</li>
+<li><code>gtester</code>, the GTest harness provided by GLib, is deprecated; if you’re using
Autotools, you should use the <acronym title="Test Anything Protocol">TAP</acronym> harness that comes with
Automake</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<p>There have been lots of contributions in GLib, in this past cycle, thanks to the tireless efforts of
Philip Withnall; he’s been instrumental in reviewing patches, triaging bugs, and implementing changes
in the development process of the project. The switch over to GitLab has also improved the contribution
process, with many more developers opening merge requests:</p>
+<ul>
+<li><code>2.54.0..c182cd68</code>: 968 changesets from 143 developers, up from 412 changesets and 68
developers during the 2.53 development cycle</li>
+<li>A total of <span style="color: green">31851 lines added</span>, <span style="color: red">27976
removed</span> (delta: <span style="color: green">+3875</span>)</li>
+</ul>
+<table>
+<tbody>
+<tr>
+<th colspan="3">Developers with the most changesets</th>
+</tr>
+<tr>
+<td>Philip Withnall</td>
+<td align="right">303</td>
+<td align="right">31.3%</td>
+</tr>
+<tr>
+<td>Xavier Claessens</td>
+<td align="right">79</td>
+<td align="right">8.2%</td>
+</tr>
+<tr>
+<td>Emmanuele Bassi</td>
+<td align="right">69</td>
+<td align="right">7.1%</td>
+</tr>
+<tr>
+<td>Christoph Reiter</td>
+<td align="right">42</td>
+<td align="right">4.3%</td>
+</tr>
+<tr>
+<td>Ting-Wei Lan</td>
+<td align="right">21</td>
+<td align="right">2.2%</td>
+</tr>
+<tr>
+<td>Chun-wei Fan</td>
+<td align="right">21</td>
+<td align="right">2.2%</td>
+</tr>
+<tr>
+<td>Nirbheek Chauhan</td>
+<td align="right">21</td>
+<td align="right">2.2%</td>
+</tr>
+<tr>
+<td>Ondrej Holy</td>
+<td align="right">20</td>
+<td align="right">2.1%</td>
+</tr>
+<tr>
+<td>Руслан Ижбулатов</td>
+<td align="right">20</td>
+<td align="right">2.1%</td>
+</tr>
+<tr>
+<td>Mikhail Zabaluev</td>
+<td align="right">20</td>
+<td align="right">2.1%</td>
+</tr>
+<tr>
+<td>Simon McVittie</td>
+<td align="right">15</td>
+<td align="right">1.5%</td>
+</tr>
+<tr>
+<td>Matthias Clasen</td>
+<td align="right">14</td>
+<td align="right">1.4%</td>
+</tr>
+<tr>
+<td>Christian Hergert</td>
+<td align="right">13</td>
+<td align="right">1.3%</td>
+</tr>
+<tr>
+<td>Iñigo Martínez</td>
+<td align="right">12</td>
+<td align="right">1.2%</td>
+</tr>
+<tr>
+<td>Bastien Nocera</td>
+<td align="right">10</td>
+<td align="right">1.0%</td>
+</tr>
+<tr>
+<td>Rafal Luzynski</td>
+<td align="right">9</td>
+<td align="right">0.9%</td>
+</tr>
+<tr>
+<td>Michael Catanzaro</td>
+<td align="right">9</td>
+<td align="right">0.9%</td>
+</tr>
+<tr>
+<td>Will Thompson</td>
+<td align="right">8</td>
+<td align="right">0.8%</td>
+</tr>
+<tr>
+<td>Allison Lortie</td>
+<td align="right">8</td>
+<td align="right">0.8%</td>
+</tr>
+<tr>
+<td>Daniel Boles</td>
+<td align="right">8</td>
+<td align="right">0.8%</td>
+</tr>
+</tbody>
+</table>
+<p>Make sure to test your code with GLib 2.57.2, the next development snapshot towards the 2.58.0 stable
release.</p>
+]]></content:encoded>
+
<wfw:commentRss>https://blog.gtk.org/2018/07/11/news-from-glib-2-58/feed/</wfw:commentRss>
+ <slash:comments>4</slash:comments>
+ </item>
+ <item>
+ <title>GTK+ 3.94</title>
+ <link>https://blog.gtk.org/2018/06/26/gtk-3-94/</link>
+ <comments>https://blog.gtk.org/2018/06/26/gtk-3-94/#comments</comments>
+ <pubDate>Tue, 26 Jun 2018 20:57:17 +0000</pubDate>
+ <dc:creator><![CDATA[mclasen]]></dc:creator>
+ <category><![CDATA[uncategorized]]></category>
+
+ <guid isPermaLink="false">http://blog.gtk.org/?p=884</guid>
+ <description><![CDATA[Today, we released GTK+ 3.94.0. Again, it has been a
while since the last release, so it is worth summarizing whats new in this release. There is really too much
here to cover it all, so this post will only highlight the most important changes. This release is another
milestone on our way towards GTK+ … <a href="https://blog.gtk.org/2018/06/26/gtk-3-94/"
class="more-link">Continue reading<span class="screen-reader-text"> "GTK+ 3.94"</span></a>]]></description>
+ <content:encoded><![CDATA[<p>Today, we
released GTK+ 3.94.0. Again, it has been a while since the last release, so it is worth summarizing whats new
in this release. There is really too much here to cover it all, so this post will only highlight the most
important changes.</p>
+<p>This release is another milestone on our way towards GTK+ 4. And while there are still some unfinished <a
href="https://gitlab.gnome.org/GNOME/gtk/milestones/1">things</a>, this release is much closer to we hope to
achieve with GTK+ 4.</p>
+<h3>GSK</h3>
+<p>The Broadway backend now has a GskRenderer, so the future for Broadway looks much better.</p>
+<p>We introduced a new type of render node, GskOffsetNode, which is a simplified GskTransformNode and takes
over the job of translating content as we move up and down the render node tree. With this change, we are now
able to cache render nodes for widgets over multiple frames, and reposition them if necessary.</p>
+<p>We also introduced GskDebugNodes, which take over node names, and let us simplify some of the GTK+ apis
for creating render nodes.</p>
+<p>When falling back to cairo for rendering, we now use recording surfaces instead of image surfaces, so we
can replay the rendering at a different scale.</p>
+<p>An important new operation is gsk_render_node_diff to compare two render node trees (see below for more
on this).</p>
+<h3>GDK</h3>
+<p>Following the general trend of aligning the GDK apis with Wayland instead of X, GdkWindow was renamed to
GdkSurface.</p>
+<p>The GdkTexture api has been refined, with new GdkMemoryTexture and GdkGLTexture subclasses, and a
powerful new abstraction, <a
href="https://blog.gtk.org/2018/03/16/textures-and-paintables/">GdkPaintable</a>, has been introduced.</p>
+<p>A GdkPaintable represents an object that can be painted anywhere at any size without requiring any sort
of layout. This is inspired by similar concepts elsewhere, such as ClutterContent, HTML/CSS Paint Sources or
SVG Paint Servers. To show off the power of this concept, a few new demos have been added in gtk4-demo:</p>
+<p><a href="https://blog.gtk.org/files/2018/06/puzzle.gif"><img class="size-medium wp-image-885 aligncenter"
src="https://blog.gtk.org/files/2018/06/puzzle-300x245.gif" alt="" width="300" height="245"
srcset="https://blog.gtk.org/files/2018/06/puzzle-300x245.gif 300w,
https://blog.gtk.org/files/2018/06/puzzle-768x627.gif 768w" sizes="(max-width: 300px) 85vw, 300px" /></a>The
DND code continues to see major refactorings. It now uses the same content-provider infrastructure that was
introduced in 3.93 for clipboard handling, and it has separate objects for the source and target side of a
DND operation. More changes will be coming here.</p>
+<h3>GTK</h3>
+<h4>widgets</h4>
+<p>GTK+ has gained support for showing videos, with the GtkVideo and GtkMediaControls widgets, and there is
also a new GtkPicture widget to split off image viewing from GtkImage (which is really about icons).</p>
+<div style="width: 840px;" class="wp-video"><video class="wp-video-shortcode" id="video-884-2" width="840"
height="666" preload="metadata" controls="controls"><source type="video/webm"
src="https://blog.gtk.org/files/2018/06/bunny.webm?_=2" /><a
href="https://blog.gtk.org/files/2018/06/bunny.webm">https://blog.gtk.org/files/2018/06/bunny.webm</a></video></div>
+<p>GtkFontChooser allows tweaking OpenType features and font variations, and Ctrl-Shift-e for color Emoji
input has been replaced with completion that can be enabled with the GtkEntry::enable-emoji-completion
property.</p>
+<h4>Input</h4>
+<p>The event-specific signals in GtkWidget continue to disappear. At this point only ::event is left, but it
will go away too. Instead, we are using event controllers, and several new ones have been added to cover all
needed events:</p>
+<ul>
+<li>GtkEventControllerMotion</li>
+<li>GtkEventControllerKey</li>
+<li>GtkGestureStylus</li>
+</ul>
+<p>To make this transition easier, it is now possible to create event controllers in ui files.</p>
+<p>Wayland has its own platform input method, based on the Wayland text protocol.</p>
+<h4>Drawing</h4>
+<p>The ::draw signal has been removed, all widgets have to implement ::snapshot. They can now create their
own GtkSnapshot instances for intermediate rendering. Clipping is no longer applied on the GTK+ level –
widgets are free to draw outside their allocation, if that is what is required.</p>
+<p>Widget invalidation has been changed, it now works by discarding the cached render nodes of invalidated
widgets, and recreating the missing parts of the render node tree.</p>
+<p>For finding the region that needs to be redrawn, GTK+ diffs the render node trees of the previous and the
current frame, and applies some heuristics to keep the number of rectangles from growing too large.</p>
+<p>The GTK+ inspector lets you track invalidations, which you can see in action here:</p>
+<div style="width: 640px;" class="wp-video"><video class="wp-video-shortcode" id="video-884-3" width="640"
height="360" preload="metadata" controls="controls"><source type="video/webm"
src="https://people.freedesktop.org/~company/stuff/invalidation-tracking.webm?_=3" /><a
href="https://people.freedesktop.org/~company/stuff/invalidation-tracking.webm">https://people.freedesktop.org/~company/stuff/invalidation-tracking.webm</a></video></div>
+<h4>Other changeS</h4>
+<p>GTK+ no longer supports generic loadable modules. Input methods, print backends and media backends have
been converted to GIOModules and extension points.</p>
+<p>The platform im modules (i.e. the Windows, Wayland, Broadway im contexts) are always included and will
be enabled by default on their platform.</p>
+<p>The Vulkan support in GDK can now use a particular device that is specified by the GDK_VULKAN_DEVICE
environment variable. Use GDK_VULKAN_DEVICE=list to see all availble devices.</p>
+<h3>Try it out</h3>
+<p>With GTK+ 3.94.0, it should be possible to start porting applications. The <a
href="https://developer.gnome.org/gtk4/3.94/">documentation</a> has an initial porting guide.</p>
+]]></content:encoded>
+
<wfw:commentRss>https://blog.gtk.org/2018/06/26/gtk-3-94/feed/</wfw:commentRss>
+ <slash:comments>10</slash:comments>
+ <enclosure url="https://blog.gtk.org/files/2018/06/bunny.webm" length="0"
type="video/webm" />
+<enclosure url="https://people.freedesktop.org/~company/stuff/invalidation-tracking.webm" length="24299037"
type="video/webm" />
+ </item>
+ </channel>
+</rss>
diff --git a/index.html b/index.html
index d2fcbb0..5b7beeb 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,5 @@
---
+
---
{%- include header.html -%}
@@ -66,7 +67,7 @@
</div>
</div>
</section>
-
+
<section class="py-4" id="bindings">
<div class="container">
<div class="row text-center d-flex justify-content-center">
diff --git a/package-lock.json b/package-lock.json
index 3f16242..494cfda 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -19,6 +19,11 @@
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz",
"integrity":
"sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag=="
},
+ "extend": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-1.2.1.tgz",
+ "integrity": "sha1-oPX9bPyDpf5J72mNYOyKYk3UV2w="
+ },
"jquery": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]