Hello There are now 24 bugs that have a 2.4 milestone and 6 of these are related or directly uses the code in app/tools/gimprectangletool.c. As most of you know the code in there is a mess. In the last few days I've been thinking about a way to clean up this mess, and I have a plan I'd like to throw out there in an attempt to synchronize the direction we are taking the code in. With the introduction of helper functions like void gimp_rectangle_tool_constrain_aspect (GimpRectangleTool *rectangle_tool, gdouble aspect, const gchar *apply_on_x, const gchar *apply_on_y) { /* apply_on_x may be "x1", "x2" or "center_x", same for on_y */ } and verbose comments and member/variables names, it would be possible to apply these modifications on the rectangle in different order depending on the state of GimpRectangleOptions We would also avoid weaving in different logic on the same line of code, which currently is what the code in gimp_rectangle_tool_motion is horribly close to doing. For a taste of what I mean, checkout this patch: http://bugzilla.gnome.org/attachment.cgi?id=90541&action=view attached to this bug: http://bugzilla.gnome.org/show_bug.cgi?id=398183 (CTRL modifier on a selection does not snap the starting corner back...) It introduces e.g. void gimp_rectangle_tool_set_other_side_coord (GimpRectangleTool *rectangle_tool, gint other_side_x, gint other_side_y) and verbose commenting. Personally I intend to realize this plan in the following weeks, I just wanted to throw it out to the mailing list. Partly because, as I said, to synchronize the direction the code is taking, but also to get feedback and to avoid clashes with other Big Plans. - Martin Nordholts _______________________________________________ Gimp-developer mailing list Gimp-developer@xxxxxxxxxxxxxxxxxxxxxx https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer