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. :)