[regression] Qt & GTK apps on Unity8 are defaulting to Xmir instead of native GTK/Qt (and so menus don't appear in the titlebar)

Bug #1672931 reported by Daniel van Vugt
24
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Canonical System Image
Confirmed
High
Unassigned
Libertine
Status tracked in Devel
Devel
Triaged
High
Unassigned
Trunk
Triaged
High
Unassigned
gtk+3.0 (Ubuntu)
Fix Released
High
Unassigned
libertine (Ubuntu)
Triaged
High
Unassigned
qtubuntu (Ubuntu)
Confirmed
High
Unassigned
ubuntu-app-launch (Ubuntu)
Triaged
High
Unassigned
unity8 (Ubuntu)
Confirmed
Undecided
Unassigned
xorg-server (Ubuntu)
Won't Fix
Medium
Unassigned

Bug Description

Qt & GTK apps on Unity8 are defaulting to Xmir instead of native GTK/Qt on Mir.

I noticed a slight change in appearance and performance, but also:

dan 25410 0.1 0.2 423316 38996 ? Sl 11:14 0:00 Xmir -rootless -displayfd 3 -mir org.gnome.Calculator
dan 25456 1.8 0.5 606084 91736 ? Sl 11:14 0:03 Xmir -rootless -displayfd 3 -mir org.gnome.Nautilus
dan 25611 1.7 0.2 345312 35520 ? Sl 11:18 0:00 Xmir -rootless -displayfd 3 -mir webbrowser-app_webbrowser-app_10

Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: [regression] Qt & GTK apps on Unity8 are defaulting to Xmir instead of native GTK on Mir

So if you find your Qt apps are flickering that's just bug 1510025.

Changed in canonical-devices-system-image:
importance: Undecided → Medium
Changed in ubuntu-app-launch (Ubuntu):
importance: Undecided → Medium
tags: added: performance regression unity8-desktop
description: updated
summary: - [regression] GTK apps on Unity8 are defaulting to Xmir instead of native
- GTK on Mir
+ [regression] Qt & GTK apps on Unity8 are defaulting to Xmir instead of
+ native GTK on Mir
Changed in canonical-devices-system-image:
importance: Medium → High
Changed in ubuntu-app-launch (Ubuntu):
importance: Medium → High
summary: [regression] Qt & GTK apps on Unity8 are defaulting to Xmir instead of
- native GTK on Mir
+ native GTK/Qt on Mir
description: updated
description: updated
summary: [regression] Qt & GTK apps on Unity8 are defaulting to Xmir instead of
- native GTK/Qt on Mir
+ native GTK/Qt on Mir (and so menus don't appear in the titlebar)
summary: [regression] Qt & GTK apps on Unity8 are defaulting to Xmir instead of
- native GTK/Qt on Mir (and so menus don't appear in the titlebar)
+ native GTK/Qt (and so menus don't appear in the titlebar)
Revision history for this message
Launchpad Janitor (janitor) wrote :

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

Changed in ubuntu-app-launch (Ubuntu):
status: New → Confirmed
Changed in unity8 (Ubuntu):
status: New → Confirmed
Changed in canonical-devices-system-image:
status: New → Confirmed
Revision history for this message
Albert Astals Cid (aacid) wrote :

It's not a regression, it's a conscious decision :(

Changed in gtk+3.0 (Ubuntu):
importance: Undecided → High
Changed in qtubuntu (Ubuntu):
importance: Undecided → High
Revision history for this message
Daniel d'Andrada (dandrader) wrote :

I don't think unity8, qtubuntu or gtk-3.0 can't do anything about it.

Revision history for this message
Daniel d'Andrada (dandrader) wrote :

*can do

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

Some toolkits should be able to avoid the problem trivially, regardless of what UAL does, if the toolkit just goes:

if defined $MIR_SOCKET then
  use native Mir
else
  use X and other platforms
endif

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

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

Changed in gtk+3.0 (Ubuntu):
status: New → Confirmed
Changed in qtubuntu (Ubuntu):
status: New → Confirmed
Changed in libertine (Ubuntu):
status: New → Triaged
importance: Undecided → High
Revision history for this message
Christopher Townsend (townsend) wrote :

This will be solved basically in two parts:

1. Xmir will only launch when it needs to. The DISPLAY env var will be set and some method of detecting when Xmir is needed will be used. There are a couple of ways of starting Xmir on-demand and just picking one that will work both with deb based systems and the future Xmir snap will be key.
2. Any toolkits that support Mir will need to try use Mir first before trying to use X. It was recently discovered that, even though Qt apps are being told to use Mir, if Xmir is available and DISPLAY is set, it will use X which is a bug. Also, Gtk will need to be patched to try to use Mir first.

I will work on the libertine/ubuntu-app-launch part of this to make it so Xmir will start only when needed.

Changed in ubuntu-app-launch (Ubuntu):
status: Confirmed → In Progress
assignee: nobody → Christopher Townsend (townsend)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :
Revision history for this message
William Hua (attente) wrote :
Changed in gtk+3.0 (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I love the simplicity of that diff. Exactly what we want.

tags: added: xmir
Changed in xorg-server (Ubuntu):
assignee: nobody → Christopher Townsend (townsend)
importance: Undecided → Medium
status: New → In Progress
Revision history for this message
Daniel van Vugt (vanvugt) wrote :
Changed in xorg-server (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Christopher Townsend (townsend) wrote :

Hey Daniel,

That xmir commit does not fix this issue:) It only fixes the crash. I'm still working on a proper solution for xmir, which I'm close to committing.

Changed in xorg-server (Ubuntu):
status: Fix Committed → In Progress
Changed in ubuntu-app-launch (Ubuntu):
assignee: Christopher Townsend (townsend) → nobody
status: In Progress → Triaged
Changed in xorg-server (Ubuntu):
assignee: Christopher Townsend (townsend) → nobody
status: In Progress → Triaged
Changed in xorg-server (Ubuntu):
status: Triaged → Won't Fix
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.