1
0
mirror of https://gittea.dev/nova/th.git synced 2025-10-21 10:20:15 -04:00

fixed image previews sticking around longer than expected

This commit is contained in:
nova
2025-09-29 19:17:23 +02:00
parent 4784ec3f64
commit 36012b1a71
4 changed files with 21 additions and 3 deletions

View File

@@ -100,7 +100,7 @@ char* generic(char *path){
}
}
#if SETTINGS_UEBERZUG_IMAGE_PREVIEW != 0
void images_clear() {
void images_clear(){
if (previewd == 1) {
fprintf(ueberzug, "{\"action\": \"remove\", \
\"identifier\": \"preview\"}\n");
@@ -108,7 +108,7 @@ void images_clear() {
previewd = 0;
}
}
void images_print(char *file_name) {
void images_print(char *file_name){
char *path=getcwd(NULL, 0);
fprintf(ueberzug, "{\"action\":\"add\", \
@@ -129,4 +129,8 @@ void ueberzug_init(){
ueberzug = popen("ueberzug layer -s --no-cache ", "w");
#endif
}
void ueberzug_close(){
images_clear();
pclose(ueberzug);
}
#endif

View File

@@ -1,9 +1,13 @@
#ifndef PREVIEW_GUARD
#define PREVIEW_GUARD
#include "file_previews.c"
#include "config.h"
#endif
char* preview_file(char *file_name, unsigned long file_size);
char* get_mimetype(char *path);
void images_clear();
void ueberzug_init();
#if SETTINGS_UEBERZUG_IMAGE_PREVIEW != 0
void ueberzug_close();
#endif

View File

@@ -343,6 +343,10 @@ void open_with(){
cmd = concat(cmd, mid_content[selected_file_current].file_name);
cmd = concat(cmd, "\"");
#if SETTINGS_UEBERZUG_IMAGE_PREVIEW != 0
images_clear();
#endif
if (system(cmd) == -1) {
FAIL("open_with", "creating subcommand failed unhandled");
}
@@ -523,6 +527,9 @@ void update(){
void enter_shell(int passes, int index){
(void)passes;
#if SETTINGS_UEBERZUG_IMAGE_PREVIEW != 0
images_clear();
#endif
endwin();
if (system(key_binding[index].black_magic) != 0) {
/*do nothing*/

5
main.c
View File

@@ -107,10 +107,13 @@ int main(){
#endif
}
#if SETTINGS_UEBERZUG_IMAGE_PREVIEW != 0
ueberzug_close();
#endif
threading_free();
free(start_path);
if (threading) {
if (threading) {
pthread_join(thread_l, NULL);
pthread_join(thread_r, NULL);
pthread_join(thread_m, NULL);