--- uae/src/gtkui.c 2018/04/24 17:02:01 1.1.1.11 +++ uae/src/gtkui.c 2018/04/24 17:05:40 1.1.1.13 @@ -102,7 +102,7 @@ static void save_config (void) f = fopen (optionsfile, "w"); if (f == NULL) { - fprintf (stderr, "Error saving options file!\n"); + write_log ("Error saving options file!\n"); return; } save_options (f, &currprefs); @@ -366,7 +366,7 @@ static int find_current_toggle (GtkWidge for (i = 0; i < count; i++) if (GTK_TOGGLE_BUTTON (*widgets++)->active) return i; - fprintf (stderr, "GTKUI: Can't happen!\n"); + write_log ("GTKUI: Can't happen!\n"); return -1; } @@ -550,7 +550,7 @@ static void did_close_insert (gpointer d static void did_insert_select (GtkObject *o) { char *s = gtk_file_selection_get_filename (GTK_FILE_SELECTION (disk_selector)); - printf ("%s\n", s); + printf ("%d %s\n", filesel_active, s); if (quit_gui) return; @@ -1285,6 +1285,8 @@ static void make_joy_widgets (GtkWidget add_empty_vbox (dvbox); } +static int hd_change_mode; + static void newdir_ok (void) { int n; @@ -1299,6 +1301,10 @@ static void newdir_ok (void) } if (strlen (dirdlg_volname) == 0 || strlen (dirdlg_path) == 0) { /* Uh, no messageboxes in gtk? */ + } else if (hd_change_mode) { + set_filesys_unit (currprefs.mountinfo, selected_hd_row, dirdlg_volname, dirdlg_path, + 0, 0, 0, 0, 0); + set_hd_state (); } else { add_filesys_unit (currprefs.mountinfo, dirdlg_volname, dirdlg_path, 0, 0, 0, 0, 0); @@ -1349,7 +1355,7 @@ static GtkWidget *create_dirdlg (const c GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0); gtk_widget_grab_default (button); - gtk_widget_show (button); + gtk_widget_show (button); button = gtk_button_new_with_label ("Cancel"); gtk_signal_connect_object (GTK_OBJECT (button), "clicked", @@ -1361,10 +1367,12 @@ static GtkWidget *create_dirdlg (const c static void did_newdir (void) { + hd_change_mode = 0; create_dirdlg ("Add a new mounted directory"); } static void did_newhdf (void) { + hd_change_mode = 0; } static void did_hdchange (void) @@ -1379,6 +1387,7 @@ static void did_hdchange (void) &secspertrack, &surfaces, &reserved, &cylinders, &size, &blocksize); + hd_change_mode = 1; if (is_hardfile (currprefs.mountinfo, selected_hd_row)) { } else { create_dirdlg ("Change a mounted directory"); @@ -1645,7 +1654,7 @@ void gui_handle_events (void) uae_sem_wait (&gui_sem); strncpy (changed_prefs.df[n], new_disk_string[n], 255); free (new_disk_string[n]); - new_disk_string[n][0] = '\0'; + new_disk_string[n] = 0; changed_prefs.df[n][255] = '\0'; uae_sem_post (&gui_sem); break; @@ -1749,3 +1758,13 @@ void gui_exit (void) quit_gui = 1; uae_sem_wait (&gui_quit_sem); } + +void gui_lock (void) +{ + uae_sem_wait (&gui_sem); +} + +void gui_unlock (void) +{ + uae_sem_post (&gui_sem); +}