[gimp] app: do not edit symmetry variables but properties.
- From: Jehan Pagès <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: do not edit symmetry variables but properties.
- Date: Mon, 2 Apr 2018 16:53:31 +0000 (UTC)
commit d779c138914167d6cf66f76900a3dad8d7d772b7
Author: Jehan <jehan girinstud io>
Date: Mon Apr 2 18:49:23 2018 +0200
app: do not edit symmetry variables but properties.
If variables are edited directly, in some cases, the GUI and the
symmetries may end up out-of-sync. The variable can only be edited
through property setting.
app/core/gimpsymmetry-mirror.c | 48 +++++++++++++++++++++++++---------------
1 files changed, 30 insertions(+), 18 deletions(-)
---
diff --git a/app/core/gimpsymmetry-mirror.c b/app/core/gimpsymmetry-mirror.c
index 738ae5b..0f7b09a 100644
--- a/app/core/gimpsymmetry-mirror.c
+++ b/app/core/gimpsymmetry-mirror.c
@@ -520,20 +520,24 @@ gimp_mirror_remove_guide (GimpMirror *mirror,
guide = (orientation == GIMP_ORIENTATION_HORIZONTAL) ?
mirror->horizontal_guide : mirror->vertical_guide;
- g_signal_handlers_disconnect_by_func (G_OBJECT (guide),
- gimp_mirror_guide_removed_cb,
- mirror);
- g_signal_handlers_disconnect_by_func (G_OBJECT (guide),
- gimp_mirror_guide_position_cb,
- mirror);
-
- gimp_image_remove_guide (image, guide, FALSE);
- g_object_unref (guide);
-
- if (orientation == GIMP_ORIENTATION_HORIZONTAL)
- mirror->horizontal_guide = NULL;
- else
- mirror->vertical_guide = NULL;
+ /* The guide may have already been removed, for instance from GUI. */
+ if (guide)
+ {
+ g_signal_handlers_disconnect_by_func (G_OBJECT (guide),
+ gimp_mirror_guide_removed_cb,
+ mirror);
+ g_signal_handlers_disconnect_by_func (G_OBJECT (guide),
+ gimp_mirror_guide_position_cb,
+ mirror);
+
+ gimp_image_remove_guide (image, guide, FALSE);
+ g_object_unref (guide);
+
+ if (orientation == GIMP_ORIENTATION_HORIZONTAL)
+ mirror->horizontal_guide = NULL;
+ else
+ mirror->vertical_guide = NULL;
+ }
}
static void
@@ -554,8 +558,12 @@ gimp_mirror_guide_removed_cb (GObject *object,
g_object_unref (mirror->horizontal_guide);
mirror->horizontal_guide = NULL;
- mirror->horizontal_mirror = FALSE;
- mirror->point_symmetry = FALSE;
+ g_object_set (mirror,
+ "horizontal-symmetry", FALSE,
+ NULL);
+ g_object_set (mirror,
+ "point-symmetry", FALSE,
+ NULL);
g_object_set (mirror,
"mirror-position-y", 0.0,
NULL);
@@ -581,8 +589,12 @@ gimp_mirror_guide_removed_cb (GObject *object,
g_object_unref (mirror->vertical_guide);
mirror->vertical_guide = NULL;
- mirror->vertical_mirror = FALSE;
- mirror->point_symmetry = FALSE;
+ g_object_set (mirror,
+ "vertical-symmetry", FALSE,
+ NULL);
+ g_object_set (mirror,
+ "point-symmetry", FALSE,
+ NULL);
g_object_set (mirror,
"mirror-position-x", 0.0,
NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]