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

Bug #1033936 reported by Ugo Riboni
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Ayatana Design
Fix Committed
High
John Lea
unity (Ubuntu)
Won't Fix
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 design published here:
http://design.canonical.com/2012/03/task-switching-in-ubuntu-and-a-introduction-to-the-spread/

Tags: exbacklog udp
John Lea (johnlea)
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)
Changed in unity:
assignee: nobody → Olivier Tilloy (osomon)
Revision history for this message
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.

Revision history for this message
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)
Changed in ayatana-design:
status: Triaged → Fix Committed
Ugo Riboni (uriboni)
Changed in unity:
assignee: Olivier Tilloy (osomon) → Ugo Riboni (uriboni)
Ugo Riboni (uriboni)
Changed in unity:
status: Triaged → In Progress
Tim Penhey (thumper)
Changed in unity:
milestone: backlog → none
Tim Penhey (thumper)
tags: added: exbacklog
John Lea (johnlea)
Changed in unity:
assignee: Ugo Riboni (uriboni) → nobody
status: In Progress → Triaged
Noah (noahdsmith)
description: updated
Andrea Azzarone (azzar1)
no longer affects: unity
Changed in unity (Ubuntu):
status: Triaged → Won't Fix
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.