Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[stable21] Fix tooltip, popups, dialogs... in fullscreen mode #6886

Merged
merged 7 commits into from
Feb 10, 2022

Conversation

backportbot-nextcloud[bot]
Copy link

@backportbot-nextcloud backportbot-nextcloud bot commented Feb 8, 2022

Backport of #5291, #5417, #5488, #6119 and #6879

@nickvergessen
Copy link
Member

The upload confirmation dialog is not showing in 21 + full screen.
Bildschirmfoto von 2022-02-08 11-49-26

Works fine in 22+

@danxuliu
Copy link
Member

danxuliu commented Feb 8, 2022

The upload confirmation dialog is not showing in 21 + full screen.

That was fixed in #6119, but it was not backported to 21

@nickvergessen
Copy link
Member

Then let's also not backport this here for now?

PVince81 and others added 3 commits February 8, 2022 19:16
Many popup components are usually appending themselves to the document
body. This doesn't work in fullscreen mode where we use another
component as the root.

This fix sets the "container" property for all relevant popup components
to make sure they can be visible in fullscreen mode.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
@danxuliu danxuliu force-pushed the backport/6879/stable21 branch 2 times, most recently from 78ac365 to ee6d9c6 Compare February 9, 2022 13:48
@danxuliu danxuliu changed the title [stable21] Reparent file picker and viewer in fullscreen mode [stable21] Fix tooltip, popups, dialogs... in fullscreen mode Feb 9, 2022
@danxuliu
Copy link
Member

danxuliu commented Feb 9, 2022

I have added the backport for #6119 (and some dependencies) as discussed.

danxuliu and others added 4 commits February 9, 2022 14:52
The container of modal and popup components was always set to
"#content-vue" to ensure that they will be properly shown in normal and
fullscreen mode in the main Talk UI. However, when Talk is embedded in
the Files app, the share page or the video verification there is no such
element, so the container for the components could not be set and thus
they were not shown.

To solve this now the selector for the main container element is got
from the store instead of being hardcoded, and the different UI modes
set the appropriate value when initialized (or leave it undefined to use
the default one, typically the body element, when a specific element is
not needed).

Note that this change applies too to some components that, right now,
are only shown in the main Talk UI, but it was done for consistency and
to make them "future-proof".

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Using the default container causes the action menus in the Talk tab to
be repositioned at wrong places when the menus are shown and the file
list is scrolled. To address this (although it does not fully fix the
issue, there are still some strange behaviours) the main container for
Talk components used when Talk is embedded in the Files app is Talk tab.
Besides that, both the container and the boundaries element of the
actions are set to the Talk tab.

Despite setting the main container this change does not affect other
components (like the room selector) or slightly improves their behaviour
(like the author avatar menu, which no longer appears outside the tab
when scrolling).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Signed-off-by: Joas Schilling <coding@schilljs.com>
By default the file picker and the viewer are siblings of the fullscreen
element, so they are not visible when in fullscreen mode. It is not
possible to specify the parent nor to know when the file picker or the
viewer were actually opened, so for the time being they are reparented
if needed shortly after calling them.

This is just a temporary hack until it is possible to specify the parent
element, but that would require changes in the Vue library, the viewer
and the server dialogs, so this horrible code will have to do for now.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
@nickvergessen nickvergessen merged commit 054ab29 into stable21 Feb 10, 2022
@nickvergessen nickvergessen deleted the backport/6879/stable21 branch February 10, 2022 08:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants