From 693a3af7be9173ea67c911ed99ff0570762c6641 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 1 May 2019 15:29:52 +0200 Subject: Set title bar of slide window properly --- src/narrative_window.c | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) (limited to 'src/narrative_window.c') diff --git a/src/narrative_window.c b/src/narrative_window.c index 1a7d11d..b8792c0 100644 --- a/src/narrative_window.c +++ b/src/narrative_window.c @@ -81,41 +81,36 @@ static void show_error(NarrativeWindow *nw, const char *err) } -static char *get_titlebar_string(NarrativeWindow *nw) +char *narrative_window_get_filename(NarrativeWindow *nw) { + char *filename; if ( nw == NULL || nw->file == NULL ) { - return strdup(_("(untitled)")); + filename = strdup(_("(untitled)")); } else { - char *bn = g_file_get_basename(nw->file); - return bn; + filename = g_file_get_basename(nw->file); } + return filename; } - static void update_titlebar(NarrativeWindow *nw) { - char *title; - char *title_new; + char title[1026]; + char *filename; + int i; - title = get_titlebar_string(nw); - title_new = realloc(title, strlen(title)+16); - if ( title_new == NULL ) { - free(title); - return; - } else { - title = title_new; - } + filename = narrative_window_get_filename(nw); + snprintf(title, 1024, "%s - Colloquium", filename); + if ( narrative_get_unsaved(nw->n) ) strcat(title, " *"); + free(filename); - strcat(title, " - Colloquium"); - if ( narrative_get_unsaved(nw->n) ) { - strcat(title, " *"); - } gtk_window_set_title(GTK_WINDOW(nw->window), title); - /* FIXME: Update all slide windows belonging to this NW */ + for ( i=0; in_slidewindows; i++ ) { + slide_window_update_titlebar(nw->slidewindows[i]); + } +} - free(title); } @@ -503,7 +498,7 @@ static gboolean nw_double_click_sig(GtkWidget *da, gpointer *pslide, if ( nw->show == NULL ) { if ( nw->n_slidewindows < 16 ) { nw->slidewindows[nw->n_slidewindows++] = slide_window_open(nw->n, slide, - nw->app); + nw, nw->app); } } else { sc_slideshow_set_slide(nw->show, slide); -- cgit v1.2.3