Mouse cursor disappears upon entering the surface area of a nested client

Bug #1496849 reported by Alexandros Frantzis on 2015-09-17
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fix Released
Alan Griffiths
mir (Ubuntu)

Bug Description

Seen with latest lp:mir (r2940) on an intel desktop (haven't tested on other platforms, phone etc).

1. Start a host server
2. Start a nested server
3. Start a client (e.g., egltriangle) connecting to the nested server
4. Move the cursor inside the nested client surface area
5. ==> Cursor disappears and only become visible again when the nested server shuts down

Related branches

Alexandros Frantzis (afrantzis) wrote :

I can also reproduce with the installed version 0.15.1+15.10.20150903-0ubuntu1.

Daniel van Vugt (vanvugt) wrote :

Ha. I was about to start looking at the same bug in Xmir rootless. But replace "disappears" with "disappears or becomes corrupt".

tags: added: cursor
Daniel van Vugt (vanvugt) wrote :

Can we generalize in bug 1308133? I think this is a common fundamental bug.

Alan Griffiths (alan-griffiths) wrote :

I've just found a piece of dead code that looks suspiciously relevant:

    // As the input configuration is structured now, if there is no
    // InputReader (as in the nested case) there will be nothing to instate
    // and keep alive the cursor and its controller.
    // We use the CursorControllingInputManager for this purpose.
    struct CursorControllingInputManager : public mi::NullInputManager
            std::shared_ptr<mi::CursorListener> const& cursor_listener)
            : cursor_listener(cursor_listener)

        std::shared_ptr<mi::CursorListener> const cursor_listener;

(CursorControllingInputManager is not used anywhere)

Alan Griffiths (alan-griffiths) wrote :

Empirically the above code is irrelevant

Changed in mir:
assignee: nobody → Alan Griffiths (alan-griffiths)
status: New → In Progress
Alan Griffiths (alan-griffiths) wrote :

Hmm doesn't happen with multiwin

Daniel van Vugt (vanvugt) wrote :

P.S. The other two related cursor-missing bugs occur without using nesting.

Changed in mir:
milestone: none → 0.17.0
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 0.17.0

Changed in mir:
status: In Progress → Fix Committed
Changed in mir:
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :
Download full text (3.2 KiB)

This bug was fixed in the package mir - 0.17.0+15.10.20151008.2-0ubuntu1

mir (0.17.0+15.10.20151008.2-0ubuntu1) wily; urgency=medium

  [ Alexandros Frantzis ]
  * New upstream release 0.17.0 (https://launchpad.net/mir/+milestone/0.17.0)
    - ABI summary: Only servers and graphics drivers need rebuilding;
      . Mirclient ABI unchanged at 9
      . Mirserver ABI bumped to 35
      . Mircommon ABI unchanged at 5
      . Mirplatform ABI bumped to 11
      . Mirprotobuf ABI bumped to 3
      . Mirplatformgraphics ABI bumped to 6
      . Mirclientplatform ABI unchanged at 3
    - Enhancements:
      . Introduce libmircookie, a simple mechanism for a group of cooperating
        processes to hand out and verify difficult-to-forge timestamps to
        untrusted 3rd parties.
      . More refactorings to support renderers other than GL.
      . Add MirBlob to the client API - a tool for serializing and
        deserializing data.
      . Introduce a libinput based input platform, not yet used by default.
      . Provide a mechanism for the shell to send events on surface
      . Provide mir::shell::DisplayConfigurationController allowing shells
        to correctly change the display configuration, notifying clients
        as appropriate.
      . New DSO versioning guide.
      . Send events pertaining to the output a surface is currently on (dpi,
        form factor, scale) to clients.
    - Bug fixes:
      . [enhancement] XMir specific documentation should live in its own
        subsection (LP: #1200114)
      . Nested servers need cursor support (LP: #1289072)
      . Mir cursor is missing/invisible until the client sets it multiple
        times (LP: #1308133)
      . [regression] Fullscreen software surfaces (like Xmir -sw) can crash
        the Mir server (LP: #1493721)
      . [usc] Mir gives up and shuts down due to input with multimonitor qtmir
        (std::exception::what: Failure sending input event) (LP: #1496069)
      . Mouse cursor disappears upon entering the surface area of a nested
        client (LP: #1496849)
      . [android] input is not dispatched when attaching an external monitor
        (LP: #1498045)
      . [android] input coordinates are scaled incorrectly when an external
        display is connected (LP: #1498540)
      . [android] std::exception::what: error during hwc set() when unplugging
        external monitor (LP: #1498550)
      . tests do not compile without precompiled headers (LP: #1498829)
      . [android] std::exception::what: Failed to monitor fd: Operation not
        permitted when unplugging external display in a nested configuration
        (LP: #1499042)
      . Mir suddenly no longer builds since 'mesa (11.0.0-1ubuntu1) wily':
        /usr/include/EGL/eglplatform.h:100:35: fatal error:
        android/native_window.h: No such file or directory (LP: #1499134)
      . [android] various crashes when unplugging external display on a
        nested configuration (LP: #1501927)
      . Cursor becomes visible by itself when an external monitor is connected
        (LP: #1502200)
      . mesa FTBFS due to missing Requires in mirclient (LP: #1503450)

  [ CI Trai...


Changed in mir (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers