diff options
author | Tom White <weiss@jade.(none)> | 2008-09-29 19:04:21 +0100 |
---|---|---|
committer | Thomas White <taw27@cam.ac.uk> | 2008-10-02 17:56:45 +0100 |
commit | e65956563da586d740ec11f8504b357a6b517ead (patch) | |
tree | b54dff77d5fd261c82125aaa947ca61d1e23bc6e /src/displaywindow.c | |
parent | f6a8e7ef02e6f449c2c3aa6186bf10d81c127dd3 (diff) |
Force glbits to redraw when switching tabs in the DisplayWindow
(works around tab switching issues)
Diffstat (limited to 'src/displaywindow.c')
-rw-r--r-- | src/displaywindow.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/displaywindow.c b/src/displaywindow.c index 0049747..58a5ed2 100644 --- a/src/displaywindow.c +++ b/src/displaywindow.c @@ -552,6 +552,12 @@ void displaywindow_update_imagestack(DisplayWindow *dw) { } +static void displaywindow_switch_page(GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, DisplayWindow *dw) { + if ( dw->realised && (page_num == 0) ) { + glbits_expose(dw->drawing_area, NULL, dw); + } +} + DisplayWindow *displaywindow_open(ControlContext *ctx) { const char *filename; @@ -586,6 +592,7 @@ DisplayWindow *displaywindow_open(ControlContext *ctx) { dw->lines = FALSE; dw->background = TRUE; dw->cur_image = 0; + dw->realised = 0; dw->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(dw->window), title); @@ -636,6 +643,8 @@ DisplayWindow *displaywindow_open(ControlContext *ctx) { gtk_label_new("Image Stack")); } + g_signal_connect(GTK_OBJECT(notebook), "switch-page", G_CALLBACK(displaywindow_switch_page), dw); + displaywindow_enable_cell_functions(dw, FALSE); displaywindow_update_dirax(ctx, dw); d = gtk_ui_manager_get_widget(dw->ui, "/ui/displaywindow/file/savehkl"); |