X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=libview%2Fev-view.c;h=5eb21d86af75e66d71010e31cc0159ae41dad276;hb=e36d5aeda1ceba4d656964ed46985379df64b4f2;hp=471c66ca81aeb7c178e286020469dec8b9292896;hpb=584f014b63c56fe3770cba9682fc21c31e09a2e9;p=evince.git diff --git a/libview/ev-view.c b/libview/ev-view.c index 471c66ca..5eb21d86 100644 --- a/libview/ev-view.c +++ b/libview/ev-view.c @@ -3996,7 +3996,12 @@ ev_view_button_release_event (GtkWidget *widget, view->pressed_button = -1; return TRUE; - } + } + + if (view->pressed_button == 1 && event->state & GDK_CONTROL_MASK) { + view->pressed_button = -1; + return TRUE; + } if (view->drag_info.in_drag) { view->drag_info.release_timeout_id = @@ -4755,7 +4760,24 @@ job_finished_cb (EvPixbufCache *pixbuf_cache, GdkWindow *bin_window; bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (view)); +#if GTK_CHECK_VERSION(2, 90, 5) gdk_window_invalidate_region (bin_window, region, TRUE); +#else + { + GdkRegion *gdk_region = gdk_region_new (); + guint n_recs = cairo_region_num_rectangles (region); + guint i; + + for (i = 0; i < n_recs; i++) { + cairo_rectangle_int_t rect; + + cairo_region_get_rectangle (region, i, &rect); + gdk_region_union_with_rect (gdk_region, (GdkRectangle *)&rect); + } + gdk_window_invalidate_region (bin_window, gdk_region, TRUE); + gdk_region_destroy (gdk_region); + } +#endif } else { gtk_widget_queue_draw (GTK_WIDGET (view)); } @@ -5909,7 +5931,24 @@ merge_selection_region (EvView *view, cairo_region_translate (region, page_area.x + border.left - view->scroll_x, page_area.y + border.top - view->scroll_y); +#if GTK_CHECK_VERSION(2, 90, 5) gdk_window_invalidate_region (bin_window, region, TRUE); +#else + { + GdkRegion *gdk_region = gdk_region_new (); + guint n_recs = cairo_region_num_rectangles (region); + guint i; + + for (i = 0; i < n_recs; i++) { + cairo_rectangle_int_t rect; + + cairo_region_get_rectangle (region, i, &rect); + gdk_region_union_with_rect (gdk_region, (GdkRectangle *)&rect); + } + gdk_window_invalidate_region (bin_window, gdk_region, TRUE); + gdk_region_destroy (gdk_region); + } +#endif cairo_region_destroy (region); } }