[gtk+/wip/baedert/gtkimageview] Stop using private gdk api
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/baedert/gtkimageview] Stop using private gdk api
- Date: Sat, 6 Feb 2016 09:24:04 +0000 (UTC)
commit 1359ebec9987d8d9f07e5b2c2e62b13ee4445a30
Author: Timm Bäder <mail baedert org>
Date: Sat Feb 6 10:20:32 2016 +0100
Stop using private gdk api
gdk/gdkcairo.h | 6 ------
gtk/gtkimageview.c | 29 ++++++++++++++++++++++++-----
2 files changed, 24 insertions(+), 11 deletions(-)
---
diff --git a/gdk/gdkcairo.h b/gdk/gdkcairo.h
index 5e5677a..95993d2 100644
--- a/gdk/gdkcairo.h
+++ b/gdk/gdkcairo.h
@@ -81,12 +81,6 @@ void gdk_cairo_draw_from_gl (cairo_t *cr,
int width,
int height);
-GDK_AVAILABLE_IN_3_18
-void
-gdk_cairo_surface_paint_pixbuf (cairo_surface_t *surface,
- const GdkPixbuf *pixbuf);
-
-
G_END_DECLS
#endif /* __GDK_CAIRO_H__ */
diff --git a/gtk/gtkimageview.c b/gtk/gtkimageview.c
index 82c1837..6971977 100644
--- a/gtk/gtkimageview.c
+++ b/gtk/gtkimageview.c
@@ -2032,12 +2032,30 @@ gtk_image_view_update_surface (GtkImageView *image_view,
int scale_factor)
{
GtkImageViewPrivate *priv = gtk_image_view_get_instance_private (image_view);
- int new_width = gdk_pixbuf_get_width (frame);
- int new_height = gdk_pixbuf_get_height (frame);
- int widget_scale = gtk_widget_get_scale_factor (GTK_WIDGET (image_view));
- int real_width = (new_width * scale_factor) / widget_scale;
- int real_height = (new_height * scale_factor) / widget_scale;
+ /*int new_width = gdk_pixbuf_get_width (frame);*/
+ /*int new_height = gdk_pixbuf_get_height (frame);*/
+ /*int widget_scale = gtk_widget_get_scale_factor (GTK_WIDGET (image_view));*/
+ /*int real_width = (new_width * scale_factor) / widget_scale;*/
+ /*int real_height = (new_height * scale_factor) / widget_scale;*/
+ GdkWindow *window = gtk_widget_get_window (GTK_WIDGET (image_view));
+ cairo_surface_t *new_surface;
+
+ new_surface = gdk_cairo_surface_create_from_pixbuf (frame,
+ scale_factor,
+ window);
+
+ gtk_image_view_replace_surface (image_view,
+ new_surface,
+ scale_factor);
+
+ /* TODO: Strictly speaking, we don't need to queue a resize if the
+ * surface size doesn't change. */
+
+ if (!priv->fit_allocation)
+ gtk_widget_queue_resize (GTK_WIDGET (image_view));
+
+#if 0
if (!priv->image_surface ||
cairo_image_surface_get_width (priv->image_surface) != real_width ||
cairo_image_surface_get_height (priv->image_surface) != real_height ||
@@ -2058,6 +2076,7 @@ gtk_image_view_update_surface (GtkImageView *image_view,
gdk_cairo_surface_paint_pixbuf (priv->image_surface, frame);
gtk_widget_queue_draw (GTK_WIDGET (image_view));
}
+#endif
g_assert (priv->image_surface != NULL);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]