Neil's Place

March 17, 2010

Panel Improvements

Filed under: Uncategorized — enndeakin @ 9:26 pm

Currently the <panel> element is used to create temporary floating popup windows. The normal type of panel should be used for popups that the user interacts with temporarily, then dismisses by clicking away from it, pressing a close button or presses the Escape key. In a sense, they act like modal dialogs but aren’t actually modal. The bookmarks ‘star’ panel is an example.

The second type of panel, created by setting the noautohide attribute to true, is of a more persistent nature. However, it currently isn’t as useful as it should be. I’d like to make it more useful by allowing it to be used for floating tool palette windows.

In some cases, a separate window could be used instead. However, this can be inconvenient when there are only a few buttons or fields due to having to create a separate file. Also, windows tend to be separate, more permanent entities that appear on the operating system window list, whereas panels are smaller and are generally associated with another window.

See Panel Improvements for some ideas on what kinds of features would be useful. Let me know if there are other features I’ve not included on the list, or if you’d like to help.



  1. I actually tried using panels for something that is essentially a floating tool palette. For me, the main issues were:

    * Wildly different implementations in Firefox 3.0/3.5 and 3.6/3.7 – it seems that the functionality has been entirely rewritten, supporting both implementations in an extension is hard. Also, very different implementations with many subtle differences on different platforms.
    * Positioning issues – this got a lot better in 3.6/3.7, in particular it is possible to adjust the panel position if the position of its anchor node changed. However, things like bug 543418 still forced me to calculate the position manually.
    * Focus stealing – opening a panel will always bring its window into foreground on Windows. On Linux however it seems that the panel’s window always loses focus when the panel is opened. What I actually want is having the panel displayed without changing focus or active window (at least not automatically).
    * Missing translucency on Linux – makes for example rounded corners on the panel look very ugly.

    In my case it seems now that using panels is more trouble than it is worth, I’ll have to find some other solution. But maybe with your improvements I will be able to switch back to panels in a year or two.

    Comment by Wladimir Palant — March 18, 2010 @ 8:09 am

  2. Oh, I forgot: Once I started using a manually positioned panel it stopped reacting to style changes (-moz-opacity), only way to make it update was closing and reopening the panel. This worked more or less on Windows but caused very ugly visual effects on Linux. Not that I really wanted to have it work like this…

    Comment by Wladimir Palant — March 18, 2010 @ 8:17 am

  3. >Let me know if there are other features I’ve not included on the list

    This is great, I was actually just thinking about how we need to add some feature to panels, especially since we are planning on using them considerably more in the future (the bookmarks interface was really just a first foray into a more panel centric UI for Firefox). So far the only feature I can think of that the page is missing is for the panel to extend an arrow to a particular target. In many ways this arrow serves as the panel’s “title.” It’s also important in establishing how the panel can be displayed again when the user clicks outside to close.

    Comment by Alex Faaborg — March 23, 2010 @ 12:53 am

  4. Background drag to move – bug 554919 – is definitely one I see the need for in some projects.

    Comment by Brian King — March 26, 2010 @ 1:15 pm

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Blog at

%d bloggers like this: