Browse Source

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

pull/5017/head
Paul Rill 4 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[keyHeight] = autoHeight ? 'auto' : `${rect.h}${unitHeight}`;
} }
style.top = rect.t + unitHeight;
style.left = rect.l + unitWidth;
modelToStyle.addStyle({ ...style, en }, { avoidStore: !store }); modelToStyle.addStyle({ ...style, en }, { avoidStore: !store });
const updateEvent = 'update:component:style'; const updateEvent = 'update:component:style';
const eventToListen = `${updateEvent}:${keyHeight} ${updateEvent}:${keyWidth}`; 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>; const elStyle = el.style as Record<string, any>;
elStyle[keyWidth!] = rect.w + unitWidth!; elStyle[keyWidth!] = rect.w + unitWidth!;
elStyle[keyHeight!] = rect.h + unitHeight!; elStyle[keyHeight!] = rect.h + unitHeight!;
elStyle.top = rect.t + unitHeight!;
elStyle.left = rect.l + unitWidth!;
} }
this.updateContainer(); this.updateContainer();
@ -663,9 +665,9 @@ export default class Resizer {
const unitHeight = this.opts.unitHeight; const unitHeight = this.opts.unitHeight;
const startW = unitWidth === '%' ? (startDim.w / 100) * parentW : startDim.w; const startW = unitWidth === '%' ? (startDim.w / 100) * parentW : startDim.w;
const startH = unitHeight === '%' ? (startDim.h / 100) * parentH : startDim.h; const startH = unitHeight === '%' ? (startDim.h / 100) * parentH : startDim.h;
var box = { var box: RectDim = {
t: 0, t: startDim.t,
l: 0, l: startDim.l,
w: startW, w: startW,
h: startH, h: startH,
}; };
@ -722,10 +724,10 @@ export default class Resizer {
} }
if (~attr.indexOf('l')) { if (~attr.indexOf('l')) {
box.l = startDim.w - box.w; box.l += startDim.w - box.w;
} }
if (~attr.indexOf('t')) { if (~attr.indexOf('t')) {
box.t = startDim.h - box.h; box.t += startDim.h - box.h;
} }
return box; return box;

Loading…
Cancel
Save