[gimp] app: allow the mirror axis position within image's dimensions only.
- From: Jehan Pagès <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: allow the mirror axis position within image's dimensions only.
- Date: Thu, 11 Feb 2016 16:20:58 +0000 (UTC)
commit 01073359386670de6d7b08ced940b575b746a469
Author: Jehan <jehan girinstud io>
Date: Thu Feb 11 17:07:54 2016 +0100
app: allow the mirror axis position within image's dimensions only.
This is not ideal since the scale widget is crazy huge, thus
impractical, but the solution used on properties of other symmetries
(updating min/max of the class property) is wrong since it applies to
the whole class.
For the time being, it avoid setting obviously bad values until we
figure out the ideal automatic UI construction.
app/core/gimpsymmetry-mirror.c | 52 +++++++++++++++++++++++-----------------
1 files changed, 30 insertions(+), 22 deletions(-)
---
diff --git a/app/core/gimpsymmetry-mirror.c b/app/core/gimpsymmetry-mirror.c
index f882b93..cf269fa 100644
--- a/app/core/gimpsymmetry-mirror.c
+++ b/app/core/gimpsymmetry-mirror.c
@@ -228,33 +228,41 @@ gimp_mirror_set_property (GObject *object,
mirror->disable_transformation = g_value_get_boolean (value);
break;
case PROP_HORIZONTAL_POSITION:
- mirror->horizontal_position = g_value_get_double (value);
- if (mirror->horizontal_guide)
+ if (g_value_get_double (value) > 0.0 &&
+ g_value_get_double (value) < (gdouble) gimp_image_get_height (image))
{
- g_signal_handlers_block_by_func (mirror->horizontal_guide,
- gimp_mirror_guide_position_cb,
- mirror);
- gimp_image_move_guide (image, mirror->horizontal_guide,
- mirror->horizontal_position,
- FALSE);
- g_signal_handlers_unblock_by_func (mirror->horizontal_guide,
- gimp_mirror_guide_position_cb,
- mirror);
+ mirror->horizontal_position = g_value_get_double (value);
+ if (mirror->horizontal_guide)
+ {
+ g_signal_handlers_block_by_func (mirror->horizontal_guide,
+ gimp_mirror_guide_position_cb,
+ mirror);
+ gimp_image_move_guide (image, mirror->horizontal_guide,
+ mirror->horizontal_position,
+ FALSE);
+ g_signal_handlers_unblock_by_func (mirror->horizontal_guide,
+ gimp_mirror_guide_position_cb,
+ mirror);
+ }
}
break;
case PROP_VERTICAL_POSITION:
- mirror->vertical_position = g_value_get_double (value);
- if (mirror->vertical_guide)
+ if (g_value_get_double (value) > 0.0 &&
+ g_value_get_double (value) < (gdouble) gimp_image_get_width (image))
{
- g_signal_handlers_block_by_func (mirror->vertical_guide,
- gimp_mirror_guide_position_cb,
- mirror);
- gimp_image_move_guide (image, mirror->vertical_guide,
- mirror->vertical_position,
- FALSE);
- g_signal_handlers_unblock_by_func (mirror->vertical_guide,
- gimp_mirror_guide_position_cb,
- mirror);
+ mirror->vertical_position = g_value_get_double (value);
+ if (mirror->vertical_guide)
+ {
+ g_signal_handlers_block_by_func (mirror->vertical_guide,
+ gimp_mirror_guide_position_cb,
+ mirror);
+ gimp_image_move_guide (image, mirror->vertical_guide,
+ mirror->vertical_position,
+ FALSE);
+ g_signal_handlers_unblock_by_func (mirror->vertical_guide,
+ gimp_mirror_guide_position_cb,
+ mirror);
+ }
}
break;
default:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]