LXPanel 0.8.0 released.

As already was announced, the time to release next LXPanel has came. The release goals for 0.8 were:

  • complete multi-monitor support
  • improve and further simplify plugins API

It also happen to have better performance than before, that was a side effect of optimizations. The release 0.8.0 comes fully translated to 17 languages: Chinese (China), Dutch, Finnish, French, Galician, Ganda, German, Greek, Icelandic, Indonesian, Italian, Portuguese, Russian, Spanish, Swedish, Turkish, Ukrainian. As usual, a lot of bugs were fixed, and you are welcome to report any bugs you happen to find yet. Work on LXPanel features will be continued shortly, stay in touch, it will become yet more convenient later. 🙂
New release tarball download link:
lxpanel-0.8.0.tar.xz – SHA1: c0b2d9edfd0d95ee142db7cd0e55763a785daa0a

Changes since previous release 0.7.2 (see git log for details):

  • Added workaround for crash in gtk-run with old libmenu-cache.
  • Core functions are separated into a private library to allow reliable linking of modules using -Wl,-z,defs.
  • Added macro LXPANEL_CHECK_VERSION() for third party pluguns API check.
  • Added CONF_TYPE_EXTERNAL support for lxpanel_generic_config_dlg().
  • Implemented property “aspect-width” for PanelIconGrid to allow using non-square tray sockets.
  • Added support for monitors “All” to span panel over all monitors (i.e. to allow pre-0.6.0 behavior).
  • Implemented monitors hotplug support.
  • Fixed popups positioning in multi-monitor environment.
  • Fixed updating panel size if appropriate monitor changed its size or position.
  • Implemented disabling for “Reserve space” button if another monitor lies beyond the edge so reservation will cover it. Also reservation will not be applied in such cases even if set in config manually.
  • Some edge and monitors selections in panel configuration dialog may be insensitive now if appropriate edge and monitor combination is not available, to avoid panels stacking one over another.
  • Fixed bug with hidden panel disappearing after resolution change.
  • Add lxpanel_image_new_for_icon() API to replace another (obsolete) API _gtk_image_new_from_file_scaled().
  • Added API panel_config_hotkey_button_new() to use as CONF_TYPE_EXTERNAL widget to allow configure global hotkeys for plugins functions.
  • Added API lxpanel_apply_hotkey() as a convenient libkeybinder interface to use in modules that also use panel_config_hotkey_button_new(). Now LXPanel requires libkeybinder too.
  • Added API panel_config_click_button_new() to configure mouse gestures and panel_config_click_parse() to parse its output.
  • Added “icon-size-changed” signal to LXPanel which is emitted when icons size in configuration dialog was changed.
  • Improved lxpanel_image_new_for_icon() API to follow panel icons size changes, not only theme changes. This way calls on lxpanel_image_* APIs on theme or panel changes may be eliminated, i.e. code becomes simpler.
  • Added new lxpanel_image_change_icon() API for simplification reasons so other lxpanel_image_* APIs can be replaced completely.
  • APIs lxpanel_button_set_icon() lxpanel_button_update_icon() now don’t require setting icon size since created button already follows size from panel settings. Also it doesn’t require refresh after the panel configuration change.
  • Optionally scaling up small icons in the taskbar may be disabled: scaled up icons may look bad due to pixelization (patch from Anton Lobashev).
  • When adding new panel, now correctly edges of monitor where popup was are tried before any other monitors.
  • Correctly open ‘netstat’ plugin own menu on left-click since right-click should open panel context menu instead.
  • System critical temperature level in ‘thermal’ plugin now is properly ignored if manual levels are active.
  • Fixed click on ‘menu’ plugin, only image was clickable, not whole area.
  • Added API panel_config_int_button_new() for generic plugin config spin button with custom range, not just generic 0…1000.
  • Fixed wrong behavior with PanelIconGrid constrained width after child was removed: size wasn’t always renegotiated correctly.
  • Fixed range of space reservation in multi-monitor setup (reservation might cover another monitor).
  • Numeric-only string will be saved now double-quoted to distinguish it from number in config.
  • Implemented flashing on task with urgency in grouped task list menu.
  • Disabled flashing on urgency hint if window has focus, most of window managers do the same on window decorations.
  • Fixed border of ‘batt’ plugin, it should correctly use panel settings.
    Also Size setting on it doesn’t include border width anymore.
  • Allowed default alarmCommand on ‘batt’ plugin be translated.
  • Implemented sorting plugins in Add plugin window in alphabetic order.
  • Fixed font in the weather plugin to use panel settings.
  • Added new API lxpanel_button_compose() for future usage by plugins.
  • Added optional ‘volumealsa’ plugin volume mapping from alsamixer (patch from Peter).
  • Added new API lxpanel_button_set_label() to change label of button that was created using some lxpanel_button_*() API.
  • Added “panel-font-changed” signal to LXPanel to be able follow settings change in font configuration of panel using lxpanel_button_*() API.
  • Fixed nasty bug with autohidden panel after unhide appeared for short time somewhere at the screen.
  • Fixed calendar and configuration windows blinking on their appearance.
  • Fixed panel update when background image changed in configuration.
  • Changed to use persistent background image for panel and Cairo. This way updating background should be faster, and also fixed background of plugins when image is used, both placement and alpha color.
  • Urgent window is now always visible on the taskbar irrelevant of the desktop number on which it appears, because urgent window requires user attention (patch from Andy Balaam).
  • Moved bit of code that is used out from src/bg.c and discarded src/bg.c from code used.
  • Dropped setting members of Panel structure: workarea, wa_len, bg.
  • Replaced GtkComboBoxEntry in ‘netstatus’ plugin window with GtkComboBox.
  • Simplified plugins background setting – they should never use any own background but either use one from panel or from theme (depending on panel configuration). This should improve performance.
  • Don’t update a whole panel background anymore after some plugin was resized, only update the plugin itself to improve performance.