summaryrefslogtreecommitdiff
path: root/openbox/client.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-06-21 16:20:43 +0000
committerDana Jansens <danakj@orodu.net>2007-06-21 16:20:43 +0000
commit19ecd4d6d403e71abecb0e77f7ff0f4efa400be3 (patch)
tree99af58cd59d8f55a58ec5061e0d770a32d91dc61 /openbox/client.c
parentd158b642820910adf2d4f73370cf3537749230a6 (diff)
look, thumbnails in alt-tab. its such crap though. oh well, just for fun.
Diffstat (limited to 'openbox/client.c')
-rw-r--r--openbox/client.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/openbox/client.c b/openbox/client.c
index cf6965ae..771294a4 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -4083,3 +4083,30 @@ gboolean client_has_group_siblings(ObClient *self)
{
return self->group && self->group->members->next;
}
+
+ObClientIcon *client_thumbnail(ObClient *self, gint wantw, gint wanth)
+{
+ ObClientIcon *ret;
+ RrPixel32 *data;
+ gint w, h;
+
+ if (!self->frame->pixmap) return NULL;
+ if (!RrPixmapToRGBA(ob_rr_inst, self->frame->pixmap, None, &w, &h, &data))
+ return NULL;
+
+ /* resize the thumbnail (within aspect ratio) to the given sizes */
+
+ ret = g_new(ObClientIcon, 1);
+ ret->data = data;
+ ret->width = w;
+ ret->height = h;
+ return ret;
+}
+
+void clienticon_free(ObClientIcon *ci)
+{
+ if (ci) {
+ g_free(ci->data);
+ g_free(ci);
+ }
+}