diff options
author | cadmio <gioresta87@gmail.com> | 2023-10-08 16:29:59 +0200 |
---|---|---|
committer | cadmio <gioresta87@gmail.com> | 2023-10-08 16:29:59 +0200 |
commit | c2173152a83b5eab0507880a0f0d6b113d741197 (patch) | |
tree | a200d7164fda46986fd3423e70cc43612df4a52d | |
parent | 85867ca94fd7293cc2ba37685ad4a3ebb5e8cb1d (diff) | |
download | litos4-c2173152a83b5eab0507880a0f0d6b113d741197.tar.gz litos4-c2173152a83b5eab0507880a0f0d6b113d741197.tar.bz2 litos4-c2173152a83b5eab0507880a0f0d6b113d741197.zip |
update all
-rw-r--r-- | litosaccels.c | 8 | ||||
-rw-r--r-- | litosappwin.c | 21 |
2 files changed, 21 insertions, 8 deletions
diff --git a/litosaccels.c b/litosaccels.c index 8c43992..e73ff58 100644 --- a/litosaccels.c +++ b/litosaccels.c @@ -75,8 +75,12 @@ open_activated(GSimpleAction *action, GVariant *parameter, gpointer app) { GError *error = NULL; LitosFile *file = litos_app_window_current_file(win); - if (!gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), g_file_get_parent(litos_file_get_gfile(file)), &error)) - litos_app_error_dialog(GTK_WINDOW(win), error, "Current Folder"); + + if(litos_file_get_gfile(file) != NULL) + { + if (!gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), g_file_get_parent(litos_file_get_gfile(file)), &error)) + litos_app_error_dialog(GTK_WINDOW(win), error, "Current Folder"); + } } gtk_window_set_transient_for(GTK_WINDOW(dialog), window); diff --git a/litosappwin.c b/litosappwin.c index 31385e6..7a6949b 100644 --- a/litosappwin.c +++ b/litosappwin.c @@ -18,10 +18,10 @@ GtkWidget * litos_file_get_lbl(LitosFile *file); GtkWidget * litos_file_get_tabbox(LitosFile *file); GtkWidget * litos_file_get_close_box(LitosFile *file); -void litos_app_window_remove_child(LitosAppWindow *win); - GtkWidget* MyNewSourceview(); +gboolean litos_app_window_remove_child(LitosAppWindow *win); + struct _LitosAppWindow { GtkApplicationWindow parent; @@ -302,7 +302,7 @@ litos_app_window_saveornot_dialog_cb(GtkWidget *dialog, int response, gpointer w } gtk_window_destroy (GTK_WINDOW (dialog)); - + if (win->quit == TRUE) { if (win->litosFileList->len == 0) @@ -328,7 +328,7 @@ litos_app_window_saveornot_dialog(LitosAppWindow *win, LitosFile *file) g_signal_connect (dialog, "response", G_CALLBACK (litos_app_window_saveornot_dialog_cb), win); } -void litos_app_window_remove_child(LitosAppWindow *win) +gboolean litos_app_window_remove_child(LitosAppWindow *win) { GtkWidget *tabbox = gtk_notebook_get_nth_page (win->notebook, gtk_notebook_get_current_page ((win->notebook))); @@ -337,11 +337,16 @@ void litos_app_window_remove_child(LitosAppWindow *win) LitosFile *file = litos_app_window_current_file(win); if (litos_file_get_saved(file)) + { litos_app_window_remove_page(win,file); + return TRUE; + } else litos_app_window_saveornot_dialog(win, file); } + + return FALSE; } gboolean litos_app_window_quit (GtkWindow *window, gpointer user_data) @@ -352,8 +357,12 @@ gboolean litos_app_window_quit (GtkWindow *window, gpointer user_data) if (litos_app_window_get_array_len(win) == 0) g_application_quit (G_APPLICATION (app)); - win->quit = TRUE; - litos_app_window_remove_child(win); + else + { + win->quit = TRUE; + while (win->quit == TRUE && litos_app_window_remove_child(win)) + ; + } return TRUE; } |