[gimp/gimp-2-10] app: make sure the display is not rotated by a very small angle
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gimp-2-10] app: make sure the display is not rotated by a very small angle
- Date: Thu, 25 Jul 2019 10:51:50 +0000 (UTC)
commit 9f529d616474c9ae16289030fd006dd1389eaef7
Author: Michael Natterer <mitch gimp org>
Date: Thu Jul 25 12:45:21 2019 +0200
app: make sure the display is not rotated by a very small angle
gimp_display_shell_rotate_update_transform(): reliably set rotation to
0.0 using an epsilon of 1e-3.
(cherry picked from commit 7ddf40b78b8b55ccd3fba3dc9a8dbb15b957f370)
app/display/gimpdisplayshell-rotate.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
---
diff --git a/app/display/gimpdisplayshell-rotate.c b/app/display/gimpdisplayshell-rotate.c
index dd9ed6940f..e681e51423 100644
--- a/app/display/gimpdisplayshell-rotate.c
+++ b/app/display/gimpdisplayshell-rotate.c
@@ -35,6 +35,9 @@
#include "gimpdisplayshell-transform.h"
+#define ANGLE_EPSILON 1e-3
+
+
/* local function prototypes */
static void gimp_display_shell_save_viewport_center (GimpDisplayShell *shell,
@@ -165,8 +168,12 @@ gimp_display_shell_rotate_update_transform (GimpDisplayShell *shell)
{
g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
- g_free (shell->rotate_transform);
- g_free (shell->rotate_untransform);
+ g_clear_pointer (&shell->rotate_transform, g_free);
+ g_clear_pointer (&shell->rotate_untransform, g_free);
+
+ if (fabs (shell->rotate_angle) < ANGLE_EPSILON ||
+ fabs (360.0 - shell->rotate_angle) < ANGLE_EPSILON)
+ shell->rotate_angle = 0.0;
if ((shell->rotate_angle != 0.0 ||
shell->flip_horizontally ||
@@ -202,11 +209,6 @@ gimp_display_shell_rotate_update_transform (GimpDisplayShell *shell)
*shell->rotate_untransform = *shell->rotate_transform;
cairo_matrix_invert (shell->rotate_untransform);
}
- else
- {
- shell->rotate_transform = NULL;
- shell->rotate_untransform = NULL;
- }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]