Window management - Add "ghost" new window in spread for applications that support multiple windows

Reported by Ugo Riboni on 2012-08-07
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ayatana Design
High
John Lea
Unity
High
Unassigned
unity (Ubuntu)
High
Unassigned

Bug Description

The new unity window switching specification says the following about the spread:
"For applications which provide a New Window option or equivalent (currently accessed by middle clicking the Launcher icon or choosing the option from the right mouse button menu), a New Window item is displayed in the spread. When this window is highlighted, it will be outlined by the orange glow border and show the caption New Window, but does not show a title-bar or close button.
The user can click on this item to create a new window, bring it to front and focus it and exit the spread."

This feature should be implemented according to the spec published here:
http://design.canonical.com/the-toolkit/unity-task-switching/

John Lea (johnlea) on 2012-08-07
Changed in ayatana-design:
assignee: nobody → John Lea (johnlea)
status: New → Triaged
Changed in unity (Ubuntu):
status: New → Triaged
Changed in unity:
status: New → Triaged
milestone: none → backlog
tags: added: udp
Changed in ayatana-design:
importance: Undecided → High
Changed in unity:
importance: Undecided → High
Changed in unity (Ubuntu):
importance: Undecided → High
summary: - Add "ghost" new window in spread for applications that support multiple
- windows
+ Window management - Add "ghost" new window in spread for applications
+ that support multiple windows
Olivier Tilloy (osomon) on 2012-08-07
Changed in unity:
assignee: nobody → Olivier Tilloy (osomon)
Sam Spilsbury (smspillaz) wrote :

Difficulty: Medium/Hard/Unsure
Method:
1) Load a texture containing the "ghost window" asset
2) Create a new window of the ghost window size
3) In unity::UnityWindow::glPaint pass PAINT_WINDOW_NO_CORE_INSTANCE_MASK to the gWindow->glPaint call within the function
4) Make unity::UnityScreen inherit ScaleScreenInterface
5) Overload ScaleScreenInterface::layoutThumbs and add a new slot containing the new window when we know scale mode was triggered for this application group
 6) Overload ScaleWindowInterface::scalePaintDecoration and paint the ghost window texture instead of the window
7) Overload ScaleScreenInterface::scaleSelectWindowAt and if the "fake" window is selected then open the new application
 8) Ensure the fake window is mapped / unmapped when scale begins and ends.

Sam Spilsbury (smspillaz) wrote :

Test: Not sure. It does need a test though, consult with some of the developers on the best way to do this.

John Lea (johnlea) on 2012-08-08
Changed in ayatana-design:
status: Triaged → Fix Committed
Ugo Riboni (uriboni) on 2012-08-17
Changed in unity:
assignee: Olivier Tilloy (osomon) → Ugo Riboni (uriboni)
Ugo Riboni (uriboni) on 2012-08-22
Changed in unity:
status: Triaged → In Progress
Tim Penhey (thumper) on 2012-09-14
Changed in unity:
milestone: backlog → none
Tim Penhey (thumper) on 2012-09-14
tags: added: exbacklog
John Lea (johnlea) on 2012-10-12
Changed in unity:
assignee: Ugo Riboni (uriboni) → nobody
status: In Progress → Triaged
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers