[gnome-tour] Switch to gtk3



commit 8d0ad447666670cf478305eb545241ea83eb9c64
Author: Bilal Elmoussaoui <bil elmoussaoui gmail com>
Date:   Tue Feb 11 02:43:39 2020 +0100

    Switch to gtk3
    
    Would love to keep using gtk4, but we can't get it into 3.36 otherwise.

 Cargo.lock                   | 442 +++++++++++++------------------------------
 Cargo.toml                   |  15 +-
 src/application.rs           |  55 ++++--
 src/config.rs.in             |  20 +-
 src/widgets/headerbar.rs     |  17 +-
 src/widgets/pages/image.rs   |   2 +-
 src/widgets/pages/welcome.rs |   2 +-
 src/widgets/paginator.rs     |   6 +-
 8 files changed, 198 insertions(+), 361 deletions(-)
---
diff --git a/Cargo.lock b/Cargo.lock
index 3fe9cdd..6717bc2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -8,31 +8,26 @@ dependencies = [
  "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
-[[package]]
-name = "anyhow"
-version = "1.0.26"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-
 [[package]]
 name = "atk"
 version = "0.8.0"
-source = "git+https://github.com/gtk-rs/atk#b56689dea48ac579b53041d89544ff18a72ec08b";
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "atk-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.9.1 (git+https://github.com/gtk-rs/glib.git)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "glib 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "atk-sys"
 version = "0.9.1"
-source = "git+https://github.com/gtk-rs/sys#bac293d7ce7547bd238a7f5e3e130c4f66c8df3d";
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -45,22 +40,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index";
 [[package]]
 name = "cairo-rs"
 version = "0.8.0"
-source = "git+https://github.com/gtk-rs/cairo#b555469778becf3ae547dbf08f2ddc8ffd1c0617";
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-sys-rs 0.9.2 (git+https://github.com/gtk-rs/cairo)",
- "glib 0.9.1 (git+https://github.com/gtk-rs/glib.git)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "cairo-sys-rs"
 version = "0.9.2"
-source = "git+https://github.com/gtk-rs/cairo#b555469778becf3ae547dbf08f2ddc8ffd1c0617";
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -75,11 +70,6 @@ name = "cfg-if"
 version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
-[[package]]
-name = "either"
-version = "1.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-
 [[package]]
 name = "futures-channel"
 version = "0.3.1"
@@ -139,62 +129,62 @@ dependencies = [
 ]
 
 [[package]]
-name = "gdk-pixbuf"
-version = "0.8.0"
-source = "git+https://github.com/gtk-rs/gdk-pixbuf#060b57509cc106904ce1d9ff142bbfcde224a463";
-dependencies = [
- "gdk-pixbuf-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gio 0.8.0 (git+https://github.com/gtk-rs/gio.git)",
- "gio-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "glib 0.9.1 (git+https://github.com/gtk-rs/glib.git)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+name = "gdk"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
+dependencies = [
+ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
-name = "gdk-pixbuf-sys"
-version = "0.9.1"
-source = "git+https://github.com/gtk-rs/sys#bac293d7ce7547bd238a7f5e3e130c4f66c8df3d";
+name = "gdk-pixbuf"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "gio-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
-name = "gdk4"
-version = "0.1.0"
-source = "git+https://github.com/gtk-rs/gdk4#b8ee04761cf5f93f1bb7c075cd19b49d11742503";
+name = "gdk-pixbuf-sys"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-rs 0.8.0 (git+https://github.com/gtk-rs/cairo)",
- "cairo-sys-rs 0.9.2 (git+https://github.com/gtk-rs/cairo)",
- "gdk-pixbuf 0.8.0 (git+https://github.com/gtk-rs/gdk-pixbuf)",
- "gdk4-sys 0.1.0 (git+https://github.com/gtk-rs/sys)",
- "gio 0.8.0 (git+https://github.com/gtk-rs/gio.git)",
- "gio-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "glib 0.9.1 (git+https://github.com/gtk-rs/glib.git)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango 0.8.0 (git+https://github.com/gtk-rs/pango)",
+ "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
-name = "gdk4-sys"
-version = "0.1.0"
-source = "git+https://github.com/gtk-rs/sys#bac293d7ce7547bd238a7f5e3e130c4f66c8df3d";
+name = "gdk-sys"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "cairo-sys-rs 0.9.2 (git+https://github.com/gtk-rs/cairo)",
- "gdk-pixbuf-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gio-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -217,37 +207,37 @@ dependencies = [
 
 [[package]]
 name = "gio"
-version = "0.8.0"
-source = "git+https://github.com/gtk-rs/gio.git#06558414d906c77c540d8b3caf44a8409f9730f8";
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-channel 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-io 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "glib 0.9.1 (git+https://github.com/gtk-rs/glib.git)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
- "once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gio-sys"
 version = "0.9.1"
-source = "git+https://github.com/gtk-rs/sys#bac293d7ce7547bd238a7f5e3e130c4f66c8df3d";
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "glib"
-version = "0.9.1"
-source = "git+https://github.com/gtk-rs/glib.git#78d6fb9162d20f62047e5fe42865ec06b830c9d7";
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-channel 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -255,31 +245,16 @@ dependencies = [
  "futures-executor 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-task 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib-macros 0.9.0 (git+https://github.com/gtk-rs/glib.git)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
- "once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "glib-macros"
-version = "0.9.0"
-source = "git+https://github.com/gtk-rs/glib.git#78d6fb9162d20f62047e5fe42865ec06b830c9d7";
-dependencies = [
- "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
- "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "proc-macro-error 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "glib-sys"
 version = "0.9.1"
-source = "git+https://github.com/gtk-rs/sys#bac293d7ce7547bd238a7f5e3e130c4f66c8df3d";
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -289,147 +264,67 @@ dependencies = [
 name = "gnome-tour"
 version = "0.0.1"
 dependencies = [
- "gdk4 0.1.0 (git+https://github.com/gtk-rs/gdk4)",
+ "gdk 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "gettext-rs 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "gio 0.8.0 (git+https://github.com/gtk-rs/gio.git)",
- "glib 0.9.1 (git+https://github.com/gtk-rs/glib.git)",
- "gtk4 0.1.0 (git+https://github.com/gtk-rs/gtk4.git)",
+ "gio 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gtk 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "gobject-sys"
 version = "0.9.1"
-source = "git+https://github.com/gtk-rs/sys#bac293d7ce7547bd238a7f5e3e130c4f66c8df3d";
-dependencies = [
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "graphene-rs"
-version = "0.1.0"
-source = "git+https://github.com/gtk-rs/graphene#329c92234c4d5b1d503a43d73990c9f3e657fdc3";
-dependencies = [
- "glib 0.9.1 (git+https://github.com/gtk-rs/glib.git)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "graphene-sys 0.1.0 (git+https://github.com/gtk-rs/graphene)",
- "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "graphene-sys"
-version = "0.1.0"
-source = "git+https://github.com/gtk-rs/graphene#329c92234c4d5b1d503a43d73990c9f3e657fdc3";
-dependencies = [
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "gsk4"
-version = "0.1.0"
-source = "git+https://github.com/gtk-rs/gsk4#3cea3d3013a51bee6de2b4d208795197db0fbb31";
-dependencies = [
- "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-rs 0.8.0 (git+https://github.com/gtk-rs/cairo)",
- "cairo-sys-rs 0.9.2 (git+https://github.com/gtk-rs/cairo)",
- "gdk4 0.1.0 (git+https://github.com/gtk-rs/gdk4)",
- "gdk4-sys 0.1.0 (git+https://github.com/gtk-rs/sys)",
- "glib 0.9.1 (git+https://github.com/gtk-rs/glib.git)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "graphene-rs 0.1.0 (git+https://github.com/gtk-rs/graphene)",
- "graphene-sys 0.1.0 (git+https://github.com/gtk-rs/graphene)",
- "gsk4-sys 0.1.0 (git+https://github.com/gtk-rs/sys)",
- "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango 0.8.0 (git+https://github.com/gtk-rs/pango)",
-]
-
-[[package]]
-name = "gsk4-sys"
-version = "0.1.0"
-source = "git+https://github.com/gtk-rs/sys#bac293d7ce7547bd238a7f5e3e130c4f66c8df3d";
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "cairo-sys-rs 0.9.2 (git+https://github.com/gtk-rs/cairo)",
- "gdk4-sys 0.1.0 (git+https://github.com/gtk-rs/sys)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "graphene-sys 0.1.0 (git+https://github.com/gtk-rs/graphene)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
  "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
-name = "gtk4"
-version = "0.1.0"
-source = "git+https://github.com/gtk-rs/gtk4.git#499933877d595448c6cd10642e4a3f1e5f07ace1";
+name = "gtk"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "atk 0.8.0 (git+https://github.com/gtk-rs/atk)",
- "atk-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "atk 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cairo-rs 0.8.0 (git+https://github.com/gtk-rs/cairo)",
- "cairo-sys-rs 0.9.2 (git+https://github.com/gtk-rs/cairo)",
- "gdk-pixbuf 0.8.0 (git+https://github.com/gtk-rs/gdk-pixbuf)",
- "gdk-pixbuf-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gdk4 0.1.0 (git+https://github.com/gtk-rs/gdk4)",
- "gdk4-sys 0.1.0 (git+https://github.com/gtk-rs/sys)",
- "gio 0.8.0 (git+https://github.com/gtk-rs/gio.git)",
- "gio-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "glib 0.9.1 (git+https://github.com/gtk-rs/glib.git)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "graphene-rs 0.1.0 (git+https://github.com/gtk-rs/graphene)",
- "graphene-sys 0.1.0 (git+https://github.com/gtk-rs/graphene)",
- "gsk4 0.1.0 (git+https://github.com/gtk-rs/gsk4)",
- "gsk4-sys 0.1.0 (git+https://github.com/gtk-rs/sys)",
- "gtk4-sys 0.1.0 (git+https://github.com/gtk-rs/sys)",
+ "cairo-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
- "once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango 0.8.0 (git+https://github.com/gtk-rs/pango)",
- "pango-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "pango 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
-name = "gtk4-sys"
-version = "0.1.0"
-source = "git+https://github.com/gtk-rs/sys#bac293d7ce7547bd238a7f5e3e130c4f66c8df3d";
+name = "gtk-sys"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "atk-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "cairo-sys-rs 0.9.2 (git+https://github.com/gtk-rs/cairo)",
- "gdk-pixbuf-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gdk4-sys 0.1.0 (git+https://github.com/gtk-rs/sys)",
- "gio-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "graphene-sys 0.1.0 (git+https://github.com/gtk-rs/graphene)",
- "gsk4-sys 0.1.0 (git+https://github.com/gtk-rs/sys)",
+ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
-[[package]]
-name = "heck"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-dependencies = [
- "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "itertools"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-dependencies = [
- "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
 [[package]]
 name = "lazy_static"
 version = "1.3.0"
@@ -463,32 +358,27 @@ name = "memchr"
 version = "2.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
-[[package]]
-name = "once_cell"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-
 [[package]]
 name = "pango"
 version = "0.8.0"
-source = "git+https://github.com/gtk-rs/pango#377c7d1e4a9a58749be9cb81df71b84ac65a05e1";
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
  "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "glib 0.9.1 (git+https://github.com/gtk-rs/glib.git)",
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "glib 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
- "once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "pango-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "pango-sys"
 version = "0.9.1"
-source = "git+https://github.com/gtk-rs/sys#bac293d7ce7547bd238a7f5e3e130c4f66c8df3d";
+source = "registry+https://github.com/rust-lang/crates.io-index";
 dependencies = [
- "glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
- "gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)",
+ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
  "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -503,30 +393,6 @@ name = "pkg-config"
 version = "0.3.14"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
-[[package]]
-name = "proc-macro-error"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-dependencies = [
- "proc-macro-error-attr 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustversion 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-dependencies = [
- "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustversion 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn-mid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
 [[package]]
 name = "proc-macro-hack"
 version = "0.5.11"
@@ -578,16 +444,6 @@ dependencies = [
  "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
-[[package]]
-name = "rustversion"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-dependencies = [
- "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
 [[package]]
 name = "slab"
 version = "0.4.2"
@@ -603,16 +459,6 @@ dependencies = [
  "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
-[[package]]
-name = "syn-mid"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-dependencies = [
- "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
 [[package]]
 name = "thread_local"
 version = "0.3.6"
@@ -626,11 +472,6 @@ name = "ucd-util"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
 
-[[package]]
-name = "unicode-segmentation"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index";
-
 [[package]]
 name = "unicode-xid"
 version = "0.2.0"
@@ -662,15 +503,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index";
 
 [metadata]
 "checksum aho-corasick 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = 
"36b7aa1ccb7d7ea3f437cf025a2ab1c47cc6c1bc9fc84918ff449def12f5e282"
-"checksum anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = 
"7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c"
-"checksum atk 0.8.0 (git+https://github.com/gtk-rs/atk)" = "<none>"
-"checksum atk-sys 0.9.1 (git+https://github.com/gtk-rs/sys)" = "<none>"
+"checksum atk 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"444daefa55f229af145ea58d77efd23725024ee1f6f3102743709aa6b18c663e"
+"checksum atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"e552c1776737a4c80110d06b36d099f47c727335f9aaa5d942a72b6863a8ec6f"
 "checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd"
-"checksum cairo-rs 0.8.0 (git+https://github.com/gtk-rs/cairo)" = "<none>"
-"checksum cairo-sys-rs 0.9.2 (git+https://github.com/gtk-rs/cairo)" = "<none>"
+"checksum cairo-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"0b528aca2ef1026235d0122495dbaee0b09479f77c51f6df8d9bb9cb1c6d6f87"
+"checksum cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63"
 "checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = 
"39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d"
 "checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = 
"b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
-"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = 
"bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
 "checksum futures-channel 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"fcae98ca17d102fd8a3603727b9259fcf7fa4239b603d2142926189bc8999b86"
 "checksum futures-core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"79564c427afefab1dfb3298535b21eda083ef7935b4f0ecbfcb121f0aec10866"
 "checksum futures-executor 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"1e274736563f686a837a0568b478bdabfeaec2dca794b5649b04e2fe1627c231"
@@ -678,51 +517,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index";
 "checksum futures-macro 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"52e7c56c15537adb4f76d0b7a76ad131cb4d2f4f32d3b0bcabcbe1c7c5e87764"
 "checksum futures-task 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"0bae52d6b29cf440e298856fec3965ee6fa71b06aa7495178615953fd669e5f9"
 "checksum futures-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"c0d66274fb76985d3c62c886d1da7ac4c0903a8c9f754e8fe0f35a6a6cc39e76"
-"checksum gdk-pixbuf 0.8.0 (git+https://github.com/gtk-rs/gdk-pixbuf)" = "<none>"
-"checksum gdk-pixbuf-sys 0.9.1 (git+https://github.com/gtk-rs/sys)" = "<none>"
-"checksum gdk4 0.1.0 (git+https://github.com/gtk-rs/gdk4)" = "<none>"
-"checksum gdk4-sys 0.1.0 (git+https://github.com/gtk-rs/sys)" = "<none>"
+"checksum gdk 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"fbe5e8772fc0865c52460cdd7a59d7d47700f44d9809d1dd00eecceb769a7589"
+"checksum gdk-pixbuf 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"e248220c46b329b097d4b158d2717f8c688f16dd76d0399ace82b3e98062bdd7"
+"checksum gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0"
+"checksum gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"6adf679e91d1bff0c06860287f80403e7db54c2d2424dce0a470023b56c88fbb"
 "checksum gettext-rs 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"b2502071e088651bd5fec87a896be2a5b908e817070d350a534a305abc9c6048"
 "checksum gettext-sys 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)" = 
"62c644c0b8b73706fb8c7420533fd30abf6f41c2703994bc6f0826fceb7fb3d6"
-"checksum gio 0.8.0 (git+https://github.com/gtk-rs/gio.git)" = "<none>"
-"checksum gio-sys 0.9.1 (git+https://github.com/gtk-rs/sys)" = "<none>"
-"checksum glib 0.9.1 (git+https://github.com/gtk-rs/glib.git)" = "<none>"
-"checksum glib-macros 0.9.0 (git+https://github.com/gtk-rs/glib.git)" = "<none>"
-"checksum glib-sys 0.9.1 (git+https://github.com/gtk-rs/sys)" = "<none>"
-"checksum gobject-sys 0.9.1 (git+https://github.com/gtk-rs/sys)" = "<none>"
-"checksum graphene-rs 0.1.0 (git+https://github.com/gtk-rs/graphene)" = "<none>"
-"checksum graphene-sys 0.1.0 (git+https://github.com/gtk-rs/graphene)" = "<none>"
-"checksum gsk4 0.1.0 (git+https://github.com/gtk-rs/gsk4)" = "<none>"
-"checksum gsk4-sys 0.1.0 (git+https://github.com/gtk-rs/sys)" = "<none>"
-"checksum gtk4 0.1.0 (git+https://github.com/gtk-rs/gtk4.git)" = "<none>"
-"checksum gtk4-sys 0.1.0 (git+https://github.com/gtk-rs/sys)" = "<none>"
-"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
-"checksum itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
+"checksum gio 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"0cd10f9415cce39b53f8024bf39a21f84f8157afa52da53837b102e585a296a5"
+"checksum gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911"
+"checksum glib 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"58477df5a255eed01e1a627d4933ed77c5d43a1c3502b22749a51bf6091c7017"
+"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
+"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
+"checksum gtk 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"87e1e8d70290239c668594002d1b174fcc7d7ef5d26670ee141490ede8facf8f"
+"checksum gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"53def660c7b48b00b510c81ef2d2fbd3c570f1527081d8d7947f471513e1a4c1"
 "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
 "checksum libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)" = 
"3262021842bf00fe07dbd6cf34ff25c99d7a7ebef8deea84db72be3ea3bb0aff"
 "checksum locale_config 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = 
"73ac19ebe45489e5d53b4346d8b90bb3dd03275c5fdf2ce22a982516d86b535c"
 "checksum log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = 
"c275b6ad54070ac2d665eef9197db647b32239c9d244bfb6f041a766d00da5b3"
 "checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
-"checksum once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"b1c601810575c99596d4afc46f78a678c80105117c379eb3650cf99b8a21ce5b"
-"checksum pango 0.8.0 (git+https://github.com/gtk-rs/pango)" = "<none>"
-"checksum pango-sys 0.9.1 (git+https://github.com/gtk-rs/sys)" = "<none>"
+"checksum pango 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"1e9c6b728f1be8edb5f9f981420b651d5ea30bdb9de89f1f1262d0084a020577"
+"checksum pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d"
 "checksum pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)" = 
"5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587"
 "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = 
"676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c"
-"checksum proc-macro-error 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = 
"1b79a464461615532fcc8a6ed8296fa66cc12350c18460ab3f4594a6cee0fcb6"
-"checksum proc-macro-error-attr 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = 
"23832e5eae6bac56bbac190500eef1aaede63776b5cd131eaa4ee7fe120cd892"
 "checksum proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = 
"ecd45702f76d6d3c75a80564378ae228a85f0b59d2f3ed43c91b4a69eb2ebfc5"
 "checksum proc-macro-nested 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = 
"369a6ed065f249a159e06c45752c780bda2fb53c995718f9e484d08daa9eb42e"
 "checksum proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = 
"0319972dcae462681daf4da1adeeaa066e3ebd29c69be96c6abb1259d2ee2bcc"
 "checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
 "checksum regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = 
"d9d8297cc20bbb6184f8b45ff61c8ee6a9ac56c156cec8e38c3e5084773c44ad"
 "checksum regex-syntax 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = 
"9b01330cce219c1c6b2e209e5ed64ccd587ae5c67bed91c0b49eecf02ae40e21"
-"checksum rustversion 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = 
"3a0538bd897e17257b0128d2fd95c2ed6df939374073a36166051a79e2eb7986"
 "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = 
"c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
 "checksum syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = 
"1e4ff033220a41d1a57d8125eab57bf5263783dfdcc18688b1dacc6ce9651ef8"
-"checksum syn-mid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"9fd3937748a7eccff61ba5b90af1a20dbf610858923a9192ea0ecb0cb77db1d0"
 "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = 
"c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
 "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = 
"535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86"
-"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
 "checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = 
"826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
 "checksum utf8-ranges 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = 
"9d50aa7650df78abf942826607c62468ce18d9019673d4a2ebe1865dbb96ffde"
 "checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = 
"f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"
diff --git a/Cargo.toml b/Cargo.toml
index 786155d..59b400f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -5,17 +5,10 @@ authors = ["Bilal Elmoussaoui <bil elmoussaoui gmail com>"]
 edition = "2018"
 
 [dependencies]
-glib = { git = "https://github.com/gtk-rs/glib.git"; }
-gio = { git = "https://github.com/gtk-rs/gio.git";  }
+glib = "0.9"
+gdk = "0.12"
+gtk = { version = "0.8", features= ["v3_16"] }
+gio = "0.8"
 log = "0.4"
 gettext-rs= { version = "0.4", features = ["gettext-system"] }
 
-
-[dependencies.gdk]
-package = "gdk4"
-git = "https://github.com/gtk-rs/gdk4";
-
-[dependencies.gtk]
-package = "gtk4"
-git = "https://github.com/gtk-rs/gtk4.git";
-
diff --git a/src/application.rs b/src/application.rs
index 49c83d6..d666ed0 100644
--- a/src/application.rs
+++ b/src/application.rs
@@ -4,27 +4,27 @@ use crate::widgets::Window;
 use gio::prelude::*;
 use gtk::prelude::*;
 use std::env;
-use std::rc::Rc;
+use std::{cell::RefCell, rc::Rc};
 
 pub struct Application {
     app: gtk::Application,
-    window: Rc<Window>,
+    window: RefCell<Rc<Option<Window>>>,
 }
 
 impl Application {
-    pub fn new() -> Self {
+    pub fn new() -> Rc<Self> {
         let app = gtk::Application::new(Some(config::APP_ID), gio::ApplicationFlags::FLAGS_NONE).unwrap();
-        let window = Rc::new(Window::new(&app));
 
-        let application = Self { app, window };
+        let application = Rc::new(Self {
+            app,
+            window: RefCell::new(Rc::new(None)),
+        });
 
-        application.setup_gactions();
-        application.setup_signals();
-        application.setup_css();
+        application.setup_signals(application.clone());
         application
     }
 
-    fn setup_gactions(&self) {
+    fn setup_gactions(&self, application: Rc<Self>) {
         // Quit
         utils::action(
             &self.app,
@@ -37,8 +37,10 @@ impl Application {
         utils::action(
             &self.app,
             "start-tour",
-            clone!(@strong self.window as window => move |_, _| {
-                window.start_tour();
+            clone!(@strong application => move |_, _| {
+                if let Some(window) = &*application.window.borrow().clone() {
+                    window.start_tour();
+                }
             }),
         );
 
@@ -54,32 +56,43 @@ impl Application {
         utils::action(
             &self.app,
             "next-page",
-            clone!(@strong self.window as window => move |_, _| {
-                window.next_page();
+            clone!(@strong application => move |_, _| {
+                if let Some(window) = &*application.window.borrow().clone() {
+                    window.next_page();
+                }
             }),
         );
         utils::action(
             &self.app,
             "previous-page",
-            clone!(@strong self.window as window => move |_, _| {
-                window.previous_page();
+            clone!(@strong application => move |_, _| {
+                if let Some(window) = &*application.window.borrow().clone() {
+                    window.previous_page();
+                }
             }),
         );
         self.app.set_accels_for_action("app.quit", &["<primary>q"]);
     }
 
-    fn setup_signals(&self) {
-        self.app.connect_activate(clone!(@weak self.window.widget as window => move |app| {
-            app.add_window(&window);
-            window.present();
+    fn setup_signals(&self, app: Rc<Self>) {
+        self.app.connect_startup(clone!(@weak app => move |_| {
+            app.setup_css();
+            app.setup_gactions(app.clone());
+        }));
+        self.app.connect_activate(clone!(@weak app => move |gtk_app| {
+           let window = Window::new(&gtk_app);
+            gtk_app.add_window(&window.widget);
+            window.widget.present();
+            window.widget.show_all();
+            app.window.replace(Rc::new(Some(window)));
         }));
     }
 
     fn setup_css(&self) {
         let p = gtk::CssProvider::new();
         gtk::CssProvider::load_from_resource(&p, "/org/gnome/Tour/style.css");
-        if let Some(display) = gdk::Display::get_default() {
-            gtk::StyleContext::add_provider_for_display(&display, &p, 500);
+        if let Some(screen) = gdk::Screen::get_default() {
+            gtk::StyleContext::add_provider_for_screen(&screen, &p, 500);
         }
     }
 
diff --git a/src/config.rs.in b/src/config.rs.in
index 0437846..ac80734 100644
--- a/src/config.rs.in
+++ b/src/config.rs.in
@@ -1,10 +1,10 @@
-pub static APP_ID: &'static str = @APP_ID@;
-pub static PKGDATADIR: &'static str = @PKGDATADIR@;
-pub static PROFILE: &'static str = @PROFILE@;
-pub static NAME_SUFFIX: &'static str = @NAME_SUFFIX@;
-pub static VERSION: &'static str = @VERSION@;
-pub static GETTEXT_PACKAGE: &'static str = @GETTEXT_PACKAGE@;
-pub static LOCALEDIR: &'static str = @LOCALEDIR@;
-pub static DISTRO_NAME: &'static str = @DISTRO_NAME@;
-pub static DISTRO_VERSION: &'static str = @DISTRO_VERSION@;
-pub static DISTRO_ICON_NAME: &'static str = @DISTRO_ICON_NAME@;
+pub static APP_ID: &str = @APP_ID@;
+pub static PKGDATADIR: &str = @PKGDATADIR@;
+pub static PROFILE: &str = @PROFILE@;
+pub static NAME_SUFFIX: &str = @NAME_SUFFIX@;
+pub static VERSION: &str = @VERSION@;
+pub static GETTEXT_PACKAGE: &str = @GETTEXT_PACKAGE@;
+pub static LOCALEDIR: &str = @LOCALEDIR@;
+pub static DISTRO_NAME: &str = @DISTRO_NAME@;
+pub static DISTRO_VERSION: &str = @DISTRO_VERSION@;
+pub static DISTRO_ICON_NAME: &str = @DISTRO_ICON_NAME@;
diff --git a/src/widgets/headerbar.rs b/src/widgets/headerbar.rs
index 3443ffc..bc1fc23 100644
--- a/src/widgets/headerbar.rs
+++ b/src/widgets/headerbar.rs
@@ -4,6 +4,7 @@ use gtk::prelude::*;
 pub struct HeaderBar {
     pub widget: gtk::Stack,
     headerbar: gtk::HeaderBar,
+    title: gtk::Label,
     next_btn: gtk::Button,
 }
 
@@ -11,16 +12,17 @@ impl HeaderBar {
     pub fn new() -> Self {
         let widget = gtk::Stack::new();
         let headerbar = gtk::HeaderBar::new();
+        let title = gtk::Label::new(None);
         let next_btn = gtk::Button::new();
 
-        let headerbar = Self { widget, headerbar, next_btn };
+        let headerbar = Self { widget, headerbar, title, next_btn };
         headerbar.init();
         headerbar
     }
 
     pub fn start_tour(&self) {
         self.widget.set_visible_child_name("pages");
-        self.headerbar.set_show_title_buttons(false);
+        self.headerbar.set_show_close_button(false);
     }
 
     pub fn set_page_nr(&self, page_nr: i32, total_pages: i32) {
@@ -32,23 +34,26 @@ impl HeaderBar {
     }
 
     pub fn set_page_title(&self, title: &str) {
-        self.headerbar.set_title(Some(title));
+        self.title.set_label(title);
     }
 
     pub fn end_tour(&self) {
         self.widget.set_visible_child_name("welcome");
-        self.headerbar.set_show_title_buttons(true);
+        self.headerbar.set_show_close_button(true);
     }
 
     fn init(&self) {
-        self.headerbar.set_show_title_buttons(true);
+        self.headerbar.set_show_close_button(true);
+        self.headerbar.set_custom_title(Some(&self.title));
+        self.title.get_style_context().add_class("title");
+
         self.widget.set_hexpand(true);
         self.widget.set_transition_type(gtk::StackTransitionType::SlideLeftRight);
         self.widget.set_transition_duration(300);
         self.widget.get_style_context().add_class("titlebar");
 
         let container = gtk::HeaderBar::new();
-        container.set_show_title_buttons(true);
+        container.set_show_close_button(true);
         container.set_title(Some(&gettext("Welcome Tour")));
         self.widget.add_named(&container, "welcome");
 
diff --git a/src/widgets/pages/image.rs b/src/widgets/pages/image.rs
index ad72878..a145420 100644
--- a/src/widgets/pages/image.rs
+++ b/src/widgets/pages/image.rs
@@ -52,7 +52,7 @@ impl ImagePageWidget {
         container.set_valign(gtk::Align::Center);
         container.set_property_margin(48);
 
-        let image = gtk::Picture::new_for_resource(Some(&self.resource_uri));
+        let image = gtk::Image::new_from_resource(&self.resource_uri);
         image.set_valign(gtk::Align::Start);
         container.add(&image);
 
diff --git a/src/widgets/pages/welcome.rs b/src/widgets/pages/welcome.rs
index 91dd3a7..ea29a60 100644
--- a/src/widgets/pages/welcome.rs
+++ b/src/widgets/pages/welcome.rs
@@ -22,7 +22,7 @@ impl WelcomePageWidget {
         self.widget.set_margin_top(24);
         self.widget.set_margin_bottom(24);
 
-        let logo = gtk::Image::new_from_icon_name(Some(config::DISTRO_ICON_NAME));
+        let logo = gtk::Image::new_from_icon_name(Some(config::DISTRO_ICON_NAME), gtk::IconSize::Dialog);
         logo.set_pixel_size(196);
         self.widget.add(&logo);
 
diff --git a/src/widgets/paginator.rs b/src/widgets/paginator.rs
index d4a2b41..7cb067d 100644
--- a/src/widgets/paginator.rs
+++ b/src/widgets/paginator.rs
@@ -28,7 +28,7 @@ impl PaginatorWidget {
     }
 
     pub fn get_current_page_nr(&self) -> i32 {
-        self.current_page.borrow().clone()
+        *self.current_page.borrow()
     }
 
     pub fn get_current_page(&self) -> Option<&Box<dyn Pageable>> {
@@ -37,12 +37,12 @@ impl PaginatorWidget {
     }
 
     pub fn next(&self) {
-        let next_page = self.current_page.borrow().clone() + 1;
+        let next_page = *self.current_page.borrow() + 1;
         self.go_to(next_page);
     }
 
     pub fn previous(&self) {
-        let previous_page = self.current_page.borrow().clone() - 1;
+        let previous_page = *self.current_page.borrow() - 1;
         self.go_to(previous_page);
     }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]