diff --git a/src/callbacks.c b/src/callbacks.c index 1f0d8aa..074ec04 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -124,9 +124,9 @@ void on_monitors_changed ( GdkScreen *screen, cairo_surface_destroy(data->backbuffer); data->backbuffer = new_shape; - // recreate temp_buffer - cairo_surface_destroy(data->temp_buffer); - data->temp_buffer = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, data->width, data->height); + // recreate auxiliary backbuffer + cairo_surface_destroy(data->aux_backbuffer); + data->aux_backbuffer = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, data->width, data->height); /* these depend on the shape surface @@ -283,7 +283,7 @@ gboolean on_buttonpress (GtkWidget *win, // store original state to have dynamic update of line and rect if (type == GROMIT_LINE || type == GROMIT_RECT) { - copy_surface(data->temp_buffer, data->backbuffer); + copy_surface(data->aux_backbuffer, data->backbuffer); } devdata->lastx = ev->x; @@ -392,7 +392,7 @@ gboolean on_motion (GtkWidget *win, if(devdata->motion_time > 0) { if (type == GROMIT_LINE || type == GROMIT_RECT) { - copy_surface(data->backbuffer, data->temp_buffer); + copy_surface(data->backbuffer, data->aux_backbuffer); GdkRectangle rect = {0, 0, data->width, data->height}; gdk_window_invalidate_rect(gtk_widget_get_window(data->win), &rect, 0); } diff --git a/src/main.c b/src/main.c index afb342a..25012b8 100644 --- a/src/main.c +++ b/src/main.c @@ -598,8 +598,8 @@ void setup_main_app (GromitData *data, int argc, char ** argv) } // original state for LINE and RECT tool - cairo_surface_destroy(data->temp_buffer); - data->temp_buffer = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, data->width, data->height); + cairo_surface_destroy(data->aux_backbuffer); + data->aux_backbuffer = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, data->width, data->height); /* EVENTS */ gtk_widget_add_events (data->win, GROMIT_WINDOW_EVENTS); diff --git a/src/main.h b/src/main.h index c8ff37b..d28a383 100644 --- a/src/main.h +++ b/src/main.h @@ -127,6 +127,8 @@ typedef struct GHashTable *tool_config; cairo_surface_t *backbuffer; + /* Auxiliary backbuffer for tools like LINE or RECT */ + cairo_surface_t *aux_backbuffer; GHashTable *devdatatable; @@ -146,7 +148,6 @@ typedef struct cairo_surface_t *undobuffer[GROMIT_MAX_UNDO]; gint undo_head, undo_depth, redo_depth; - cairo_surface_t *temp_buffer; gboolean show_intro_on_startup;