- Ascend now ascends further up if a child cell is
selected as top level cell
- Descend now looks into transiently selected shapes
or instances too (mouse hover mode)
- New feature "Descend into" which combines "Descend"
with "make new top".
- Fixed a compiler warning in layLayoutViewBase.cc
Problem was: with a partial selection, clicking
in the vicinity of a non-selected edge could
make this edge the selected one. So it was
not possible to drag the selection in some
cases.
With "move mode" it was. The difference was in
the detection logic that decides where a click
is on the selection or outside.
Now, the logic is aligned, and partial mode
clicks will check whether the mouse pointer
is inside the selection bbox (plus some
margin). In that case, the click applies to
the current selection.
Problem was: after activating Text mode the edit
function showed the dock with the editor options.
This cause a mouse move event due to resizing
which in turn triggered the popup about invisible
layer. Apparently Qt's dock open animation does
not like popups during the animation phase which
caused the segfault.
Solution is to do the check upon activation,
not in the mouse move event.
1.) transient selection does not need to be handled
2.) restored original behavior or set_selection/get_selection
(should not modify the selection)
3.) only geometry changes will trigger a selection cleanup
Plus: better implementation of fix for issue #1145
(Crash when clearing a Shapes container by script while a shape is selected)
The previous solution was based on deferred execution and between
execution of that cleanup and the use of the selection, invalid states
could be present.
* Klayout PyCell integration
-added tl::optional as derivate of std::optional for c++17 and above, reduced
implementation otherwise
-fixed missing include for c++17 and above
-added range constraints for PCell parameter
Signed-off-by: ThomasZecha <zecha@ihp-microelectronics.com>
* tl::optional now based on internal implementation, added tests and tl::to_string binding
* Refactoring the range into min_value and max_value attributes without action and resolution.
* Integration of feature into PCell framework
* Cleanup and fixed some compile issues
* Cleanup, added tests
* [consider merging] Added pymod distutil_src files to dependencies.
* Updated Python stubs
* User feedback: upon entering an invalid value string into an edit box, do not reset the field
---------
Signed-off-by: ThomasZecha <zecha@ihp-microelectronics.com>
Co-authored-by: ThomasZecha <zecha@ihp-microelectronics.com>
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
Also fixed a problem with icons that did not get hidden when visibility was changed.
This fix needed some rework of the layout scheme of PCell parameter pages.
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
Currently, in the Array Instance sub-UI that appears when inserting a new
array instance, trying to use the "tab" key to move through the entry
widgets results in going through them in a strange order (column step x,
column step y, row step y, row step x, dimension columns, dimension
rows). This patch declares the correct tabbing order for the widgets.