That sounds real… interesting. I wonder if @dlphillips or @synthi are seing the same?
synthi
(Antonio Tuzzi)
April 18, 2022, 11:10am
22
I’m still on 11.6
I can’t see that behaviour
1 Like
I had this issue, coupled with new modules drag and drop rearrangement behaviour, it was too much… I decided to stay on 2.0 release for a while. Old habits die hard. (compiled from src, on macos 10.15.x)
Just got a mail saying they are working on this, so guess must have found the issue, luckily. So here’s hoping it all gets sorted out soon.
1 Like
pgatt
(Pgatt)
April 22, 2022, 9:09am
25
It’s not just on M1. I’ve now seen it and I don’t have an M1 Mac.
1 Like
So what might have happened between it working fine and then all of the sudden starting to freak out? As stated, only updates prior to issue starting here was latest XCode and it’s comman line tools update… Nothing was recompiled or otherwise changed. So mystery abounds, guess you mean on Mac in general instead of M1 only?
pgatt
(Pgatt)
April 22, 2022, 9:39am
27
Yep that. Admittedly I saw it in a patch created on M1 I believe, but I saw it on a non-M1 Mac yes.
1 Like
Changing floor() to round() here fixes this problem. @Vortico
return false;
}
// Accept requested position
mw->setPosition(mwBox.pos);
updateExpanders();
return true;
}
static math::Vec eachNearestGridPos(math::Vec pos, std::function<bool(math::Vec pos)> f) {
math::Vec leftPos = pos.div(RACK_GRID_SIZE).floor().mult(RACK_GRID_SIZE);
math::Vec rightPos = leftPos + math::Vec(RACK_GRID_WIDTH, 0);
while (true) {
if (f(leftPos))
return leftPos;
leftPos.x -= RACK_GRID_WIDTH;
if (f(rightPos))
return rightPos;
rightPos.x += RACK_GRID_WIDTH;
IMHO, this behaviour feels like too much smart from UX POV
// Check if new box occupies old box
if (!(newBox.pos.y == mw->box.pos.y && newBox.getLeft() <= mw->box.getRight() && newBox.getRight() >= mw->box.getLeft())) {
// Collect modules to the right of old pos
std::set<widget::Widget*, decltype(cmp)> rightOldModules(cmp);
for (widget::Widget* w2 : internal->moduleContainer->children) {
// Skip this module
if (w2 == mw)
continue;
// Modules must be on the same row as old pos
if (w2->box.getTop() != mw->box.getTop())
continue;
// Insert into rightOldModules
if (w2->box.getCenter().x >= mw->box.getCenter().x)
rightOldModules.insert(w2);
}
// Shove old right modules to the left
float xRight = mw->box.getRight();
for (auto it = rightOldModules.begin(); it != rightOldModules.end(); it++) {
widget::Widget* w2 = *it;
This file has been truncated. show original
And I would like to have back old showe behaviour while holding RACK_MOD_CTRL
4 Likes