It looks like you're new here. If you want to get involved, click one of these buttons!
Hello,
I'm using several handles for PCells and it's getting a bit bothersome to keep doing a second click to apply transformations.
I understand the philosophy behind why to do it this way (I read it somewhere in the docs a while ago), like being useful to move things around and allow for comfortable pan/zoom.
I saw others asking for the same, so I'd like to propose 2 different solutions which I think either would make everyone happy:
click: down → up, behave like currentlyclick: down → drag → up, apply the transformation right awayI think 2nd option would be best for seamless workflow and user practicality. I doubt any user is doing click: down → drag → up → down → up without the intention of applying the transformation on the first up.
A drag threshold or click timer may be added to not consider drag a very small movement of mice and/or "user intention" when clicking fast.
Thanks!
Gerard
Comments
No no no ...
It's too easy to introduce a tiny move when you just click. It may be a single pixel. It's essentially impossible to decide if you wanted to click or move. So a single click can be mistaken as a small move and unless you're not super careful you may have shifted a chunk of your chip by a few nanometers. Good luck fixing that if you find out later. I've seen that all.
If you introduce a minimum travel distance or minimum click time as a countermeasure ... well there is always the slow user with some beloved, old and jittery mouse, a badly scratched pad or shaking hands and there is the other user with the ultra resolution monitor, the atomic precision mouse and the hand-eye coordination of a fighter jet pilot ... distances and delays are personal parameters like the preference for a certain wine. You can't get it right.
Plus, as you noticed, pan and zoom will be very difficult to use while you keep your finger on the left mouse button.
Not a good idea. I speak from experience.
Instead there is "Move Interactive". This is a function that cannot be put into the menu, hence it's only available as a key binding target. You find them at the end of the key binding options:
You may like "Move Interactive", but you should also check "Duplicate Interactive" or "Paste Interactive". These functions enable "Cadence style" features. I bound "Move Interactive" to "M". That means, pressing "M" will start the move. KLayout will either use the selected objects or the highlighted one, if there is no selection. You place the object by left-clicking. So it's more or less what you ask for, but the "press" event is replaced by pressing the "M" key. This feels very intuitive and if you're a Cadence user, this pattern got etched into your brain anyway.
"Duplicate Interactive" copies the highlighted object and starts moving immediately. I bound it to "C" for Cadence feeling. "Paste Interactive" finally pastes the copied objects like "Ctrl+V", but immediately starts moving, so you can drop the object(s) on the right place.
Matthias
Hi Matthias,
Thank you for the thorough explanation. I was guessing something like this would be the case, being the software as wonderfully curated as it is.
"Move Interactive" does ease the workflow, although it's not perfect. You can use "Move" on objects without waiting for the object under the cursor to be highlighted. Not the case with "Move Interactive", but it already feels more seamless and "right" than before.
I'm tempted to ask for "M" to behave like "Move" over objects, or allow to tweak the highlighting delay to less or even instant (making a more marked highlight by default to compensate, or leave it to the user to set up), but I'm sure I'd land in another pitfall haha.
Bests,
Gerard