diff options
Diffstat (limited to 'libmdock/mdock-item.c')
-rw-r--r-- | libmdock/mdock-item.c | 15 |
1 files changed, 13 insertions, 2 deletions
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) |