Bug 107298 - Snap option "When creating or moving objects" is mis-labeled in Draw
Summary: Snap option "When creating or moving objects" is mis-labeled in Draw
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Draw (show other bugs)
Version:
(earliest affected)
5.3.2.2 release
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard: target:5.4.0
Keywords:
Depends on:
Blocks: Options-Dialog Snap
  Show dependency treegraph
 
Reported: 2017-04-20 15:20 UTC by Mike
Modified: 2017-09-24 17:52 UTC (History)
10 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mike 2017-04-20 15:20:55 UTC
Description:
The Draw/snap option labeled "When creating or moving objects" implies that when you create or move an object, that bounding boxes will snap to grid points, etc. But this option does the opposite. 

Steps to Reproduce:
N/A

Actual Results:  
One would expect that new objects would snap when they're created, in any arbitrary aspect ratio. In actuality, the option:

* disables snapping on new shapes (the exact opposite!), and
* fixes the new shape's aspect ratio at 1:1, which is completely unexpected.


Expected Results:
One would expect that new objects would snap when they're created, in any arbitrary aspect ratio. 

When a user is trying to draw a rectangle and it always comes out a square, they'll naturally look through Draw's options. But they won't find a corresponding option. As I did, they'll have to find the solution in a forum or by digging in Help.


Reproducible: Always

User Profile Reset: N/A

Additional Info:
The simple fix is to rename that option:

"Aspect ratio of new shapes is 1:1"
or
"Default aspect ration of new shapes is 1:1", which hints at the keyboard shortcut to unlock the ratio.


User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0
Comment 1 Buovjaga 2017-04-27 18:23:41 UTC
Found in: Tools - options - LibO Draw - Grid

You can negate the effect by pressing Shift key.

Information can be found by searching for snap position in the Draw guide http://documentation.libreoffice.org/en/english-documentation/draw/

Adding Olivier and Heiko for further thoughts.
Comment 2 Mike 2017-04-27 18:28:19 UTC
You misunderstand the issue. 

The feature is not the problem. The problem is about wording; it's about what the feature is labeled in Options. It must be re-labeled.
Comment 3 Buovjaga 2017-04-27 18:42:42 UTC
(In reply to Mike from comment #2)
> You misunderstand the issue. 
> 
> The feature is not the problem. The problem is about wording; it's about
> what the feature is labeled in Options. It must be re-labeled.

I don't misunderstand it. That's why I added our docs and design leads to the CC.
Comment 4 Heiko Tietze 2017-04-27 20:23:37 UTC
Cannot imagine a user who misunderstands this text. Wouldn't "When rotating" in the same dialog means that the sun revolves around the earth, following this reasoning? However, despite the "What's this" feature (which isn't working in the options dialog) a tooltip could help to clarify the text at many occasions. Adds a lot of work for the l10n team, though.

Voting for WONTFIX
Comment 5 Mike 2017-04-27 20:40:48 UTC
I honestly can't believe what I'm reading. And your analogy makes no sense. Let me ask you two questions:

(1) When you want a rectangle but you get a square, and then you look for the option to turn that feature off, please tell me what WORDS you would be looking for among the Options. What words do you associate with that behavior?

(2) How do you do define snapping? I define it as forcing a point or line to some other place. When this "snap" option is enabled, _nothing_ is forced anywhere. How does that linguistically make sense to you?
Comment 6 Buovjaga 2017-04-28 05:15:31 UTC
I tend to agree with Mike. "Snap Position" as it functions in LibO is completely alien terminology to me, a person with extensive experience with 2D and 2D graphics software.

After testing I can say the correct terminology is "Constrain" instead of "Snap" and "Position" does not really fit there. I think the title should be "Constrain Transformations" and the checkbox titles can stay as they are.
Mike: do you agree with my proposal?

Here is the help page: https://help.libreoffice.org/Common/Grid_2#Snap_position

I'm going to go ahead and set to NEW.
Comment 7 Mike 2017-04-28 19:12:05 UTC
Replacing "Snap" with "Constrain" an excellent start. But it could be so much better because (1) while "constrain transformations" indicates that something will be constrained, but not how, which is equally important. Perhaps more! (2) There are other wording troubles with the options.

Regarding (1), even after you proposed a new group name, I had to test the options to understand what they actually do, which can be a problem in two scenarios. (a) If you're looking at the options cold as an inexperienced user looking for awesome custom tweaks, it's not clear what the options do because "constraints" is not specific enough. And (b), in the use case where the user is drawing squares when they want rectangles, they'll browse the options looking for something that obviously relates. "Constraints" is a clue, and "creating" is also a clue. But why compel the user to interpret clues when we can make the meaning obvious with a few extra words? 

Regarding (2), all three option labels should be changed. (a) After looking at this first option for two days, it's finally occurred to me that the word "moving" in the first option has nothing to do with moving--it has to do with resizing. So this label must change.

(b) Extend edges. (The most difficult feature to understand.) Unless I misunderstand, this is actually a sub-option of the first option WHEN the first option is select. Is that correct? If so, the option should only be enabled when the first option is selected, and the control should be re-positioned to make the relationship between the two controls obvious. 

The existing wording, too, may as well read "ham sandwich" for all it conveys to the user :-) Even after reading the Help, I had to play with the option for several minutes to figure out what it does. Crafting an alternative label for this will be difficult. I have a suggestion below, but you could come up with something better.

(c) The angle values strongly imply what the third option does. Still, we can differentiate the the _type_ of constraint by replacing a single word.

So, in light of all this, I counter-propose the following, and |_| is my way of indicating a checkbox:

 Transformation Constraints
 |_| Fix proportions when creating or resizing object
     |_| Reference furthest mouse position
 |_| Snap rotations  <field>
     Point reduction <field>

If the online documentation is accurate, and the sub-option only applies when "creating" an object, then the first option should logically be split into two:

 Transformation Constraints
 |_| Fix proportions when creating object
     |_| Reference furthest mouse position
 |_| Fix proportions when resizing object
 |_| Snap rotations  <field>
     Point reduction <field>

I realize this is a lot to digest, so thanks for considering what I'm saying.
Comment 8 Buovjaga 2017-04-29 05:30:12 UTC
(In reply to Mike from comment #7)
> Regarding (2), all three option labels should be changed. (a) After looking
> at this first option for two days, it's finally occurred to me that the word
> "moving" in the first option has nothing to do with moving--it has to do
> with resizing. So this label must change.

It does affect moving: it limits the moving to x, y or 45 degrees (diagonally). Meaning it grabs the direction where you first start dragging the object and locks it to that axis. Then you have to more pronouncedly move it to a different direction to make it switch the locking. Try it out.
Comment 9 Heiko Tietze 2017-04-29 08:00:48 UTC
Since the proposal depends on localization what's your opinion, Sophie?

(Best solution to unclear options is a visualization, i.e. an icon next to the checkbox indicating what happens.)
Comment 10 Mike 2017-04-29 15:24:22 UTC
(In reply to Buovjaga from comment #8)
> (In reply to Mike from comment #7)
> > Regarding (2), all three option labels should be changed. (a) After looking
> > at this first option for two days, it's finally occurred to me that the word
> > "moving" in the first option has nothing to do with moving--it has to do
> > with resizing. So this label must change.
> 
> It does affect moving: it limits the moving to x, y or 45 degrees
> (diagonally). Meaning it grabs the direction where you first start dragging
> the object and locks it to that axis. Then you have to more pronouncedly
> move it to a different direction to make it switch the locking. Try it out.

Ah, yes! So that that option actually does two different things. Seems like that should be a separate option, too. "Move objects in straight line".
Comment 11 Yousuf Philips (jay) 2017-04-29 20:04:21 UTC
I think if we change the section heading from 'Snap Position' to something like 'Snap Angles' or 'Snap to Angles', the checkboxes make more sense as they are all dealing in degree values. Then we can also add 45 degrees to the "When creating or moving objects" label and will makes more sense.

@Adolfo, @Stuart: Whats your take on the wording?
Comment 12 Buovjaga 2017-04-30 07:34:22 UTC
(In reply to Yousuf Philips (jay) from comment #11)
> I think if we change the section heading from 'Snap Position' to something
> like 'Snap Angles' or 'Snap to Angles', the checkboxes make more sense as
> they are all dealing in degree values. Then we can also add 45 degrees to
> the "When creating or moving objects" label and will makes more sense.
> 
> @Adolfo, @Stuart: Whats your take on the wording?

No, this is not true. They are not dealing with degrees. The degrees only affect rotation.

Talking about snapping is simply incorrect.
Comment 13 Buovjaga 2017-04-30 07:40:30 UTC
"transformations" is a general term for move/size/rotate: https://helpx.adobe.com/indesign/using/transforming-objects.html

Example of using "constrain" in graphics software in the context of transformations: https://helpx.adobe.com/photoshop-elements/using/transforming.html

"To constrain the rotation to 15° increments, hold down Shift as you drag"

"To maintain the relative proportions (avoiding image distortion) as you scale, select Constrain Proportions, and then drag a corner handle"

From the first link:
"Shift-drag to constrain the movement of the object horizontally, vertically, or diagonally (in multiples of 45°)."
Comment 14 Buovjaga 2017-04-30 08:48:03 UTC
"constraints" is even used in our registry schema: http://opengrok.libreoffice.org/xref/core/officecfg/registry/schema/org/openoffice/Office/Draw.xcs#542 http://opengrok.libreoffice.org/xref/core/officecfg/registry/schema/org/openoffice/Office/Impress.xcs#777

"Specifies constraints regarding the creation and modification of graphical objects."
Comment 15 Yousuf Philips (jay) 2017-04-30 10:46:33 UTC
(In reply to Buovjaga from comment #12)
> No, this is not true. They are not dealing with degrees. The degrees only
> affect rotation.

When 'when creating or moving objects' is enabled, if you draw, resize or move a shape, it will restrain the action to do so at 45* angle increments, irrespective of where the users mouse is.
Comment 16 Buovjaga 2017-04-30 10:53:34 UTC
(In reply to Yousuf Philips (jay) from comment #15)
> (In reply to Buovjaga from comment #12)
> > No, this is not true. They are not dealing with degrees. The degrees only
> > affect rotation.
> 
> When 'when creating or moving objects' is enabled, if you draw, resize or
> move a shape, it will restrain the action to do so at 45* angle increments,
> irrespective of where the users mouse is.

How is resizing related to angles? Constrain Transformations is the correct label, period. Now I just have to find out what the implications of changing it are to the stuff in schema, ie. do we just leave them alone.
Comment 17 Yousuf Philips (jay) 2017-04-30 11:03:48 UTC
(In reply to Buovjaga from comment #16)
> How is resizing related to angles? Constrain Transformations is the correct
> label, period. Now I just have to find out what the implications of changing
> it are to the stuff in schema, ie. do we just leave them alone.

So how is Constrain Transformation covering what happens when you move the object?
Comment 18 Buovjaga 2017-04-30 11:10:26 UTC
(In reply to Yousuf Philips (jay) from comment #17)
> (In reply to Buovjaga from comment #16)
> > How is resizing related to angles? Constrain Transformations is the correct
> > label, period. Now I just have to find out what the implications of changing
> > it are to the stuff in schema, ie. do we just leave them alone.
> 
> So how is Constrain Transformation covering what happens when you move the
> object?

Quoting from the Indesign help I referred to in comment 13:
"Shift-drag to constrain the movement of the object horizontally, vertically, or diagonally (in multiples of 45°)."

Transformation is a general term for move/rotate/resize in graphics software.
Comment 19 Regina Henschel 2017-04-30 13:49:03 UTC
"Snap position" is a bad title, especially because "Snap" is used in the left group too. The German UI has different words, "Fangen" in the left group and "Einrasten" in the right one. I support changing "Snap position" to something better. "Constrains" sounds better to me. "Constrain Tranformation" would imply, that the object exists already, but some options work when creating the object.

All three options can only be understood, when reading the extended tip. I see no good way to describe it in a single line. For example: "Extend edges". Long version: If you create an object, which it not constrained to a square bounding box in itself, you can force the size of the shape to a square bounding box, when you hold down the shift key while releasing the mouse button. If this option is checked, the larger edge of the drag-create bounding rectangle is used as edge for the square bounding box. If this option is not checked, the shorter one is used.

Do you know a one line description for that? The German version "Längere Kantenlänge" is clearer than the English "Extend edges" but the relation to the feature itself is missing too.



The forth options "Point reduction" does not belong to this group at all and should have a larger distance to the other three. It sets the angle for the tool .uno:BezierEliminatePoints, the right most icon in the point edit toolbar. The label "Point reduction" is bad too, see bug 105988.
Comment 20 V Stuart Foote 2017-04-30 16:43:01 UTC
Agree we should adjust the label.  Believe "Constrain Objects" would be correct. As just "Constraints" would be too vague, while annotating as "Transformations" would loose context to the underlying positioning grid. And either would be troublesome for l10n/i18n.

The movements, reshaping and transformations of Drawing objects are all still occurring using the adjustable Snapping Grid framework that includes 45° diagonal movement.  

These controls enable/disable and adjust "snap" to that grid--which is the Dialog title. 

While rotation is constrained with angular increments--freely rotated by default, or constrained when checked.

And, kind of feel there is an implementation disconnect between mouse use and keyboard cursor use for movements--settings here should apply to cursor movement of objects--but that is a different issue.

Had to resort to the Drawing guide to figure out the Point Reduction. But in the context of snap to grid, believe it controls the density of "target" points along a polygons curve that will take a snap. I does not reshape the curve--just the available "targets" for the snap.
Comment 21 sophie 2017-05-01 12:29:30 UTC
(In reply to Heiko Tietze from comment #9)
> Since the proposal depends on localization what's your opinion, Sophie?
> 
> (Best solution to unclear options is a visualization, i.e. an icon next to
> the checkbox indicating what happens.)

Thanks for asking Heiko. As long as it makes the wording more understandable, adapted to the functionality and stay concise, there is no problem with l10n. Sophie
Comment 22 Commit Notification 2017-05-16 09:19:21 UTC
Ilmari Lauhakangas committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=bbecc255ab2a9b3e8e2d6203eff8a03f24751046

tdf#107298 Rename Snap Position to Constrain Objects

It will be available in 5.4.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 23 Commit Notification 2017-05-16 20:43:59 UTC
Ilmari Lauhakangas committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/help/commit/?id=c18afa518a3f076885d2bd22520c6c5c4d4caf9a

tdf#107298 Snap Position renamed to Constrain Objects