So a few things happened since the last thread (https://neurodifferent.me/@alexm/109782999447988651)
A few people (mainly @brainblasted) have been trying the new widgetry in all sorts of apps. I've seen branches of:
- Contacts
- Fractal
- Patterns
- Telegrand
- Nautilus (!!!)
And I use Characters and libadwaita demo for testing myself.
This is probably the most widely-tested wip widget to date in libadwaita 😅
One of the missing pieces last time was undershoot style handling - if we have a flat header bar next to scrolling content, we need to add a border/shadow/whatever if content scrolls down.
I'm not going to detail the problems because I already did it last time (see https://neurodifferent.me/@alexm/109783084155319601), but we ended up with yet another widget replacing GtkBox for this.
The preliminary name for it is AdwToolbarView (I don't particularly love it but don't have better ideas), and it actually allows us to do quite a few other things aside from "make header bars in dual pane view not look borked", even when header bars are not flat:
- Add a window handle to the full thing so search bars etc are automatically draggable - currently they are not even though they look connected to header bars
- Get rid of the borders between header bar, search bar, tab bar etc, like in this mockup: https://gitlab.gnome.org/Teams/Design/os-mockups/-/blob/master/tabs/tabs-borderless.png
- Get rid of double spacing after getting rid of the borders, again like on that mockup. This part is complicated though, I'll explain why in the next toot.
- Have a shadow on the header bar. We never did because if you pack it into a box it will go below the window contents and not above - in a vertical box widgets are drawn top to bottom so header bar is rendered before content, along with its shadow
- Have a property for extending content underneath it. At this point one can use it instead of flap for things like Epiphany header bar in fullscreen.
So while I was not enthusiastic about having a widget for this initially, it seems to be working surprisingly well in practice.