aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.me.uk>2019-04-28 21:59:22 +0200
committerThomas White <taw@bitwiz.me.uk>2019-04-28 21:59:22 +0200
commitd5741922971cf9dbb72346e6a43aae75b23dfea0 (patch)
tree39f450963a4898eb5ba0ccb7a252cdc696c2ea2c
parent2897b564b0a1c202f3337486057ac442843ef572 (diff)
Redraw slide windows when stylesheet is changed
-rw-r--r--src/narrative_window.c17
-rw-r--r--src/slide_window.c9
-rw-r--r--src/slide_window.h2
3 files changed, 21 insertions, 7 deletions
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; i<nw->n_slidewindows; i++ ) {
-// slide_window_update(nw->slidewindows[i]);
-// }
+ /* Full rerender of all slide windows */
+ for ( i=0; i<nw->n_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 */