Latest round of fixes from upstream:
* fix --draw-filename "x of y" being cut off by short filenames * respect --zoom 100 in --fullscreen mode
This commit is contained in:
parent
0b66f8d674
commit
d2fc0960bd
@ -1,9 +1,9 @@
|
|||||||
# $OpenBSD: Makefile,v 1.24 2011/06/01 11:55:22 dcoppa Exp $
|
# $OpenBSD: Makefile,v 1.25 2011/06/28 07:40:08 dcoppa Exp $
|
||||||
|
|
||||||
COMMENT= lightweight image viewer
|
COMMENT= lightweight image viewer
|
||||||
|
|
||||||
DISTNAME= feh-1.14.1
|
DISTNAME= feh-1.14.1
|
||||||
REVISION= 1
|
REVISION= 2
|
||||||
EXTRACT_SUFX= .tar.bz2
|
EXTRACT_SUFX= .tar.bz2
|
||||||
CATEGORIES= graphics
|
CATEGORIES= graphics
|
||||||
|
|
||||||
|
@ -1,7 +1,22 @@
|
|||||||
$OpenBSD: patch-man_feh_pre,v 1.3 2011/06/01 11:55:22 dcoppa Exp $
|
$OpenBSD: patch-man_feh_pre,v 1.4 2011/06/28 07:40:08 dcoppa Exp $
|
||||||
--- man/feh.pre.orig Wed Jun 1 13:45:59 2011
|
--- man/feh.pre.orig Thu May 19 22:36:13 2011
|
||||||
+++ man/feh.pre Wed Jun 1 13:46:43 2011
|
+++ man/feh.pre Tue Jun 28 09:33:26 2011
|
||||||
@@ -670,7 +670,7 @@ can also be used as a background setter. It will stor
|
@@ -239,6 +239,14 @@ below each thumbnail. Enables
|
||||||
|
.It Cm -F , --fullscreen
|
||||||
|
.
|
||||||
|
Make the window fullscreen.
|
||||||
|
+Note that in this mode, large images will always be scaled down to fit the
|
||||||
|
+screen,
|
||||||
|
+.Cm --zoom Ar zoom
|
||||||
|
+only affects smaller images and never scales larger than necessary to fit the
|
||||||
|
+screen size. The only exception is a
|
||||||
|
+.Ar zoom
|
||||||
|
+of 100, in which case images will always be shown at 100% zoom, no matter
|
||||||
|
+their dimensions.
|
||||||
|
.
|
||||||
|
.It Cm -g , --geometry Ar width No x Ar height
|
||||||
|
.
|
||||||
|
@@ -670,7 +678,7 @@ can also be used as a background setter. It will stor
|
||||||
necessary to set the background in
|
necessary to set the background in
|
||||||
.Pa ~/.fehbg ,
|
.Pa ~/.fehbg ,
|
||||||
so to have your background restored everytime you start X, you can add
|
so to have your background restored everytime you start X, you can add
|
||||||
|
63
graphics/feh/patches/patch-src_imlib_c
Normal file
63
graphics/feh/patches/patch-src_imlib_c
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
$OpenBSD: patch-src_imlib_c,v 1.7 2011/06/28 07:40:08 dcoppa Exp $
|
||||||
|
--- src/imlib.c.orig Thu May 19 22:36:13 2011
|
||||||
|
+++ src/imlib.c Tue Jun 28 09:30:29 2011
|
||||||
|
@@ -434,7 +434,7 @@ void feh_draw_errstr(winwidget w)
|
||||||
|
void feh_draw_filename(winwidget w)
|
||||||
|
{
|
||||||
|
static Imlib_Font fn = NULL;
|
||||||
|
- int tw = 0, th = 0;
|
||||||
|
+ int tw = 0, th = 0, nw = 0;
|
||||||
|
Imlib_Image im = NULL;
|
||||||
|
static DATA8 atab[256];
|
||||||
|
char *s = NULL;
|
||||||
|
@@ -462,10 +462,22 @@ void feh_draw_filename(winwidget w)
|
||||||
|
memset(atab, 0, sizeof(atab));
|
||||||
|
|
||||||
|
/* Work out how high the font is */
|
||||||
|
- gib_imlib_get_text_size(fn, FEH_FILE(w->file->data)->filename, NULL, &tw, &th, IMLIB_TEXT_TO_RIGHT);
|
||||||
|
+ gib_imlib_get_text_size(fn, FEH_FILE(w->file->data)->filename, NULL, &tw,
|
||||||
|
+ &th, IMLIB_TEXT_TO_RIGHT);
|
||||||
|
|
||||||
|
- /* tw is no longer correct, if the filename is shorter than
|
||||||
|
- * the string "%d of %d" used below in fullscreen mode */
|
||||||
|
+ if (gib_list_length(filelist) > 1) {
|
||||||
|
+ len = snprintf(NULL, 0, "%d of %d", gib_list_length(filelist),
|
||||||
|
+ gib_list_length(filelist)) + 1;
|
||||||
|
+ s = emalloc(len);
|
||||||
|
+ snprintf(s, len, "%d of %d", gib_list_num(filelist, current_file) +
|
||||||
|
+ 1, gib_list_length(filelist));
|
||||||
|
+
|
||||||
|
+ gib_imlib_get_text_size(fn, s, NULL, &nw, NULL, IMLIB_TEXT_TO_RIGHT);
|
||||||
|
+
|
||||||
|
+ if (nw > tw)
|
||||||
|
+ tw = nw;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
tw += 3;
|
||||||
|
th += 3;
|
||||||
|
im = imlib_create_image(tw, 2 * th);
|
||||||
|
@@ -473,20 +485,16 @@ void feh_draw_filename(winwidget w)
|
||||||
|
eprintf("Couldn't create image. Out of memory?");
|
||||||
|
|
||||||
|
gib_imlib_image_set_has_alpha(im, 1);
|
||||||
|
- gib_imlib_apply_color_modifier_to_rectangle(im, 0, 0, tw, 2 * th, NULL, NULL, NULL, atab);
|
||||||
|
+ gib_imlib_apply_color_modifier_to_rectangle(im, 0, 0, tw, 2 * th, NULL,
|
||||||
|
+ NULL, NULL, atab);
|
||||||
|
gib_imlib_image_fill_rectangle(im, 0, 0, tw, 2 * th, 0, 0, 0, 0);
|
||||||
|
|
||||||
|
gib_imlib_text_draw(im, fn, NULL, 2, 2, FEH_FILE(w->file->data)->filename,
|
||||||
|
IMLIB_TEXT_TO_RIGHT, 0, 0, 0, 255);
|
||||||
|
gib_imlib_text_draw(im, fn, NULL, 1, 1, FEH_FILE(w->file->data)->filename,
|
||||||
|
IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255);
|
||||||
|
- /* Print the position in the filelist, if we have >=2 files */
|
||||||
|
- if (gib_list_length(filelist) > 1) {
|
||||||
|
- /* sic! */
|
||||||
|
- len = snprintf(NULL, 0, "%d of %d", gib_list_length(filelist), gib_list_length(filelist)) + 1;
|
||||||
|
- s = emalloc(len);
|
||||||
|
- snprintf(s, len, "%d of %d", gib_list_num(filelist, current_file) + 1, gib_list_length(filelist));
|
||||||
|
- /* This should somehow be right-aligned */
|
||||||
|
+
|
||||||
|
+ if (s) {
|
||||||
|
gib_imlib_text_draw(im, fn, NULL, 2, th + 1, s, IMLIB_TEXT_TO_RIGHT, 0, 0, 0, 255);
|
||||||
|
gib_imlib_text_draw(im, fn, NULL, 1, th, s, IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255);
|
||||||
|
free(s);
|
20
graphics/feh/patches/patch-src_winwidget_c
Normal file
20
graphics/feh/patches/patch-src_winwidget_c
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
$OpenBSD: patch-src_winwidget_c,v 1.5 2011/06/28 07:40:08 dcoppa Exp $
|
||||||
|
--- src/winwidget.c.orig Thu May 19 22:36:13 2011
|
||||||
|
+++ src/winwidget.c Tue Jun 28 09:33:26 2011
|
||||||
|
@@ -464,10 +464,12 @@ void winwidget_render_image(winwidget winwid, int resi
|
||||||
|
double old_zoom = winwid->zoom;
|
||||||
|
|
||||||
|
winwid->zoom = 0.01 * opt.default_zoom;
|
||||||
|
- if ((winwid->im_h * winwid->zoom) > max_h)
|
||||||
|
- winwid->zoom = old_zoom;
|
||||||
|
- if ((winwid->im_w * winwid->zoom) > max_w)
|
||||||
|
- winwid->zoom = old_zoom;
|
||||||
|
+ if (winwid->zoom != 1.0) {
|
||||||
|
+ if ((winwid->im_h * winwid->zoom) > max_h)
|
||||||
|
+ winwid->zoom = old_zoom;
|
||||||
|
+ else if ((winwid->im_w * winwid->zoom) > max_w)
|
||||||
|
+ winwid->zoom = old_zoom;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
winwid->im_x = ((int)
|
||||||
|
(max_w - (winwid->im_w * winwid->zoom))) >> 1;
|
Loading…
Reference in New Issue
Block a user