From 7f39205c9242c3da59181bbc6ba49a5ee7e31d56 Mon Sep 17 00:00:00 2001 From: elkowar <5300871+elkowar@users.noreply.github.com> Date: Tue, 20 Oct 2020 22:09:39 +0200 Subject: [PATCH] Fix dumb flooring error in window sizing/positioning calculations (fixes #30) --- src/app.rs | 8 ++++---- src/widgets/widget_definitions.rs | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/app.rs b/src/app.rs index 5fadbd3..e37f9fb 100644 --- a/src/app.rs +++ b/src/app.rs @@ -217,19 +217,19 @@ fn on_screen_changed(window: >k::Window, _old_screen: Option<&gdk::Screen>) { fn get_window_rectangle_in_screen(screen_rect: gdk::Rectangle, pos: Coords, size: Coords) -> gdk::Rectangle { gdk::Rectangle { x: match pos.x { - NumWithUnit::Percent(n) => (screen_rect.width as f64 / 100.0).floor() as i32 * n, + NumWithUnit::Percent(n) => ((screen_rect.width as f64 / 100.0) * n as f64) as i32, NumWithUnit::Pixels(n) => screen_rect.x + n, }, y: match pos.y { - NumWithUnit::Percent(n) => (screen_rect.height as f64 / 100.0).floor() as i32 * n, + NumWithUnit::Percent(n) => ((screen_rect.height as f64 / 100.0) * n as f64) as i32, NumWithUnit::Pixels(n) => screen_rect.y + n, }, width: match size.x { - NumWithUnit::Percent(n) => (screen_rect.width as f64 / 100.0).floor() as i32 * n, + NumWithUnit::Percent(n) => ((screen_rect.width as f64 / 100.0) * n as f64) as i32, NumWithUnit::Pixels(n) => n, }, height: match size.y { - NumWithUnit::Percent(n) => (screen_rect.height as f64 / 100.0).floor() as i32 * n, + NumWithUnit::Percent(n) => ((screen_rect.height as f64 / 100.0) * n as f64) as i32, NumWithUnit::Pixels(n) => n, }, } diff --git a/src/widgets/widget_definitions.rs b/src/widgets/widget_definitions.rs index fd4a2e6..3d0e77a 100644 --- a/src/widgets/widget_definitions.rs +++ b/src/widgets/widget_definitions.rs @@ -270,6 +270,7 @@ fn build_gtk_label(bargs: &mut BuilderArgs) -> Result { let gtk_widget = gtk::Label::new(None); resolve_block!(bargs, gtk_widget, { // @prop - the text to display + // @prop limit-width - maximum count of characters to display prop(text: as_string, limit_width: as_i32 = i32::MAX) { gtk_widget.set_text(&text.chars().take(limit_width as usize).collect::()) },