evolus / pencil

The Pencil Project's unique mission is to build a free and opensource tool for making diagrams and GUI prototyping that everyone can use.
http://pencil.evolus.vn
GNU General Public License v2.0
9.07k stars 721 forks source link

Do not update elements while typing in toolbar controls #117

Open larvanitis opened 8 years ago

larvanitis commented 8 years ago

Currently, while typing in one of the toolbar controls, such as location and size, the elements get updated in real time. This is contrary to how all other design software works (as far as I can tell) and as a side effect multiple undo steps are created instead of just one.

I suggest that the change should be applied only on focus-lost and pressing Enter. Clicking on control buttons (eg. numeric up/down arrows) should keep the immediate effect.

sebastianfilke commented 8 years ago

Does this issue correlate with this one? https://github.com/evolus/pencil/issues/100

larvanitis commented 8 years ago

Does this issue correlate with this one? #100

I am not sure as a) my issue is not affected by grouping and b) it's only about the value input getting applied it changes while typing.

sebastianfilke commented 8 years ago

Okay, now i understand what you mean. this behaviour would be horrible. i am using the x and y coordinates and the width and height of an element very intensive. i have to watch every change immediately. otherwise i would have a jumping element. for example if you switch the location about 50px and then after you blur the toolbar the elements jumps to the new location but then you realize this was way too much!!

if there is an downvote take mine ! ;P

larvanitis commented 8 years ago

Wait, you mean you prefer the current functionality and you do not want it to change?

Your use case is better served using a) drag-n-drop, b) positioning with the arrow keys (try holding Ctrl or Shift for faster movement) or c) pixel by pixel using the toolbar controls (increase/decrease buttons). Then you can fix the exact position using the numeric inputs.

On the other hand, try the following using only the location input and the keyboard and watch the element jump around:

  1. Select an element
  2. Move it to location Y 100px
  3. Move it to location Y 110px
  4. Move it to location Y 120px

Can you see how awkward it is?


My use case is usually to precisely move something to a (almost) known location. For example when adding multiple "rows" I know that I want to move the new item (most often an inplace clone) say 150px bellow the one above it.

Let's assume that the new element has location Y of 500px

What happens now is:

|500 - I click on the input placing the cursor in the beginning 0| - I hit DELETE, the value becomes 0, the cursor moves to the end of the input and the element jumps to the top of the document |0 - I move the cursor to the beginning of the value 60| - I hit 6, the value becomes 60, the cursor moves to the end of the input and the element jumps to the new (temporary) location 6|0 - I move the cursor where the next digit is to be typed 650| - I hit 5, the value becomes 650, the cursor moves to the end of the input and the element jumps to the new location

All of the bold text is "bad" system behavior and extraneous work on my part as a user because of it.

What should happen is the following:

|500 - I click on the input placing the cursor at the beginning |0 - I hit DELETE twice, the value becomes 0 65|0 - I hit 6 then 5, the value becomes 650 65|0 - I hit ENTER, the value is applied and the element jumps to the new location


if there is an downvote take mine ! ;P

There is. Click on the original post's smiley face icon (top right) and choose your "reaction". There is thumbs down (-1) there.

sebastianfilke commented 8 years ago

Now i understand what you mean and you've become an upvote! :-) this was a misunderstanding. i thought that the decrease/increase buttons of location and size should also only update if they loose the focus. funny point:

image

LeadManPL commented 7 years ago

3.0.4 still have this bug. Multiple "undos" are generated