X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=libview%2Fev-view-presentation.c;h=fa79f1042bbc5e0d648453659c8f0cd832c33e48;hb=223cc03e0275c77c4482ed0495b3bd15993a3ab8;hp=75e2e77e5f79fbb4a3f050165ed6b14ff728dbc5;hpb=2631e50f5a02fdb3cbd005304a6dc6a7bb75f334;p=evince.git diff --git a/libview/ev-view-presentation.c b/libview/ev-view-presentation.c index 75e2e77e..fa79f104 100644 --- a/libview/ev-view-presentation.c +++ b/libview/ev-view-presentation.c @@ -901,7 +901,7 @@ ev_view_presentation_update_current_surface (EvViewPresentation *pview, } static void -ev_view_presentation_destroy (GtkObject *object) +ev_view_presentation_dispose (GObject *object) { EvViewPresentation *pview = EV_VIEW_PRESENTATION (object); @@ -945,7 +945,7 @@ ev_view_presentation_destroy (GtkObject *object) pview->goto_entry = NULL; } - GTK_OBJECT_CLASS (ev_view_presentation_parent_class)->destroy (object); + G_OBJECT_CLASS (ev_view_presentation_parent_class)->dispose (object); } static void @@ -984,7 +984,6 @@ ev_view_presentation_draw_end_page (EvViewPresentation *pview, area.width = allocation.width; area.height = allocation.height; -#if GTK_CHECK_VERSION (2, 90, 8) gtk_paint_layout (gtk_widget_get_style (widget), cr, gtk_widget_get_state (widget), @@ -994,52 +993,23 @@ ev_view_presentation_draw_end_page (EvViewPresentation *pview, 15, 15, layout); -#else - gtk_paint_layout (gtk_widget_get_style (widget), - gtk_widget_get_window (widget), - gtk_widget_get_state (widget), - FALSE, - &area, - widget, - NULL, - 15, - 15, - layout); -#endif pango_font_description_free (font_desc); g_object_unref (layout); } -#if GTK_CHECK_VERSION (2, 90, 8) static gboolean ev_view_presentation_draw (GtkWidget *widget, - cairo_t *cr, - int draw_width G_GNUC_UNUSED, - int draw_height G_GNUC_UNUSED) -#else -static gboolean -ev_view_presentation_expose_event (GtkWidget *widget, - GdkEventExpose *event) -#endif + cairo_t *cr) { EvViewPresentation *pview = EV_VIEW_PRESENTATION (widget); GdkRectangle page_area; GdkRectangle overlap; cairo_surface_t *surface; -#if GTK_CHECK_VERSION (2, 90, 8) - cairo_rectangle_int_t clip_rect; - GdkRectangle *area = &clip_rect; -#else - GdkWindow *bin_window; - cairo_t *cr = NULL; - GdkRectangle *area = &event->area; -#endif - -#if GTK_CHECK_VERSION (2, 90, 8) + GdkRectangle clip_rect; + if (!gdk_cairo_get_clip_rectangle (cr, &clip_rect)) return FALSE; -#endif switch (pview->state) { case EV_PRESENTATION_END: @@ -1056,9 +1026,7 @@ ev_view_presentation_expose_event (GtkWidget *widget, if (ev_transition_animation_ready (pview->animation)) { ev_view_presentation_get_page_area (pview, &page_area); -#if !GTK_CHECK_VERSION (2, 90, 8) - cr = gdk_cairo_create (gtk_widget_get_window (widget)); -#endif + cairo_save (cr); /* normalize to x=0, y=0 */ cairo_translate (cr, page_area.x, page_area.y); @@ -1069,9 +1037,7 @@ ev_view_presentation_expose_event (GtkWidget *widget, ev_transition_animation_paint (pview->animation, cr, page_area); -#if !GTK_CHECK_VERSION (2, 90, 8) - cairo_destroy (cr); -#endif + cairo_restore (cr); } return TRUE; @@ -1087,10 +1053,8 @@ ev_view_presentation_expose_event (GtkWidget *widget, } ev_view_presentation_get_page_area (pview, &page_area); - if (gdk_rectangle_intersect (&page_area, area, &overlap)) { -#if !GTK_CHECK_VERSION (2, 90, 8) - cr = gdk_cairo_create (gtk_widget_get_window (widget)); -#endif + if (gdk_rectangle_intersect (&page_area, &clip_rect, &overlap)) { + cairo_save (cr); /* Try to fix rounding errors. See bug #438760 */ if (overlap.width == page_area.width) @@ -1100,9 +1064,7 @@ ev_view_presentation_expose_event (GtkWidget *widget, cairo_set_source_surface (cr, surface, page_area.x, page_area.y); cairo_fill (cr); -#if !GTK_CHECK_VERSION (2, 90, 8) - cairo_destroy (cr); -#endif + cairo_restore (cr); } return FALSE; @@ -1115,7 +1077,7 @@ ev_view_presentation_key_press_event (GtkWidget *widget, EvViewPresentation *pview = EV_VIEW_PRESENTATION (widget); if (pview->state == EV_PRESENTATION_END) - return gtk_bindings_activate_event (GTK_OBJECT (widget), event); + return gtk_bindings_activate_event (G_OBJECT (widget), event); switch (event->keyval) { case GDK_KEY_b: @@ -1171,7 +1133,7 @@ ev_view_presentation_key_press_event (GtkWidget *widget, return TRUE; } - return gtk_bindings_activate_event (GTK_OBJECT (widget), event); + return gtk_bindings_activate_event (G_OBJECT (widget), event); } static gboolean @@ -1265,9 +1227,6 @@ ev_view_presentation_realize (GtkWidget *widget) attributes.window_type = GDK_WINDOW_CHILD; attributes.wclass = GDK_INPUT_OUTPUT; attributes.visual = gtk_widget_get_visual (widget); -#if !GTK_CHECK_VERSION (2, 90, 8) - attributes.colormap = gtk_widget_get_colormap (widget); -#endif gtk_widget_get_allocation (widget, &allocation); attributes.x = allocation.x; @@ -1287,9 +1246,6 @@ ev_view_presentation_realize (GtkWidget *widget) window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, GDK_WA_X | GDK_WA_Y | -#if !GTK_CHECK_VERSION (2, 90, 8) - GDK_WA_COLORMAP | -#endif GDK_WA_VISUAL); gdk_window_set_user_data (window, widget); @@ -1413,26 +1369,21 @@ ev_view_presentation_class_init (EvViewPresentationClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass); GtkBindingSet *binding_set; klass->change_page = ev_view_presentation_change_page; + gobject_class->dispose = ev_view_presentation_dispose; + widget_class->size_request = ev_view_presentation_size_request; widget_class->realize = ev_view_presentation_realize; -#if GTK_CHECK_VERSION (2, 90, 8) widget_class->draw = ev_view_presentation_draw; -#else - widget_class->expose_event = ev_view_presentation_expose_event; -#endif widget_class->key_press_event = ev_view_presentation_key_press_event; widget_class->button_release_event = ev_view_presentation_button_release_event; widget_class->focus_out_event = ev_view_presentation_focus_out; widget_class->motion_notify_event = ev_view_presentation_motion_notify_event; widget_class->scroll_event = ev_view_presentation_scroll_event; - gtk_object_class->destroy = ev_view_presentation_destroy; - gobject_class->constructor = ev_view_presentation_constructor; gobject_class->set_property = ev_view_presentation_set_property;