From d5741922971cf9dbb72346e6a43aae75b23dfea0 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 28 Apr 2019 21:59:22 +0200 Subject: Redraw slide windows when stylesheet is changed --- src/narrative_window.c | 17 ++++++++++------- src/slide_window.c | 9 +++++++++ src/slide_window.h | 2 ++ 3 files changed, 21 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/narrative_window.c b/src/narrative_window.c index 94ae8e1..413653d 100644 --- a/src/narrative_window.c +++ b/src/narrative_window.c @@ -253,15 +253,15 @@ static gint load_ss_response_sig(GtkWidget *d, gint response, static void stylesheet_changed_sig(GtkWidget *da, NarrativeWindow *nw) { -// int i; + int i; - /* Full rerender, first block may have changed */ + /* Full rerender */ gtk_narrative_view_redraw(GTK_NARRATIVE_VIEW(nw->nv)); -// /* Full rerender of all slide windows */ -// for ( i=0; in_slidewindows; i++ ) { -// slide_window_update(nw->slidewindows[i]); -// } + /* Full rerender of all slide windows */ + for ( i=0; in_slidewindows; i++ ) { + slide_window_update(nw->slidewindows[i]); + } } @@ -502,7 +502,10 @@ static gboolean nw_double_click_sig(GtkWidget *da, gpointer *pslide, { Slide *slide = (Slide *)pslide; if ( nw->show == NULL ) { - slide_window_open(nw->n, slide, nw->app); + if ( nw->n_slidewindows < 16 ) { + nw->slidewindows[nw->n_slidewindows++] = slide_window_open(nw->n, slide, + nw->app); + } } else { sc_slideshow_set_slide(nw->show, slide); } diff --git a/src/slide_window.c b/src/slide_window.c index 4ddb130..879501a 100644 --- a/src/slide_window.c +++ b/src/slide_window.c @@ -244,3 +244,12 @@ extern SlideWindow *slide_window_open(Narrative *n, Slide *slide, return sw; } + + +void slide_window_update(SlideWindow *sw) +{ + gint w, h; + w = gtk_widget_get_allocated_width(GTK_WIDGET(sw->sv)); + h = gtk_widget_get_allocated_height(GTK_WIDGET(sw->sv)); + gtk_widget_queue_draw_area(GTK_WIDGET(sw->sv), 0, 0, w, h); +} diff --git a/src/slide_window.h b/src/slide_window.h index 50a93c4..c67d05b 100644 --- a/src/slide_window.h +++ b/src/slide_window.h @@ -32,4 +32,6 @@ typedef struct _slidewindow SlideWindow; extern SlideWindow *slide_window_open(Narrative *n, Slide *slide, GApplication *papp); +extern void slide_window_update(SlideWindow *sw); + #endif /* SLIDEWINDOW_H */ -- cgit v1.2.3