After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 796021 - Path generated from an ellipse selection is counter-clockwise in 2.10 (was clockwise before)
Path generated from an ellipse selection is counter-clockwise in 2.10 (was cl...
Status: RESOLVED OBSOLETE
Product: GIMP
Classification: Other
Component: General
2.10.0
Other All
: Normal blocker
: 2.10
Assigned To: GIMP Bugs
GIMP Bugs
Depends on:
Blocks:
 
 
Reported: 2018-05-11 09:18 UTC by Ofnuts
Modified: 2018-05-24 19:53 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Text-along-path in 2.8 (23.66 KB, image/png)
2018-05-11 09:18 UTC, Ofnuts
Details
Text-along-path in 2.10 (25.01 KB, image/png)
2018-05-11 09:19 UTC, Ofnuts
Details

Description Ofnuts 2018-05-11 09:18:14 UTC
Created attachment 371934 [details]
Text-along-path in 2.8

The path generated when doing Select>From path with an ellipse selection is  counter-clockwise in Gimp210, when it was clockwise in Gimp 2.6 and 2.8.

This breaks a very common use-case with text-along-path (demoed in countless youtube videos);

* Create a circle selection
* Select>To path
* Create a text layer
* Layer>Text along path

In 2.8 the text is laid correctly, in 2.10 it is laid backwards (see the two attachments).
Comment 1 Ofnuts 2018-05-11 09:19:18 UTC
Created attachment 371935 [details]
Text-along-path in 2.10
Comment 2 Massimo 2018-05-18 11:22:46 UTC
Here the problem seems to be starting from this commit:

https://git.gnome.org/browse/gimp/commit/app/vectors/gimpbezierstroke.c?id=1e47343b04fe915c830e84a3cc079a99be3ccb97

that replaced many list_prepend with corresponding queue_push_tail, for example:

@@ -1617,19 +1631,17 @@ gimp_bezier_stroke_interpolate (const GimpStroke  *stroke,
 GimpStroke *
 gimp_bezier_stroke_new_moveto (const GimpCoords *start)
 {
-  GimpStroke *stroke;
-
-  stroke = gimp_bezier_stroke_new ();
-
-  stroke->anchors = g_list_prepend (stroke->anchors,
-                                    gimp_anchor_new (GIMP_ANCHOR_CONTROL,
-                                                     start));
-  stroke->anchors = g_list_prepend (stroke->anchors,
-                                    gimp_anchor_new (GIMP_ANCHOR_ANCHOR,
-                                                     start));
-  stroke->anchors = g_list_prepend (stroke->anchors,
-                                    gimp_anchor_new (GIMP_ANCHOR_CONTROL,
-                                                     start));
+  GimpStroke *stroke = gimp_bezier_stroke_new ();
+
+  g_queue_push_tail (stroke->anchors,
+                     gimp_anchor_new (GIMP_ANCHOR_CONTROL,
+                                      start));
+  g_queue_push_tail (stroke->anchors,
+                     gimp_anchor_new (GIMP_ANCHOR_ANCHOR,
+                                      start));
+  g_queue_push_tail (stroke->anchors,
+                     gimp_anchor_new (GIMP_ANCHOR_CONTROL,
+                                      start));


Obviously it is possible to go back to the prepend logic or to go
forward and fix text-along-path code, but also the stroke-path cmds that are
affected by the same inverse problem and what else is
Comment 3 Michael Natterer 2018-05-18 11:33:05 UTC
That is clearly evil and needs to be sorted out -> blocker!
Comment 4 GNOME Infrastructure Team 2018-05-24 19:53:53 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gimp/issues/1439.