From c6048ba9ad8345e98d896801424f5292bb307e2e Mon Sep 17 00:00:00 2001
From: Julian Leucker <leuckerj@gmail.com>
Date: Sun, 11 Jun 2023 12:17:59 +0200
Subject: [PATCH] Re-Enable scrolling when celery progress dialog is opened

---
 CHANGELOG.rst                                     |  1 +
 .../celery_progress/CeleryProgressBottom.vue      | 15 ++++++++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index d514a864a..de404b440 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -14,6 +14,7 @@ Fixed
 
 * Progress page didn't work properly.
 * About page failed to load for apps with an unknown licence.
+* Some pages couldn't be scrolled when a task progress popup was open.
 
 `3.1`_ - 2022-05-30
 -------------------
diff --git a/aleksis/core/frontend/components/celery_progress/CeleryProgressBottom.vue b/aleksis/core/frontend/components/celery_progress/CeleryProgressBottom.vue
index 912fb7792..1866c3d81 100644
--- a/aleksis/core/frontend/components/celery_progress/CeleryProgressBottom.vue
+++ b/aleksis/core/frontend/components/celery_progress/CeleryProgressBottom.vue
@@ -1,5 +1,11 @@
 <template>
-  <v-bottom-sheet :value="show" persistent hide-overlay max-width="400px">
+  <v-bottom-sheet
+    :value="show"
+    persistent
+    hide-overlay
+    max-width="400px"
+    ref="sheet"
+  >
     <v-expansion-panels accordion v-model="open">
       <v-expansion-panel>
         <v-expansion-panel-header color="primary" class="white--text px-4">
@@ -33,6 +39,13 @@ export default {
   data() {
     return { open: 0 };
   },
+  mounted() {
+    // Vuetify uses the hideScroll method to disable scrolling by setting an event listener
+    // to the window. As event listeners can only be removed by referencing the listener
+    // method and because vuetify this method is called on every state change of the dialog,
+    // we simply replace the method in this component instance
+    this.$refs.sheet.hideScroll = this.$refs.sheet.showScroll;
+  },
   computed: {
     show() {
       return this.celeryProgressByUser && this.celeryProgressByUser.length > 0;
-- 
GitLab