summaryrefslogtreecommitdiff
path: root/libmdock/mdock-item.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmdock/mdock-item.c')
-rw-r--r--libmdock/mdock-item.c15
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)