summaryrefslogtreecommitdiff
path: root/src/main.c
AgeCommit message (Collapse)Author
2022-04-01rototiller: bump submodule for instantiated setupsVito Caputo
Prior to this in some modules you could manipulate their settings while watching their output, and the changes would be realized *immediately*. Rototiller has firmed up the application of settings so they're no longer module-global and instead apply to an allocated setup instance that is then supplied to create_context(). As a result, in glimmer, one must always now click "Go!" to see the effects of new settings.
2022-03-30glimmer: suppress re-rebuild from focus-out-eventVito Caputo
When rebuilding the settings, an unnecessary focus-out-event is produced that we don't want to queue another rebuild from. In order to suppress the re-queueing of another rebuild, which produces a sort of perpetual endless rebuild situation, use a global flag for suppressing the rebuild queuing from the focus-out-event callback. The rebuild code sets this flag during the rebuild, and the callback will skip queueing a rebuild when it's true. There's probably a more elegant solution, but I didn't see a convenient way to suppress the focus events temporarily via gtk/glib for the duration of the rebuild. This works for now, and fixes the CPU burning behavior observed on activated GtkEntry settings boxes.
2022-03-28rototiller: bump submodule for updated swarmVito Caputo
swarm got drawing styles, pull it in
2022-03-28glimmer: realize GtkEntry settings on "focus-out-event" tooVito Caputo
Improve settings to properly realize changes in the GtkEntry widgets without relying on "activate" (Enter) exclusively. Now when such widgets lose focus their value is committed and the settings panel rebuilt to reflect any value-dependent changes. This requires some contortions since GTK+ really doesn't like having its widgets rearranged/destroyed from their signal callbacks. So now a settings change just queues a rebuild to be performed as an idle callback, for both the "activate" and "focus-out-event" cases. In the course of rebuilding the settings panel, its vbox gets replaced with a newly constructed one. This requires some manual preservation of widget focus for things like Tab-based relative setting navigation/manipulation to function properly.
2022-03-19glimmer: first stab at adding settings supportVito Caputo
This bumps the rototiller submodule for the new described settings stuff, among other improvements. There are some ugly kludges surrounding widget lifecycle since I destroy setting widgets from their signal callbacks and that seems to anger gtk/glib. I'm unclear on what the right way is here, but leaking for now is relatively harmless. It seems like gtk+ should be holding a reference on the respective widget across signal deliveries so the callbacks can potentialy destroy them with the underlying resource freeing becoming queued. Perhaps there's something like signal propagation up the heirarchy happening and since I'm destroying the settings frame higher up the tree and not the specific widget being signaled things fall over. It's a TODO item to sort out, at least the resources leaked aren't substantial and it's only on interactive configuration. This has also been done in fashion preserving the --module=foo,bar=baz arguments consistent with classic rototiller. You can start glimmer with the same syntax --module= flag, and it will select the specified module and apply the supplied settings in a way reflected in the GUI. There should probably be a new '--go' flag added to enable starting the rendering via commandline. As-is glimmer will always leave you at a settings dialog waiting for a "Go!" click, even if you specified module+settings comprehensively via the CLI.
2022-03-14main: s/fb_settings/video_settings/Vito Caputo
mechanical rename making consistent with til_args_t naming
2021-10-01*: bump rototiller submodule for libtil renameVito Caputo
Simultaneously update includes and call sites to reflect the new til_ prefix, preserving buildability.
2021-02-17main: rototiller_quiesce() before fb_free()Vito Caputo
Make sure there's no outstanding workers potentially scribbling into a page before tearing down the fb and its pages.
2021-02-17rototiller,main: bump rototiller, use new _free() styleVito Caputo
Just an ergonomic improvement, submodule bump and code change done at once to keep things bisectable.
2021-02-16main: remove spurious pasteVito Caputo
vim droppings
2021-02-16src: initial commit of something semi-workingVito Caputo
This deadlocks after a few "Go!" cycles, and the "rtv" module's "snow" doesn't seem to be drawing anything, despite the explicit use of "snow" working fine. I suspect it has to do with the lack of module setup occurring, rtv may have a broken assumption about the snow module always being setup at runtime and no static default compiled in. I didn't go look yet. There's plenty of TODOs and such to take care of, but this looks like a good foundation to potentialy collaborate on and start thinking about how things like libhandy would integrate and what directions things must go to make that workable.
© All Rights Reserved