From 54a82d533a67483b3c0eaf33a88914099fb498ee Mon Sep 17 00:00:00 2001 From: Javier Date: Thu, 22 Jan 2015 10:45:18 +0100 Subject: initial screenshot support --- libmdock/mdock-item.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'libmdock/mdock-item.c') diff --git a/libmdock/mdock-item.c b/libmdock/mdock-item.c index 43dcdca..9a0572b 100644 --- a/libmdock/mdock-item.c +++ b/libmdock/mdock-item.c @@ -19,6 +19,7 @@ #include "mdock-enums.h" #include "mdock-item.h" +#include "thumbnailer.h" #define MDOCK_ITEM_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), MDOCK_TYPE_ITEM, MDockItemPrivate)) @@ -238,8 +239,15 @@ static gboolean mdock_item_expose(GtkWidget *widget, GdkEventExpose *event) cairo_t *cr = gdk_cairo_create(widget->window); if (self->priv->icon) { - gdk_cairo_set_source_pixbuf(cr, self->priv->icon, 0, 0); - cairo_paint(cr); + if (self->priv->windows) { + GdkPixmap *pix = thumbnailer_get_thumbnail(self->priv->windows->data); + if (pix) { + gdk_cairo_set_source_pixmap(cr, pix, 0, 0); + cairo_paint(cr); + } + } + //gdk_cairo_set_source_pixbuf(cr, self->priv->icon, 0, 0); + //cairo_paint(cr); } cairo_destroy(cr); @@ -408,6 +416,7 @@ void mdock_item_set_desktop_app_info(MDockItem *self, GDesktopAppInfo *app_info) void mdock_item_add_window(MDockItem *self, WnckWindow *window) { + thumbnailer_enable_for_window(window); self->priv->windows = g_list_append(self->priv->windows, window); if (!self->priv->icon) { mdock_item_update_icon(self); @@ -437,6 +446,8 @@ void mdock_item_set_last_active_window(MDockItem *self, WnckWindow *window) self->priv->windows = g_list_remove_link(self->priv->windows, l); self->priv->windows = g_list_concat(l, self->priv->windows); #endif + thumbnailer_update_thumbnail(window); + gtk_widget_queue_draw(GTK_WIDGET(self)); } gint mdock_item_get_num_windows(MDockItem *self) -- cgit v1.2.3