[gtk-web/new-website: 63/180] new files



commit 2a36ef3a5ec9faea73282503f5aa1c92b82b7bef
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 &apos;check&apos;.\nMaking check in po-properties\nmake[1]: Nothing to be 
done for &apos;check&apos;.\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 &apos;included-modules&apos;.\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 
&apos;check-am&apos;.\n/usr/bin/make  check-local\nMaking check in tests\nMaking check in visuals\nmake[2]: 
Nothing to be done for &apos;check&apos;.\n/usr/bin/make  check-local\nMaking check in testsuite\nMaking 
check in gdk\n/usr/bin/make  check-local\nmake[3]: Entering directory 
&apos;/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gdk&apos;\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 &apos;testcase_open == 0&apos; 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 &apos;testcase_open == 0&apos; 
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 
&apos;/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gdk&apos;\nMaking check in gtk\n/usr/bin/make  
check-am\n/usr/bin/make  check-local\nmake[4]: Entering directory 
&apos;/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gtk&apos;\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 
&apos;/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gtk&apos;\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 &apos;check&apos;.\nMaking check in po-properties\nmake[1]: Nothing to be 
done for &apos;check&apos;.\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 &apos;included-modules&apos;.\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 
&apos;check-am&apos;.\n/usr/bin/make  check-local\nMaking check in tests\nMaking check in visuals\nmake[2]: 
Nothing to be done for &apos;check&apos;.\n/usr/bin/make  check-local\nMaking check in testsuite\nMaking 
check in gdk\n/usr/bin/make  check-local\nmake[3]: Entering directory 
&apos;/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gdk&apos;\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 &apos;testcase_open == 0&apos; 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 &apos;testcase_open == 0&apos; 
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 
&apos;/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gdk&apos;\nMaking check in gtk\n/usr/bin/make  
check-am\n/usr/bin/make  check-local\nmake[4]: Entering directory 
&apos;/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gtk&apos;\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 
&apos;/home/tkloczko/rpmbuild/BUILD/gtk+-3.24.9/testsuite/gtk&apos;\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>&copy; 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 &#8230; <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&#8217;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 &#8230; <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&#8217;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&#8217;s essentially a copy of the GObject 
property-related code, and whose only job is to implement &#8220;child&#8221; 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&#8217;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&#8217;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>&#8216;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&#8217;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&#8217;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&#8217;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 &#8230; <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 &#8211; 
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 &#8211; it has been around since before GTK 2. Unfortunately, it 
has not really been successful as an interface &#8211; 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&#8217;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&#8217;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 &#8216;complex&#8217; 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&#8217;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&#8217;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 &#8211; 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&#8217;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 &#8230; <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&#8217;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&#8217;re interested in.</p>
+<p>We&#8217;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&#8217;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&#8217;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 &#8230; <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&#8217;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&#8217;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 
&#8220;shortcuts&#8221; 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&#8217;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&#8217;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&#8217;t make it to the hackfest, but 
we&#8217;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&#8217;re very excited about it.</li>
+<li><strong>animations</strong> — one last thing we&#8217;d like to land for GTK4 is an animation framework 
for GTK widgets to replace the current generic &#8220;frame tick callback&#8221;. 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&#8217;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 &#8220;window-like&#8221; 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 
&#8220;plus&#8221; 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&#8217;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&#8217;ve also made another NewAdwaita tarball, which 
includes refinements based on some of the suggestions &#8230; <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&#8217;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&#8217;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&#8217;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 &#8230; <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&#8217;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&#8217;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&#8217;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&#8217;t cause issues for 
applications. However, we don&#8217;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&#8217;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&#8217;ve outlined earlier. In addition to what &#8230; <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&#8217;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&#8217;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&#8217;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&#8217;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&#8217;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 &#8230; <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&#8217;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&#8217;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&#8217;re using GLib on macOS and 
Windows, we already recommend you switch to Meson to build GLib, as it&#8217;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&#8217;ve also improved the code coverage in the test 
suite. Of course, we could always do better; for instance, we don&#8217;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&#8217;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&#8217;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&#8217;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&#8217;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&#8217;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+ &#8230; <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 &#8211; 
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]