Here are some release notes for the next round of lxpanel checkins.  These are 
ready to go as soon
as we agree on a release plan.

Normally this might go in on a branch, but I consider it in code freeze rather 
than still in development.  It is stable to the extent I can test it.  I have 
been running most of it for over a week.  I know it might impact some users who 
are used to building from SVN but I think I would suggest checking it in on 
trunk and having an intensive effort to test and stabilize and then put out a 
beta tarball.  As we already know, the highest risk is a segfault that causes 
the panel to restart.  Your feedback on the best way to get this done is 
welcomed.

Icon grid layout manager

A new layout manager for the Keyboard LED, Launchbar, Pager, and System Tray 
plugins adapts to the size of the panel and repacks icons to use space most 
efficiently.

New handling of "stretch"

Now only the Space and Taskbar plugins will honor "stretch" or offer it in the 
configuration dialog.  For the Taskbar plugin, it is defaulted on to avoid 
having a new user encounter the behavior that the taskbar grows beyond its 
allocation.

Honoring font color

Font color is now honored in every plugin.  Font color changes immediately in 
all plugins as it should.

Desktop Number plugin

Shows desktop names if available from window manager.

Launchbar plugin

Changed the handling of an empty launchbar.  I was troubled by how it initially 
configured pcmanfm and firefox, which may not be installed and we would display 
the broken image icon.  Now the plugin puts up an "Add" button when the 
launchbar is empty that takes the user to the configuration dialog.

The launchbar configuration dialog now populates a list of available 
applications from the menu cache.  It is no longer possible to add an 
application to the launchbar unless it is in the menu.  However, users no 
longer have to search the file system for the desktop file if it is not in the 
particular directory that the plugin displayed in previous releases.

The launchbar configuration dialog now displays the application icons.

Menu

Non-square icons now work.

Fixed the handling when a menu plugin was created so that the broken image icon 
is not displayed.

Pager

Each desktop now has a tooltip with the desktop name as reported by the window 
manager.

Removed the hardcoded limitation of 20 desktops.

It is still a known issue that some Compiz features are unsupported.  This is 
the next item to be worked on.

Taskbar

Removed the confusing options Accept SkipPager, Show Iconified, Show Mapped.

Added an option to combine multiple windows from the same application into one 
button ("Grouping").
This should alleviate most issues with taskbar overcrowding.

Significant internal reworking of the implementation.

Tray

Implemented so-called "balloon messages", small amounts of text that a tray 
application can display.

Significant internal reworking of the implementation.

Window Command

Removed the "toggle" behavior.  Now the plugin unconditionally iconifies or 
shades all windows on a left or middle click.

Plugin development notes

Vertical panels are now assumed to be fairly wide, and text is always drawn 
upright.  I personally run with a vertical panel 150 pixels autohide.

The plugin versioning proposal is implemented.  External plugins will not load 
unless PLUGINCLASS_VERSIONING is called in the PluginClass initializer (and 
matches the version of the panel).

Several plugins were found to call the destructor in the error path of the 
constructor.  This is wrong and will cause a segfault later when the plugin 
manager calls it again.

Plugins should not consider an unrecognized parameter a fatal error.  This 
reduces the possibility that a user can fall back to an earlier release if 
trouble is encountered on an upgrade.

The "orientation" callback is used whenever any style change is made that might 
require a full redraw, such as an orientation change or a text color change.  
The plugin should do a full redraw.

Plugins should not destroy p->pwid in the destructor.  This is done in the 
plugin manager.

All text drawing should flow through the central routine 
panel_draw_label_{text,integer}.  This centralizes the handling of font color.

All right-click handling should flow through the central routine 
plugin_button_press_event.  Plugins should declare this as the 
button-press-event handler if they do not have any other handling of button 
press.

Plugins need to be careful to constrain the height of their top level widget, 
so they work properly in wide vertical panels.

Test with both horizontal and vertical panels.  Test with all background 
options.  Test that your plugin works properly when it is removed from the 
panel.  Run the panel from a terminal and make sure your plugin does not 
generate GTK assertions or X errors.

------------------------------------------------------------------------------
_______________________________________________
Lxde-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lxde-list

Reply via email to