if(win->pager_layout)
g_object_unref(win->pager_layout);
+ if(win->backing_store)
+ cairo_surface_destroy(win->backing_store);
g_free(win);
}
/* Connect signal handlers */
/* Pager */
- g_signal_connect_after( textview, "size-request", G_CALLBACK(pager_after_size_request), win );
- win->pager_expose_handler = g_signal_connect_after( textview, "expose-event", G_CALLBACK(pager_on_expose), win );
+ g_signal_connect_after( textview, "size-allocate", G_CALLBACK(pager_after_size_allocate), win );
+ win->pager_expose_handler = g_signal_connect_after( textview, "draw", G_CALLBACK(pager_on_draw), win );
g_signal_handler_block(textview, win->pager_expose_handler);
win->pager_keypress_handler = g_signal_connect( textview, "key-press-event", G_CALLBACK(pager_on_key_press_event), win );
g_signal_handler_block(textview, win->pager_keypress_handler);
case wintype_Graphics:
{
- GtkWidget *image = gtk_image_new_from_pixmap(NULL, NULL);
+ GtkWidget *image = gtk_drawing_area_new();
gtk_widget_show(image);
win->unit_width = 1;
win->widget = image;
win->frame = image;
win->background_color = 0x00FFFFFF;
-
+ win->backing_store = NULL;
+
/* Connect signal handlers */
win->button_press_event_handler = g_signal_connect(image, "button-press-event", G_CALLBACK(on_window_button_press), win);
g_signal_handler_block(image, win->button_press_event_handler);
win->shutdown_keypress_handler = g_signal_connect(image, "key-press-event", G_CALLBACK(on_shutdown_key_press_event), win);
g_signal_handler_block(image, win->shutdown_keypress_handler);
- win->size_allocate_handler = g_signal_connect(image, "size-allocate", G_CALLBACK(on_graphics_size_allocate), win);
+ g_signal_connect(image, "configure-event", G_CALLBACK(on_graphics_configure), win);
+ g_signal_connect(image, "draw", G_CALLBACK(on_graphics_draw), win);
}
break;