diff options
-rw-r--r-- | gtk-gui.c | 2 | ||||
-rw-r--r-- | macos.c | 11 |
2 files changed, 10 insertions, 3 deletions
@@ -326,6 +326,8 @@ void save_window_geometry(void) gtk_window_get_size(GTK_WINDOW (main_window), &window_width, &window_height); subsurface_set_conf_int("window_width", window_width); subsurface_set_conf_int("window_height", window_height); + + subsurface_flush_conf(); } void restore_window_geometry(void) @@ -47,7 +47,8 @@ void subsurface_set_conf_bool(char *name, int value) void subsurface_set_conf_int(char *name, int value) { - /* CF pref stuff here? */ + CFNumberRef numRef = CFNumberCreate(NULL, kCFNumberIntType, &value); + CFPreferencesSetAppValue(CFSTR_VAR(name), numRef, SUBSURFACE_PREFERENCES); } const void *subsurface_get_conf(char *name) @@ -72,9 +73,13 @@ int subsurface_get_conf_bool(char *name) int subsurface_get_conf_int(char *name) { + Boolean exists; + CFIndex value; - return -1; /* CF pref stuff here? */ - + value = CFPreferencesGetAppIntegerValue(CFSTR_VAR(name), SUBSURFACE_PREFERENCES, &exists); + if (!exists) + return -1; + return value; } void subsurface_flush_conf(void) |