[gtk+/wip/baedert/drawing: 95/142] icon: Render at content position
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/baedert/drawing: 95/142] icon: Render at content position
- Date: Sun, 4 Jun 2017 17:05:33 +0000 (UTC)
commit 84350b7592732b0ba2892e56100057b2b571596b
Author: Timm Bäder <mail baedert org>
Date: Sat May 20 14:08:42 2017 +0200
icon: Render at content position
Since we get offset automatically to the widget allocation before
->snapshot is called, we still have to offset the difference to the
position of the content allocation.
gtk/gtkicon.c | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkicon.c b/gtk/gtkicon.c
index 3591a30..9d1645e 100644
--- a/gtk/gtkicon.c
+++ b/gtk/gtkicon.c
@@ -24,6 +24,7 @@
#include "gtkiconprivate.h"
#include "gtkwidgetprivate.h"
#include "gtkrendericonprivate.h"
+#include "gtksnapshot.h"
/* GtkIcon was a minimal widget wrapped around a GtkBuiltinIcon gadget,
* It should be used whenever builtin-icon functionality is desired
@@ -45,14 +46,22 @@ gtk_icon_snapshot (GtkWidget *widget,
{
GtkIcon *self = GTK_ICON (widget);
GtkCssStyle *style = gtk_css_node_get_style (gtk_widget_get_css_node (widget));
+ GtkAllocation content_alloc;
GtkAllocation alloc;
+ int x, y;
- gtk_widget_get_content_allocation (widget, &alloc);
+ gtk_widget_get_allocation (widget, &alloc);
+ gtk_widget_get_content_allocation (widget, &content_alloc);
+ x = content_alloc.x - alloc.x;
+ y = content_alloc.y - alloc.y;
+
+ gtk_snapshot_offset (snapshot, x, y);
gtk_css_style_snapshot_icon (style,
snapshot,
- alloc.width, alloc.height,
+ content_alloc.width, content_alloc.height,
self->image);
+ gtk_snapshot_offset (snapshot, -x, -y);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]