Skip to content

Commit

Permalink
Merge pull request #41092 from nextcloud/fix/non-responsive-app-navig…
Browse files Browse the repository at this point in the history
…ation-toggle

[stable25] Fix: non responsive app navigation toggle
  • Loading branch information
blizzz authored Dec 14, 2023
2 parents 0a372c9 + 6cfface commit 57def1e
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 32 deletions.
31 changes: 2 additions & 29 deletions core/src/init.js
Original file line number Diff line number Diff line change
Expand Up @@ -140,44 +140,17 @@ export const initCore = () => {

$('#app-content').prepend('<div id="app-navigation-toggle" class="icon-menu" style="display:none" tabindex="0"></div>')

// keep track whether snapper is currently animating, and
// prevent to call open or close while that is the case
// to avoid duplicating events (snap.js doesn't check this)
let animating = false
snapper.on('animating', () => {
// we need this because the trigger button
// is also implicitly wired to close by snapper
animating = true
})
snapper.on('animated', () => {
animating = false
})
snapper.on('start', () => {
// we need this because dragging triggers that
animating = true
})
snapper.on('end', () => {
// we need this because dragging stop triggers that
animating = false
})

// These are necessary because calling open or close
// on snapper during an animation makes it trigger an
// unfinishable animation, which itself will continue
// triggering animating events and cause high CPU load,
//
// Ref https://github.com/jakiestfu/Snap.js/issues/216
const oldSnapperOpen = snapper.open
const oldSnapperClose = snapper.close
const _snapperOpen = () => {
if (animating || snapper.state().state !== 'closed') {
if (snapper.state().state !== 'closed') {
return
}
oldSnapperOpen('left')
}

const _snapperClose = () => {
if (animating || snapper.state().state === 'closed') {
if (snapper.state().state === 'closed') {
return
}
oldSnapperClose()
Expand Down
4 changes: 2 additions & 2 deletions dist/core-main.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/core-main.js.map

Large diffs are not rendered by default.

0 comments on commit 57def1e

Please sign in to comment.