Added force parameter to tns_load() to disregard cache
This commit is contained in:
parent
421f012022
commit
1d7849efc1
8
events.c
8
events.c
|
@ -163,7 +163,7 @@ void run() {
|
||||||
gettimeofday(&t0, 0);
|
gettimeofday(&t0, 0);
|
||||||
|
|
||||||
while (tns.cnt < filecnt && !XPending(win.env.dpy)) {
|
while (tns.cnt < filecnt && !XPending(win.env.dpy)) {
|
||||||
if (tns_load(&tns, tns.cnt, &files[tns.cnt], 0))
|
if (tns_load(&tns, tns.cnt, &files[tns.cnt], False, False))
|
||||||
tns.cnt++;
|
tns.cnt++;
|
||||||
else
|
else
|
||||||
remove_file(tns.cnt, 0);
|
remove_file(tns.cnt, 0);
|
||||||
|
@ -279,7 +279,7 @@ int it_toggle_fullscreen(arg_t a) {
|
||||||
int it_reload_image(arg_t a) {
|
int it_reload_image(arg_t a) {
|
||||||
if (mode == MODE_IMAGE) {
|
if (mode == MODE_IMAGE) {
|
||||||
load_image(fileidx);
|
load_image(fileidx);
|
||||||
} else if (!tns_load(&tns, tns.sel, &files[tns.sel], 0)) {
|
} else if (!tns_load(&tns, tns.sel, &files[tns.sel], True, False)) {
|
||||||
remove_file(tns.sel, 0);
|
remove_file(tns.sel, 0);
|
||||||
tns.dirty = 1;
|
tns.dirty = 1;
|
||||||
if (tns.sel >= tns.cnt)
|
if (tns.sel >= tns.cnt)
|
||||||
|
@ -578,11 +578,11 @@ int it_shell_cmd(arg_t a) {
|
||||||
|
|
||||||
if (mode == MODE_IMAGE) {
|
if (mode == MODE_IMAGE) {
|
||||||
if (fileidx < tns.cnt)
|
if (fileidx < tns.cnt)
|
||||||
tns_load(&tns, fileidx, &files[fileidx], 1);
|
tns_load(&tns, fileidx, &files[fileidx], False, True);
|
||||||
img_close(&img, 1);
|
img_close(&img, 1);
|
||||||
load_image(fileidx);
|
load_image(fileidx);
|
||||||
} else {
|
} else {
|
||||||
if (!tns_load(&tns, tns.sel, &files[tns.sel], 0)) {
|
if (!tns_load(&tns, tns.sel, &files[tns.sel], True, False)) {
|
||||||
remove_file(tns.sel, 0);
|
remove_file(tns.sel, 0);
|
||||||
tns.dirty = 1;
|
tns.dirty = 1;
|
||||||
if (tns.sel >= tns.cnt)
|
if (tns.sel >= tns.cnt)
|
||||||
|
|
2
main.c
2
main.c
|
@ -240,7 +240,7 @@ int main(int argc, char **argv) {
|
||||||
if (options->thumbnails) {
|
if (options->thumbnails) {
|
||||||
mode = MODE_THUMB;
|
mode = MODE_THUMB;
|
||||||
tns_init(&tns, filecnt);
|
tns_init(&tns, filecnt);
|
||||||
while (!tns_load(&tns, 0, &files[0], 0))
|
while (!tns_load(&tns, 0, &files[0], False, False))
|
||||||
remove_file(0, 0);
|
remove_file(0, 0);
|
||||||
tns.cnt = 1;
|
tns.cnt = 1;
|
||||||
} else {
|
} else {
|
||||||
|
|
14
thumbs.c
14
thumbs.c
|
@ -212,9 +212,11 @@ void tns_free(tns_t *tns) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int tns_load(tns_t *tns, int n, const fileinfo_t *file, unsigned char silent) {
|
int tns_load(tns_t *tns, int n, const fileinfo_t *file,
|
||||||
|
Bool force, Bool silent)
|
||||||
|
{
|
||||||
int w, h;
|
int w, h;
|
||||||
int use_cache, cached = 0;
|
int use_cache, cache_hit = 0;
|
||||||
float z, zw, zh;
|
float z, zw, zh;
|
||||||
thumb_t *t;
|
thumb_t *t;
|
||||||
Imlib_Image *im;
|
Imlib_Image *im;
|
||||||
|
@ -234,11 +236,11 @@ int tns_load(tns_t *tns, int n, const fileinfo_t *file, unsigned char silent) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((use_cache = tns_cache_enabled())) {
|
if ((use_cache = tns_cache_enabled())) {
|
||||||
if ((im = tns_cache_load(file->path)))
|
if (!force && (im = tns_cache_load(file->path)))
|
||||||
cached = 1;
|
cache_hit = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cached &&
|
if (!cache_hit &&
|
||||||
(access(file->path, R_OK) || !(im = imlib_load_image(file->path))))
|
(access(file->path, R_OK) || !(im = imlib_load_image(file->path))))
|
||||||
{
|
{
|
||||||
if (!silent)
|
if (!silent)
|
||||||
|
@ -262,7 +264,7 @@ int tns_load(tns_t *tns, int n, const fileinfo_t *file, unsigned char silent) {
|
||||||
|
|
||||||
imlib_free_image_and_decache();
|
imlib_free_image_and_decache();
|
||||||
|
|
||||||
if (use_cache && !cached)
|
if (use_cache && !cache_hit)
|
||||||
tns_cache_write(t, False);
|
tns_cache_write(t, False);
|
||||||
|
|
||||||
tns->dirty = 1;
|
tns->dirty = 1;
|
||||||
|
|
2
thumbs.h
2
thumbs.h
|
@ -51,7 +51,7 @@ void tns_clean_cache(tns_t*);
|
||||||
void tns_init(tns_t*, int);
|
void tns_init(tns_t*, int);
|
||||||
void tns_free(tns_t*);
|
void tns_free(tns_t*);
|
||||||
|
|
||||||
int tns_load(tns_t*, int, const fileinfo_t*, unsigned char);
|
int tns_load(tns_t*, int, const fileinfo_t*, Bool, Bool);
|
||||||
|
|
||||||
void tns_render(tns_t*, win_t*);
|
void tns_render(tns_t*, win_t*);
|
||||||
void tns_highlight(tns_t*, win_t*, int, Bool);
|
void tns_highlight(tns_t*, win_t*, int, Bool);
|
||||||
|
|
Loading…
Reference in a new issue