--- dia-0.95-pre1/app/app_procs.c.diagtkrc 2006-02-12 14:56:58.000000000 +0100 +++ dia-0.95-pre1/app/app_procs.c 2006-02-13 11:11:53.000000000 +0100 @@ -111,6 +111,7 @@ char *show_layers); static void create_user_dirs(void); +static void create_user_files(void); static PluginInitResult internal_plugin_init(PluginInfo *info); static void process_opts(int argc, char **argv, #if USE_GOPTION @@ -662,6 +663,7 @@ static char *show_layers = NULL; gboolean made_conversions = FALSE; GSList *files = NULL; + gchar *rc; gchar *export_format_string = /* Translators: The argument is a list of options, not to be translated */ @@ -854,15 +856,20 @@ gdk_rgb_init(); - gtk_rc_parse("diagtkrc"); if (!nosplash) { app_splash_init(""); } } - if (dia_is_interactive) + if (dia_is_interactive) { create_user_dirs(); + create_user_files(); + + rc = dia_config_filename("diagtkrc"); + gtk_rc_parse(rc); + g_free(rc); + } /* Init cursors: */ if (dia_is_interactive) { @@ -1047,6 +1054,25 @@ return TRUE; } +static void create_user_files(void) +{ + gchar *rc = NULL; + + rc = dia_config_filename("diagtkrc"); + + /* If the file does not exist, we put in our defaults */ + if (!g_file_test(rc, G_FILE_TEST_EXISTS)) { + FILE *f; + + /* Never mind if it fails */ + if ((f = fopen(rc, "w"))!= NULL) { + fprintf(f, "gtk-can-change-accels = 1"); + fclose(f); + } + } + g_free(rc); +} + static void create_user_dirs(void) { gchar *dir, *subdir;