--- dia-0.95/app/app_procs.c +++ dia-0.95/app/app_procs.c @@ -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 @@ -557,6 +558,7 @@ DDisplay *ddisp = NULL; Diagram *diagram = NULL; gboolean made_conversions = FALSE; + gchar *rcf; if (export_file_format) { char *export_file_name = NULL; @@ -662,6 +664,7 @@ static char *show_layers = NULL; gboolean made_conversions = FALSE; GSList *files = NULL; + gchar *rcf; gchar *export_format_string = /* Translators: The argument is a list of options, not to be translated */ @@ -862,8 +865,6 @@ gdk_rgb_init(); - gtk_rc_parse("diagtkrc"); - if (!nosplash) { app_splash_init(""); } @@ -871,6 +872,11 @@ if (dia_is_interactive) create_user_dirs(); + create_user_files(); + + rcf = dia_config_filename("diagtkrc"); + gtk_rc_parse(rcf); + g_free(rcf); /* Init cursors: */ if (dia_is_interactive) { @@ -1055,6 +1061,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;