Update to new lib versions, small cleanup

This commit is contained in:
daa84 2017-08-16 12:41:22 +03:00
parent ab98faa157
commit 367a7815f8
3 changed files with 294 additions and 234 deletions

162
Cargo.lock generated
View File

@ -20,9 +20,9 @@ dependencies = [
"pangocairo 0.1.3 (git+https://github.com/RazrFalcon/pangocairo-rs)", "pangocairo 0.1.3 (git+https://github.com/RazrFalcon/pangocairo-rs)",
"phf 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)", "phf 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)",
"phf_codegen 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)", "phf_codegen 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
"toml 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -36,15 +36,20 @@ dependencies = [
[[package]] [[package]]
name = "atk-sys" name = "atk-sys"
version = "0.3.4" version = "0.3.4"
source = "git+https://github.com/gtk-rs/sys#9354d21dfdb9174bfecafbd75cf2a7c0c8ba5759" source = "git+https://github.com/gtk-rs/sys#af83826e0a31f68bcddee17d3791fb01453dc632"
dependencies = [ dependencies = [
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]]
name = "bitflags"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "0.9.1" version = "0.9.1"
@ -63,21 +68,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "cairo-rs" name = "cairo-rs"
version = "0.1.3" version = "0.1.3"
source = "git+https://github.com/gtk-rs/cairo#ef0c3315a57b5cd7134801779c111c6b7d84a410" source = "git+https://github.com/gtk-rs/cairo#7ab279c6393f87d86019671dda5206622e68fb7d"
dependencies = [ dependencies = [
"c_vec 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "c_vec 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.3.4 (git+https://github.com/gtk-rs/cairo)", "cairo-sys-rs 0.3.4 (git+https://github.com/gtk-rs/cairo)",
"glib 0.1.3 (git+https://github.com/gtk-rs/glib)", "glib 0.1.3 (git+https://github.com/gtk-rs/glib)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "cairo-sys-rs" name = "cairo-sys-rs"
version = "0.3.4" version = "0.3.4"
source = "git+https://github.com/gtk-rs/cairo#ef0c3315a57b5cd7134801779c111c6b7d84a410" source = "git+https://github.com/gtk-rs/cairo#7ab279c6393f87d86019671dda5206622e68fb7d"
dependencies = [ dependencies = [
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -87,6 +93,19 @@ name = "cfg-if"
version = "0.1.2" version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "conv"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"custom_derive 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "custom_derive"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "env_logger" name = "env_logger"
version = "0.4.3" version = "0.4.3"
@ -99,7 +118,7 @@ dependencies = [
[[package]] [[package]]
name = "gdk" name = "gdk"
version = "0.5.3" version = "0.5.3"
source = "git+https://github.com/gtk-rs/gdk#6f6487a46874be4e96659f6697b480a8345d2690" source = "git+https://github.com/gtk-rs/gdk#cdb612c726c6b5e507534dcdd1dc549459b3869a"
dependencies = [ dependencies = [
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-rs 0.1.3 (git+https://github.com/gtk-rs/cairo)", "cairo-rs 0.1.3 (git+https://github.com/gtk-rs/cairo)",
@ -110,37 +129,39 @@ dependencies = [
"glib 0.1.3 (git+https://github.com/gtk-rs/glib)", "glib 0.1.3 (git+https://github.com/gtk-rs/glib)",
"glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"pango 0.1.3 (git+https://github.com/gtk-rs/pango)", "pango 0.1.3 (git+https://github.com/gtk-rs/pango)",
] ]
[[package]] [[package]]
name = "gdk-pixbuf" name = "gdk-pixbuf"
version = "0.1.3" version = "0.1.3"
source = "git+https://github.com/gtk-rs/gdk-pixbuf#1888102253747deda678d0ec99b7e4f018c8a6d0" source = "git+https://github.com/gtk-rs/gdk-pixbuf#cc1c9ab464bcf58624c3969cbe080292f98a43cf"
dependencies = [ dependencies = [
"gdk-pixbuf-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gdk-pixbuf-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"glib 0.1.3 (git+https://github.com/gtk-rs/glib)", "glib 0.1.3 (git+https://github.com/gtk-rs/glib)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "gdk-pixbuf-sys" name = "gdk-pixbuf-sys"
version = "0.3.4" version = "0.3.4"
source = "git+https://github.com/gtk-rs/sys#9354d21dfdb9174bfecafbd75cf2a7c0c8ba5759" source = "git+https://github.com/gtk-rs/sys#af83826e0a31f68bcddee17d3791fb01453dc632"
dependencies = [ dependencies = [
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gio-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "gdk-sys" name = "gdk-sys"
version = "0.3.4" version = "0.3.4"
source = "git+https://github.com/gtk-rs/sys#9354d21dfdb9174bfecafbd75cf2a7c0c8ba5759" source = "git+https://github.com/gtk-rs/sys#af83826e0a31f68bcddee17d3791fb01453dc632"
dependencies = [ dependencies = [
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.3.4 (git+https://github.com/gtk-rs/cairo)", "cairo-sys-rs 0.3.4 (git+https://github.com/gtk-rs/cairo)",
@ -148,7 +169,7 @@ dependencies = [
"gio-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gio-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"pango-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "pango-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -156,65 +177,65 @@ dependencies = [
[[package]] [[package]]
name = "gio" name = "gio"
version = "0.1.3" version = "0.1.3"
source = "git+https://github.com/gtk-rs/gio#795aafa2a0ade0bdaec86f96f1bc85b0363f6793" source = "git+https://github.com/gtk-rs/gio#2b2b061baf5c9410b3faac0fff28650dc773e750"
dependencies = [ dependencies = [
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gio-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"glib 0.1.3 (git+https://github.com/gtk-rs/glib)", "glib 0.1.3 (git+https://github.com/gtk-rs/glib)",
"glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "gio-sys" name = "gio-sys"
version = "0.3.4" version = "0.3.4"
source = "git+https://github.com/gtk-rs/sys#9354d21dfdb9174bfecafbd75cf2a7c0c8ba5759" source = "git+https://github.com/gtk-rs/sys#af83826e0a31f68bcddee17d3791fb01453dc632"
dependencies = [ dependencies = [
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "glib" name = "glib"
version = "0.1.3" version = "0.1.3"
source = "git+https://github.com/gtk-rs/glib#f874842c0a660165c08c2b522551cd6673431b39" source = "git+https://github.com/gtk-rs/glib#dc304963b10e8950b71a73ab7c9620c931ef7950"
dependencies = [ dependencies = [
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"lazy_static 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "glib-sys" name = "glib-sys"
version = "0.3.4" version = "0.3.4"
source = "git+https://github.com/gtk-rs/sys#9354d21dfdb9174bfecafbd75cf2a7c0c8ba5759" source = "git+https://github.com/gtk-rs/sys#af83826e0a31f68bcddee17d3791fb01453dc632"
dependencies = [ dependencies = [
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "gobject-sys" name = "gobject-sys"
version = "0.3.4" version = "0.3.4"
source = "git+https://github.com/gtk-rs/sys#9354d21dfdb9174bfecafbd75cf2a7c0c8ba5759" source = "git+https://github.com/gtk-rs/sys#af83826e0a31f68bcddee17d3791fb01453dc632"
dependencies = [ dependencies = [
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "gtk" name = "gtk"
version = "0.1.3" version = "0.1.3"
source = "git+https://github.com/gtk-rs/gtk#d2aa123e5d791affb681347e42b73cb383ab620b" source = "git+https://github.com/gtk-rs/gtk#d3fb35605254f794c4cf669f49d0cdfe09dfc9dc"
dependencies = [ dependencies = [
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-rs 0.1.3 (git+https://github.com/gtk-rs/cairo)", "cairo-rs 0.1.3 (git+https://github.com/gtk-rs/cairo)",
@ -229,14 +250,14 @@ dependencies = [
"glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gtk-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gtk-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"pango 0.1.3 (git+https://github.com/gtk-rs/pango)", "pango 0.1.3 (git+https://github.com/gtk-rs/pango)",
] ]
[[package]] [[package]]
name = "gtk-sys" name = "gtk-sys"
version = "0.3.4" version = "0.3.4"
source = "git+https://github.com/gtk-rs/sys#9354d21dfdb9174bfecafbd75cf2a7c0c8ba5759" source = "git+https://github.com/gtk-rs/sys#af83826e0a31f68bcddee17d3791fb01453dc632"
dependencies = [ dependencies = [
"atk-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "atk-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
@ -246,7 +267,7 @@ dependencies = [
"gio-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gio-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"pango-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "pango-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -263,7 +284,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.26" version = "0.2.29"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
@ -271,12 +292,29 @@ name = "log"
version = "0.3.8" version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "magenta"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"conv 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
"magenta-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "magenta-sys"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "1.0.1" version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -292,39 +330,43 @@ dependencies = [
[[package]] [[package]]
name = "num-traits" name = "num-traits"
version = "0.1.39" version = "0.1.40"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "pango" name = "pango"
version = "0.1.3" version = "0.1.3"
source = "git+https://github.com/gtk-rs/pango#6ab128152a174a84cf32bfedffa337792d0ca9e4" source = "git+https://github.com/gtk-rs/pango#df1ed7040f41aba0266fabf1c000e36d77c75106"
dependencies = [ dependencies = [
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.1.3 (git+https://github.com/gtk-rs/glib)", "glib 0.1.3 (git+https://github.com/gtk-rs/glib)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"pango-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "pango-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
] ]
[[package]] [[package]]
name = "pango-sys" name = "pango-sys"
version = "0.3.4" version = "0.3.4"
source = "git+https://github.com/gtk-rs/sys#9354d21dfdb9174bfecafbd75cf2a7c0c8ba5759" source = "git+https://github.com/gtk-rs/sys#af83826e0a31f68bcddee17d3791fb01453dc632"
dependencies = [ dependencies = [
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "pangocairo" name = "pangocairo"
version = "0.1.3" version = "0.1.3"
source = "git+https://github.com/RazrFalcon/pangocairo-rs#55478cb05eb716e262d3a88777995d4aa33146a0" source = "git+https://github.com/RazrFalcon/pangocairo-rs#ad91334f8a9a473b767c045d001d373038fd6db1"
dependencies = [ dependencies = [
"cairo-rs 0.1.3 (git+https://github.com/gtk-rs/cairo)", "cairo-rs 0.1.3 (git+https://github.com/gtk-rs/cairo)",
"glib 0.1.3 (git+https://github.com/gtk-rs/glib)", "glib 0.1.3 (git+https://github.com/gtk-rs/glib)",
"glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"gobject-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"pango 0.1.3 (git+https://github.com/gtk-rs/pango)", "pango 0.1.3 (git+https://github.com/gtk-rs/pango)",
"pango-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "pango-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"pangocairo-sys 0.3.4 (git+https://github.com/RazrFalcon/pangocairo-rs)", "pangocairo-sys 0.3.4 (git+https://github.com/RazrFalcon/pangocairo-rs)",
@ -333,11 +375,11 @@ dependencies = [
[[package]] [[package]]
name = "pangocairo-sys" name = "pangocairo-sys"
version = "0.3.4" version = "0.3.4"
source = "git+https://github.com/RazrFalcon/pangocairo-rs#55478cb05eb716e262d3a88777995d4aa33146a0" source = "git+https://github.com/RazrFalcon/pangocairo-rs#ad91334f8a9a473b767c045d001d373038fd6db1"
dependencies = [ dependencies = [
"cairo-sys-rs 0.3.4 (git+https://github.com/gtk-rs/cairo)", "cairo-sys-rs 0.3.4 (git+https://github.com/gtk-rs/cairo)",
"glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "glib-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"pango-sys 0.3.4 (git+https://github.com/gtk-rs/sys)", "pango-sys 0.3.4 (git+https://github.com/gtk-rs/sys)",
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -365,7 +407,7 @@ version = "0.7.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"phf_shared 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)", "phf_shared 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -388,10 +430,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "rand" name = "rand"
version = "0.3.15" version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
"magenta 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -417,7 +460,7 @@ version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"byteorder 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"num-traits 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -425,18 +468,18 @@ name = "rmpv"
version = "0.3.4" version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"num-traits 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
"rmp 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)", "rmp 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.9" version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.9" version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
@ -487,10 +530,10 @@ dependencies = [
[[package]] [[package]]
name = "toml" name = "toml"
version = "0.4.2" version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"serde 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -504,7 +547,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -533,12 +576,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[metadata] [metadata]
"checksum aho-corasick 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "500909c4f87a9e52355b26626d890833e9e1d53ac566db76c36faa984b889699" "checksum aho-corasick 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "500909c4f87a9e52355b26626d890833e9e1d53ac566db76c36faa984b889699"
"checksum atk-sys 0.3.4 (git+https://github.com/gtk-rs/sys)" = "<none>" "checksum atk-sys 0.3.4 (git+https://github.com/gtk-rs/sys)" = "<none>"
"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" "checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5"
"checksum byteorder 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff81738b726f5d099632ceaffe7fb65b90212e8dce59d518729e7e8634032d3d" "checksum byteorder 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff81738b726f5d099632ceaffe7fb65b90212e8dce59d518729e7e8634032d3d"
"checksum c_vec 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6237ac5a4b1e81c213c24c6437964c61e646df910a914b4ab1487b46df20bd13" "checksum c_vec 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6237ac5a4b1e81c213c24c6437964c61e646df910a914b4ab1487b46df20bd13"
"checksum cairo-rs 0.1.3 (git+https://github.com/gtk-rs/cairo)" = "<none>" "checksum cairo-rs 0.1.3 (git+https://github.com/gtk-rs/cairo)" = "<none>"
"checksum cairo-sys-rs 0.3.4 (git+https://github.com/gtk-rs/cairo)" = "<none>" "checksum cairo-sys-rs 0.3.4 (git+https://github.com/gtk-rs/cairo)" = "<none>"
"checksum cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de" "checksum cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de"
"checksum conv 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d1299"
"checksum custom_derive 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9"
"checksum env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b" "checksum env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b"
"checksum gdk 0.5.3 (git+https://github.com/gtk-rs/gdk)" = "<none>" "checksum gdk 0.5.3 (git+https://github.com/gtk-rs/gdk)" = "<none>"
"checksum gdk-pixbuf 0.1.3 (git+https://github.com/gtk-rs/gdk-pixbuf)" = "<none>" "checksum gdk-pixbuf 0.1.3 (git+https://github.com/gtk-rs/gdk-pixbuf)" = "<none>"
@ -553,11 +599,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum gtk-sys 0.3.4 (git+https://github.com/gtk-rs/sys)" = "<none>" "checksum gtk-sys 0.3.4 (git+https://github.com/gtk-rs/sys)" = "<none>"
"checksum htmlescape 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163" "checksum htmlescape 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e9025058dae765dee5070ec375f591e2ba14638c63feff74f13805a72e523163"
"checksum lazy_static 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3b37545ab726dd833ec6420aaba8231c5b320814b9029ad585555d2a03e94fbf" "checksum lazy_static 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3b37545ab726dd833ec6420aaba8231c5b320814b9029ad585555d2a03e94fbf"
"checksum libc 0.2.26 (registry+https://github.com/rust-lang/crates.io-index)" = "30885bcb161cf67054244d10d4a7f4835ffd58773bc72e07d35fecf472295503" "checksum libc 0.2.29 (registry+https://github.com/rust-lang/crates.io-index)" = "8a014d9226c2cc402676fbe9ea2e15dd5222cd1dd57f576b5b283178c944a264"
"checksum log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "880f77541efa6e5cc74e76910c9884d9859683118839d6a1dc3b11e63512565b" "checksum log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "880f77541efa6e5cc74e76910c9884d9859683118839d6a1dc3b11e63512565b"
"checksum magenta 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4bf0336886480e671965f794bc9b6fce88503563013d1bfb7a502c81fe3ac527"
"checksum magenta-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40d014c7011ac470ae28e2f76a02bfea4a8480f73e701353b49ad7a8d75f4699"
"checksum memchr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1dbccc0e46f1ea47b9f17e6d67c5a96bd27030519c519c9c91327e31275a47b4" "checksum memchr 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1dbccc0e46f1ea47b9f17e6d67c5a96bd27030519c519c9c91327e31275a47b4"
"checksum neovim-lib 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cd81cd2140309fcbe61775ebe5901b0730e5fdae2558a6cd27539e6e730fa76a" "checksum neovim-lib 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cd81cd2140309fcbe61775ebe5901b0730e5fdae2558a6cd27539e6e730fa76a"
"checksum num-traits 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "1708c0628602a98b52fad936cf3edb9a107af06e52e49fdf0707e884456a6af6" "checksum num-traits 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "99843c856d68d8b4313b03a17e33c4bb42ae8f6610ea81b28abe076ac721b9b0"
"checksum pango 0.1.3 (git+https://github.com/gtk-rs/pango)" = "<none>" "checksum pango 0.1.3 (git+https://github.com/gtk-rs/pango)" = "<none>"
"checksum pango-sys 0.3.4 (git+https://github.com/gtk-rs/sys)" = "<none>" "checksum pango-sys 0.3.4 (git+https://github.com/gtk-rs/sys)" = "<none>"
"checksum pangocairo 0.1.3 (git+https://github.com/RazrFalcon/pangocairo-rs)" = "<none>" "checksum pangocairo 0.1.3 (git+https://github.com/RazrFalcon/pangocairo-rs)" = "<none>"
@ -568,19 +616,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum phf_shared 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)" = "07e24b0ca9643bdecd0632f2b3da6b1b89bbb0030e0b992afc1113b23a7bc2f2" "checksum phf_shared 0.7.21 (registry+https://github.com/rust-lang/crates.io-index)" = "07e24b0ca9643bdecd0632f2b3da6b1b89bbb0030e0b992afc1113b23a7bc2f2"
"checksum pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903" "checksum pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903"
"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" "checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
"checksum rand 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "022e0636ec2519ddae48154b028864bdce4eaf7d35226ab8e65c611be97b189d" "checksum rand 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "eb250fd207a4729c976794d03db689c9be1d634ab5a1c9da9492a13d8fecbcdf"
"checksum regex 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1731164734096285ec2a5ec7fea5248ae2f5485b3feeb0115af4fda2183b2d1b" "checksum regex 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1731164734096285ec2a5ec7fea5248ae2f5485b3feeb0115af4fda2183b2d1b"
"checksum regex-syntax 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad890a5eef7953f55427c50575c680c42841653abd2b028b68cd223d157f62db" "checksum regex-syntax 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad890a5eef7953f55427c50575c680c42841653abd2b028b68cd223d157f62db"
"checksum rmp 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7ce560a5728f4eec697f07f8d7fa20608893d44b4f5b8f9f5f51a2987f3cffe2" "checksum rmp 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7ce560a5728f4eec697f07f8d7fa20608893d44b4f5b8f9f5f51a2987f3cffe2"
"checksum rmpv 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "45368daa6c60116376d8813ec6a2556df640229709becb8f80df1651f882e7af" "checksum rmpv 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "45368daa6c60116376d8813ec6a2556df640229709becb8f80df1651f882e7af"
"checksum serde 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6a7c6b751a2e8d5df57a5ff71b5b4fc8aaee9ee28ff1341d640dd130bb5f4f7a" "checksum serde 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)" = "f7726f29ddf9731b17ff113c461e362c381d9d69433f79de4f3dd572488823e9"
"checksum serde_derive 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "2f6ca58905ebd3c3b285a8a6d4f3ac92b92c0d7951d5649b1bdd212549c06639" "checksum serde_derive 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cf823e706be268e73e7747b147aa31c8f633ab4ba31f115efb57e5047c3a76dd"
"checksum serde_derive_internals 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)" = "37aee4e0da52d801acfbc0cc219eb1eda7142112339726e427926a6f6ee65d3a" "checksum serde_derive_internals 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)" = "37aee4e0da52d801acfbc0cc219eb1eda7142112339726e427926a6f6ee65d3a"
"checksum siphasher 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0df90a788073e8d0235a67e50441d47db7c8ad9debd91cbf43736a2a92d36537" "checksum siphasher 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0df90a788073e8d0235a67e50441d47db7c8ad9debd91cbf43736a2a92d36537"
"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" "checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" "checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
"checksum thread_local 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1697c4b57aeeb7a536b647165a2825faddffb1d3bad386d507709bd51a90bb14" "checksum thread_local 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1697c4b57aeeb7a536b647165a2825faddffb1d3bad386d507709bd51a90bb14"
"checksum toml 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b0601da6c97135c8d330c7a13a013ca6cd4143221b01de2f8d4edc50a9e551c7" "checksum toml 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a7540f4ffc193e0d3c94121edb19b055670d369f77d5804db11ae053a45b6e7e"
"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" "checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
"checksum unix_socket 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6aa2700417c405c38f5e6902d699345241c28c0b7ade4abaad71e35a87eb1564" "checksum unix_socket 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6aa2700417c405c38f5e6902d699345241c28c0b7ade4abaad71e35a87eb1564"
"checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56"

View File

@ -134,7 +134,8 @@ impl State {
} }
pub fn set_detach_cb<F>(&mut self, cb: Option<F>) pub fn set_detach_cb<F>(&mut self, cb: Option<F>)
where F: FnMut() + Send + 'static where
F: FnMut() + Send + 'static,
{ {
if cb.is_some() { if cb.is_some() {
self.detach_cb = Some(Box::new(RefCell::new(cb.unwrap()))); self.detach_cb = Some(Box::new(RefCell::new(cb.unwrap())));
@ -227,7 +228,7 @@ impl State {
let desc = self.create_pango_font(); let desc = self.create_pango_font();
layout.set_font_description(Some(&desc)); layout.set_font_description(Some(&desc));
layout.set_text("A", -1); layout.set_text("A");
layout.get_pixel_size() layout.get_pixel_size()
} }
@ -244,8 +245,10 @@ impl State {
if let Some(line_height) = self.line_height { if let Some(line_height) = self.line_height {
if let Some(char_width) = self.char_width { if let Some(char_width) = self.char_width {
let alloc = self.drawing_area.get_allocation(); let alloc = self.drawing_area.get_allocation();
return Some(((alloc.width as f64 / char_width).trunc() as usize, return Some((
(alloc.height as f64 / line_height).trunc() as usize)); (alloc.width as f64 / char_width).trunc() as usize,
(alloc.height as f64 / line_height).trunc() as usize,
));
} }
} }
@ -255,9 +258,9 @@ impl State {
fn show_error_area(&self) { fn show_error_area(&self) {
let stack = self.stack.clone(); let stack = self.stack.clone();
gtk::idle_add(move || { gtk::idle_add(move || {
stack.set_visible_child_name("Error"); stack.set_visible_child_name("Error");
Continue(false) Continue(false)
}); });
} }
} }
@ -332,114 +335,106 @@ impl Shell {
self.widget.pack_start(&state.stack, true, true, 0); self.widget.pack_start(&state.stack, true, true, 0);
state state.drawing_area.set_events(
.drawing_area (gdk_sys::GDK_BUTTON_RELEASE_MASK | gdk_sys::GDK_BUTTON_PRESS_MASK |
.set_events((gdk_sys::GDK_BUTTON_RELEASE_MASK | gdk_sys::GDK_BUTTON_PRESS_MASK | gdk_sys::GDK_BUTTON_MOTION_MASK |
gdk_sys::GDK_BUTTON_MOTION_MASK | gdk_sys::GDK_SCROLL_MASK)
gdk_sys::GDK_SCROLL_MASK) .bits() as i32,
.bits() as i32); );
let ref_state = self.state.clone(); let ref_state = self.state.clone();
let ref_ui_state = self.ui_state.clone(); let ref_ui_state = self.ui_state.clone();
state state.drawing_area.connect_button_press_event(move |_, ev| {
.drawing_area gtk_button_press(
.connect_button_press_event(move |_, ev| { &mut *ref_state.borrow_mut(),
gtk_button_press(&mut *ref_state.borrow_mut(), &mut *ref_ui_state.borrow_mut(),
&mut *ref_ui_state.borrow_mut(), ev,
ev) )
}); });
let ref_ui_state = self.ui_state.clone(); let ref_ui_state = self.ui_state.clone();
state state.drawing_area.connect_button_release_event(
.drawing_area move |_, _| {
.connect_button_release_event(move |_, _| { gtk_button_release(&mut *ref_ui_state.borrow_mut())
gtk_button_release(&mut *ref_ui_state.borrow_mut()) },
}); );
let ref_state = self.state.clone(); let ref_state = self.state.clone();
let ref_ui_state = self.ui_state.clone(); let ref_ui_state = self.ui_state.clone();
state state.drawing_area.connect_motion_notify_event(
.drawing_area move |_, ev| {
.connect_motion_notify_event(move |_, ev| { gtk_motion_notify(
gtk_motion_notify(&mut *ref_state.borrow_mut(), &mut *ref_state.borrow_mut(),
&mut *ref_ui_state.borrow_mut(), &mut *ref_ui_state.borrow_mut(),
ev) ev,
}); )
},
);
let ref_state = self.state.clone(); let ref_state = self.state.clone();
state state.drawing_area.connect_draw(
.drawing_area move |_, ctx| gtk_draw(&ref_state, ctx),
.connect_draw(move |_, ctx| gtk_draw(&ref_state, ctx)); );
let ref_state = self.state.clone(); let ref_state = self.state.clone();
state state.drawing_area.connect_key_press_event(move |_, ev| {
.drawing_area let mut shell = ref_state.borrow_mut();
.connect_key_press_event(move |_, ev| { shell.cursor.as_mut().unwrap().reset_state();
let mut shell = ref_state.borrow_mut(); // GtkIMContext will eat a Shift-Space and not tell us about shift.
shell.cursor.as_mut().unwrap().reset_state(); // Also don't let IME eat any GDK_KEY_KP_ events
// TODO: improve if !ev.get_state().contains(gdk::SHIFT_MASK) &&
// GtkIMContext will eat a Shift-Space and not tell us about shift. ev.get_keyval() < gdk_sys::GDK_KEY_KP_Space as u32 &&
// Also don't let IME eat any GDK_KEY_KP_ events ev.get_keyval() > gdk_sys::GDK_KEY_KP_Divide as u32 &&
if !ev.get_state().contains(gdk::SHIFT_MASK) && shell.im_context.filter_keypress(ev)
ev.get_keyval() < gdk_sys::GDK_KEY_KP_Space as u32 && {
ev.get_keyval() > gdk_sys::GDK_KEY_KP_Divide as u32 && Inhibit(true)
shell.im_context.filter_keypress(ev) { } else {
println!("Filter"); if shell.nvim.borrow().is_initialized() {
Inhibit(true) input::gtk_key_press(&mut shell.nvim.borrow_mut(), ev)
} else { } else {
if shell.nvim.borrow().is_initialized() { Inhibit(false)
input::gtk_key_press(&mut shell.nvim.borrow_mut(), ev)
} else {
Inhibit(false)
}
} }
}); }
});
let ref_state = self.state.clone(); let ref_state = self.state.clone();
state state.drawing_area.connect_key_release_event(move |_, ev| {
.drawing_area ref_state.borrow().im_context.filter_keypress(ev);
.connect_key_release_event(move |_, ev| { Inhibit(false)
ref_state.borrow().im_context.filter_keypress(ev); });
Inhibit(false)
});
let ref_state = self.state.clone(); let ref_state = self.state.clone();
state state.drawing_area.connect_scroll_event(move |_, ev| {
.drawing_area gtk_scroll_event(&mut *ref_state.borrow_mut(), ev)
.connect_scroll_event(move |_, ev| gtk_scroll_event(&mut *ref_state.borrow_mut(), ev)); });
let ref_state = self.state.clone(); let ref_state = self.state.clone();
state state.drawing_area.connect_focus_in_event(move |_, _| {
.drawing_area gtk_focus_in(&mut *ref_state.borrow_mut())
.connect_focus_in_event(move |_, _| gtk_focus_in(&mut *ref_state.borrow_mut())); });
let ref_state = self.state.clone(); let ref_state = self.state.clone();
state state.drawing_area.connect_focus_out_event(move |_, _| {
.drawing_area gtk_focus_out(&mut *ref_state.borrow_mut())
.connect_focus_out_event(move |_, _| gtk_focus_out(&mut *ref_state.borrow_mut())); });
let ref_state = self.state.clone(); let ref_state = self.state.clone();
state state.drawing_area.connect_realize(move |w| {
.drawing_area ref_state.borrow().im_context.set_client_window(
.connect_realize(move |w| { w.get_window().as_ref(),
ref_state )
.borrow() });
.im_context
.set_client_window(w.get_window().as_ref())
});
let ref_state = self.state.clone(); let ref_state = self.state.clone();
state state.im_context.connect_commit(move |_, ch| {
.im_context ref_state.borrow().im_commit(ch)
.connect_commit(move |_, ch| ref_state.borrow().im_commit(ch)); });
let ref_state = self.state.clone(); let ref_state = self.state.clone();
state state.drawing_area.connect_configure_event(move |_, _| {
.drawing_area try_nvim_resize(&ref_state);
.connect_configure_event(move |_, _| { false
try_nvim_resize(&ref_state); });
false
});
} }
#[cfg(unix)] #[cfg(unix)]
@ -488,7 +483,8 @@ impl Shell {
} }
pub fn set_detach_cb<F>(&self, cb: Option<F>) pub fn set_detach_cb<F>(&self, cb: Option<F>)
where F: FnMut() + Send + 'static where
F: FnMut() + Send + 'static,
{ {
let mut state = self.state.borrow_mut(); let mut state = self.state.borrow_mut();
state.set_detach_cb(cb); state.set_detach_cb(cb);
@ -567,8 +563,9 @@ fn mouse_input(shell: &mut State, input: &str, state: ModifierType, position: (f
let col = (x / char_width).trunc() as u64; let col = (x / char_width).trunc() as u64;
let row = (y / line_height).trunc() as u64; let row = (y / line_height).trunc() as u64;
let input_str = format!("{}<{},{}>", keyval_to_input_string(input, state), col, row); let input_str = format!("{}<{},{}>", keyval_to_input_string(input, state), col, row);
nvim.input(&input_str) nvim.input(&input_str).expect(
.expect("Can't send mouse input event"); "Can't send mouse input event",
);
} }
} }
} }
@ -619,32 +616,34 @@ fn show_nvim_start_error(err: nvim::NvimInitError, state_arc: Arc<UiMutex<State>
let cmd = err.cmd().unwrap().to_owned(); let cmd = err.cmd().unwrap().to_owned();
glib::idle_add(move || { glib::idle_add(move || {
let state = state_arc.borrow(); let state = state_arc.borrow();
state.nvim.borrow_mut().set_error(); state.nvim.borrow_mut().set_error();
state.error_area.show_nvim_start_error(&source, &cmd); state.error_area.show_nvim_start_error(&source, &cmd);
state.show_error_area(); state.show_error_area();
Continue(false) Continue(false)
}); });
} }
fn show_nvim_init_error(err: nvim::NvimInitError, state_arc: Arc<UiMutex<State>>) { fn show_nvim_init_error(err: nvim::NvimInitError, state_arc: Arc<UiMutex<State>>) {
let source = err.source(); let source = err.source();
glib::idle_add(move || { glib::idle_add(move || {
let state = state_arc.borrow(); let state = state_arc.borrow();
state.nvim.borrow_mut().set_error(); state.nvim.borrow_mut().set_error();
state.error_area.show_nvim_init_error(&source); state.error_area.show_nvim_init_error(&source);
state.show_error_area(); state.show_error_area();
Continue(false) Continue(false)
}); });
} }
fn init_nvim_async(state_arc: Arc<UiMutex<State>>, fn init_nvim_async(
options: ShellOptions, state_arc: Arc<UiMutex<State>>,
cols: usize, options: ShellOptions,
rows: usize) { cols: usize,
rows: usize,
) {
// execute nvim // execute nvim
let mut nvim = match nvim::start(state_arc.clone(), options.nvim_bin_path.as_ref()) { let mut nvim = match nvim::start(state_arc.clone(), options.nvim_bin_path.as_ref()) {
Ok(nvim) => nvim, Ok(nvim) => nvim,
@ -658,19 +657,22 @@ fn init_nvim_async(state_arc: Arc<UiMutex<State>>,
let guard = nvim.session.take_dispatch_guard(); let guard = nvim.session.take_dispatch_guard();
let state_ref = state_arc.clone(); let state_ref = state_arc.clone();
thread::spawn(move || { thread::spawn(move || {
guard.join().expect("Can't join dispatch thread"); guard.join().expect("Can't join dispatch thread");
idle_cb_call!(state_ref.detach_cb()); idle_cb_call!(state_ref.detach_cb());
}); });
// attach ui // attach ui
let mut nvim = Some(nvim); let mut nvim = Some(nvim);
glib::idle_add(move || { glib::idle_add(move || {
let mut nvim = nvim.take().unwrap(); let mut nvim = nvim.take().unwrap();
if let Err(err) = nvim::post_start_init(&mut nvim, if let Err(err) = nvim::post_start_init(
options.open_path.as_ref(), &mut nvim,
cols as u64, options.open_path.as_ref(),
rows as u64) { cols as u64,
rows as u64,
)
{
show_nvim_init_error(err, state_arc.clone()); show_nvim_init_error(err, state_arc.clone());
} else { } else {
let mut state = state_arc.borrow_mut(); let mut state = state_arc.borrow_mut();
@ -698,11 +700,12 @@ fn init_nvim(state_arc: &Arc<UiMutex<State>>) {
} }
#[inline] #[inline]
fn get_model_clip(state: &State, fn get_model_clip(
line_height: f64, state: &State,
char_width: f64, line_height: f64,
clip: (f64, f64, f64, f64)) char_width: f64,
-> ModelRect { clip: (f64, f64, f64, f64),
) -> ModelRect {
let mut model_clip = let mut model_clip =
ModelRect::from_area(line_height, char_width, clip.0, clip.1, clip.2, clip.3); ModelRect::from_area(line_height, char_width, clip.0, clip.1, clip.2, clip.3);
// in some cases symbols from previous row affect next row // in some cases symbols from previous row affect next row
@ -716,12 +719,14 @@ fn get_model_clip(state: &State,
} }
#[inline] #[inline]
fn draw_backgound(state: &State, fn draw_backgound(
draw_bitmap: &ModelBitamp, state: &State,
ctx: &cairo::Context, draw_bitmap: &ModelBitamp,
line_height: f64, ctx: &cairo::Context,
char_width: f64, line_height: f64,
model_clip: &ModelRect) { char_width: f64,
model_clip: &ModelRect,
) {
let line_x = model_clip.left as f64 * char_width; let line_x = model_clip.left as f64 * char_width;
let mut line_y: f64 = model_clip.top as f64 * line_height; let mut line_y: f64 = model_clip.top as f64 * line_height;
@ -759,7 +764,7 @@ fn draw_initializing(state: &State, ctx: &cairo::Context) {
ctx.paint(); ctx.paint();
layout.set_font_description(&desc); layout.set_font_description(&desc);
layout.set_text("Loading..", -1); layout.set_text("Loading..");
let (width, height) = layout.get_pixel_size(); let (width, height) = layout.get_pixel_size();
let x = alloc.width as f64 / 2.0 - width as f64 / 2.0; let x = alloc.width as f64 / 2.0 - width as f64 / 2.0;
@ -772,17 +777,15 @@ fn draw_initializing(state: &State, ctx: &cairo::Context) {
ctx.move_to(x + width as f64, y); ctx.move_to(x + width as f64, y);
state state.cursor.as_ref().unwrap().draw(
.cursor ctx,
.as_ref() state,
.unwrap() char_width,
.draw(ctx, line_height,
state, y,
char_width, false,
line_height, &state.bg_color,
y, );
false,
&state.bg_color);
} }
fn draw(state: &State, ctx: &cairo::Context) { fn draw(state: &State, ctx: &cairo::Context) {
@ -803,21 +806,24 @@ fn draw(state: &State, ctx: &cairo::Context) {
for clip_idx in 0..clip_rects.len() { for clip_idx in 0..clip_rects.len() {
let clip = clip_rects.get(clip_idx).unwrap(); let clip = clip_rects.get(clip_idx).unwrap();
let model_clip = let model_clip = get_model_clip(state, line_height, char_width, (
get_model_clip(state, clip.x,
line_height, clip.y,
char_width, clip.x + clip.width,
(clip.x, clip.y, clip.x + clip.width, clip.y + clip.height)); clip.y + clip.height,
));
let line_x = model_clip.left as f64 * char_width; let line_x = model_clip.left as f64 * char_width;
let mut line_y: f64 = model_clip.top as f64 * line_height; let mut line_y: f64 = model_clip.top as f64 * line_height;
draw_backgound(state, draw_backgound(
&draw_bitmap, state,
ctx, &draw_bitmap,
line_height, ctx,
char_width, line_height,
&model_clip); char_width,
&model_clip,
);
for (line_idx, line) in state.model.clip_model(&model_clip) { for (line_idx, line) in state.model.clip_model(&model_clip) {
@ -832,17 +838,15 @@ fn draw(state: &State, ctx: &cairo::Context) {
let (bg, fg) = state.colors(cell); let (bg, fg) = state.colors(cell);
if row == line_idx && col == col_idx { if row == line_idx && col == col_idx {
state state.cursor.as_ref().unwrap().draw(
.cursor ctx,
.as_ref() state,
.unwrap() char_width,
.draw(ctx, line_height,
state, line_y,
char_width, double_width,
line_height, bg,
line_y, );
double_width,
bg);
ctx.move_to(current_point.0, current_point.1); ctx.move_to(current_point.0, current_point.1);
} }
@ -854,7 +858,7 @@ fn draw(state: &State, ctx: &cairo::Context) {
layout.set_font_description(&desc); layout.set_font_description(&desc);
buf.clear(); buf.clear();
buf.push(cell.ch); buf.push(cell.ch);
layout.set_text(&buf, -1); layout.set_text(&buf);
// correct layout for double_width chars // correct layout for double_width chars
if double_width { if double_width {
@ -1111,19 +1115,26 @@ impl RedrawEvents for State {
RepaintMode::Area(self.model.cur_point()) RepaintMode::Area(self.model.cur_point())
} }
fn popupmenu_show(&mut self, fn popupmenu_show(
menu: &[Vec<&str>], &mut self,
selected: i64, menu: &[Vec<&str>],
row: u64, selected: i64,
col: u64) row: u64,
-> RepaintMode { col: u64,
) -> RepaintMode {
if let (&Some(line_height), &Some(char_width)) = (&self.line_height, &self.char_width) { if let (&Some(line_height), &Some(char_width)) = (&self.line_height, &self.char_width) {
let point = ModelRect::point(col as usize, row as usize); let point = ModelRect::point(col as usize, row as usize);
let (x, y, width, height) = point.to_area(line_height, char_width); let (x, y, width, height) = point.to_area(line_height, char_width);
self.popup_menu self.popup_menu.borrow_mut().show(
.borrow_mut() self,
.show(self, menu, selected, x, y, width, height); menu,
selected,
x,
y,
width,
height,
);
} }
RepaintMode::Nothing RepaintMode::Nothing
@ -1140,19 +1151,21 @@ impl RedrawEvents for State {
} }
fn tabline_update(&mut self, fn tabline_update(
selected: Tabpage, &mut self,
tabs: Vec<(Tabpage, Option<String>)>) selected: Tabpage,
-> RepaintMode { tabs: Vec<(Tabpage, Option<String>)>,
) -> RepaintMode {
self.tabs.update_tabs(&self.nvim, &selected, &tabs); self.tabs.update_tabs(&self.nvim, &selected, &tabs);
RepaintMode::Nothing RepaintMode::Nothing
} }
fn mode_info_set(&mut self, fn mode_info_set(
cursor_style_enabled: bool, &mut self,
mode_info: Vec<nvim::ModeInfo>) cursor_style_enabled: bool,
-> RepaintMode { mode_info: Vec<nvim::ModeInfo>,
) -> RepaintMode {
self.mode.set_info(cursor_style_enabled, mode_info); self.mode.set_info(cursor_style_enabled, mode_info);
RepaintMode::Nothing RepaintMode::Nothing
} }

View File

@ -6,7 +6,6 @@ use std::sync::Arc;
use gtk; use gtk;
use gtk_sys; use gtk_sys;
use gtk::prelude::*; use gtk::prelude::*;
use gtk::ApplicationExt;
use gtk::{ApplicationWindow, HeaderBar, ToolButton, Image, AboutDialog}; use gtk::{ApplicationWindow, HeaderBar, ToolButton, Image, AboutDialog};
use gio::prelude::*; use gio::prelude::*;
use gio::{Menu, MenuExt, MenuItem, MenuItemExt, SimpleAction}; use gio::{Menu, MenuExt, MenuItem, MenuItemExt, SimpleAction};