aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBert Münnich <ber.t@posteo.de>2014-01-09 20:24:58 +0100
committerBert Münnich <ber.t@posteo.de>2014-01-09 20:24:58 +0100
commit48700aa6c8f4b9ef6dc162ea5aa98ac4f9cc0630 (patch)
treea0c1c38034cd696ce60a882fe1a74f2d1229782d
parentf795273b650a4df39dca693f30c3650ec1d3393f (diff)
downloadnsxiv-48700aa6c8f4b9ef6dc162ea5aa98ac4f9cc0630.tar.zst
Revert "Apply flip & rotation on all frames of a multi-frame image; fixes issue #121"
This reverts commit f795273b650a4df39dca693f30c3650ec1d3393f.
-rw-r--r--image.c32
-rw-r--r--image.h3
-rw-r--r--types.h6
3 files changed, 11 insertions, 30 deletions
diff --git a/image.c b/image.c
index 2165e11..21ab3bd 100644
--- a/image.c
+++ b/image.c
@@ -337,8 +337,6 @@ bool img_load(img_t *img, const fileinfo_t *file)
img->w = imlib_image_get_width();
img->h = imlib_image_get_height();
- img->flip = FLIP_NONE;
- img->rotation = DEGREE_0;
img->scalemode = options->scalemode;
img->re = false;
img->checkpan = false;
@@ -691,14 +689,10 @@ bool img_pan_edge(img_t *img, direction_t dir)
void img_rotate(img_t *img, degree_t d)
{
int ox, oy, tmp;
- bool reapply = d == -1;
if (img == NULL || img->im == NULL || img->win == NULL)
return;
- if (reapply)
- d = img->rotation;
-
imlib_context_set_image(img->im);
imlib_image_orientate(d);
@@ -714,29 +708,25 @@ void img_rotate(img_t *img, degree_t d)
img->h = tmp;
img->checkpan = true;
}
- if (!reapply)
- img->rotation = (img->rotation + d) % 4;
+
img->dirty = true;
}
void img_flip(img_t *img, flipdir_t d)
{
- bool reapply = d == -1;
-
if (img == NULL || img->im == NULL)
return;
- if (reapply)
- d = img->flip;
-
imlib_context_set_image(img->im);
- if (d & FLIP_HORIZONTAL)
- imlib_image_flip_horizontal();
- if (d & FLIP_VERTICAL)
- imlib_image_flip_vertical();
- if (!reapply)
- img->flip ^= d;
+ switch (d) {
+ case FLIP_HORIZONTAL:
+ imlib_image_flip_horizontal();
+ break;
+ case FLIP_VERTICAL:
+ imlib_image_flip_vertical();
+ break;
+ }
img->dirty = true;
}
@@ -795,10 +785,6 @@ bool img_frame_goto(img_t *img, int n)
img->checkpan = true;
img->dirty = true;
- if (img->flip != FLIP_NONE)
- img_flip(img, -1);
- if (img->rotation != DEGREE_0)
- img_rotate(img, -1);
return true;
}
diff --git a/image.h b/image.h
index bd59bb3..f83ed6b 100644
--- a/image.h
+++ b/image.h
@@ -57,9 +57,6 @@ typedef struct {
bool aa;
bool alpha;
- flipdir_t flip;
- degree_t rotation;
-
Imlib_Color_Modifier cmod;
int gamma;
diff --git a/types.h b/types.h
index fedc1cb..2cd305e 100644
--- a/types.h
+++ b/types.h
@@ -39,16 +39,14 @@ typedef enum {
} direction_t;
typedef enum {
- DEGREE_0 = 0,
DEGREE_90 = 1,
DEGREE_180 = 2,
DEGREE_270 = 3
} degree_t;
typedef enum {
- FLIP_NONE = 0,
- FLIP_HORIZONTAL = 1,
- FLIP_VERTICAL = 2
+ FLIP_HORIZONTAL,
+ FLIP_VERTICAL
} flipdir_t;
typedef enum {