From f96d72654ac5ad43e070ad38f980ac2979c155ff Mon Sep 17 00:00:00 2001 From: Christopher Davis Date: Fri, 19 Apr 2019 02:52:18 -0400 Subject: [PATCH] fractal-gtk: Reduce margins when leaflet is folded Our current margins are a little too big for a mobile screen. So, we reduce them to 6px when we detect that the app is folded with HdyLeaflet. Closes https://gitlab.gnome.org/GNOME/fractal/issues/480 --- fractal-gtk/res/app.css | 12 ++++++++++++ fractal-gtk/src/app/mod.rs | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/fractal-gtk/res/app.css b/fractal-gtk/res/app.css index b968a482..470a9492 100644 --- a/fractal-gtk/res/app.css +++ b/fractal-gtk/res/app.css @@ -327,3 +327,15 @@ button.forgot-password { .error-label { color: @error_color; } + +box.folded-history + > overlay + > scrolledwindow + > viewport + > box + > hdycolumn + > box + > list { + padding-left: 6px; + padding-right: 6px; +} diff --git a/fractal-gtk/src/app/mod.rs b/fractal-gtk/src/app/mod.rs index 0d91fdb4..47dfd04a 100644 --- a/fractal-gtk/src/app/mod.rs +++ b/fractal-gtk/src/app/mod.rs @@ -2,6 +2,7 @@ use gettextrs::{bindtextdomain, setlocale, textdomain, LocaleCategory}; use gio::prelude::*; use gtk; use gtk::prelude::*; +use libhandy::prelude::*; use std::cell::RefCell; use std::ops; use std::rc::{Rc, Weak}; @@ -126,6 +127,39 @@ impl App { window.get_style_context().map(|c| c.add_class("devel")); } + let leaflet = ui + .builder + .get_object::("chat_state_leaflet") + .expect("Can't find chat_state_leaflet in ui file."); + let container = ui + .builder + .get_object::("history_container") + .expect("Can't find history_container in ui file."); + + if let libhandy::Fold::Folded = leaflet.get_fold() { + container + .get_style_context() + .unwrap() + .add_class("folded-history"); + } + + let weak_container = container.downgrade(); + leaflet.connect_property_fold_notify(move |leaflet| { + let container = upgrade_weak!(weak_container); + + match leaflet.get_fold() { + libhandy::Fold::Folded => container + .get_style_context() + .unwrap() + .add_class("folded-history"), + libhandy::Fold::Unfolded => container + .get_style_context() + .unwrap() + .remove_class("folded-history"), + _ => (), + } + }); + let stack = ui .builder .get_object::("main_content_stack")