Copy & paste into/from X apps no longer works

Bug #1671257 reported by Christopher Townsend
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Canonical System Image
Fix Released
Medium
Stephen M. Webb
Libertine
Status tracked in Devel
Devel
Fix Committed
High
Christopher Townsend
Trunk
Fix Committed
High
Christopher Townsend
libertine (Ubuntu)
Fix Released
High
Unassigned

Bug Description

Seems pasted is no longer working due to some change somewhere other than pasted.

I suspect either Xmir -rootless mode broke this or we need the Xmir changes for supporting Mir 0.26 (or both).

Related branches

description: updated
Revision history for this message
Christopher Townsend (townsend) wrote :

Ok, confirmed -rootless mode is breaking this. Now to figure out if pasted needs to do something different or if -rootless mode is broken in Xmir.

Changed in libertine (Ubuntu):
status: New → Triaged
importance: Undecided → High
tags: added: unity8-desktop
Revision history for this message
Christopher Townsend (townsend) wrote :

After some more investigation, in the non-rootless mode, Xmir sets the _MIR_WM_PERSISTENT_ID atom on the root window, and since pasted just queries the default root window, this works fine.

However, in rootless move, one of the children on the "root" window gets the _MIR_WM_PERSISTENT_ID atom, thus pasted is not able to get the persistent surface id.

So, we can approach this one of two ways.

1. Xmir can set _MIR_WM_PERSISTENT_ID on the root window regardless of the mode.
2. pasted will have to get smarter and try to first query the root window and if that returns nothing, then do an XQueryTree() and iterate over child windows until the _MIR_WM_PERSISTENT_ID is found.

I prefer 1 since it will offer consistency, bit I'm not sure if there are any pitfalls with that approach. Will subscribe xmir to this bug and get duflu's advice:)

tags: added: xmir
Revision history for this message
Christopher Townsend (townsend) wrote :

I don't doing it in xmir is the right place now, especially for rootless, because a new window that is opened from the app will get it's own unique persistent surface id. pasted will definitely need to be modified to account for the rootless scenario.

Removing the xmir task...

no longer affects: xorg-server (Ubuntu)
tags: removed: xmir
summary: - Copy & paste into/from Xapps no longer works
+ Copy & paste into/from X apps no longer works
Revision history for this message
Libertine CI Bot (libertine-ci-bot) wrote :

Fix committed into lp:libertine at revision 444, scheduled for release in libertine, milestone Unknown

Changed in libertine:
status: In Progress → Fix Committed
Changed in libertine (Ubuntu):
status: Triaged → In Progress
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package libertine - 1.7.1+17.04.20170331-0ubuntu1

---------------
libertine (1.7.1+17.04.20170331-0ubuntu1) zesty; urgency=medium

  [ Chris Townsend ]
  * When starting pasted, ensure DISPLAY is set and valid before continuing to
    run. (LP: #1666472)
  * Fix pasted to work with rootless Xmir. (LP: #1671257)
  * Add a '-x' option to pkill so it only kills the libertined process(es)
    and nothing else. (LP: #1676005)
  * Remove hard-coded dependency on libraries.

  [ Larry Price ]
  * Bump version to 1.7.1
  * Gracefully handle creating a LibertineContainer object when the container
    backend is unavailable.
  * Update libertine xmir components to not depend on container backends.
    (LP: #1671938)
  * Catch all errors and gracefully shutdown libertined. (LP: #1671009)
  * Fix method call from ContainerControl d-bus to interfaces.
  * Update signal handlers in test_libertine_service to reflect new API.
  * Inject client for accessing ContainerControl within containers.
  * Rearchitect libertine service python backend for simpler access to running
    tasks. (LP: #1669091)
  * Ignore completions from dependencies during snapcraft build.
  * LXD needs to forward host environment to container when running arbitrary
    commands.
  * Add client object to list_app_ids_task to avoid making reentrant service
    calls.
  * Take advantage of new network subcommand during lxd init on newer
    installs.
  * Prevent installing empty package names and appropriately update status for
    unstopped containers.
  * Modifications to make test_libertine_service more stable.
  * Reopen the database file after every failure to grab the lock.
    (LP: #1662655)

 -- Larry Price <email address hidden> Fri, 31 Mar 2017 20:09:39 +0000

Changed in libertine (Ubuntu):
status: In Progress → Fix Released
Changed in canonical-devices-system-image:
status: New → Fix Released
importance: Undecided → High
importance: High → Medium
assignee: nobody → Stephen M. Webb (bregma)
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.