Mir

mir_window_spec_set_cursor_name() doesn't trigger mir::scene::SurfaceObserver::cursor_image_set_to

Bug #1663197 reported by Daniel d'Andrada
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
High
Alan Griffiths
0.26
Fix Released
High
Alan Griffiths
MirAL
Invalid
High
Alan Griffiths
mir (Ubuntu)
Fix Released
High
Unassigned

Bug Description

qtmir relies on mir::scene::SurfaceObserver::cursor_image_set_to being called whenever the surface cursor name changes.

qtubuntu still uses the deprecated API "mir_cursor_configuration_from_name() && mir_window_configure_cursor". With that, mir::scene::SurfaceObserver::cursor_image_set_to does get called in qtmir.

But once qtubuntu uses the new Mir API for that[1], "mir_window_spec_set_cursor_name() && mir_window_apply_spec()", the SurfaceObserver in qtmir no longer gets notified

[1] - https://code.launchpad.net/~albaguirre/qtubuntu/more-new-mir-apis/+merge/316646

Related branches

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

Testing with mir_demo_client_cursor:

This works:

    $ mir_demo_server --test-client mir_demo_client_cursor

This doesn't work:

    $ miral-shell --startup mir_demo_client_cursor

Changed in mir:
status: New → Invalid
Changed in miral:
status: New → In Progress
importance: Undecided → High
assignee: nobody → Alan Griffiths (alan-griffiths)
milestone: none → 1.2
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

OK, the reason this works in the Mir examples is that the implementation is *in the examples*.

Unsurprisingly, libmiral doesn't contain this code.

Changed in mir:
status: Invalid → In Progress
importance: Undecided → High
assignee: nobody → Alan Griffiths (alan-griffiths)
Changed in mir:
milestone: none → 0.26.1
Changed in miral:
status: In Progress → Invalid
Changed in miral:
milestone: 1.2 → none
Changed in mir:
status: In Progress → Fix Committed
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Fix committed to lp:mir/0.26 at revision 4022, scheduled for release in Mir 0.26.1

Changed in mir:
status: Fix Committed → Triaged
milestone: 0.26.1 → 1.0.0
status: Triaged → In Progress
tags: added: clientapi cursor
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

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

Changed in mir:
status: In Progress → Fix Committed
Changed in mir (Ubuntu):
status: New → Triaged
importance: Undecided → High
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mir - 0.26.1+17.04.20170209.1-0ubuntu1

---------------
mir (0.26.1+17.04.20170209.1-0ubuntu1) zesty; urgency=medium

  * New upstream release 0.26.1 (https://launchpad.net/mir/+milestone/0.26.1)
    - ABI summary:
      . mirclient ABI unchanged at 9
      . mirserver ABI unchanged at 43
      . mircommon ABI unchanged at 7
      . mirplatform ABI bumped to 15
      . mirprotobuf ABI unchanged at 3
      . mirplatformgraphics ABI bumped to 12
      . mirclientplatform ABI unchanged at 5
      . mirinputplatform ABI unchanged at 6
      . mircore ABI unchanged at 1
    - Enhancements:
      . Support for MirBuffer API that allows for better management of
        hardware/software buffers.
      . Support for MirPresentationChain API that allows better control
        over {de}queueing of individual buffers {from}to the server.
      . Interim support for MirRenderSurface API that provides a unit of
        renderable for lower level content such as MirBufferStreams and
        MirPresentationChains, etc.. MirRenderSurface API is marked
        deprecated as it (and the relevant entry points) will be renamed to
        MirSurface before general availability. It will initially be used for
        revamping support for EGL drivers.
      . Synchronous version of mir_prompt_session_new_fds_for_prompt_providers()
        API (mir_prompt_session_new_fds_for_prompt_providers_sync()) added for
        convenience.
      . Better name for MirPersistentId-->MirWindowId. MirPersistentId has now
        been deprecated.
    - Bugs fixed:
      . [regression] Unity8 stutters constantly (like half frame rate).
        (LP: #1661128)
      . mir 0.26 - spinner loading animation, minimize, maximize too fast.
        (LP: #1661072)
      . [regression] Nested server segfaults or rapidly logs exceptions when a
        fullscreen client starts [in mir_presentation_chain_set_dropping_mode
        ... std::exception::what: Operation not permitted] (LP: #1661508)
      . mir_window_request_persistent_id_sync seg faults when called twice.
        (LP: #1661704)
      . [regression] Windowed clients of nested servers are all black.
        (LP: #1661521)
      . Mir graphics platform ABI broke in series 0.26 but sonames never
        changed (LP: #1662455)
      . Fixes for 0.26 changelog.
      . [regression] mirscreencast hangs during screencast creation. (LP: #1662997)
      . libmirclient-dev missing build dependency on libmircore-dev. (LP: #1662942)
      . mir_window_spec_set_cursor_name() doesn't trigger
        mir::scene::SurfaceObserver::cursor_image_set_to. (LP: #1663197)
      . [regression] Software clients of nested servers are all black in Mir 0.25.0
        and later. (LP: #1663062)

 -- Cemil Azizoglu <email address hidden> Thu, 09 Feb 2017 21:46:32 +0000

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