diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2021-10-03 18:13:36 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2022-03-19 16:35:27 -0700 |
commit | 642b63f5a64b1dfda2ecd041fed3a008645d72cc (patch) | |
tree | 17cb6ee53461f73d224ecdac34a47225dd801522 /src/gtk_fb.c | |
parent | 7c5f7bcc46afe9ad8261347222b5cc26d26e6c6b (diff) |
glimmer: first stab at adding settings support
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.
Diffstat (limited to 'src/gtk_fb.c')
-rw-r--r-- | src/gtk_fb.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gtk_fb.c b/src/gtk_fb.c index 2306db5..4520df7 100644 --- a/src/gtk_fb.c +++ b/src/gtk_fb.c @@ -74,11 +74,11 @@ static int gtk_fb_init(const til_settings_t *settings, void **res_context) assert(settings); assert(res_context); - fullscreen = til_settings_get_value(settings, "fullscreen"); + fullscreen = til_settings_get_value(settings, "fullscreen", NULL); if (!fullscreen) return -EINVAL; - size = til_settings_get_value(settings, "size"); + size = til_settings_get_value(settings, "size", NULL); if (!size && !strcasecmp(fullscreen, "off")) return -EINVAL; |