Browse Source

fix: resolved bug with top/left being sticky when resizing from l/t side

pull/5017/head
Paul Rill 3 years ago
parent
commit
050a635cb6
No known key found for this signature in database GPG Key ID: 729FEA7BCC1C4E38
  1. 3
      src/commands/view/SelectComponent.ts
  2. 12
      src/utils/Resizer.ts

3
src/commands/view/SelectComponent.ts

@ -455,6 +455,9 @@ export default {
style[keyHeight] = autoHeight ? 'auto' : `${rect.h}${unitHeight}`;
}
style.top = rect.t + unitHeight;
style.left = rect.l + unitWidth;
modelToStyle.addStyle({ ...style, en }, { avoidStore: !store });
const updateEvent = 'update:component:style';
const eventToListen = `${updateEvent}:${keyHeight} ${updateEvent}:${keyWidth}`;

12
src/utils/Resizer.ts

@ -571,6 +571,8 @@ export default class Resizer {
const elStyle = el.style as Record<string, any>;
elStyle[keyWidth!] = rect.w + unitWidth!;
elStyle[keyHeight!] = rect.h + unitHeight!;
elStyle.top = rect.t + unitHeight!;
elStyle.left = rect.l + unitWidth!;
}
this.updateContainer();
@ -663,9 +665,9 @@ export default class Resizer {
const unitHeight = this.opts.unitHeight;
const startW = unitWidth === '%' ? (startDim.w / 100) * parentW : startDim.w;
const startH = unitHeight === '%' ? (startDim.h / 100) * parentH : startDim.h;
var box = {
t: 0,
l: 0,
var box: RectDim = {
t: startDim.t,
l: startDim.l,
w: startW,
h: startH,
};
@ -722,10 +724,10 @@ export default class Resizer {
}
if (~attr.indexOf('l')) {
box.l = startDim.w - box.w;
box.l += startDim.w - box.w;
}
if (~attr.indexOf('t')) {
box.t = startDim.h - box.h;
box.t += startDim.h - box.h;
}
return box;

Loading…
Cancel
Save