Add optional hide mode [$80]

Bug #1079575 reported by Cassidy James Blaede
144
This bug affects 33 people
Affects Status Importance Assigned to Milestone
Wingpanel
Won't Fix
Wishlist
Unassigned

Bug Description

Like Plank's bug 900814, we should add an option to allow hiding the dock when the active window is maximized. This is better than a "traditional" autohide mode since the panel would only be hiding when explicitly told to, and it would make the behavior between the dock and panel consistent.

Ricotz mentioned using LibPlank for the hide mode since it's already implemented there.

Tags: bounty
Changed in wingpanel:
status: New → Confirmed
importance: Undecided → Wishlist
Cody Garver (codygarver)
Changed in wingpanel:
milestone: none → 0.2
Cody Garver (codygarver)
Changed in wingpanel:
milestone: 0.2 → luna+1
Revision history for this message
Danielle Foré (danrabbit) wrote :
summary: - Add optional hide mode
+ Add optional hide mode [$70]
Revision history for this message
Cody Garver (codygarver) wrote : Re: Add optional hide mode [$70]

Not required for beta1

Changed in wingpanel:
milestone: isis-beta1 → none
Revision history for this message
Sascha Heuterer (theanachron) wrote :

@codygarver This would be awesome to have in the final 0.3 freya RC :)

Revision history for this message
Efe (efe-7) wrote :

Is there a progression about this? I'm still waiting.

Revision history for this message
SergeiS (sergei-redleafsoft) wrote :

I agree that the panel hogs up the space, and IMHO it is the biggest UI issue for a desktop user.
The problem is that simply hiding the panel leaves a lot of questions open:

- how is user supposed to be notified about updates in panel indicators?
- is launching apps with hidden launch button intuitive enough for a new user?

IMHO, this is more of a User Experience question, not a programming one.

Full disclosure: I am using Unity as a daily driver because it combines panel with window title when the window is maximized. This eliminates the need to hide anything, and I find it to be very functional.

Cody Garver (codygarver)
summary: - Add optional hide mode [$70]
+ Add optional hide mode [$80]
tags: added: bounty
Revision history for this message
Keith Bailey (kbailey4444) wrote :

Should the mouse hovering at the top edge of the screen cause the panel to be shown?

Revision history for this message
Lewis Goddard (lewisgoddard) wrote :

@kbailey4444 I think we'd probably like it to honor the settings that Plank currently uses, and behave that way.

Revision history for this message
Keith Bailey (kbailey4444) wrote :

Here is a video of my branch which does not yet show on hover like plank. https://www.youtube.com/watch?v=PFGx7x3VdUQ Any recommendations?

Revision history for this message
Emre Kucukarpaci (ekkucukarpaci) wrote :

@kbailey4444 When switching to a window in front of a maximized one, it might look better to have the panel slide over the maximized (inactive) window instead of push it to make way for itself.

Revision history for this message
Keith Bailey (kbailey4444) wrote :

My branch now shows on hover. I added configurable delays for showing or hiding when hovering changes. I found that when there was no delay, the panel would show when trying to close or unmaximize a window. Here is a video of it. https://www.youtube.com/watch?v=Y08u_bcJL-U

Revision history for this message
quassy (quassy) wrote :

What do you think about adding a button to WingPanel to be able to quickly pin (disable autohide) and unpin (enable autohide) it?

Revision history for this message
Maxim Taranov (png2378) wrote :

It would be cool to make a choice of windows, while maximizing that will hide wingpanel. Something like the whitelist. It's possible? Maybe `devilspie` will help in this?

Revision history for this message
Maxim Taranov (png2378) wrote :

quassy, that's a great!

Revision history for this message
Danielle Foré (danrabbit) wrote :

Okay, so I'm going to "Won't Fix" this after some discussion with Sam.

We feel like apps should be the ones to decide whether the panel is necessary or not by using full screen. It's already possible for apps to decide that maximize = full screen (a la audience).

Introduce a hide mode to the panel adds a lot of new complex problems like animating struts, avoiding accidental unhides over a potentially very important actionable area, etc. I don't think it's worth it technically to go this route instead of just having apps use full screen when necessary.

Changed in wingpanel:
status: Confirmed → Won't Fix
Revision history for this message
Caio Cutrim (kaiocoutrim) wrote :

but, but, but :(

Revision history for this message
Ben Lyn (ben-lyn) wrote :

:'(

Revision history for this message
quequotion (quequotion) wrote :

I ported Keith's libwnck-based dodge mode to the autohide I've been working on in github:

https://github.com/elementary/wingpanel/pull/93

The pull request is currently sporting four autohide modes, each to address Daniel's concerns in a different way:

"Autohide" hides the panel when the mouse is not interacting with it, and redraws struts. When the panel appears, windows will be pushed out of its way, then return to position when it hides.

"Float" also hides the panel when the mouse is not interacting with it, but does not draw struts. When the panel appears, it will overlay any window in its area. This behavior matches Plank's "Autohide".

"Dodge" hides the panel when the currently focused window is maximized, and redraws struts. The panel can be shown by mouseover, which will push windows out its way and let them return to position when the mouse exits the panel.

"Dodge-Float" also hides the panel when the currently focused window is maximized, but does not redraw struts. The panel can be shown by mouseover, and it will overlay any window in its area. This behavior is similar to Plank's "Dodge maximized window"

Drawing the struts causes clunky-looking animation. As a workaround, I have the struts drawn after the panel animates, but its still a little jarring. The "Float" modes look better.

There are two dconf settings, to select autohide mode and configure a delay for hiding or showing on mouse interaction.

I wouldn't ask for all of this to be pulled in, but I am hoping to demonstrate some possibilities and get a consensus on which method would be most ideal.

git clone https://github.com/quequotion/wingpanel.git

See them in action: https://goo.gl/FnnwkW

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

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.