Mir

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

Bug #1496849 reported by Alexandros Frantzis
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
High
Alan Griffiths
mir (Ubuntu)
Fix Released
Undecided
Unassigned

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

Tags: cursor

Related branches

Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

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

Revision history for this message
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
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

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

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

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

mir::DefaultServerConfiguration::the_input_manager()
{
    // 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
    {
        CursorControllingInputManager(
            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)

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Empirically the above code is irrelevant

Changed in mir:
assignee: nobody → Alan Griffiths (alan-griffiths)
status: New → In Progress
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Hmm doesn't happen with multiwin

Revision history for this message
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
Revision history for this message
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
Revision history for this message
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
        construction.
      . 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...

Read more...

Changed in mir (Ubuntu):
status: New → Fix Released
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.