Posts by exalm@floss.social
(DIR) Post #AHZ9vv6cHDrHWksnHk by exalm@floss.social
2022-03-18T21:36:04Z
0 likes, 1 repeats
And there's libhandy 1.6.1 now... Case in point /o\
(DIR) Post #AHZ9vxC0W9MK03Q7xw by exalm@floss.social
2022-03-18T21:41:00Z
0 likes, 0 repeats
Though not really as the bug is there since monday... Still in a commit made in a haste - and it's in the code that handles dark/hc styles without hardcoding Adwaita. That code is ridiculously complex, and of course Libadwaita is unaffected as it just doesn't try to do that.
(DIR) Post #AIRX9DEk15KafJH1pQ by exalm@floss.social
2022-04-14T01:50:41Z
1 likes, 0 repeats
I made a thing.There have been some talks about things needing to set insets on the window, and Danielle Foré had a Pantheon Mail tweet recently (https://twitter.com/DaniElainaFore/status/1511838960321904642). So I tried to figure out how we could actually nicely do insets like iOS does them.So, this is a pretty hacky demo, and yes, Nostalgia is already doing this, but I wanted to figure out how API for this could look like.
(DIR) Post #AIRX9FWXVskxl5cGqe by exalm@floss.social
2022-04-14T01:51:00Z
0 likes, 0 repeats
So, this is a pretty hacky demo, and yes, Nostalgia is already doing this, but I wanted to figure out how API for this could look like.
(DIR) Post #AIRX9HXK1wZS05zvLU by exalm@floss.social
2022-04-14T01:51:13Z
0 likes, 0 repeats
Before someone asks about blurring the content behind the top/bottom bars: no, that's not doable. Or rather, not doable in an efficient way - you would have to re-render the content for each blurred area - that's a no.This could be done properly if GTK had a separate layer for scrolling content, which it could pre-render, then selectively blur parts of it. It would still be non-trivial to implement, but would be possible at least - while right now it really isn't.
(DIR) Post #AIRX9JXOadomCu30jo by exalm@floss.social
2022-04-14T01:51:32Z
0 likes, 0 repeats
So what I really wanted to figure out here is how this could be done in a sorta-generic way. iOS manages it - if you add a UIScrollView, it will automatically adjust insets for the top/bottom bar, as well as the system UI. It also manages the UI radically differently from GTK.
(DIR) Post #AIRX9LObgHyZyDx1Jg by exalm@floss.social
2022-04-14T01:51:41Z
0 likes, 0 repeats
You can't seem to be able to manually position scroll views (??? at least I wasn't able to find out how to do that, correct me if I'm wrong), and the views are organized in such a way that having one scroll view per view is fine.In GTK though we often have multiple GtkScrolledWindows: sidebar next to content under the same header bar, multiple pages each with their own scrolled window etc. So this needs something more sophisticated.
(DIR) Post #AIRX9NBv0R0zXS1uoi by exalm@floss.social
2022-04-14T01:52:09Z
0 likes, 0 repeats
I'm _not_ uploading the code - it's too hacky and I'm honestly embarrassed to show this :p It could be done cleanly if it was inside GTK though.So the API is not fantastic but looks like this:- A widget that has a top bar, a bottom bar and content. Top and bottom bars have header bar/action bar styles, and actual header bars etc inside them have no background.
(DIR) Post #AIRX9PAvd5PZgxa9YG by exalm@floss.social
2022-04-14T01:52:35Z
0 likes, 0 repeats
(That's why there's no border between the header bar and search bar. @tbernard wanted to do this for tab bar and it really wasn't possible when those 2 widgets draw their own background and border and don't know about each other, so it's a nice side effect that it works here).- There's an interface for a widget that can have insets. It exposes public API to disable auto-adjusting top and/or bottom insets, and sorta-internal API for the inset widget to manage the actual insets.
(DIR) Post #AIRX9R0io0R3Nsp1v6 by exalm@floss.social
2022-04-14T01:52:54Z
0 likes, 0 repeats
- Here comes a hack. In an ideal world, GtkScrolledWindow could implement this interface and support insets in addition to the ones GtkScrollables provide via get_border() (used for headers in treeview/columnview).However, since this is a separate project, there's instead a widget that wraps a GtkScrolledWindow and adds insets. Yep. But again, it only needs to be this way if it's not in GTK. And yes, it's a giant hack.
(DIR) Post #AIRX9SszphRbCVDt9k by exalm@floss.social
2022-04-14T01:53:12Z
0 likes, 0 repeats
- There are similar wrappers for AdwPreferencesPage and AdwStatusPage as they contain internal scrolled windows. Again, in an ideal world those 2 widgets would just implement the interface. Same goes for GtkStackSidebar.- Finally, the widget itself implements this interface too, this way it can be nested and still work - notice how there are 2 bottom bars on the second page - that's how it's done.
(DIR) Post #AIRX9UreTfYbKubqL2 by exalm@floss.social
2022-04-14T01:53:45Z
0 likes, 0 repeats
There's a reason I'm talking in generic terms btw - all names are TBD. Leaving out the hard parts for later.So - that's it, really. Not everything works - e.g. GtkTextView still clips its text and it can't be shown over insets - but this can be fixed if it's in GTK.Similarly, WebKitWebView doesn't use GtkScrolledWindow and would need a separate treatment, but again - if this is in GTK, it could just implement an interface.
(DIR) Post #AIRX9WmlKopnIKKxzk by exalm@floss.social
2022-04-14T01:53:58Z
0 likes, 0 repeats
Dunno if I'm going to push for this, as I just needed to get distracted during a stressful week, but curiosity satisfied - it's doable.
(DIR) Post #AIRX9Yr5dhU5iKNS1A by exalm@floss.social
2022-04-14T01:56:03Z
0 likes, 0 repeats
Oh, forgot to mention an important detail. The widgets implementing the interface use a helper to automatically find an inset widget ancestor and register themselves. So this works semi-automatically; there's no need to register them manually.
(DIR) Post #AIRX9amuSDKRhwR8mO by exalm@floss.social
2022-04-14T02:01:53Z
0 likes, 0 repeats
And yes, if this looks weird in the sense that I previously implemented HdyWindow and pushed for making it possible to do random things with header bars in GTK4 and this might look to be the opposite of that with a fixed top bar area - it's not because this not a window - the inset widget is self-contained and e.g. for split header bars you could just put multiple inset widgets into a leaflet or a box. Or if you have back/forward navigation, each page could be such a widget. So it's fine. :)
(DIR) Post #AIRy6AhVgc3Yh4VLJg by exalm@floss.social
2022-04-14T19:32:54Z
0 likes, 0 repeats
So I have a twitter account which is mostly synced with this one. However, I also have a second account where I occasionally talk about other stuff - e.g. mental health, games, and just IRL stuff or random thoughts - as opposed to mostly boosts and announcements. (1/3)
(DIR) Post #AIRy6BDlkfrQJ7b6bA by exalm@floss.social
2022-04-14T19:33:00Z
0 likes, 0 repeats
In light of a certain clown wanting to buy the birdside, I've been wondering if it should have a counterpart on fedi as well, but not sure what instance that should be. Does anyone know an appropriate instance for this? I kinda find it difficult to choose one as most are either regional or domain-specific.I'm not gonna use a regional one because there isn't one that would fit me, and domain-specific ones just mean locking yourself down into writing about specific topic again. (2/3)
(DIR) Post #AIRy6Br7ONKuHA0Wvo by exalm@floss.social
2022-04-14T19:33:07Z
0 likes, 0 repeats
Another option would be to just post those things onto this account, but I'm not sure it would be interesting to a lot of people. (3/3)
(DIR) Post #AIS138NCBSDGT6FIau by exalm@floss.social
2022-04-14T20:23:53Z
0 likes, 0 repeats
@danslerush @Suzie97 well, tbh regardless of whether it's all on one account or not, I'd go with a new account. For one, to get rid of the stupid nickname I've stopped using years ago. :) Another one is enabling follow requests - on this account it's a lost cause as I didn't have it enabled for years at this point - and the responses to my post about the recent war has shown there are some questionable people in my followers...
(DIR) Post #AIiC099Ow767kMUoiW by exalm@floss.social
2022-04-22T15:39:14Z
2 likes, 1 repeats
So we finally have entry rows in Libadwaita as of about 10 minutes ago. :)