gnome-terminal transparency ignored in full screen mode

Bug #2003104 reported by Heather Ellsworth
24
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Mutter
New
Unknown
wayland
New
Unknown
mutter (Ubuntu)
Won't Fix
Undecided
Unassigned
wayland (Ubuntu)
Won't Fix
Undecided
Unassigned

Bug Description

Ubuntu 23.04 running wayland
gnome-terminal 3.46.7-1ubuntu1

In gnome-terminal, I have set the transparency to some amount. When I go to full screen (F11), the transparency is lost and the default transparency is used. When I exit full screen, the transparency comes back and I can see in the profile settings that the transparency has not changed.

It seems that tranparency was accidentally removed, and then re-added via
https://git.launchpad.net/ubuntu/+source/gnome-terminal/tree/debian/patches/0001-Restore-transparency.patch?h=applied/ubuntu/lunar-devel

However, maybe something was missed with regards to full screen.

Revision history for this message
Heather Ellsworth (hellsworth) wrote :
Revision history for this message
Sergio Costas (rastersoft-gmail) wrote :

Installing a fresh install of Lunar, everything works fine. Updating Gtk3, LibVTE, Cairo and other libraries doesn't make it fail. But doing a dist-upgrade makes it fail like described.

There is no new version neither of Gnome Terminal, nor of Gnome Shell, so it doesn't seem a problem there.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

If the problem is intermittent then that's bug 561370 unfortunately.

tags: added: lunar
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Bug 561370 might have moved to happening less often (or never when windowed) since the switch to Wayland. If we can show it's still intermittent when windowed under Xorg then I would recommend marking this as a duplicate of bug 561370.

Revision history for this message
Sergio Costas (rastersoft-gmail) wrote :

Confirmed that this happens when libmutter/mutter-common are updated to version 11.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in gnome-terminal (Ubuntu):
status: New → Confirmed
Revision history for this message
Sergio Costas (rastersoft-gmail) wrote :

It's not random, at least in my system. Also, the tricks in that bug report don't work: I tried changing the transparency value, disabling and enabling again, but no dice.

If I had to bet, I would say that the problem is in the fullscreen redirection to avoid composition overload with games... but I don't know if Wayland has that...

Revision history for this message
Jeremy Bícha (jbicha) wrote :

Sergio, you mean that it looks like this bug was triggered when your system updated from mutter 43.0-1ubuntu5 to https://launchpad.net/ubuntu/+source/mutter/43.2-4ubuntu1 right?

summary: - Transparency ignored in full screen mode
+ gnome-terminal transparency ignored in full screen mode
affects: gnome-terminal (Ubuntu) → mutter (Ubuntu)
Revision history for this message
Sergio Costas (rastersoft-gmail) wrote (last edit ):

Yes, it is right. I tested it in a VM, and can reproduce it: it is after updating from libmutter-43.0-1ubuntu5 to libmutter43.2-4ubuntu1 that it fails.

Revision history for this message
Jeremy Bícha (jbicha) wrote :

Thank you for reporting this bug and helpinig to make Ubuntu better.

I'm going to collect more data to report this issue upstream since this issue is blocking us from being able to successfully SRU 43.2 to Ubuntu 22.10.

Changed in mutter (Ubuntu):
status: Confirmed → Triaged
importance: Undecided → High
tags: added: regression-release
Changed in mutter (Ubuntu):
assignee: nobody → Jeremy Bicha (jbicha)
Revision history for this message
Jeremy Bícha (jbicha) wrote :

I verified that this regression also shows in Fedora 37. I verified there because Fedora and Ubuntu ship a patch to enable transparency in gnome-terminal; gnome-terminal upstream does not have that feature.

I also verified that this regression was introduced in mutter 43.1. (transparency works in 43.0 but not in 43.1).

With that information, I found an upstream bug report. The initial response was that the new behavior conforms to the specification and it was suggested to maximize gnome-terminal instead of using fullscreen mode if you want this feature.

Changed in mutter (Ubuntu):
assignee: Jeremy Bicha (jbicha) → nobody
Changed in mutter:
status: Unknown → New
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I was expecting upstream to say "won't fix". Aside from the protocol saying it's the expected behaviour, we also wouldn't want to impact performance of fullscreen games just because they accidentally used RGBA instead of RGBX or RGB. So disallowing anything to show through in full screen makes sense to me, on balance.

Changed in wayland (Ubuntu):
status: New → Won't Fix
Changed in mutter (Ubuntu):
status: Triaged → Won't Fix
importance: High → Undecided
Changed in wayland:
status: Unknown → New
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

For completeness I bisected the cause of the issue (introduced in mutter 43.1):

909616b20876478bc56932cd18c8e85e982645f6 is the first bad commit
commit 909616b20876478bc56932cd18c8e85e982645f6
Author: Sebastian Wick <email address hidden>
Date: Tue May 3 18:47:57 2022 +0200

    window-actor/wayland: Draw black background for fullscreen windows

    Fullscreen Wayland toplevel surfaces don't need to respect the
    configured size in which case it should be shown centered on the monitor
    with a black background. The black background becomes part of the window
    geometry.

    The surface container is responsible for correctly culling the surfaces
    and making sure the surface actors are removed from the actor tree to
    avoid destroying them.

    The window actor culling implementation assumes all surfaces to be direct
    children of said actor. The introduction of the surface_container actor
    broke that assumption. This implements the culling interface in
    MetaWindowActorWayland which is aware of the actor surface_container and
    fullscreen state.

    v2: Fix forwarding culling to surface even if there is a background.
    v2: Don't alter passed geometry.
    v2: Update window geometry code documentation to reflect these changes.
    v2: Only use constrained rect if we're acked fullscreen.

    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2338>

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.