diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/index.c | 37 | ||||
| -rw-r--r-- | src/options.c | 6 | 
2 files changed, 9 insertions, 34 deletions
| diff --git a/src/index.c b/src/index.c index d194cf6..3ac5997 100644 --- a/src/index.c +++ b/src/index.c @@ -32,7 +32,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  static char *create_index_title_string(int num, int w, int h);  static char *create_index_string(feh_file *file);  static void get_index_string_dim(feh_file *file, Imlib_Font fn, int *w, int *h); -static int get_index_info_no_lines(void);  /* TODO Break this up a bit ;) */  /* TODO s/bit/lot */ @@ -92,8 +91,9 @@ void init_index_mode(void)  	/* Work out how tall the font is */  	gib_imlib_get_text_size(fn, "W", NULL, &tw, &th, IMLIB_TEXT_TO_RIGHT); +	get_index_string_dim(NULL, fn, &fw, &fh);  	/* For now, allow room for the right number of lines with small gaps */ -	text_area_h = ((th + 2) * get_index_info_no_lines()) + 5; +	text_area_h = fh + 5;  	/* This includes the text area for index data */  	tot_thumb_h = opt.thumb_h + text_area_h; @@ -360,7 +360,7 @@ void init_index_mode(void)  			lineno = 0;  			if (opt.index_info) {  				line = lines = feh_wrap_string(create_index_string(file), -						opt.thumb_w * 2, fn, NULL); +						opt.thumb_w * 3, fn, NULL);  				while (line) {  					gib_imlib_get_text_size(fn, (char *) line->data, @@ -435,45 +435,16 @@ void init_index_mode(void)  	return;  } -static int get_index_info_no_lines(void) -{ -	static int no_lines = 0; -	char *pos = opt.index_info; - -	if (no_lines) -		return no_lines; - -	if (!opt.index_info) -		return 0; - -	no_lines = 1; -	while ((pos = strchr(pos, '\n'))) { -		no_lines++; -		pos++; -	} -	 -	return no_lines; -} -  static void get_index_string_dim(feh_file *file, Imlib_Font fn, int *fw, int *fh)  {  	int line_w, line_h;  	gib_list *line, *lines;  	static int max_w = 0, total_h = 0; -	static feh_file *last_file; - -	if (last_file == file) { -		*fw = max_w; -		*fh = total_h; -		return; -	} - -	last_file = file;  	if (!opt.index_info)  		return; -	line = lines = feh_wrap_string(create_index_string(file), opt.thumb_w * 2, fn, NULL); +	line = lines = feh_wrap_string(create_index_string(file), opt.thumb_w * 3, fn, NULL);  	while (line) {  		gib_imlib_get_text_size(fn, (char *) line->data, diff --git a/src/options.c b/src/options.c index 6f44607..4b29d35 100644 --- a/src/options.c +++ b/src/options.c @@ -374,6 +374,7 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun)  		{"menu-style"    , 1, 0, 204},  		{"zoom"          , 1, 0, 205},  		{"no-screen-clip", 0, 0, 206}, +		{"index-info"    , 1, 0, 207},  		{"caption-path"  , 1, 0, 'K'},  		{"action1"       , 1, 0, 209},  		{"action2"       , 1, 0, 210}, @@ -427,7 +428,7 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun)  			break;  		case 'I':  			opt.index = 1; -			opt.index_info = estrdup("%n \n %S \n %wx%h"); +			opt.index_info = estrdup("%n\n%S\n%wx%h");  			opt.index_show_name = 1;  			opt.index_show_size = 1;  			opt.index_show_dim = 1; @@ -650,6 +651,9 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun)  		case 206:  			opt.screen_clip = 0;  			break; +		case 207: +			opt.index_info = estrdup(optarg); +			break;  		case 'K':  			opt.caption_path = estrdup(optarg);  			break; | 
