libhandy issueshttps://source.puri.sm/Librem5/libhandy/-/issues2020-03-25T10:59:00Zhttps://source.puri.sm/Librem5/libhandy/-/issues/184Replace child properties by child objects2020-03-25T10:59:00ZAdrien PlazasReplace child properties by child objectsIn GTK 4, child properties are dropped in favor of accessible objects representing the children (e.g. `GtkStackPage`). What about implementing that logic in Handy 1 to help the later transition to GTK 4? The same way we tend to use a `me...In GTK 4, child properties are dropped in favor of accessible objects representing the children (e.g. `GtkStackPage`). What about implementing that logic in Handy 1 to help the later transition to GTK 4? The same way we tend to use a `measure` method already.https://source.puri.sm/Librem5/libhandy/-/issues/143New widget: Hide headerbar/toolbars when scrolling down2020-03-16T17:35:38ZAdrien PlazasNew widget: Hide headerbar/toolbars when scrolling downOn my Android web browser, when I scroll down the page seems to push the headerbar up, under the shell's top panel, and when I scroll down the page seems to drag the headerbar down from under the top panel. This helps maximizing the cont...On my Android web browser, when I scroll down the page seems to push the headerbar up, under the shell's top panel, and when I scroll down the page seems to drag the headerbar down from under the top panel. This helps maximizing the content area without having to go fullscreen nor making the headerbar hard to reach.
This could likely be implemented as a "floating point" revealer like @exalm knows how to make them, and a scroll surface which would take all the scroll-related events and use them to reveal/conceal the revealer until it's fully revealed or concealed, then it would just let the events pass through.
The tricky part would be gestures like kinetic scrolling, as they would have to work accross the scroll surface and any underlying scroll surface. Maybe it could be implemented by making that revealer a `GtkScrollable` and/or by having `GtkScrolledWindow` and `WebKitWebView` have a signal to first ask if something wants to consume the scroll they computed (returning any remainder), wherever it comes from (direct scroll, kintetic scrolling…).
We also have to take the bottom actionbars into account, we likely could have the headerbar consume the scroll events, and sync the headerbar and the actionbar indpendently from the scrolling.
Design input is likely needed, so cc @tobias.bernard and @sam.hewitt.https://source.puri.sm/Librem5/libhandy/-/issues/74Add HdyApplication and HdyApplicationWindow2019-04-15T07:52:18ZAdrien PlazasAdd HdyApplication and HdyApplicationWindowI am wonder how convenient it would be have an application window implementing common design patterns.
How I see it:
- The window would directly include a `HdyTitlebar` and two `HdyLeaflet`s.
- When adding a column panel, it would auto...I am wonder how convenient it would be have an application window implementing common design patterns.
How I see it:
- The window would directly include a `HdyTitlebar` and two `HdyLeaflet`s.
- When adding a column panel, it would automatically add the matching headerbar.
- All headerbars would be put in the same `HdyHeaderGroup`.
- The currently visible column and the focus mode of the `HdyHeaderGroup` would be automatically synced.
- You could set a panel's horizontal expansion as a packing property.
- Each column would have its own `GtkSizeGroup`.
Problem: I don't know how to handle the automatic headerbars and the UI files yet.
tl;dr: all the basic window layout crafting we now have to document would be handled automatically.
We could go even further than that by giving the "about dialog" infos directly to the window, if it detects it it running in a narrow environment, rather than displaying a dialog it could display an in-window about panel (the toplevel widgets of the window would be stacks), otherwise it would just forward these info to a traditional `GtkAboutDialog`. I'm not sure how useful it would be. This application-level info could be carried by some `HdyApplication`.