Skip to content

Commit

Permalink
Fix UndoManager start/stop. Fixes #5530
Browse files Browse the repository at this point in the history
  • Loading branch information
artf committed Nov 29, 2023
1 parent d6c2a7e commit 6edc196
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 23 deletions.
42 changes: 21 additions & 21 deletions src/style_manager/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -552,33 +552,33 @@ export default class StyleManager extends ItemManagerModule<
const useClasses = !smConf.componentFirst || options.useClasses;
const addOpts = { noCount: 1 };
const opts = { state, addOpts };
let rule;

// I stop undo manager here as after adding the CSSRule (generally after
// Skipping undo manager here as after adding the CSSRule (generally after
// selecting the component) and calling undo() it will remove the rule from
// the collection, therefore updating it in style manager will not affect it
// #268
um.stop();

if (hasClasses && useClasses) {
const deviceW = em.getCurrentMedia();
rule = cssC.get(valid, state, deviceW);

if (!rule && !skipAdd) {
rule = cssC.add(valid, state, deviceW, {}, addOpts);
}
} else if (config.avoidInlineStyle) {
const id = model.getId();
rule = cssC.getIdRule(id, opts);
!rule && !skipAdd && (rule = cssC.setIdRule(id, {}, opts));
if (model.is('wrapper')) {
// @ts-ignore
rule!.set('wrapper', 1, addOpts);
um.skip(() => {
let rule;

if (hasClasses && useClasses) {
const deviceW = em.getCurrentMedia();
rule = cssC.get(valid, state, deviceW);

if (!rule && !skipAdd) {
rule = cssC.add(valid, state, deviceW, {}, addOpts);
}
} else if (config.avoidInlineStyle) {
const id = model.getId();
rule = cssC.getIdRule(id, opts);
!rule && !skipAdd && (rule = cssC.setIdRule(id, {}, opts));
if (model.is('wrapper')) {
// @ts-ignore
rule!.set('wrapper', 1, addOpts);
}
}
}

rule && (model = rule);
um.start();
rule && (model = rule);
});
}

return model;
Expand Down
6 changes: 4 additions & 2 deletions src/undo_manager/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -323,9 +323,11 @@ export default class UndoManagerModule extends Module<UndoManagerConfig & { name
}

skip(clb: Function) {
this.stop();
const isTracking = !!this.um.isTracking();

isTracking && this.stop();
clb();
this.start();
isTracking && this.start();
}

getGroupedStack(): UndoGroup[] {
Expand Down

0 comments on commit 6edc196

Please sign in to comment.