470195f14012eabcfff78dc9aaf9a81a59bcd635
Steps to reproduce: 1. On website, drop a snippet 2. Type something, than undo it (ctrl + z or click undo button on the sidebar) 3. On the sidebar, hover over the buttons of "Content Width" and/or "Height" to get a preview of those actions 4. Perform a redo with ctrl + y. Explanation: One can only redo changes when in a state resulting from an undo, that is, redo is the undoing of an undo. Once new changes are introduced after an undo operation took place, a redo cannot be performed anymore. The OdooEditor handles this at the history steps level. If there's a a history step with state "undefined" (not resulting of undo or redo) that is more recent than the most recent step with state "undo", a redo is not possible. But, before this commit, this was not handled at the current step's mutations level. The presence of mutations in the current step did not prevent a redo, and applying a redo on top of those changes could lead to unexpected results, as the changes resulting from the reversion of undo step interacted with the mutations performed subsequent to the undo operation. The presence of mutations in the current step when about to redo is possible by previewing changes as described above, as they perform DOM mutations without committing them into a history step. The same effect can be achieved by selecting some text and hovering over the colors of the colorpicker. Theoretically, any asynchronous compound command (multiple calls to execCommand within historyPauseSteps/ historyUnpauseSteps) will add mutations to the current step without committing them, while still offering the user the possibility of a redo. This commit makes sure that mutations in the current step are treated as an uncommitted draft and are discarded before applying a redo, mirroring what is done for the undo operation. task-3339304 closes odoo/odoo#128873 X-original-commit: 6ab6927c0fc4c4a1c838251953a29512dd0d3835 Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
…
…
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%