diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-06-21 16:20:43 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-06-21 16:20:43 +0000 |
| commit | 19ecd4d6d403e71abecb0e77f7ff0f4efa400be3 (patch) | |
| tree | 99af58cd59d8f55a58ec5061e0d770a32d91dc61 /openbox/client.c | |
| parent | d158b642820910adf2d4f73370cf3537749230a6 (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.c | 27 |
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); + } +} |
