GTK window functions `Always on Top, Move and Resize' don't work in Mir/Unity8

Bug #1669524 reported by dinamic on 2017-03-02
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Canonical System Image
High
Stephen M. Webb
Mir
In Progress
High
Alan Griffiths
MirAL
High
Unassigned
gtk+3.0 (Ubuntu)
High
Unassigned
mir (Ubuntu)
High
Unassigned
qtmir (Ubuntu)
Undecided
Unassigned
unity8 (Ubuntu)
Undecided
Unassigned

Bug Description

ubuntu 17.04 unity8
[unity8] Always on Top, Move and Resize doesn't work

open solitaire, right click on the title bar (see attachement) and then select Always on Top. the app doesn't stay on top. same with Move and Resize, does nothing

Related branches

dinamic (dinamic6661) wrote :
Daniel van Vugt (vanvugt) wrote :

The 'Move' part is bug 1420334.

tags: added: gtk-mir
Changed in unity8 (Ubuntu):
status: New → Invalid
summary: - [unity8] Always on Top, Move and Resize doesn't work
+ [unity8] GTK window functions `Always on Top, Move and Resize' don't
+ work in Mir
Changed in mir:
importance: Undecided → Medium
Changed in mir (Ubuntu):
importance: Undecided → Medium
Changed in mir:
status: New → Triaged
Changed in mir (Ubuntu):
status: New → Triaged
Changed in unity8 (Ubuntu):
status: Invalid → New
summary: - [unity8] GTK window functions `Always on Top, Move and Resize' don't
- work in Mir
+ GTK window functions `Always on Top, Move and Resize' don't work in
+ Mir/Unity8
kevin gunn (kgunn72) on 2017-03-03
tags: added: unity8-desktop
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 qtmir (Ubuntu):
status: New → Confirmed
Changed in unity8 (Ubuntu):
status: New → Confirmed
kevin gunn (kgunn72) on 2017-03-06
Changed in canonical-devices-system-image:
milestone: none → u8c-1
Changed in mir:
importance: Medium → High
Changed in canonical-devices-system-image:
importance: Undecided → High
Changed in mir (Ubuntu):
importance: Medium → High
Changed in gtk+3.0 (Ubuntu):
importance: Undecided → High
Changed in canonical-devices-system-image:
assignee: nobody → Stephen M. Webb (bregma)
Stephen M. Webb (bregma) on 2017-03-21
Changed in canonical-devices-system-image:
status: New → Confirmed
Changed in mir:
assignee: nobody → Alan Griffiths (alan-griffiths)
status: Triaged → In Progress
Changed in miral:
status: New → Triaged
importance: Undecided → High
Michał Sawicz (saviq) wrote :

Should these even be managed by GTK? Shouldn't Unity8 react to Alt+RightClick / Alt+Space instead?

Michał Sawicz (saviq) wrote :

Right click on client-side decoration should be similar to dragging on client-side decoration, an event forwarded from the app back to the shell?

Michał Sawicz (saviq) wrote :

I don't see us respecting requests like "Always on top" coming from the apps, better to handle that internally in the shell, allowing to keep consistency between apps.

Sorry for multiple comments.

Changed in mir:
milestone: none → 1.0.0
Alan Griffiths (alan-griffiths) wrote :

I think there are distinct cases here:

Case 1: (easy I hope)

The client initiating a user-drag/resize is analogous to the existing input focus request. Vis:

    void mir_window_request_user_move(MirWindow* window, MirCookie const* cookie);
    void mir_window_request_user_resize(MirWindow* window, MirCookie const* cookie);

Should be passed to the server, validated and handled by the WM policy exactly the same as:

    void mir_window_raise(MirWindow* window, MirCookie const* cookie);

How the client decides on calling these (via a menu or not) isn't really the issue.

This is addressed by lp:~alan-griffiths/mir/client-initiates-user-move-and-resize/+merge/320917

Case 2:

"Always on top" would be a property of a window, the client could set (or reset) this on the MirWindowSpec. The WM policy gets to decide whether (and how) to respect this property.

There's currently no support for such a property in libmirserver's SurfaceStack - so addressing that would be a pre-requisite to introducing such a property.

Case 3: (comment #6)

If there were some generic "window manager menu" that toolkits could request then that might be requested with a similar mechanism to case 1. But I've not seen a requirement for this (yet).

Changed in canonical-devices-system-image:
milestone: u8c-1 → u8c-2
status: Confirmed → In Progress
Mir CI Bot (mir-ci-bot) wrote :

Fix committed into lp:mir at revision 4129, scheduled for release in mir, milestone 0.27.0

Changed in mir:
status: In Progress → Fix Committed

The branch that landed was only part of the solution to one of the problems

Changed in mir:
status: Fix Committed → In Progress
Changed in mir:
milestone: 0.27.0 → 0.28.0
Mir CI Bot (mir-ci-bot) wrote :

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

Changed in mir:
status: In Progress → Fix Committed
Changed in mir:
milestone: 0.28.0 → 0.27.0
Launchpad Janitor (janitor) wrote :
Download full text (8.3 KiB)

This bug was fixed in the package mir - 0.27.0+17.10.20170630-0ubuntu1

---------------
mir (0.27.0+17.10.20170630-0ubuntu1) artful; urgency=medium

  [ Daniel van Vugt ]
  * New upstream release 0.27.0 (https://launchpad.net/mir/+milestone/0.27.0)
    - ABI summary:
      . mirclient ABI unchanged at 9
      . mirserver ABI bumped to 44
      . mircommon ABI unchanged at 7
      . mirplatform ABI bumped to 61
      . mirprotobuf ABI unchanged at 3
      . mirplatformgraphics ABI bumped to 13
      . mirclientplatform ABI unchanged at 5
      . mirinputplatform ABI bumped to 7
      . mircore ABI unchanged at 1
    - Enhancements:
      . Mostly groundwork required to support major enhancements coming in
        future Mir versions.
      . Removed android-input and eliminated the entire "3rd_party/" subtree.
        Now the Mir source tree contains original code only.
      . Added mir_prompt_session_new_fds_for_prompt_providers_sync API.
      . mirout: Added load and save options for keeping display configs
        on disk.
      . mirout: Added "--" support for applying configuration changes under
        Unity8.
      . Fixed failure of DRM hardware cursor {hide(); show(image);}
      . Added server option: "--cursor software" (MIR_SERVER_CURSOR=software)
      . Added letterboxing/black bars support to the GL renderer in preparation
        for generic output cloning.
      . Added client API for getting the logical size of an output.
      . Migrated MirCookie to use SHA-256.
      . Ensure RealKMSOutputConfiguration stays in sync with actual hardware
        state.
      . Added support for drag-and-drop.
      . Lots of other client API enhancements.
      . Minor clean-ups, optimizations and dead code removal.
      . Added support for building on Ubuntu 17.10 artful.
      . Update example code to use undeprecated API.
      . mesa-kms: Support hardware cursors in hybrid setups.
      . Rework and publish the graphics platform APIs
    - Bugs fixed:
      . [enhancement] Make able to get version information from client /
        server APIs (LP: #1195540)
      . Touch screen coordinates don't rotate with the screen (LP: #1349660)
      . Subpixel order not included in Mir display information (LP: #1393578)
      . [enhancement] Missing client API for relative surface movement (e.g.
        dragging client-decorated windows) (LP: #1420334) . Mir does not reset
        key states when paused or resumed (modifiers get stuck after VT
        switching) (LP: #1536279)
      . NBS never uses mc::MultiMonitorMode::single_monitor_fast, even when
        only a single monitor is plugged in (LP: #1561418)
      . Inconsistent behaviour of Num Lock (LP: #1588237)
      . A scaled (not panned or clipped) mirror/clone mode is desired
        (LP: #1639226)
      . Rotating an output left or right without restarting the
        compositor distorts the image (LP: #1643488)
      . support display scaling slider in unity8 (LP: #1645372)
      . [ FAILED ] NestedInputWithMouse.mouse_pointer_coordinates_in_nested_
        server_are_accumulated (LP: #1646375)
      . [ FAILED ] NestedInputWithMouse.mouse_pointer_position_is_in_sync_with_
        ho...

Read more...

Changed in mir (Ubuntu):
status: Triaged → Fix Released
Changed in mir:
status: Fix Committed → Fix Released

The fix released in Mir 0.27 covers the API for only one of the three functions mentioned.

Changed in mir:
status: Fix Released → In Progress
Changed in mir (Ubuntu):
status: Fix Released → In Progress
Changed in mir:
milestone: 0.27.0 → 0.28.0
Changed in mir:
milestone: 1.0.0 → none
Michał Sawicz (saviq) wrote :

Syncing task from Mir.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers