Skip to content
Snippets Groups Projects
Commit ecbbff57 authored by Andreas Fernandez's avatar Andreas Fernandez
Browse files

[BUGFIX] Avoid re-paints and re-layouts in page tree on drag&drop

When using drag&drop in the page tree, many style changes happen:

* a shadow node is rendered that is moved around
* the content within the shadow node changes depending on whether
  dropping is allowed
* CSS classes are changed

The previous implementation was not optimal in several ways:

* the nodes wrapper (aka the "tree") was updated twice which each
  `dragover` event, being expensive on huge trees
* adding and removing CSS classes may have become redundant in some
  cases, triggering a re-paint every time

All these cases are handled in this patch by executing tasks only when
absolutely necessary.

Resolves: #99786
Releases: main, 11.5
Change-Id: Ibc8cbce2785e2de646e254590b4eddbdc42839c1
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77658


Tested-by: default avatarBenni Mack <benni@typo3.org>
Reviewed-by: default avatarMarkus Klein <markus.klein@typo3.org>
Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
Tested-by: default avatarAndreas Fernandez <a.fernandez@scripting-base.de>
Tested-by: default avatarcore-ci <typo3@b13.com>
Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: default avatarAndreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: default avatarBenni Mack <benni@typo3.org>
Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
parent fa1bac84
No related merge requests found
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment