summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcadmio <gioresta87@gmail.com>2023-10-08 16:29:59 +0200
committercadmio <gioresta87@gmail.com>2023-10-08 16:29:59 +0200
commitc2173152a83b5eab0507880a0f0d6b113d741197 (patch)
treea200d7164fda46986fd3423e70cc43612df4a52d
parent85867ca94fd7293cc2ba37685ad4a3ebb5e8cb1d (diff)
downloadlitos4-c2173152a83b5eab0507880a0f0d6b113d741197.tar.gz
litos4-c2173152a83b5eab0507880a0f0d6b113d741197.tar.bz2
litos4-c2173152a83b5eab0507880a0f0d6b113d741197.zip
update all
-rw-r--r--litosaccels.c8
-rw-r--r--litosappwin.c21
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;
}