X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=blobdiff_plain;f=src%2Fpan-view%2Fpan-item.cc;fp=src%2Fpan-view%2Fpan-item.cc;h=13b4dec0bff0fd84100671a1f527016b809dc1bb;hp=0b8d591337b3ba313a8f9cf6fd67fe59984ccd30;hb=a4f88daece63976a825b8a92bfc1c5519ed0f142;hpb=e6ad0f05a4b5ad02a94512eb4f19934c6541425c diff --git a/src/pan-view/pan-item.cc b/src/pan-view/pan-item.cc index 0b8d5913..13b4dec0 100644 --- a/src/pan-view/pan-item.cc +++ b/src/pan-view/pan-item.cc @@ -616,14 +616,11 @@ gint pan_item_thumb_draw(PanWindow *pw, PanItem *pi, GdkPixbuf *pixbuf, PixbufRe *----------------------------------------------------------------------------- */ -static void pan_item_image_find_size(PanWindow *pw, PanItem *pi, gint w, gint h) +static void pan_item_image_find_size(PanWindow *pw, const FileData *fd, gint &w, gint &h) { GList *work; - pi->width = w; - pi->height = h; - - if (!pi->fd) return; + if (!fd) return; work = pw->cache_list; while (work) @@ -634,10 +631,10 @@ static void pan_item_image_find_size(PanWindow *pw, PanItem *pi, gint w, gint h) work = work->next; if (pc->cd && pc->cd->dimensions && - pc->fd && pc->fd == pi->fd) + pc->fd == fd) { - pi->width = MAX(1, pc->cd->width * pw->image_size / 100); - pi->height = MAX(1, pc->cd->height * pw->image_size / 100); + w = MAX(1, pc->cd->width * pw->image_size / 100); + h = MAX(1, pc->cd->height * pw->image_size / 100); pw->cache_list = g_list_remove(pw->cache_list, pc); pan_cache_data_free(pc); @@ -650,11 +647,15 @@ PanItem *pan_item_image_new(PanWindow *pw, FileData *fd, gint x, gint y, gint w, { PanItem *pi; + pan_item_image_find_size(pw, fd, w, h); + pi = g_new0(PanItem, 1); pi->type = PAN_ITEM_IMAGE; pi->fd = fd; pi->x = x; pi->y = y; + pi->width = w; + pi->height = h; pi->color.a = 255; @@ -663,8 +664,6 @@ PanItem *pan_item_image_new(PanWindow *pw, FileData *fd, gint x, gint y, gint w, pi->color2.b = 0; pi->color2.a = PAN_SHADOW_ALPHA / 2; - pan_item_image_find_size(pw, pi, w, h); - pw->list = g_list_prepend(pw->list, pi); return pi;