2005-01-09  Christian Meyer  <chrisime@gnome.org>

	* shell/plugins/PackageInstaller/Downloader.py: Fixed vfs stuff here.
	* display/TargetEntry.py (TargetEntry.__on_changed): Simplified.

2005-01-09  Martin Grimme  <martin@pycage.de>

	* main/__init__.py (VERSION): 
	* configure.in: Raised version number to 0.33.1.

	* utils/Makefile.am (install_DATA): Removed entry for FileWatcher.py.
	Why was it still there?

2005-01-09  Benoît Dejean  <TazForEver@dlfp.org>

	* utils/xdr.py: Don't allow to send nothing, else the daemon is
	de-synchronized.

2005-01-09  Martin Grimme  <martin@pycage.de>

	* config/StateSaver.py: Fixed saving of state across sessions.

	* display/Display.py (Display.get_full_path): Fixed to recognize
	absolute paths with a protocol prefix as such, instead of as relative.

2005-01-08  Martin Grimme  <martin@pycage.de>

	* main/RemoteSocket.py (RemoteSocket.run.Handler.run): Removed the
	stupid text which is returned in case of an error. It broke the
	displays file.

	* main/DisplayList.py (DisplayList.add_display): Only accept if it
	has a non-empty ID.

2005-01-08  Christian Meyer  <chrisime@gnome.org>

	* autogen.sh: Bumped automake requirement to version 1.7.
	* Makefile.am: likewise (GNOME now uses automake 1.7, so do we)

2005-01-07  Benoît Dejean  <TazForEver@dlfp.org>

	* utils/Struct.py: Reverted. Pycage uses empty Struct which gtop's
	Struct does not allow.
	* utils/__init__.py: Fixed 'import utils.Struct'.

2005-01-07  Benoît Dejean  <TazForEver@dlfp.org>

	* libdesklets/__init__.py:
	* utils/Struct.py: Replaced custom Struct by gtop's one. Bound it to
	libdesklets.
	Strange things may be happen : segfault, leaks, whatever, circular
	import, etc

2005-01-04  Benoît Dejean  <TazForEver@dlfp.org>

	* Controls/Makefile.am:
	* Controls/URI/IURI.py:
	* Controls/URI/Makefile.am:
	* Controls/URI/__init__.py:
	* configure.in: URI is back.

2005-01-04  Martin Grimme  <martin@pycage.de>

	* config/StateSaver.py: Fixed typo.

2005-01-04  Benoît Dejean  <TazForEver@dlfp.org>

	* config/StateSaver.py: Reworked. All states are stored in
	USERHOME/states.db (shelve file).

	* display/Display.py: s/property/prop/

2005-01-04  Christian Meyer  <chrisime@gnome.org>

	* gdesklets-logview: We don't need the padding, it looks strange
	sometimes when you're using certain themes.
	* config/ConfigDialog.py: likewise
	* display/DisplayConfigurator.py: likewise
	* shell/plugins/Profiles/__init__.py: likewise
	* shell/plugins/ControlBrowser/ControlInspector.py: likewise. Also
	don't show the ID in the treeview.

	* utils/HIGDialog.py (HIGDialog.get_vbox): Removed.
	* utils/dialog.py: fixed due get_vbox removal.

	* display/GlassWindow.py: Minor fixes.

	* display/TargetPlotter.py (TargetPlotter.__parse_color): Implemented,
	it parses the color to find out if the opacity flag is set. Yep, the
	plotter now supports that.

2005-01-03  Benoît Dejean  <TazForEver@dlfp.org>

	* utils/i18n.py: Fixed i18n lookup for the logviewer.

2005-01-03  Benoît Dejean  <TazForEver@dlfp.org>

	* Controls/URI/.cvsignore: Added.

	* display/Display.py: Starts text-editor with disown
	* utils/i18n.py: FIXED.

2005-01-01  Martin Grimme  <martin@pycage.de>

	* configure.in: Gotta remove URI here, too. I hate autotools!

2005-01-01  Christian Meyer  <chrisime@gnome.org>

	* README. Updated again.
	* factory/DisplayFactory: Removed stacklevel parameter; cleanups.
	(DisplayFactory.create_display): Removed traceback for
	SAXParseException, we don't need it here, really.
	* utils/Unit.py: Also removed stacklevel here.

2005-01-01  Martin Grimme  <martin@pycage.de>

	* Controls/Makefile.am (SUBDIRS): Removed URI (broken).

	* main/__init__.py (COPYRIGHT): 
	* README: Adjusted (c) year numbers. Happy New Year!

	* config/ConfigString.py (ConfigString.__init__): s/10/15/.

2004-12-31  Martin Grimme  <martin@pycage.de>

	* utils/i18n.py (Translator): Don't annoy me if you can't find your
	locales.

	* sensor/SensorConfigurator.py: 
	* config/ConfigEnum.py: 
	* shell/BookmarkList.py: Use GtkComboBox instead of GtkOptionMenu.

	* shell/plugins/DisplayCollection/__init__.py: 
	* shell/plugins/ControlCollection/__init__.py: 
	* factory/ControlFactory.py: 
	* main/__init__.py (CONTROLPATHS): The gDesklets home directory moved.
	So, for transition, we include the old home into our search paths
	for controls, sensors, and displays.

	* utils/Makefile.am (install_DATA): Removed singleton.py.

	* main/Starter.py (Starter.__init__): 
	* scripting/Script.py (Script.__script_get_control): 
	* factory/DisplayFactory.py (DisplayFactory.__init__): 
	* factory/ControlFactory.py: 
	* Controls/Sensor/__init__.py (Sensor.__init__): 
	* sensor/Sensor.py (Sensor.__init__): 
	* factory/SensorFactory.py (SensorFactory.__init__): 
	* display/Display.py (Display.purge_display): 
	* config/ConfigManager.py: Got rid of singleton module.

2004-12-31  Christian Meyer  <chrisime@gnome.org>

	* README: Updated.
	* migration-tool: Renamed to 'gdesklets-migration-tool'.
	* Makefile.am: renamed migration-tool here, too.
	* config/ConfigString.py (ConfigString.__init__): Catch if value is
	None and set text to "".
	* display/TargetHTML.py: We have to set a cancel function for the
	current stream, so we do. It's not yet implemented because I couldn't
	figure out what to do in the cancel function. There's no documentation
	at all, just some sample apps!

2004-12-31  Christian Meyer  <chrisime@gnome.org>

	* main/__init__.py (__init__.init): Removed rc_style, since we don't
	use EventBoxes anymore.
	* display/DisplayTarget.py: Removed dead code (i.e. UNSET_COORD isn't
	needed).

2004-12-30  Martin Grimme  <martin@pycage.de>

	* display/Window.py (Window.__init__): Of course, we now need the
	MOTION_NOTIFY_MASK here.

	* display/Display.py: Got rid of the GtkEventBox here. This makes
	transparency work with the gtk-smooth-engine 0.6 now.

	* main/__init__.py (PID_PATH): Added the X display name to the
	pid filename. This is needed for handling multiple daemons running on
	different X displays.

	* utils/TilingImage.py (TilingImage.set_from_color): Fixed memory leak.

2004-12-29  Martin Grimme  <martin@pycage.de>

	* config/Makefile.am (install_DATA): Added StateSaver.py.

	* scripting/Script.py: Added two methods to the script for setting
	and retrieving state settings.

	* config/StateSaver.py: Added class for saving configuration state.

	* main/Starter.py (Starter.__close_display): Move config removal into
	the Display class.

	* display/Display.py (Display.purge_display): Moved config removal
	here.

	* display/TargetCanvas.py (TargetCanvas.__render): Fixed bug.

2004-12-29  Christian Meyer  <chrisime@gnome.org>

	* shell/plugins/PackageInstaller/Downloader.py: Ooops, fixed!
	
	* libdesklets/system/Arch.py (Arch.net_speed): Catch KeyError if
	device doesn't exist and show a RuntimeError. That might happen at the
	moment since we don't have dynamic <enum>'s.

2004-12-29  Martin Grimme  <martin@pycage.de>

	* config/ConfigString.py (ConfigString.__init__): Fixed <string> to not
	stretch the whole dialog that much any more.

	* main/Starter.py (Starter.__create_display): Bug fix for handling
	remote displays.

	* display/Display.py (Display.__handle_source): Implemented menu item
	for "View Source".

	* factory/DisplayFactory.py (DisplayFactory.create_display): 
	* main/Starter.py (Starter.__create_display): Give the full path to
	the DisplayFactory/Display.

2004-12-28  Martin Grimme  <martin@pycage.de>

	* main/client.py (get_daemon): Set timeout to be less strict.

	* display/Display.py (Display.set_container): Remove the display if
	the window gets closed.

	* display/TargetGroup.py (TargetGroup.__init__): Set default value for
	window-flags to "managed, decorated".

	* display/Window.py: Fixed broken handling of window shapes.

	* config/ConfigString.py (ConfigString.__init__): 
	* config/ConfigURI.py (ConfigURI.__init__): Only apply the value in the
	entry field after the entry has lost focus.

	* Makefile.am (install_SCRIPTS): Added gdesklets-logview there, so that
	it actually gets installed.

2004-12-27  Christian Meyer  <chrisime@gnome.org>

	* display/TargetHTML: Use gnome.vfs when it is safe. The threading bug
	has been fixed in python-gnome 2.6.2.
	* shell/plugins/PackageInstaller/Downloader.py: Likewise.
	* shell/plugins/PackageInstaller/__init__.py: Removed import.

2004-12-27  Benoît Dejean  <tazforever@dlfp.org>

	* Controls/HDDTemp/.cvsignore:
	* Controls/HDDTemp/IHDDTemp.py:
	* Controls/HDDTemp/Makefile.am:
	* Controls/HDDTemp/__init__.py:
	* Controls/HDDTemp/impl.py:
	* Controls/Makefile.am:
	* configure.in: Added HDDTemp control.

	* plugin/Interface.py: Added missing _ import.

2004-12-26  Martin Grimme  <martin@pycage.de>

	* config/ConfigURI.py (ConfigURI.fd_hide): 
	* config/ConfigTitle.py (ConfigTitle.__init__): 
	* config/ConfigString.py (ConfigString.__init__): 
	* config/ConfigFont.py (ConfigFont.__init__): 
	* config/ConfigFloat.py (ConfigFloat.__init__): 
	* config/ConfigEnum.py (ConfigEnum.__init__): 
	* config/ConfigColor.py (ConfigColor.__init__): Fixed alignment for
	PyGTK 2.4.

	* display/TargetImage.py (TargetImage.__render_image): Fixed bug which
	caused blurry images at original size.

	* display/DisplayTarget.py (DisplayTarget.handle_action): Added
	fields for pointer position for some actions.

	* display/TargetCanvas.py (TargetCanvas._setp_uri): Fixed path bug.

	* display/Display.py (Display.__on_motion): Huuuuge performance boost!

2004-12-23  Martin Grimme  <martin@pycage.de>

	* main/Starter.py (Starter.__handle_show_log): Use the external logfile
	viewer.

	* Makefile.am (EXTRA_DIST): Added gdesklets-logview.

	* main/__init__.py (VERSION): Raised version number to 0.33.

	* Makefile.am (SUBDIRS): Removed obsolete locale subdirectory.

	* configure.in: Point ${coredir} to $PREFIX/lib/gdesklets.
	Install locales in $PREFIX/share/locale.
	Removed obsolete locale entry for Makefile generation.

	* utils/i18n.py (find_locale_dir): Search for locales in
	$PREFIX/share/locale/.

2004-12-22  Martin Grimme  <martin@pycage.de>

	* plugin/Interface.py (Interface.get_interfaces): Fixed bug. The method
	wasn't recursive before.

	* factory/DisplayFactory.py (DisplayFactory.endElement): Fixed
	incomplete path for reading scripts from file.

2004-12-22  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets:
	* gdesklets-daemon:
	* main/__init__.py: Added PID_PATH and all the stuff needed so that
	'gdesklets slay' works (full-python impl.).
	
	* main/LogViewer.py: I'm too lazy to discard these changes. As the
	logviewer is still fucked up ...

2004-12-21  Martin Grimme  <martin@pycage.de>

	* display/TargetPlotter.py (TargetPlotter.__plot):
	* display/TargetCanvas.py (TargetCanvas.__render): Cleaned up.

2004-12-21  Benoît Dejean  <tazforever@dlfp.org>

	* utils/Struct.py: Fixed repr.

2004-12-20  Martin Grimme  <martin@pycage.de>

	* display/TargetCanvas.py (DOMBuilder.endElement): Fixed bad bad
	nesting bug.
	Lots of cleanups and fixes. Added "uri" property.

2004-12-20  Christian Meyer  <chrisime@gnome.org>

	* factory/DisplayFactory.py:
	* utils/Unit.py: Pass "stacklevel" to warn() so that we get the correct
	message.

2004-12-20  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets-daemon: Fixed error message.

2004-12-20  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets-daemon:
	* utils/Makefile.am:
	* utils/logger.py: Added SyncWriter. Wraps sys.stdout / sys.stderr to
	prevent corrupted messages in the logfile.

2004-12-20  Martin Grimme  <martin@pycage.de>

	* display/DataTarget.py (DataTarget.set_prop): Complain if the user
	attempts to write to a read-only property.
	(DataTarget.get_prop): Complain if the user attempts to read from a
	write-only property.

	* display/TargetCanvas.py: Implemented dynamic size handling for SVG
	images. SVG doesn't handle this by default.

2004-12-18  Christian Meyer  <chrisime@gnome.org>

	* config/GConfBackend.py: Better error reporting, if the gconf python
	bindings aren't installed.
	* main/__init__.py: likewise for gtk and gnome python bindings.

2004-12-18  Martin Grimme  <martin@pycage.de>

	* display/TargetCanvas.py: Added "dom" property for being able to
	modify the SVG code via scripting.

	* main/Starter.py (Starter.__init__): s/STOCK_ABOUT/gnome-stock-about/.
	STOCK_ABOUT does _not_ exist except for on some bleeding edge systems.

	* display/TargetExpander.py: Fixed for Unit-based geometry engine.

2004-12-18  Benoît Dejean  <tazforever@dlfp.org>

	* main/Starter.py: Changed stocks in the systray.
	About    -> STOCK_ABOUT
	Shutdown -> STOCK_QUIT

2004-12-17  Martin Grimme  <martin@pycage.de>

	* display/Window.py (Window.set_position): Small fix to avoid that
	displays first get displayed at (0, 0) when loading.

	* display/TargetFrame.py: Use TYPE_UNIT_LIST for the "border-width"
	property.

	* utils/TypeConverter.py: Added conversion rule for new datatype
	TYPE_UNIT_LIST.
	
	* display/TargetLabel.py: 
	* display/TargetImage.py: 
	* display/DisplayTarget.py: 
	* utils/TypeConverter.py: 
	* utils/datatypes.py: s/TYPE_COORD_SIZE/TYPE_UNIT/

	* display/TargetLabel.py (TargetLabel.__set_font): Fixed unit.

	* main/Starter.py: Fixed to work with Unit-based geometry engine.

	* display/TargetEntry.py: Made "value" property readable and writable.
	
	* display/TargetFrame.py: Cleaned up and added "color" property for
	colored frames without pixmaps.
	
	* display/TargetLabel.py: 
	* display/TargetImage.py: 
	* display/TargetGroup.py: 
	* display/TargetGauge.py: 
	* display/TargetFrame.py: 
	* display/TargetEntry.py: 
	* display/TargetCanvas.py: 
	* display/TargetArray.py: 
	* display/TargetAlignment.py: Fixed to work with Unit-based geometry
	engine.
	
	* display/ContainerTarget.py: 
	* display/DisplayTarget.py: 
	* display/Display.py: Fixed geometry engine to consequently use the Unit
	class.

2004-12-17  Benoît Dejean  <tazforever@dlfp.org>

	* TODO: Added item about gnomevfs.async (gnomevfs >= 2.8).

2004-12-17  Martin Grimme  <martin@pycage.de>

	* utils/Unit.py: Added methods for operator overloading.

	* display/TargetHTML.py: Threading makes <html> finally usable.

2004-12-16  Benoît Dejean  <tazforever@dlfp.org>

	* utils/utils.c: (gdesklets_get_pygobject_type): Removed unused var.

2004-12-16  Christian Meyer  <chrisime@gnome.org>

	* README: Added packages which you need if you want to compile
	gDesklets.

2004-12-15  Benoît Dejean  <tazforever@dlfp.org>

	* scripting/Script.py: Added enumerate, object and sum in the sandbox.

2004-12-15  Martin Grimme  <martin@pycage.de>

	* utils/i18n.py (Translator): Translated Frenglish error message into
	English.

	* display/DisplayTarget.py (DisplayTarget._getp_geometry): Fixed bug in
	returning coordinate values in percents.

	* Controls/Time/__init__.py: Another attempt to fix timezone handling.
	This time it should work.

2004-12-14  Benoît Dejean  <tazforever@dlfp.org>

	* Controls/Calendar/__init__.py: strftime friendly implementation.
	Doesn't need i18n anymore.

2004-12-13  Benoît Dejean  <tazforever@dlfp.org>

	* shell/ItemBrowser.py:
	* shell/plugins/DisplayBrowser/__init__.py:
	* utils/QueryParser.py: Ready to use python2.4 new builtin 'set' type.
	
	* utils/i18n.py: Added failsafe _

2004-12-13  Benoît Dejean  <tazforever@dlfp.org>

	* main/__init__.py:
	* utils/i18n.py: Fixed locale for everyone. Now, locales have to be
	installed in $prefix/share/locale instead of $prefix/share/gdesklets/locale.

2004-12-13  Benoît Dejean  <tazforever@dlfp.org>

	* main/Starter.py(__init__): Reordered so that the socket is opened first.

2004-12-13  Benoît Dejean  <tazforever@dlfp.org>

	* configure.in:
	* display/Display.py:
	* shell/Makefile.am:
	* shell/Plugin.py:
	* shell/PluginRegistry.py:
	* shell/interfaces/.cvsignore:
	* shell/interfaces/Browser.py:
	* shell/interfaces/Collection.py:
	* shell/interfaces/Installer.py:
	* shell/interfaces/Makefile.am:
	* shell/interfaces/Menu.py:
	* shell/interfaces/Shell.py:
	* shell/interfaces/Status.py:
	* shell/interfaces/View.py:
	* shell/interfaces/Widget.py:
	* shell/interfaces/gDeskletsClient.py:
	* shell/plugins/ControlBrowser/__init__.py:
	* shell/plugins/ControlCollection/__init__.py:
	* shell/plugins/ControlsView/__init__.py:
	* shell/plugins/DisplayBrowser/__init__.py:
	* shell/plugins/DisplayCollection/__init__.py:
	* shell/plugins/DisplayView/__init__.py:
	* shell/plugins/Help/__init__.py:
	* shell/plugins/Menu/__init__.py:
	* shell/plugins/PackageInstaller/__init__.py:
	* shell/plugins/Profiles/__init__.py:
	* shell/plugins/Shell/__init__.py:
	* shell/plugins/StatusBar/__init__.py:
	* shell/plugins/ViewSwitch/__init__.py:
	* shell/plugins/gDeskletsClient/__init__.py:
	
	Du balai !
	
	Big clean up: removed a lot of dead code, dumped the useless interface
	checking.

2004-12-13  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets-commander: Removed.

2004-12-12  Christian Meyer  <chrisime@gnome.org>

	* doc/: Cleanups here and there.

2004-12-12  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets: Cleaned i18n strings.

2004-12-12  Benoît Dejean  <tazforever@dlfp.org>

	Merged SWIGLEss.
	
	* configure.in: 0.33 Post release bump.

2004-12-12  Christian Meyer  <chrisime@gnome.org>

	* factory/DisplayFactory.py: Removed uncommented code.

2004-12-12  Martin Grimme  <martin@pycage.de>

	* display/GlassWindow.py (GlassWindow.__get_window_manager): Removed
	print statement.

	* display/TargetEntry.py (TargetEntry.__on_changed): Fixed stupid
	bug where self.value was lagging behind the actual value.

2004-12-11  Martin Grimme  <martin@pycage.de>

	* factory/SensorFactory.py (SensorFactory.create_sensor): Fixed bug
	where modules which were not from the current could be loaded.

2004-12-12  Benoît Dejean  <tazforever@dlfp.org>

	* configure.in:
	* libdesklets/CPU.py:
	* libdesklets/Disk.py:
	* libdesklets/Makefile.am:
	* libdesklets/Memory.py:
	* libdesklets/Network.py:
	* libdesklets/Sys.py:
	* libdesklets/__init__.py:
	* libdesklets/polling.py:
	* libdesklets/system/Arch.py:
	* libdesklets/system/CPU.py:
	* libdesklets/system/Makefile.am:
	* libdesklets/system/Net.py:
	* libdesklets/system/Swap.py:
	* libdesklets/system/__init__.py:
	* libdesklets/system/glibtop.c:
	* libdesklets/system/glibtop_tmpl.i:
	* libdesklets/system/gtop.c: (guint64_checked_mult),
	(build_128bit_long), (get_smp_cpu), (gtop_cpu),
	(gtop_proc_segment), (gtop_proc_signal), (get_smp_time),
	(gtop_proc_time), (gtop_proc_uid), (register_constants):
	* libdesklets/system/libgtop.py:
	* libdesklets/system/libgtop_const.c:
	* utils/Trie.py: Attention chérie, ça va casser.
	
	No more glibtop, libgtop, libdesklets/* !
	Tested with Dave's small controls. Seems to work.

2004-12-10  Christian Meyer  <chrisime@gnome.org>

	* NEWS:
	* TODO: Updated for final release.

2004-12-09  Martin Grimme  <martin@pycage.de>

	* display/TargetEntry.py: Fixed bug.

2004-12-07  Christian Meyer  <chrisime@gnome.org>

	* main/__init__.py: Try to get the DISPLAY variable.
	* main/client.py:
	* main/RemoteSocket.py: import DISPLAY from main.

2004-12-05  Martin Grimme  <martin@pycage.de>

	* factory/DisplayFactory.py (DisplayFactory.endElement): Implemented
	<control> tag. This results in cleaner inline scripting code.

	* config/GConfBackend.py: Print an error message if gconf stuff cannot
	be loaded.

2004-12-04  Martin Grimme  <martin@pycage.de>

	* main/__init__.py (init): Print an error message if gnome stuff cannot
	be loaded.

	* shell/plugins/Shell/__init__.py: Worked around gnome.program_init()
	bug which raised a GConf critical error.

	* display/GlassWindow.py (GlassWindow.__get_window_manager): Removed
	that annoying "Gdk-WARNING **: XID 0xa00003 already known" message.

2004-12-03  Benoît Dejean  <tazforever@dlfp.org>

	* main/Starter.py (get_full_path): Enhanced gnomevfs is_local test. 

2004-12-03  Benoît Dejean  <tazforever@dlfp.org>

	* display/Display.py:
	* display/TargetExpander.py:
	* display/TargetFrame.py:
	* display/TargetGroup.py:
	* display/TargetImage.py:
	* factory/DisplayFactory.py:
	* main/Starter.py:
	* utils/Makefile.am:
	* utils/TilingImage.py:
	* utils/vfs.py: Removed.
	Aurevoir vfs.
	Display has now a third argument for the basepath of the .display. None
	is OK for pure-vfs .display.

2004-12-02  Benoît Dejean  <tazforever@dlfp.org>

	* display/Display.py:
	* display/TargetExpander.py:
	* display/TargetGroup.py:
	* display/TargetImage.py:
	* utils/vfs.py: final countdown

2004-12-02  Benoît Dejean  <tazforever@dlfp.org>

	* display/TargetGroup.py:
	* main/Starter.py:
	* utils/TilingImage.py:
	* utils/vfs.py: One more step to remove utils.vfs

2004-12-02  Christian Meyer  <chrisime@gnome.org>

	* README: Fixed typos and added more useful dep infos.
	* utils/Makefile.am: Removed GConfWatcher entry.
	* utils/GConfWatcher.py: Removed, not needed.
	* factory/DisplayFactory.py:
	* display/TargetExpander.py:
	* display/TargetGroup.py:
	* display/TargetImage.py:
	* main/Starter.py: Removed no longer needed vfs import.

2004-12-02  Benoît Dejean  <tazforever@dlfp.org>

	* configure.in: Updated dependencies.
	
2004-12-02  Benoît Dejean  <tazforever@dlfp.org>

	* README: Now depends on gnome-python >= 2.6 and python-gtk >= 2.4.
	
	* Controls/URI/__init__.py:
	* display/Display.py:
	* display/TargetExpander.py:
	* display/TargetGroup.py:
	* display/TargetImage.py:
	* factory/DisplayFactory.py:
	* main/Starter.py:
	* utils/FileWatcher.py:
	* utils/TilingImage.py:
	* utils/vfs.py: Reworked with gnome.vfs / gnomevfs. utils.vfs may become
	unused.

2004-12-02  Benoît Dejean  <tazforever@dlfp.org>

	* main/RemoteSocket.py:
	* utils/xdr.py: call to send(s) without data is an error.

2004-11-29  Christian Meyer  <chrisime@gnome.org>

	* main/__init__.py: Moved CREDITS from AboutDialog.
	* main/AboutDialog.py: Removed _CREDITS.
	* main/RemoteSocket.py: Fixed some/Removed unused imports.
	* main/Starter.py: Fixed typos!
	* main/client.py:
	* main/Control.py:
	* main/DisplayList.py:
	* main/LogViewer.py:
	* main/MetaData.py:
	* main/TrayIcon.py:

	pylint love all over the place...

	* display/Window.py (Window.__save_position): Removed, it's also in
	main/Starter.py.

2004-11-28  Christian Meyer  <chrisime@gnome.org>

	* NEWS: Added news for the pre-release.
	* README: Updated.

2004-11-25  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets: 'start' is now the default command.

2004-11-25  Christian Meyer  <chrisime@gnome.org>

	* display/DisplayTarget.py (_getp_geometry): Fixed #159444.

2004-11-23  Christian Meyer  <chrisime@gnome.org>

	* plugin/PluginRegistry.py (PluginRegistry.__scan_repository): Fixed
	bug #159192.
	* gdesklets:
	* gdesklets-daemon:
	* main/__init__.py: I love pylint :-)

2004-11-22  Benoît Dejean  <tazforever@dlfp.org>

	* .cvsignore:
	* Controls/Calendar/Makefile.am:
	* Controls/Makefile.am:
	* Controls/Sensor/Makefile.am:
	* Controls/System/Makefile.am:
	* Controls/Time/Makefile.am:
	* Controls/URI/Makefile.am:
	* INSTALL: Removed.
	* Makefile.am:
	* Sensors/External/Makefile.am:
	* Sensors/FontSelector/Makefile.am:
	* config/Makefile.am:
	* configure.in:
	* display/Makefile.am:
	* factory/Makefile.am:
	* libdesklets/Makefile.am:
	* libdesklets/controls/Makefile.am:
	* libdesklets/system/FreeBSD/Makefile.am:
	* libdesklets/system/Linux/Makefile.am:
	* libdesklets/system/Makefile.am:
	* libdesklets/system/NetBSD/Makefile.am:
	* libdesklets/system/OpenBSD/Makefile.am:
	* locale/.cvsignore:
	* main/Makefile.am:
	* plugin/Makefile.am:
	* scripting/Makefile.am:
	* sensor/Makefile.am:
	* shell/Makefile.am:
	* shell/interfaces/Makefile.am:
	* shell/plugins/ControlBrowser/Makefile.am:
	* shell/plugins/ControlCollection/Makefile.am:
	* shell/plugins/ControlsView/Makefile.am:
	* shell/plugins/DisplayBrowser/Makefile.am:
	* shell/plugins/DisplayCollection/Makefile.am:
	* shell/plugins/DisplayView/Makefile.am:
	* shell/plugins/Help/Makefile.am:
	* shell/plugins/Menu/Makefile.am:
	* shell/plugins/PackageInstaller/Makefile.am:
	* shell/plugins/Profiles/Makefile.am:
	* shell/plugins/Shell/Makefile.am:
	* shell/plugins/StatusBar/Makefile.am:
	* shell/plugins/ViewSwitch/Makefile.am:
	* shell/plugins/gDeskletsClient/Makefile.am:
	* utils/Makefile.am: I guess this is more usefull that talking about whether
	or not pylint sucks.

2004-11-18  Christian Meyer  <chrisime@gnome.org>

	* main/client.py (get_daemon): Fixed #158607.

2004-11-16  Christian Meyer  <chrisime@gnome.org>

	* NEWS:
	* TODO: Updated.
	* display/GlassWindow.py: Set ewmh to None if it couldn't be imported.
	  (GlassWindow._set_flag_below, GlassWindow._set_flag_above,
	   GlassWindow._set_flag_managed): test if ewmh is imported.

2004-11-16  Christian Meyer  <chrisime@gnome.org>

	* migration-tool: Use HIGDialog!
	* config/ConfigDialog.py: Simplifiedm using HIGDialog.
	* config/ConfigWidget.py: Whitespace cleanups.
	* display/DisplayConfigurator.py: Simplified, using HIGDialog.
	* main/LogViewer.py: likewise, removed not needed import.
	* shell/plugins/ControlBrowser/ControlInspector.py: likewise, set
	right­padding property for alignment.
	* shell/plugins/Profiles/__init__.py (__init__.__new_profile): likewise
	* utils/HIGDialog.py: Cleanups, lots of stuff wasn't really necessary!

2004-11-14  Benoît Dejean  <tazforever@dlfp.org>

	* configure.in: Bumped to 0.32.
	
	* gdesklets:  Add error message if connection to daemon fails.

2004-11-09 Christian Meyer  <chrisime@gnome.org>

	* shell/plugins/ControlBrowser/ControlInspector.py: Removed thæ "Click
	on column header" hack to display the interface name in a label. It now
	displays it by default.

2004-11-08  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets-daemon: Doesn't redirect fileno() anymore. We have to
	redirect the python 'file' to get a sane behaviour. This make the log
	file works as expected (no more buffering issues) and catch only gdesklets
	messages (X errors are not caught as required).
	
	* main/LogViewer.py: New async read code. Using non-blocking file
	descriptor. This is more sane, and is failsafe. The finalization of the
	thread is ensured before the window gets destroyed.

2004-11-08 Christian Meyer  <chrisime@gnome.org>

	* gdesklets: Beautified 'list'.
	* main/client.py: Added, fixed docu. Removed non-used imports.

2004-11-08  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets: new 'status' command.
	* main/client.py: Added daemon_is_running().
	
	Doesn't start the daemon to shutdown it.

	Closes #153500.

2004-11-08 Christian Meyer  <chrisime@gnome.org>

	* config/ConfigDialog.py (ConfigDialog.set_item): pack_start with
	False, False.
	* main/LogViewer.py: Removed HBOx, what crack did I smoke?
	textwrap at 70 to prevent cut offs!
	* shell/plugins/ControlBrowser/ControlInspector.py: TreeView is in a
	ScrolledWindow now. Watch header clicking and return the IFace name if
	clicked.

2004-11-07  Benoît Dejean  <tazforever@dlfp.org>

	* main/LogViewer.py: LogViewer is now a Thread. Handle logviewer
	shutdown with an Event.
	
	* main/Starter.py: Disabled gtk2.5 Stock.

2004-11-07  Martin Grimme  <martin@pycage.de>

	* shell/plugins/DisplayBrowser/__init__.py
	(UI_DisplayBrowser.__on_remove): Fixed syntax for calling the dialog.

2004-11-07  Christian Meyer  <chrisime@gnome.org>

	* test-control.py:
	* main/Control.py:
	* plugin/Interface.py:
	* shell/plugins/ControlBrowser/ControlInspector.py: Applied Taz's patch
	which basically seperated describe() from plugin/Interface.py in
	describe_text() and describe_gui().
	* main/LogViewer.py (LogViewer.__analyze_message): Simplified and added
	GtkWarning. New: _ATTR_GTK

2004-11-07  Christian Meyer  <chrisime@gnome.org>

	* gdesklets:
	* main/client.py:
	* main/Starter.py:
	* main/remotecommands.py: about now also connects to the server to get
	information from it which makes it consistent to the rest.

2004-11-06  Benoît Dejean  <tazforever@dlfp.org>

	* utils/Makefile.am: Updated.

2004-11-06  Benoît Dejean  <tazforever@dlfp.org>

	* scripting/Script.py: Reverted.

2004-11-06  Christian Meyer  <chrisime@gnome.org>

	* TODO: Updated.
	* utils/dialog.py (dialog._set_details): Fixed layout. Perfect now!
	Replaced OK buttons by Close buttons.
	* utils/HIGDialog.py: Don't allow to resize a dialog.
	* config/migration.py: Removed, no longer used.
	* config/ConfigDialog.py:
	* display/DisplayConfigurator.py:
	* main/LogViewer.py: HIG'ified.
	* plugin/Interface.py (Interface.describe): I had to fix this method to
	return a nice output for the GUI.
	* scripting/Script.py (Script.__script_add_timer): Warn if interval
	isn't of type int.
	* shell/plugins/ControlBrowser/ControlInspector.py: It's a nice
	Treeview now, needs still some love.
	* test-control.py: Small modification due change in
	plugin/Interface.py.

2004-11-06  Martin Grimme  <martin@pycage.de>

	* utils/HIGDialog.py (HIGDialog.__init__): Fixed packing.

2004-11-06  Christian Meyer  <chrisime@gnome.org>

	* util/dialog.py:
	* util/HIGDialog.py: Cleanups, much better now.

2004-11-05  Martin Grimme  <martin@pycage.de>

	* utils/HIGDialog.py: Cleaning up.

	* utils/dialog.py: Cleaning up, removed dead code.

	* display/Display.py (Display.__handle_remove): Fixed for the new
	dialog.

	* utils/dialog.py: Changed to use the HIGDialog. Still needs a lot of
	cleaning up.

	* utils/HIGDialog.py (HIGDialog.__init__): Completed constructor.

2004-11-04  Amanpreet Singh Alam <aalam@redhat.com

	* configure.in: Punjabi Language pa is add

2004-11-04  Christian Meyer  <chrisime@gnome.org>

	* TODO: Updated
	* configure.in: Fixed check for SWIG.
	* utils/dialog.py: Make them work with gtk+-2.5.x. The layout in newer
	gtk+ versions has changed.
	* shell/plugins/Help/TipOfTheDay.py: Likewise.
	* utils/HIGDialog.py: A nice HIGified gtk.Dialog.

2004-11-03  Martin Grimme  <martin@pycage.de>

	* display/TargetLabel.py (TargetLabel.__set_font): To put an end to
	an endless discussion. Default unit for fonts is points.

2004-11-03  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets: Fixed arguments parsing. Get rid of smproxy arguments.

2004-11-03  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets: Fixed cmd, args split.

2004-11-03  Martin Grimme  <martin@pycage.de>

	* shell/plugins/Shell/__init__.py (UI_Shell.run): Fixed deprecated
	method call.
	
	* gdesklets-daemon (pretty_excepthook): Disabled it for now.
	Forgive me, Taz; atm it's not very readable.

	* shell/plugins/PackageInstaller/__init__.py
	(Installer_Package.__install_file): Fixed bug.

2004-11-02  Martin Grimme  <martin@pycage.de>

	* gdesklets: Fixed bug to make it work with GNOME session management.

	* Controls/Time/__init__.py: Finally got this damn timezone stuff
	working correctly, hopefully.

2004-11-01  Martin Grimme  <martin@pycage.de>

	* display/TargetLabel.py (TargetLabel.__set_font): Be consistent. Let
	pixels be the default unit for font sizes (as it was before).

	* display/Window.py: Emit LOCK and UNLOCK events to lock the display
	for user actions while dragging it.

	* display/Display.py (Display.__on_observe_container): React on LOCK
	and UNLOCK events.

	* display/DisplayContainer.py (DisplayContainer): Added LOCK and UNLOCK
	observer events.

2004-10-30  Martin Grimme  <martin@pycage.de>

	* display/DisplayTarget.py (DisplayTarget.adjust_geometry): Fixed
	recently introduced stupid bug.

	* utils/Unit.py (Unit.__inch_to_unit): Round pixel values instead of
	simple truncating.

	* shell/plugins/DisplayBrowser/__init__.py: Implemented deinstalling
	of .display files.

	* shell/plugins/DisplayCollection/__init__.py
	(Core_DisplayCollection.remove): Implemented remove operation.

	* shell/interfaces/Collection.py (Collection.remove): Added remove
	operation.

	* shell/plugins/PackageInstaller/__init__.py
	(Installer_Package.__on_file_open.f): Can use the new GTK file chooser
	now.

	* sensor/Sensor.py (Sensor.set_config_id): Silly compatibility fix to
	ensure better backwards-compatibility. It doesn't hurt, at least.

2004-10-29  Benoît Dejean  <tazforever@dlfp.org>

	* utils/Unit.py: Updated. Fixed __validate.

2004-10-29  Martin Grimme  <martin@pycage.de>

	* utils/Unit.py (Unit.__getitem__): Raise a DeprecationWarning instead
	of just printing out text. This makes Taz happier.

	* shell/plugins/PackageInstaller/Package.py: Fixed bugs.

	* shell/plugins/PackageInstaller/__init__.py
	(Installer_Package.__on_file_open.f): Adjusted callback signature.

	* utils/dialog.py (fileselector.handler): Use GtkFileChooserDialog if
	available.

2004-10-28  Martin Grimme  <martin@pycage.de>

	* utils/Trie.py (_TrieNode.remove): Implemented efficient remove
	method for removing values from the trie.

	* main/LogViewer.py: Implemented colored output. It's easier to spot
	error messages now.

	* main/Starter.py: Added keywords to the output messages.

	* factory/DisplayFactory.py (DisplayFactory.startElement): Raise a
	DeprecationWarning instead of just printing text if sensors are loaded.

2004-10-27  Martin Grimme  <martin@pycage.de>

	* config/ConfigDialog.py (ConfigDialog.set_items): 
	* sensor/SensorConfigurator.py (SensorConfigurator.__init__): Fixed
	table. Creating a GtkTable with zero rows is deprecated.

	* utils/Unit.py (Unit.__inch_to_unit): Return an integer for pixel
	values.

	* gdesklets-daemon (gdesklets_main): gtk.mainloop is deprecated,
	use gtk.main instead.

2004-10-25  Martin Grimme  <martin@pycage.de>

	* shell/plugins/PackageInstaller/Package.py (Package.__find): Fixed
	bug in the package installer.

	* display/DisplayTarget.py: Applied on-link-drop patch by Fredrik
	Nygren. Thanks a lot! Closes bug #152738.

	* display/TargetExpander.py: Fixed expander. Did GTK 2.4 break it?

	* display/DisplayTarget.py (DisplayTarget._setp_geometry): Added
	assert statement to make sure we only get Unit objects.

	* display/TargetGauge.py (TargetGauge._setp_fill): Fixed for Unit
	class.

2004-10-24  Martin Grimme  <martin@pycage.de>

	* display/GlassWindow.py (GlassWindow._set_flag_below): Correctly set
	ABOVE flag to False.
	(GlassWindow._set_flag_above): Correctly set BELOW flag to False.

	* Controls/Time/__init__.py (Time.__set_timezone): Fixed timezone
	issues.

	* display/ContainerTarget.py (ContainerTarget.__get_children_bbox): 
	Fixed computation of bounding box when having percentual values.

	* display/Display.py (Display.set_container): Fixed for Unit class.

	* scripting/Script.py (Script.__script_add_timer): Bug fix to make sure
	that timers get terminated when the display is being closed.

	* display/Display.py (Display.__on_observe_container): Performance fix.

	* display/DisplayTarget.py (DisplayTarget.adjust_geometry): Fixed bug.
	Removed obsolete code and cleaned up.

	* utils/Unit.py: Cache computed values for better performance.

2004-10-23  Martin Grimme  <martin@pycage.de>

	* utils/Unit.py (Unit.__init__): Allow negative coordinates.

2004-10-22  Martin Grimme  <martin@pycage.de>

	* display/TargetLabel.py: 
	* display/TargetImage.py: 
	* display/DisplayTarget.py: 
	* display/ContainerTarget.py: Changed to use Unit class.

	* main/__init__.py (VERSION): Raised version number to 0.31.

	* scripting/Script.py (Script.__init__): Fixed wrong namespace typo.

	* utils/Unit.py: Various improvements.

	* utils/TypeConverter.py: Changed to use Unit class.

2004-10-20  Benoît Dejean  <tazforever@dlfp.org>

	* utils/Unit.py: Added slots. Added _Unit : stronger check on self.__unit.

2004-10-20  Martin Grimme  <martin@pycage.de>

	* scripting/Script.py: Removed run() function. It's not safe.

	* display/DisplayTarget.py: 
	* scripting/Script.py: Changed to use Unit class.

2004-10-20  Christian Meyer  <chrisime@gnome.org>

	* display/ContainerTarget.py:
	* display/TargetEntry.py:
	* display/TargetImage.py:
	* display/TargetLabel.py: Use the new Unit class.
	* utils/Unit.py: Only Taz knows better!

2004-10-20  Martin Grimme  <martin@pycage.de>

	* utils/Unit.py: Added Unit class.

	* utils/Makefile.am (install_DATA): Removed units.py, added Unit.py.

vs2004-10-12  Benoît Dejean  <tazforever@dlfp.org>

	* configure.in: Check for python >= 2.3. Closes #155226.
	* dev/HACKING: Updated. Bad english inside.

2004-10-11  Martin Grimme  <martin@pycage.de>

	* display/ContainerTarget.py (ContainerTarget.__get_children_bbox): 
	Fixed bug in geometry computations a bit.

2004-10-09  Martin Grimme  <martin@pycage.de>

	* display/DataTarget.py (DataTarget.handle_action): Fixed regular
	expression to ensure better compatibility with legacy desklets.

	* factory/DisplayFactory.py (DisplayFactory.startElement): Print a
	deprecation warning when a sensor gets loaded.

	* display/Window.py: Implemented keyboard support for placing windows.

2004-10-08  Martin Grimme  <martin@pycage.de>

	* factory/DisplayFactory.py (DisplayFactory.create_display): Fixed bug
	which caused the shell to hang on broken sensors.

	* display/DataTarget.py: Moved conversion from "_" to "-" here.

2004-10-05  Benoît Dejean  <tazforever@dlfp.org>

	* Controls/Time/ITime.py: Fixed import statement.
	
	* utils/systray.c: (initsystray): Ugly cast to please chrisime.

2004-10-05  Benoît Dejean  <tazforever@dlfp.org>

	* Controls/Calendar/ICalendar.py:
	* Controls/Calendar/__init__.py:
	* Controls/System/ISystem.py:
	* Controls/System/__init__.py:
	* Controls/Time/__init__.py:
	* Controls/URI/IURI.py:
	* Controls/URI/__init__.py:
	* libdesklets/Makefile.am:
	* libdesklets/controls/__init__.py: Fixed import statements to use 
	libdesklets.controls.
	
	* gdesklets-daemon: Removed zenity error message.
	
	* Controls/Time/__init__.py: Fixed tick_date.
	
	* main/Control.py: Added method to remove a timer.

2004-10-05  Benoît Dejean  <tazforever@dlfp.org>

	* TODO: Added libdesklets.controls with top priority.
	* configure.in: Added libdesklets.controls

2004-10-05  Martin Grimme  <martin@pycage.de>

	* display/TargetPlotter.py (TargetPlotter.__plot): Fixed broken scaling
	of the plotter values.

2004-10-03  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets-daemon: Made the dummy log write a bit useful.
	* main/__init__.py: Fixed Sébastien é. Replace [] by () : yes, this
	saves some memory !

2004-10-02  Martin Grimme  <martin@pycage.de>

	* config/ConfigManager.py (ConfigManager.remove_watcher): Reverted
	last change since it was wrong. :)

	* sensor/Sensor.py: Added the necessary aliases.

2004-10-02  Benoît Dejean  <tazforever@dlfp.org>

	* factory/DisplayFactory.py: More comment. Small cleanup.
	
	* utils/__init__.py: Added traceback.

2004-10-02  Christian Meyer  <chrisime@gnome.org>

	* gdesklets: Removed some annoying messages!
	* scripting/Script.py: Redirect a message to stderr. Removed a useless
	message.
	* shell/plugins/*: Removed annoying print messages, that's way to
	verbose.
	* factory/DisplayFactory.py: Reverted Taz's patch. Some distros ship
	a broken SAX parser and their users are too lazy to reportbug.
	* main/Starter.py: If a position hasn't been set, yet, this isn't an
	error. Thus, we don't need a traceback here. More/Better verbose
	messages.

2004-10-02  Benoît Dejean  <tazforever@dlfp.org>

	* config/ConfigSettings.py:
	* display/Display.py:
	* display/GlassWindow.py:
	* display/TargetBonoboControl.py:
	* display/TargetImage.py:
	* factory/DisplayFactory.py:
	* main/RemoteSocket.py:
	* main/Starter.py:
	* plugin/PluginRegistry.py:
	* scripting/Script.py:
	* utils/Trie.py: DON'T BREAK MY GDESKLETS. I HAVE LOST MY PROFILE AGAIN !

2004-10-02  Martin Grimme  <martin@pycage.de>

	* main/AboutDialog.py (AboutDialog.__init__): Correctly close the
	dialog on pressing the window's close button now.

	* main/TrayIcon.py (TrayIcon.__init__): Reverted that change. It was
	OK.
	
	* config/ConfigSettings.py (ConfigSettings.initialize): 
	* main/TrayIcon.py (TrayIcon.__init__): Fixed typos.

2004-10-02  Christian Meyer  <chrisime@gnome.org>

	* config/ConfigDialog.py:
	* config/ConfigManager.py:
	* config/ConfigSettings.py: Improved exception handling.
	* display/TargetArray.py: Removed print statement.
	* display/TargetBonoboControl: Improved exception block. Needs
	certainly more love.
	* display/TargetExpander.py: Likewise (esp. the Pixbuf functions throw
	GError's!).
	* display/TargetHTML.py: Likewise.
	* display/TargetImage.py: Likewise.
	* display/TargetLabel.py: Likewise.
	* display/TargetPlotter.py: Remove print statement.
	* libdesklets/system/ArchFactory.py: Print to stderr if OS or Arch
	wasn't found or is unknown.
	* utils/__init__.py: Cleanups.
	* utils/WindowSnapper: Likewise
	* utils/eggmarshalers.*: Removed, not needed.
	* utils/vfs.py: Mark a string translatable.
	* utils/wallpaper.py (get_wallpaper): Raise NotImplementedError
	instead of just catch this specific one.
	* utils/Makefile.am: Removed eggmarshalers entries.

2004-10-02  Benoît Dejean  <tazforever@dlfp.org>

	* factory/DisplayFactory.py: One line cleanup.
	
	* main/AboutDialog.py: Tuples instead of lists. More i18n. UTF8 Sébastien.
	
	* main/DisplayList.py: Tiny cleanups.
	
	* utils/i18n.py: Reordered try-except blocks.

2004-10-02  Benoît Dejean  <tazforever@dlfp.org>

	* TODO: Added logging to Normal priority.
	
	* display/Display.py:
	* display/GlassWindow.py:
	* display/Window.py:
	* factory/DisplayFactory.py:
	* gdesklets-daemon:
	* main/RemoteSocket.py:
	* main/Starter.py:
	* plugin/PluginRegistry.py:
	* scripting/Script.py:
	* utils/TilingImage.py: 1st iteration of exceptions cleanup.

2004-10-01  Martin Grimme  <martin@pycage.de>

	* main/client.py (get_daemon): Fixed typo bug.

2004-10-01  Benoît Dejean  <tazforever@dlfp.org>

	* utils/systray.c: (initsystray): Added missing const qualifier.

2004-10-01  Benoît Dejean  <tazforever@dlfp.org>
	
	* utils/Makefile.am:
	* utils/systray.c: (icon_init), (icon_dealloc), (icon_add),
	(initsystray):
	* utils/systray.i: Real men don't need SWIG dirty code.
	
	* main/TrayIcon.py: Works with new systray.Icon. Sanitize. Used to work
	because of a leak.

2004-09-30  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets:
	* gdesklets-daemon:
	* main/Starter.py:
	* main/client.py: i18n updates.
	
	* gdesklets-daemon: started to add zenity error message.

	* utils/ewmh.c: (_change_state): Undo the shitty ATOM() stuff so that it
	doesn't segfault silently.

2004-09-30  Christian Meyer  <chrisime@gnome.org>

	* gdesklets: Messages weren't translatable, they are now.
	Removed "translucent" variable, it's nowhere used.
	* gdesklets-daemon: Likewise.
	check_xserver() now checks if there's a XServer running. This
	functionality was in main/init.py.
	* main/init.py: Removed xserver check from here.
	* main/client.py:
	* main/Starter.py: i18n'ification.
	* utils/ewmh.c:
	* utils/svg.c:
	* utils/tiling.c: Fixed some warnings.

2004-09-30  Benoît Dejean  <tazforever@dlfp.org>

	* display/GlassWindow.py:
	* utils/TilingImage.py:
	* utils/wallpaper.py: Fixed import statements.

2004-09-30  Christian Meyer  <chrisime@gnome.org>

	* configure.in: Renamed GDESKLETS_DEP to UTILS.
	* display/TargetCanvas: Use new svg library.
	* utils/Makefile.am: Adopted to use Taz's latest invention :-)
	* utils/ewmh.c: Introduced Taz's newest invention.
	* utils/svg.c: Likewise.
	* utils/tiling.c: Likewise.
	* utils/utils.{c, h}: Convenience library for ewmh, svg, tiling.
	* utils/ewmh.i:
	* utils/svg.i:
	* utils/tiling.i: Removed, no longer needed.

2004-09-29  Christian Meyer  <chrisime@gnome.org>

	* data/tips: Removed.
	* utils/BinTree.py: Removed dead code.
	* .cvsignore: Ignore pyc files.

2004-09-29  Martin Grimme  <martin@pycage.de>

	* display/GlassWindow.py (GlassWindow.__init__): Fixed translucency.
	Menus and dialogs no longer appear messed up when using a composition
	manager.

	* migration-tool: Fixed bugs, hopefully.

2004-09-29  Christian Meyer  <chrisime@gnome.org>

	* utils/Makefile.am: Removed AM_FLAGS again.
	* utils/eggtrayicon.c: Synced with libegg module from CVS.

2004-09-28  Christian Meyer  <chrisime@gnome.org>

	* gdesklets-core.pc.in: Removed, not needed at all.
	* configure.in: Removed gdesklets-core.pc from list. Removed
	unnecessary dependencies for some libraries. Added
	"--enable-more-warnings" option.
	* Makefile.am: Removed pkgconfig section.
	* gDesklets.spec.in: Removed pkgconfig entry in list of installed
	files.
	* utils/Makefile.am: Introduced AM_CFLAGS for now. We might add it to
	configure.in later and ask the user whether he wants to
	enable-more-warnings.
	* utils/*.{c, i} removed unnecessary #includes. Fixed some warnings.

2004-09-28  Benoît Dejean  <tazforever@dlfp.org>

	* Controls/Calendar/__init__.py: Fixed stupid typo.

2004-09-26  Benoît Dejean  <tazforever@dlfp.org>

	* Controls/Calendar/__init__.py: Fixed month name.
	
	* scripting/Script.py: Added Null.
	WTH do we need True/False there ?

2004-09-26  Benoît Dejean  <tazforever@dlfp.org>

	* Controls/Calendar/.cvsignore:
	* Controls/Calendar/ICalendar.py:
	* Controls/Calendar/Makefile.am:
	* Controls/Calendar/__init__.py:
	* Controls/Makefile.am:	
	* configure.in:
	* po/POTFILES.in: Added new Calendar control.
	
	* scripting/ControlWrapper.py: (get_interfaces_id): Added.

2004-09-17  Benoît Dejean  <tazforever@dlfp.org>

	* shell/plugins/ControlBrowser/ControlInspector.py: I18nifiy.
	
	* shell/plugins/Help/TipOfTheDay.py:
	* shell/plugins/Help/__init__.py:
	* shell/plugins/Help/tips.py: Cleaned.

2004-09-16  Benoît Dejean  <tazforever@dlfp.org>

	* configure.in: bumped version number. Stricter CFLAGS.

2004-09-14  Benoît Dejean  <tazforever@dlfp.org>

	* plugin/Interface.py: Added staticmethod describe. Moved comments to
	docstrings.

	* main/Control.py:
	* shell/plugins/ControlBrowser/ControlInspector.py:
	* test-control.py: Now used Interface.describe. Be carefull to use Interface
	methods with classes, not instances. Wrong variable name (control instead
	of ctrlclass) is harmfull : it took me 20min to figure out that control
	was not a instance.

2004-09-12  Benoît Dejean  <tazforever@dlfp.org>

	* display/DataTarget.py:
	* main/Control.py: Added AUITHORIZED_METHODS class attribute. This
	registers the methods names that can be called from the script env,
	via the *Wrapper access control.
	
	* display/DataTarget.py: Added get_props(self), retrieves the names of
	all registred properties.
	
	* scripting/ControlWrapper.py:
	* scripting/Makefile.am:
	* scripting/TargetWrapper.py:
	* scripting/Vault.py: Reworked. Vault is used to secure the Wrappers.
	The ControlWrapper is now secured : properties can be called if they are
	declared, and methods can be called if they are registred in
	Control.AUTHORIZED_METHODS.
	TargetWrapper is still unsecured because no checks are made. I don't know
	if checks are needed as everything goes through get/set_prop. I've added
	DataTarget.get_props(self) so we can get the list of registred properties.
	DataTarget.AUTHORIZED_METHODS is empty and should be completed. Of course,
	all of this assumes that get/set_prop is secured.

	* gdesklets-daemon: stdout is now stderr. There are still write races in
	the log :/.
	Added gdesklets_main(). Commented profiling code.
	
	* libdesklets/convert.py: Removed useless gdk_color_to_int.
	
	* sensor/MetaSensor.py:
	* sensor/Sensor.py: Fixed.
	
	* utils/TilingImage.py: Fixed python2.4 warning.

2004-09-11  Benoît Dejean  <tazforever@dlfp.org>

	* display/Display.py:
	* sensor/Sensor.py: Removed deprecated methods :D

2004-09-10 Maxim Dziumanenko <mvd@mylinux.com.ua>

	* configure.in: Added "uk" (Ukrainian) to ALL_LINGUAS

2004-09-09  Benoît Dejean  <tazforever@dlfp.org>

	* config/ConfigDialog.py:
	* config/ConfigFloat.py:
	* config/ConfigFont.py:
	* config/ConfigString.py:
	* config/ConfigURI.py:
	* display/Display.py:
	* display/DisplayConfigurator.py:
	* display/DisplayTarget.py:
	* display/GlassWindow.py:
	* display/TargetExpander.py:
	* display/TargetImage.py:
	* display/TargetLabel.py:
	* display/Window.py:
	* main/LogViewer.py:
	* sensor/Sensor.py:
	* sensor/SensorConfigurator.py:
	* shell/ListView.py:
	* utils/BGWatcher.py:
	* utils/FileWatcher.py:
	* utils/dialog.py: gtk.FALSE/TRUE cleanup.
	
	* scripting/ControlWrapper.py: Boosted. Cached get_properties(). Added
	Vault() to create secured instance members.

2004-09-08  Benoît Dejean  <tazforever@dlfp.org>

	* configure.in: Added swig dependency. Closes #152118.

2004-09-07  Benoît Dejean  <tazforever@dlfp.org>

	* display/DataTarget.py:
	* display/Display.py: Added DeprecationWarning. I would have like to
	remove the legacy calls code, but this break StarterBar.

	* libdesklets/convert.py: Added support for i18n.

	* gdesklets: Fixed slay.

	* plugin/Interface.py: Added comment.

	* scripting/ControlWrapper.py: Change behaviour. Secured.
	Failsafe : catch exceptions / returns Null.
	No longer relies on the s/_/-/ trick^W trap. Need testing. Might need
	further work. Please report any problem (a traceback is currently
	printed on bad property name).


2004-09-06  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets: Fixed 'gdesklets slay' so that it doesn't kill my emacs
	while i'm working on gdesklets. Slaughtering gdesklets is still a bit
	dangerous. Process matching 'python' a nd 'gdesklets-daemon' are killed.
	Added TODO.

	* display/ContainerTarget.py:
	* factory/ControlFactory.py:
	* factory/DisplayFactory.py:
	* shell/PluginRegistry.py:
	* utils/__init__.py: Cleanup.

	* shell/plugins/ControlBrowser/__init__.py:
	* shell/plugins/DisplayBrowser/__init__.py: Do not diplay empty dir when
	displaying alphabetically.

	* utils/Trie.py : Fixed test suite.

	* Controls/Makefile.am:
	* configure.in: Forgot to add URI and System Controls.

	* gdesklets-daemon: New uncaught exception handling.

2004-08-31  Benoît Dejean  <tazforever@dlfp.org>

	* migration-tool:
	* shell/plugins/Shell/__init__.py: s/gtk.main/gtk.mainloop/g.

2004-08-30  Benoît Dejean  <tazforever@dlfp.org>

	* factory/SensorFactory.py: Secured chdir to ensure we get back to original
	pwdir.

	* scripting/Script.py: Secured. Splitted compiletime and runtime so we can't
	catch different errors.

	* plugin/PluginRegistry.py:
	* test-control.py:
	* utils/Trie.py:
	* factory/SensorFactory.py: Doesn't trash sys.path anymore. No need to have
	sys.path.count('.') > 1.

2004-08-27  Christian Meyer  <chrisime@gnome.org>

	* migration-tool: Check whether there's .gdesklets in the home DIR.

2004-08-26  Benoît Dejean  <tazforever@dlfp.org>

	* migration-tool: Updated. Thanks ravydavygravy.

2004-08-23  Benoît Dejean  <tazforever@dlfp.org>

	* display/TargetImage.py(__load_image): Added missing return if could not
	open URI. Closes #150753.

2004-08-19  Benoît Dejean  <tazforever@dlfp.org>

	* sensor/MetaSensor.py: Added epydoc.

2004-08-19  Benoît Dejean  <tazforever@dlfp.org>

	* factory/SensorFactory.py: grrrrr, rollback again.

	* sensor/MetaSensor.py
	* sensor/Makefile.am:
	* sensor/__init__.py: Added.

2004-08-19  Benoît Dejean  <tazforever@dlfp.org>

	* factory/SensorFactory.py: Now prints on ImportError.

2004-08-16  Benoît Dejean  <tazforever@dlfp.org>

	* libdesklets/system/glibtop.c: (get_proc_args):
	* utils/tiling.c: (make_row): C89 compliant. Closes #150275.

2004-08-16  Christian Meyer  <chrisime@gnome.org>

	* TODO: brought up2date.
	* plugin/Interfaces.py: Cleanups, remove test code.
	* plugin/PluginRegistry.py: Cleanups.
	* plugin/Permission.py: likewise

2004-08-15  Benoît Dejean  <tazforever@dlfp.org>

	* factory/SensorFactory.py: Prevent crash when adding a display if
	a sensor path is not valid (e.g. ~/.gdesklets/Sensors has not been
	created)

2004-08-14  Benoît Dejean  <tazforever@dlfp.org>

	* Controls/System/ISystem.py: Added.
	* Controls/System/Makefile.am:
	* Controls/System/__init__.py:
	* Controls/System/interfaces: Removed.

	* Controls/URI/IURI.py: Added.
	* Controls/URI/Makefile.am:
	* Controls/URI/__init__.py:
	* Controls/URI/interfaces: Removed.

	Converted System and URI.

	* Controls/Time/__init__.py: Fixed timezone handling.

	* test-control.py: Fixed display.

	* shell/.cvsignore:
	* shell/interfaces/.cvsignore:
	* shell/plugins/.cvsignore:
	* shell/plugins/ControlBrowser/.cvsignore:
	* shell/plugins/ControlCollection/.cvsignore:
	* shell/plugins/ControlsView/.cvsignore:
	* shell/plugins/DisplayBrowser/.cvsignore:
	* shell/plugins/DisplayCollection/.cvsignore:
	* shell/plugins/DisplayView/.cvsignore:
	* shell/plugins/Help/.cvsignore:
	* shell/plugins/Menu/.cvsignore:
	* shell/plugins/PackageInstaller/.cvsignore:
	* shell/plugins/Profiles/.cvsignore:
	* shell/plugins/Shell/.cvsignore:
	* shell/plugins/StatusBar/.cvsignore:
	* shell/plugins/ViewSwitch/.cvsignore:
	* shell/plugins/gDeskletsClient/.cvsignore: Added.

2004-08-14  Martin Grimme  <martin@pycage.de>

	* data/Makefile.am (EXTRA_DIST): Fixed bug.

	* doc/man/gdesklets.1: Brought the man page up-to-date.

	* README: Added section about Dave Masterson's migration-tool.

2004-08-13  Martin Grimme  <martin@pycage.de>

	* shell/plugins/Help/tips.py: Added tips.

	* data/gdesklets.desktop.in (Exec): Changed the starter to launch the
	shell.

	* Makefile.am (EXTRA_DIST): Added migration-tool.

	* shell/plugins/ControlBrowser/Makefile.am (install_DATA): Added
	missing files.

	* factory/ControlFactory.py (ControlFactory.get_control): Removed
	print statements.

	* README: Updated to reflect the current version.

	* Makefile.am (install_SCRIPTS): Added test-control.py.

	* configure.in:
	* main/__init__.py (VERSION): Raised version number to 0.30.

	* shell/plugins/Shell/__init__.py (UI_Shell.init): Added a window icon.

	* shell/plugins/ControlBrowser/__init__.py: Changed some pixmaps.

	* shell/plugins/DisplayBrowser/__init__.py (UI_DisplayBrowser.init):
	Changed to use another stock icon for the menu item.
	(UI_DisplayBrowser.init): Changed label text.

	* shell/plugins/Shell/__init__.py (UI_Shell.init): Minor fix.

	* main/LogViewer.py (LogViewer.__init__): Use a gtk.Dialog instead of
	a gtk.MessageDialog.

2004-08-12  Martin Grimme  <martin@pycage.de>

	* plugin/PluginRegistry.py:
	* shell/plugins/DisplayBrowser/__init__.py
	(UI_DisplayBrowser.__on_activate): Removed print statements.

	* shell/plugins/ControlCollection/__init__.py
	(Core_ControlCollection.init): Removed debugging stuff.

	* shell/plugins/DisplayBrowser/__init__.py
	(UI_DisplayBrowser.__on_activate): Bug fix.

	* shell/ItemBrowser.py (ItemBrowser.get_selected_item): Added method.

	* shell/plugins/Menu/Makefile.am (installdir): Fixed typo. Stupid
	error prone autotools crap...

	* main/Makefile.am (install_DATA): Added missing file MetaData.py.

	* configure.in: Added all that Makefile crap for the gdesklets-shell.

	* Makefile.am (SUBDIRS): Added shell subdir.

2004-08-12  Christian Neumair  <chris@gnome-de.org>

	* data/Makefile.am: Only run update-desktop-database if found. Fixes
	#149915.

2004-08-11  Martin Grimme  <martin@pycage.de>

	* shell/plugins/PackageInstaller/__init__.py
	(Installer_Package.__install_controls): Fixed installation of controls.

	* factory/ControlFactory.py (ControlFactory.get_control): Reread the
	controls registry once if no matching control could be found.

	* shell/interfaces/Collection.py (Collection.add_observer):
	* shell/plugins/DisplayCollection/__init__.py
	(Core_DisplayCollection.add_observer):
	* shell/plugins/DisplayBrowser/__init__.py
	(UI_DisplayBrowser.__reload): Implemented reloading of the items after
	installing a new package.

	* utils/Makefile.am (install_DATA): Removed installer.py.

	* test-control.py: Fixed this. It works again.

	* Makefile.am (install_SCRIPTS): Added gdesklets-shell to the files
	which get installed.

	* factory/DisplayFactory.py (DisplayFactory.endElement): Adjusted the
	sensor control ID.

	* plugin/Interface.py: Added support for methods and cleaned up a bit.

2004-08-10  Benoît Dejean  <tazforever@dlfp.org>

	* main/RemoteSocket.py: Added comment. Moved Handler.__stopevent.wait().

2004-08-10  Martin Grimme  <martin@pycage.de>

	* gdesklets: Added "shell" command for starting the graphical shell.

	* shell/*: Imported the new shell into CVS.

	* display/Window.py (Window.__begin_dragging): Make sure that the mouse
	pointer is within the display when initially positioning it.

	* main/RemoteSocket.py (RemoteSocket.run): Made client socket
	unblocking as well to prevent the thread from hanging when terminating.

2004-08-09  Martin Grimme  <martin@pycage.de>

	* display/Window.py (Window.__save_position): Don't forget to set the
	window shape.

	* display/TargetGroup.py (TargetGroup.__init__): Added missing property
	"shape".

	* display/Display.py (Display.remove_display):
	* utils/dialog.py (question): HIGified question dialog.

	* utils/Makefile.am (install_DATA): Removed obsolete set.py.

	* utils/dialog.py (warning): Added "force" flag to force showing the
	dialog even if it's the same warning twice in a row.

2004-08-07  Martin Grimme  <martin@pycage.de>

	* gdesklets-shell (shell): Minor adjustment.

2004-08-06  Benoît Dejean  <tazforever@dlfp.org>

	* utils/QueryParser.py: Used standard sets instead of utils.set.
	* utils/Struct.py: Added hash function.

2004-08-06  Martin Grimme  <martin@pycage.de>

	* config/GConfBackend.py (GConfBackend.__on_notify): Fixed
	compatibility with sensors.

	* utils/Makefile.am (install_DATA): Added set.py.

	* utils/QueryParser.py (QueryParser.__parse_CLAUSE): Implemented set
	operations.

2004-08-06  Christian Neumair  <chris@gnome-de.org>

	* configure.in:
	* Controls/Sensor/Makefile.am: Adapt to Benoît's changes. Fixes #149484.

2004-08-02  Benoît Dejean  <tazforever@dlfp.org>

	* Controls/Makefile.am:
	* Controls/Sensor/.cvsignore:
	* Controls/Sensor/ISensor.py:
	* Controls/Sensor/Makefile.am:
	* Controls/Sensor/__init__.py:
	* Controls/Sensors/.cvsignore:
	* Controls/Sensors/ISensors.py:
	* Controls/Sensors/Makefile.am:
	* Controls/Sensors/__init__.py: s/(I?Sensor)s/\1/g.

	* factory/DisplayFactory.py: Fixed ISensor id.

2004-07-31  Benoît Dejean  <tazforever@dlfp.org>

	* configure.in: Updated
	* plugin/.cvsignore: Added.

	* plugin/Makefile.am: Added.

2004-07-30  Benoît Dejean  <tazforever@dlfp.org>

	* Controls/__init__.py:
	* Controls/Makefile.am: Added dummy package file.

	* Makefile.am: Added plugin subdir.
	* main/Makefile.am: Updated to work with Pycage's file renaming. Na !

	* utils/__init__.py: Added radix, inverse to function int(,)
	* plugin/Interface.py: ID are base36 encoded to get 25c identifiers
	(shorter than md5 32c). assert statement. In-file test suite runs ok.

2004-07-28  Martin Grimme  <martin@pycage.de>

	* plugin/PluginRegistry.py: Fixed to work with Taz' changes to the
	Interface API.

	* Main/Starter.py (Starter.__handle_about): Added fancy About dialog.

	* data/Makefile.am (install_DATA): Added install files.

	* main/LogViewer.py: Ported to gtk.TextView.

2004-07-28  Christian Neumair  <chris@gnome-de.org>

	* configure.in:
	* data/Makefile.am: Execute
	update-mime-database/update-desktop-database after each
	installation/uninstallation process.

	* data/gdesklets.desktop.in: Add freedesktop.org-compliant
	MIME information. Only works with GNOME 2.7/2.8.

	* data/gdesklets.applications:
	* data/gdesklets.keys.in:
	* data/gdesklets.mime: Remove.

	* data/x-gdesklets-display.png: Ditto. Move to
	* gnome-mime-application-x-gdesklets-display.png.

	* data/gdesklets.xml.in: Add sniffing info.

2004-07-28  Martin Grimme  <martin@pycage.de>

	* display/Display.py (Display.set_configurator): Initialize the config
	settings stuff.

	* config/ConfigDialog.py (ConfigDialog.__init__): Removed the "beta
	version" warning message.

	* config/ConfigSettings.py: Implemented loading and saving of config
	values.

	* config/GConfBackend.py: Implemented type conversions for GConf
	values.

	* utils/Makefile.am (install_DATA): Added QueryParser.py and Trie.py.

	* main/RemoteSocket.py (RemoteSocket.run): Fixed stupid typo which
	broke the socket.

	* utils/Trie.py (Trie.set_case_sensitive): Added switch for case
	sensitivity.

2004-07-28  Benoît Dejean  <tazforever@dlfp.org>

	* plugin/Interface.py: Rewrote a lot of stuff. Improved get_id().
	Fixed {class|static}method. Added small test suite

	* utils/Trie.py: Added __slots__ to save some memory.
	Added _TrieNode instances counter for debugging and profiling purpose.
	Added small test suite.

2004-07-26  Martin Grimme  <martin@pycage.de>

	* Controls/Time/ITime.py:
	* Controls/Sensors/ISensors.py: Fixed imports.

	* scripting/Script.py (Script.__script_get_control): Load the
	ControlFactory as a singleton.

	* factory/ControlFactory.py: ControlFactory uses the PluginRegistry
	now.

2004-07-25  Benoît Dejean  <tazforever@dlfp.org>

	* utils/Struct.py: Stole Struct from pyglibtop.
	Added __slots__.
	(__repr__): Added.

2004-07-25  Martin Grimme  <martin@pycage.de>

	* main/LogViewer.py (LogViewer.__init__): Added line wrap.

2004-07-21  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets-daemon: Removed useless flush.
	* main/Makefile.am: Added LogViewer.py.
	* main/client.py (get_daemon): Removed ugly recursive call.

2004-07-20  Martin Grimme  <martin@pycage.de>

	* main/LogViewer.py: Added some minor improvements.

	* main/Starter.py (Starter.__handle_show_log): Added handler for
	opening the log viewer.

	* factory/ControlFactory.py: Changed to use the new stuff.

	* factory/DisplayFactory.py (DisplayFactory.endElement): Use the
	changed interface ID for calling the sensors control.

	* Controls/Sensors/Makefile.am (install_DATA): Removed interfaces,
	added ISensors.py.

	* Controls/Sensors/__init__.py: Changed to use the new stuff.

2004-07-19  Martin Grimme  <martin@pycage.de>

	* Controls/Time/Makefile.am (install_DATA): Removed interfaces, added
	ITime.py.

	* Controls/Time/__init__.py: Changed to use the new stuff.

	* main/Makefile.am (install_DATA): Added Interface.py and
	Permission.py.

	* test-control.py: Cleaned up and made it load controls directly
	instead of looking up by interface.

	* main/Interface.py (Interface.get_interface_id): Fixed bug.

2004-07-19  Benoît Dejean  <tazforever@dlfp.org>

	* Controls/URI/__init__.py: One line cleanup.

	* main/Interface.py: Cleaned. Added Permission.
	(get_interfaces) : returns {all implemented interfaces} - {Interface}.

2004-07-19  Benoît Dejean  <tazforever@dlfp.org>

	* main/Permission.py: Added to repository.

2004-07-19  Martin Grimme  <martin@pycage.de>

	* main/Starter.py (Starter.__handle_manage): Added callback for the
	tray icon menu item for loading the shell.

2004-07-15  Christian Meyer  <chrisime@gnome.org>

	* gdesklets: Implemented command which displays the list of currently
	open displays.
	* main/Starter.py: Cleanups. Implemented __handle_display_list.
	* main/admin.py: Removed.
	* main/client.py (client.display_list): Implemented.
	* main/Makefile.am: Removed admin entry.

2004-07-14  Christian Meyer  <chrisime@gnome.org>

	* utils/eggstatusicon.{c, h}: Removed.
	* utils/Makefile.am: Removed eggstatusicon entries.

2004-07-14  Martin Grimme  <martin@pycage.de>

	* utils/wallpaper.py (_crop_coords): Applied patch for bug #147524 to
	fix tiling if the display has negative coordinates.

2004-07-14  Benoît Dejean  <tazforever@dlfp.org>

	* factory/SensorFactory.py: Don't fail silently on ImportError anymore.

2004-07-13  Martin Grimme  <martin@pycage.de>

	* shell/plugins/Profiles/__init__.py: Implemented dialog for creating
	new profiles.
	Use the Client plugin for accessing the list of displays.

	* shell/plugins/DisplayBrowser/__init__.py
	(DeskletsBrowser.__open_selected_display): Use the Client plugin for
	opening displays.

	* shell/plugins/Menu/__init__.py (Menu.remove_item): Added remove_item
	method.

	* shell/interfaces/menu-1.0: Added method.

	* shell/plugins/Help/tips: Fixed some text.

	* shell/plugins/Help/AboutDialog.py: Made the window non-resizable.

	* main/DisplayList.py (DisplayList.__load_list): Keep the current
	profile in the list of profiles even if it's empty.

2004-07-12  Martin Grimme  <martin@pycage.de>

	* utils/dialog.py (warning): Avoid displaying the same warning twice in
	a sequence. If something got really broken then users no longer have to
	click through thousands of dialogs all saying the same.

2004-07-12  Christian Meyer  <chrisime@gnome.org>

	* libdesklets/system/libgtop_const.c: Fixed #147422.

2004-07-11  Benoît Dejean  <tazforever@dlfp.org>

	* display/DataTarget.py:
	* display/Display.py:
	* display/TargetEntry.py:
	* doc/docmaker.py:
	* factory/ControlFactory.py:
	* utils/units.py: ` are evil.

	* display/Display.py:
	* factory/ControlFactory.py: Cleaned multiline messages.

	* utils/dialog.py (question_dialog):
	* display/Display.py: question_dialog -> question.

	* utils/dialog.py (question_dialog): Fixed another typo.
	* ChangeLog: __I__ don't forget to add a ChangeLog entry even for a
	2 chars fix.

2004-07-11  Martin Grimme  <martin@pycage.de>

	* shell/PluginRegistry.py (_PluginRegistry.__load_interfaces):
	Made the scanning of directories more robust.

2004-07-11  Benoît Dejean  <tazforever@dlfp.org>

	* utils/dialog.py:
	* display/Display.py: Added stock icon.

2004-07-11  Benoît Dejean  <tazforever@dlfp.org>

	* utils/dialog.py (question_dialog): Added generic function to build
	dialog.
	* display/Display.py (__handle_remove): Now ask for confirmation before
	removing and purging a display.


2004-07-10  Christian Meyer  <chrisime@gnome.org>

	* main/Starter (Starter.__handle_about): Implemented,

2004-07-09  Christian Meyer  <chrisime@gnome.org>

	* factory/ControlFactory.py: Fixed typo.

2004-07-07  Christian Kellner <gicmo@gnome-de.org>
	* tools/gdesklets-display-thumbnailer.c:
	replaced the unnecessary duplicated eel code with the proper gnome-vfs
	ones and added the right Copyright header.

2004-07-04  Martin Grimme  <martin@pycage.de>

	* main/Starter.py (Starter.__init__): Added menu to tray icon.

	* main/Makefile.am (install_DATA): Added TrayIcon.py.

	* configure.in: Added dependency for pygtk-2.0 for SYSTRAY.

	* utils/systray.i:
	* utils/systray.c: Cleaned up and made it work as a container.

2004-07-03  Martin Grimme  <martin@pycage.de>

	* main/Starter.py (Starter.__init__): Save the positions regularly,
	if they have changed.

	* main/__init__.py: Print error message and abort if DISPLAY is
	missing.

	* scripting/Script.py (Script.__script_add_timer): Display an error
	dialog when a timer crashes.

2004-07-02  Martin Grimme  <martin@pycage.de>

	* data/gdesklets.desktop.in (Exec): Run with "start" command.

2004-07-01  Benoît Dejean  <tazforever@dlfp.org>

	* main/client.py: Added geek statistics.

2004-06-29  Christian Meyer  <chrisime@gnome.org>

	* utils/vfs.py: Use "True" instead of "1".
	* Controls/URI/__init__.py: gnome-vfs based now‥

2004-06-29  Martin Grimme  <martin@pycage.de>

	* configure.in: Removed unfinished URI control from distribution.

	* display/GlassWindow.py: Added more window manager case handling.

2004-06-29  Benoît Dejean  <tazforever@dlfp.org>

	* Controls/System/__init__.py: Added net_state and net_load.
	Renamed 'device' property as 'iface'.

2004-06-28  Christian Meyer  <chrisime@gnome.org>

	* Controls/Makefile.am: Removed URI entry.

2004-06-28  Martin Grimme  <martin@pycage.de>

	* sensor/Makefile.am (install_DATA): Removed Menu.py.

	* config/Makefile.am (install_DATA): Added missing file.

	* display/Window.py (Window.__init__): Disabled configure handler.

	* factory/ControlFactory.py (ControlFactory.__search_controls):
	Removed print statement.

2004-06-27  Martin Grimme  <martin@pycage.de>

	* Controls/Makefile.am (SUBDIRS):
	* configure.in: Added Time control.
	Added gconf2 to the dependencies.

2004-06-26  Christian Meyer  <chrisime@gnome.org>

	* libdesklets/system/Arch.py (Arch.net_state): FIXME, doesn't seem to
	work.
	* libdesklets/system/libgtop.py (Arch.net_load): FIXME IPV4-conversion.
	* Controls/System/__init__.py: Hopefully finally fixed.
	* utils/tiling.c (tile_transparency): Implemented tiling for solid
	color background.
	* config/migration.py: Removed.
	* config/GConfBackend.py: Removed "import migration" statement.
	* config/Makefile.am: Removed migration entry.

2004-06-26  Martin Grimme  <martin@pycage.de>

	* display/DisplayTarget.py (DisplayTarget.__init__):
	* display/Display.py (Display.__on_key): Implemented "on-key-press" and
	"on-key-release" handlers.

	* display/TargetEntry.py (TargetEntry._setp_font): Fixed bug.

	* display/TargetPlotter.py: Converted to SVG.
	Added "size" property.

	* display/DisplayTarget.py (DisplayTarget.get_anchor): Fixed geometry
	bug regarding anchors.

2004-06-25  Martin Grimme  <martin@pycage.de>

	* display/TargetLabel.py (TargetLabel._setp_font): Fixed bug.

2004-06-25  Benoît Dejean  <tazforever@dlfp.org>

	* config/Makefile.am: Added missing ConfigWidget.py.
	* main/client.py: Exits with a user friendly message on connection timeout.

2004-06-25  Benoît Dejean  <tazforever@dlfp.org>

	* gdesklets-commander: Added to repository so i don't forget to work at it.

2004-06-24  Martin Grimme  <martin@pycage.de>

	* README: Updated a bit more.

	* gdesklets-daemon (flush): Flush stdout from time to time to ensure
	that the log file gets filled.

	* factory/DisplayFactory.py (DisplayFactory.endElement): Parse <prefs>
	callback.

	* display/Display.py (Display.set_configurator): Set callback handler.

	* config/ConfigSettings.py: Added callback stuff for preferences.

	* scripting/Script.py (Script.call_function): Added method for calling
	functions in the sandbox.

2004-06-23  Martin Grimme  <martin@pycage.de>

	* main/Control.py (Control.__interface): Produce a more useful and
	prettier output.

	* factory/ControlFactory.py (ControlFactory.get_control): Display a
	warning if no control was found.

	* gdesklets-daemon: Removed session stuff from there.

	* gdesklets: Fixed "slay" command.

	* main/Starter.py (Starter.__handle_set_startup_command): Added handler
	for setting the startup command for session management.

	* main/client.py (RemoteConnection.set_startup_command):
	* main/remotecommands.py (COMMAND_SET_STARTUP_COMMAND): Added command.

	* factory/SensorFactory.py (SensorFactory.create_sensor): Changed the
	sensor loading procedure somewhat in order to be able to give more
	accurate error messages in case of failure.

	* display/TargetMenuItem.py (TargetMenuItem._setp_active): Implemented
	"active" property.

	* display/Display.py (Display.remove_display): Fixed bug.

	* main/Control.py (Control._add_timer): Implemented method for running
	timers in controls.

2004-06-22  Benoît Dejean  <tazforever@dlfp.org>

	* README: Updated.

	* config/ConfigBoolean.py:
	* config/ConfigColor.py:
	* config/ConfigDialog.py:
	* config/ConfigEnum.py:
	* config/ConfigFloat.py:
	* config/ConfigFont.py:
	* config/ConfigString.py:
	* config/ConfigTitle.py:
	* config/ConfigURI.py:
	* config/ConfigWidget.py: Let's learn Python !

	* gdesklets-shell: Removed.

2004-06-22  Martin Grimme  <martin@pycage.de>

	* scripting/Script.py (Script.__script_add_timer): Properly stop the
	sandboxed timers when the display gets closed.

	* display/Display.py: Implemented popping up the popup menu with F10.
	Added support for the new <prefs> stuff.

	* scripting/Script.py (Script.get_value): Use pop() on the dictionary.

	* factory/DisplayFactory.py: Cleaned up and added <prefs> stuff.

	* config/Makefile.am (install_DATA): Added new files.

2004-06-22  Benoît Dejean  <tazforever@dlfp.org>

	* HACKING: Moved to dev/.
	* dev/: Added. Developpers' bazar.

2004-06-22  Martin Grimme  <martin@pycage.de>

	* display/TargetLabel.py (TargetLabel.__set_font): Fixed label resizing
	bug after font change.

2004-06-20  Martin Grimme  <martin@pycage.de>

	* display/TargetImage.py: Return complete image size values.

	* display/TargetCanvas.py (TargetCanvas.__draw_svg): Removed print
	statement.

	* scripting/Script.py (Script.stop): Implemented stop handler which is
	to be called when the display is closed.
	(Script.get_value): Implemented method for retrieving a value out of
	the sandbox environment.
	(Script.set_value): Implemented method for setting a value in the
	sandbox environment.

	* main/Control.py (Control.stop): Added stop method.
	(Control._shutdown): Added shutdown handler.

	* display/TargetArray.py (TargetArray.__place_children): Implemented
	empty (manual) layout and made this the default.

2004-06-19  Martin Grimme  <martin@pycage.de>

	* utils/__init__.py (run_in_main_thread): Avoid deadlocks caused by
	exceptions. Catch them.

	* utils/units.py (pixels_to_all): Added conversion function.

	* display/DisplayTarget.py: Implemented comprehensive getter method
	for geometry values.

	* gdesklets: Added "slay" command for killing the daemon if it cannot
	be stopped.

2004-06-15  Martin Grimme  <martin@pycage.de>

	* Makefile.am (install_SCRIPTS): Added missing NullObject.py.

2004-06-13  Martin Grimme  <martin@pycage.de>

	* main/Starter.py: Corrected saving positions when closing displays.

	* README: Updated a bit. It still needs some modifications.

	* gdesklets (usage): Made the text look better.

	* main/__init__.py (COPYRIGHT): Changed from names to "The gDesklets
	Team".

	* gdesklets: Cleaned up and finished profiles functionality.

	* main/DisplayList.py: Implemented saving/loading of the current
	profile.

2004-06-12  Martin Grimme  <martin@pycage.de>

	* utils/TypeConverter.py (TypeConverter.str2type): Fixed bug.

	* scripting/Script.py (Script.__init__): Added unit constructor and
	units to the sandbox.

	* scripting/TargetWrapper.py:
	* scripting/ControlWrapper.py: Derive this class from 'object'. That
	way the special methods of Python objects are available.

	* factory/DisplayFactory.py (DisplayFactory.create_display): Don't let
	a broken display live.

	* display/targetregistry.py (create): Set the tag name of the newly
	created object.

	* display/DataTarget.py (DataTarget.set_prop): Tell the user if a
	property does not exist.

2004-06-11  Martin Grimme  <martin@pycage.de>

	* main/Starter.py (Starter.__create_display): Disabled the traceback
	in the dialogs here.

	* utils/dialog.py (warning): Added switch parameter for showing the
	traceback. When there is no traceback, switch it off to avoid
	displaying a wrong one.

2004-06-10  Martin Grimme  <martin@pycage.de>

	* display/Display.py (Display.set_prop): Implemented loading of icon.

	* display/Window.py (Window.set_icon): Implemented.

	* display/TargetGroup.py (TargetGroup.__init__): Added icon property
	for <display>.

2004-06-09  Benoît Dejean <TazForEver@dlfp.org>

	* *.{py,c} : whitespace clean up.

2004-06-07  Martin Grimme  <martin@pycage.de>

	* gdesklets-daemon: Removed print statement.

	* main/client.py (get_daemon): Display a nice ASCII animation while
	connecting to the daemon.

	* main/Starter.py (Starter.__save_positions): Write back all positions,
	including those which had been loaded before. This fixes the bug that
	gDesklets forgets about all positions when shutting it down without
	loading any desklets.
	(Starter.__handle_close_display): We should remove the display from
	the __positions table when it gets closed.
	(Starter.__save_positions): Fixed silly typo.
	(Starter.__save_positions): ...and again. Now it really works.
	(Starter.__close_display): Added an extra method for closing a display.
	Also close displays that could not be loaded.

	* gdesklets: Wait a bit between stopping and starting when restarting
	the daemon.

2004-06-06  Alexander Shopov <ash@contact.bg>

	* configure.in: Added "bg" (Bulgarian) to ALL_LINGUAS

2004-06-05  Christian Meyer  <chrisime@gnome.org>

        * Control/URI/__init__.py: Further work, works partly now.

2004-06-05  Martin Grimme  <martin@pycage.de>

	* utils/dialog.py: Made this pretty and cleaned up the code.

	* main/Starter.py (Starter.__add_display): Cleaned up.

        * display/Display.py:
        * display/Window.py: Corrected initial positioning behavior.

2004-06-04  Martin Grimme  <martin@pycage.de>

        * display/TargetLabel.py (TargetLabel.__set_value): The transition
        from idle_add(...) to timeout_add(0, ...) broke label geometry stuff.
        Fixed that.

        * display/Display.py (Display.__open_configurator): Don't set the
        dialog transient for the desklet window.

        * display/TargetCanvas.py (TargetCanvas.__draw_svg): Fixed bug.

2004-06-04  Christian Meyer  <chrisime@gnome.org>

        * display/ContainerTarget.py (ContainerTarget._propagate_geometry):
        Same as in DisplayTarget. Seems like, it doesn't break anything...
        * Control/System/__init__.py: Reflects changes in libdesklets.

2004-06-04  Martin Grimme  <martin@pycage.de>

        * display/DisplayTarget.py (DisplayTarget._propagate_geometry):
        Whoo, an enourmous speed boost! Does it break anything..?

2004-06-03  Martin Grimme  <martin@pycage.de>

        * display/Window.py: Implemented a finer granularity of window flags.
        (Window.set_window_flags): Fixed for some braindead window managers.

        * display/GlassWindow.py (GlassWindow.__get_window_manager):
        Implemented method for retrieving the name of the running window
        manager (if EWMH compliant).
        Implemented a finer granularity of window flags.

        * utils/ewmh.i:
        * utils/ewmh.c: Cleaned up and added function for setting the DOCK
        status of a window.

        * display/TargetImage.py (TargetImage._setp_saturation): Fixed the
        saturation property.

2004-06-02  Martin Grimme  <martin@pycage.de>

        * Makefile.am (EXTRA_DIST): Added NullObject.py.

2004-06-02  Benoît Dejean  <tazforever@dlfp.org>

        * Controls/System/__init__.py:
        * main/Control.py:
        * utils/__init__.py: Added FakeSelf and Bind.

        * main/Control.py(interface): is now a property.

2004-06-02  Christian Meyer  <chrisime@gnome.org>

        * display/Display.py: Marked call_sensor as FIXME.
        * display/DisplayTarget.py (DisplayTarget.__on_file_drop): Removed
        print statement.
        * display/TargetArray.py (TargetArray.distribute_sensor_output): Marked
        as FIXME.

2004-06-02  Martin Grimme  <martin@pycage.de>

        * gdesklets: Added handy little "restart" command to restart the
        daemon.

        * display/TargetImage.py (TargetImage.__render_image): Fixed bug caused
        by old code.

        * gdesklets-daemon: Fixed missing import statement.

2004-06-01  Benoît Dejean  <tazforever@dlfp.org>

        * Controls/System/__init__.py: Added Selfify and massively used it.
        Used name argument instead of enumeration.
        Called Control.__init__.

        * libdesklets/system/Arch.py:
        * sensor/Sensor.py: Import NullObject.

        * test-control.py: help(sys.exit) :D

        * libdesklets/__init__.py:
        * utils/convert.py:
        * libdesklets/convert.py: Moved back to libdesklets.

        * gdesklets-shell: Added.

        * gDesklets.spec: I'm tired of gdesklets version showing 0.26.2

        * NullObject.py: Added. Just import it to get Null into __builtins__.

        * gdesklets-daemon:
        * test-control.py: Fixed imports.

2004-06-01  Martin Grimme  <martin@pycage.de>

        * main/Starter.py (Starter.__add_display): Fixed XEmbed stuff.

        * display/Plug.py (Plug.__init__): Updated API.

        * display/TargetImage.py (TargetImage.__load_image): Fixed wrong
        scaling after loading a new image.

        * utils/wallpaper.py (GCONF_BACKGROUND): Added constant.

        * utils/BGWatcher.py (BGWatcher.__init__): Watch GConf for changes as
        well.

2004-06-01  Christian Meyer  <chrisime@gnome.org>

        * gdesklets-daemon: Rearranged import statements. You first have to
        import __builtin__ before using it.
        * Controls/System: Control for libdesklets/system.
        * Controls/URI: First iteration of an URI control. Currently, it just
        handles local files.
        * factory/ControlFactory.py: Removed __main__ stuff.
        (ControlFactory.__search_controls): Use proper except here.
        * libdesklets/convert.py: Moved to utils.

2004-05-31  Benoît Dejean  <tazforever@dlfp.org>

        * HACKING: Added new item

        * gdesklets-daemon: Reordered import statements.
        Instanciate Null before importing gdesklets modules.

2004-05-31  Martin Grimme  <martin@pycage.de>

        * sensor/Sensor.py: No longer import Menu.py.

        * display/Display.py (Display.__on_button): Bug fix.

        * display/GlassWindow.py (GlassWindow.__capture_bg): Force redrawing
        the window after capturing the background.

2004-05-30  Martin Grimme  <martin@pycage.de>

        * gdesklets-daemon: Got rid of the bonobo_activation_failed assertion
        error.

        * display/GlassWindow.py (GlassWindow.__capture_bg): Removed old
        crap.

        * utils/wallpaper.py (get_wallpaper): Call C function for pseudo
        transparency.

        * utils/tiling.i:
        * utils/tiling.c (tile_transparency): Implemented pseudo transparency
        tiling in C.

        * scripting/Script.py (Script.execute): Added error dialog with
        traceback.

        * utils/dialog.py (warning): The warning dialog can include the
        traceback now, if available.

        * gdesklets: Started implementing profiles support.

        * display/TargetImage.py: Added support for size units and cleaned up
        code.

2004-05-28  Benoît Dejean  <tazforever@dlfp.org>

        * display/TargetLabel.py: Cleaned utf8 encoding.

        * display/TargetCanvas.py:
        * gdesklets: Removed nil :o

        * main/Starter.py:
        * main/__init__.py: gtk.mainquit -> gtk.main_quit

2004-05-28  Martin Grimme  <martin@pycage.de>

        * main/client.py (RemoteConnection.close_display):
        * main/remotecommands.py (COMMAND_CLOSE_DISPLAY): Added command for
        closing displays.

        * main/Starter.py (Starter.__handle_shutdown): Close displays on exit.
        (Starter.__handle_close_display): Added handler for closing displays.

        * display/Display.py (Display.remove_display): Fixed bug with bad
        order of giving up references.

        * display/DisplayTarget.py (DisplayTarget._setp_geometry): Removed
        print statement.

        * display/TargetArray.py (TargetArray.__remove_child):
        * display/Display.py (Display.unbind_sensor):
        * display/DataTarget.py: Implemented unbinding of deleted targets from
        a sensor.

        * display/Display.py (Display.__set_settings): Fixed array-related bug.

        * Controls/Sensors/__init__.py (Sensors.__on_observe_sensor):
        * display/TargetLabel.py (TargetLabel.__set_font): Removed debugging
        print statement.

        * display/Display.py (Display.__on_button): Fixed menu to work with
        the "Dsp" object.

2004-05-27  Martin Grimme  <martin@pycage.de>

        * display/GlassWindow.py (GlassWindow.__capture_bg): Fixed the return
        statements chrisime removed earlier.

        * display/DisplayTarget.py (DisplayTarget.get_geometry): Use the
        "visible" property instead of checking GTK properties.

        * main/Starter.py (Starter.__purge_config): Fixed purging of
        configuration. Purging directories is running without actual actions
        until I know that it works well.

2004-05-26  Christian Meyer  <chrisime@gnome.org>

        * display/GlassWindow.py: Removed GlassWindow.__update_lock.
        (GlassWindow__capture_bg): Removed return statements in try/except.
        * display/TargetExpander.py: Replaced 1/0 with True/False.
        * utils/FileWatcher.py: Likewise.
        * utils/TilingImage.py: Likewise.

2004-05-26  Benoît Dejean  <tazforever@dlfp.org>

        * Controls/.cvsignore:
        * Controls/Sensors/.cvsignore: Added.

        * display/DisplayTarget.py: Paranoid optimization.

        * display/Window.py: Cleaned. Replaced int by bool.

        * utils/.cvsignore: Updated.

2004-05-26  Martin Grimme  <martin@pycage.de>

        * display/TargetLabel.py: Implemented support for percentual font
        sizes and unit based wrap-at value.

2004-05-25  Martin Grimme  <martin@pycage.de>

        * display/DisplayTarget.py (DisplayTarget._setp_visible): Fixed wrong
        order of commands.

        * sensor/Sensor.py (Sensor.get_config):
        * display/DataTarget.py (DataTarget.set_xml_prop): Added workaround for
        inconsistant sensor output.

        * display/layouters.py (LAYOUTERS): Fixed what chrisime has broken
        yesterday.

        * main/__init__.py: Create the ~/.gdesklets directory if it's not
        there.

        * gdesklets: Use the DisplayList. Added start and _remove commands and
        did some clean up.

        * main/client.py (RemoteConnection.set_remove_command): Added method.

        * main/Starter.py (Starter.__handle_set_remove_command): Added handler
        for SET_REMOVE_COMMAND.
        (Starter.__on_display_action): Invoke the remove command.
        (Starter.__on_display_action): Remember display coordinates before
        restarting a display.

        * main/remotecommands.py (COMMAND_SET_REMOVE_COMMAND): Added command.

        * main/Makefile.am (install_DATA): Added DisplayList.py.

        * config/GConfBackend.py (GConfBackend.clear): Fixed syntax error.

        * display/Window.py (Window.__do_move_window): Made window movement a
        bit more responsive.

2004-05-24  Christian Neumair  <chris@gnome-de.org>

	* configure.in:
	* data/Makefile.am: Search for update-mime-database in $PATH instead
	of hardcoding its path.

2004-05-24  Martin Grimme  <martin@pycage.de>

        * display/TargetCanvas.py: Uses librsvg for rendering now.
        Removed all that old and now unused stuff.
        (TargetCanvas.__make_style): Bug fix to allow unfilled polygons.

        * configure.in:
        * utils/Makefile.am: Added SVG stuff.

2004-05-23  Martin Grimme  <martin@pycage.de>

        * display/TargetGauge.py: <gauge> is derived from <group> now.

        * display/Window.py (Window.__dig_a_hole): Moved the hole digging code
        into its own method and only call it for the initial dragging.
        (Window.set_position): Fixed bug.

        * utils/Makefile.am (install_DATA): Removed Hash2D.py.

2004-05-23  Christian Meyer  <chrisime@gnome.org>

        * config/AbstractBackend.py: Removed.
        * config/ConfigManager.py: Removed import statement (no_config).
        * config/DummyBackend.py: Removed.
        * config/GConfBackend.py: Inherit from utils.Observable, since there's
        no AbtractBackend anymore.
        * config/Makefile.am: Removed AbstractBackend and DummyBackend entries.
        * config/settings.py: Removed deprecated stuff.
        * display/Display.py (Display.__init__): s/Move/Move display.
        * display/DisplayConfigurator.py (DisplayConfigurator.__on_close):
        Fixed; last time I broke it.
        * factory/DisplayFactory.py: Removed orig_coords stuff.
        * desktop/*: Removed.
        * main/__init__.py: Removed print_about().
        * main/client.py (client.__start_new_daemon): Added translucent option.
        Added print_about() here.
        * main/Control.py: Added epy-doc comments.
        * tools/gdesklets_display_thumbnailer.c: Plug memleaks, partially
        rewrote, use gnome-vfs now.
        * configure.in: Removed desktop entry.
        * Makefile.am: Likewise.
        * gdesklets (gdesklets.usage): Added "[option]".
        * gdesklets-daemon: Removed import statement (print_about).
        Added "about" command.

2004-05-23  Martin Grimme  <martin@pycage.de>

        * scripting/Script.py: Cleaned up.

        * factory/DisplayFactory.py (DisplayFactory.endElement): Added comment.

2004-05-22  Martin Grimme  <martin@pycage.de>

        * display/TargetLabel.py (TargetLabel.__set_value): Improved
        performance. Why did we have the process_updates() here?

        * scripting/Makefile.am (install_DATA): Added ControlWrapper.py.

        * scripting/Script.py: XML elements are no longer thrown into the
        global namespace.
        Added comments. Added __name__ member to the sandbox because it's
        required for creating classes. Added True and False to the sandbox.

        * factory/DisplayFactory.py: Fixed bug regarding different indentations
        in different <script> sources.

2004-05-21  Benoît Dejean  <tazforever@dlfp.org>

        * doc/libdesklets_system.dia:
        * doc/libdesklets_system.png: Updated.

2004-05-21  Martin Grimme  <martin@pycage.de>

        * display/DataTarget.py (DataTarget._get_propagator): No longer use
        add_mapping() here.

        * display/TargetArray.py: Removed add_mapping().

        * main/__init__.py: Removed DEFAULT_SENSOR constant and raised version
        number.

        * sensor/Makefile.am (install_DATA): Removed DefaultSensor.py.

2004-05-20  Martin Grimme  <martin@pycage.de>

        * configure.in: Added Makefiles and raised version number.

        * factory/Makefile.am (install_DATA): Added ControlFactory.py.

        * main/Makefile.am (install_DATA): Added Control.py.

        * Makefile.am (SUBDIRS): Added Controls subdir.

        * display/DataTarget.py (DataTarget._setp_watch):
        * display/Display.py:
        * factory/DisplayFactory.py: Use the sensors control to wrap legacy
        sensors for backwards compatibility.

        * scripting/Script.py: Added controls stuff.

2004-05-20  Christian Meyer  <chrisime@gnome.org>

        * HACKING: Added further rules.

2004-05-20  Benoît Dejean  <tazforever@dlfp.org>

        * utils/tiling.c: (copy_n_rows), (make_row), (tile): const were not
        wrong.

2004-05-16  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.__handle_remove): Added handler for
        removing the display.

        * utils/units.py (units_to_pixels):
        (units_to_points): Raise exception on invalid units.

        * display/Display.py (Display.__on_observe_container): Disabled
        critical part until a better solution has been found.

        * utils/units.py (units_to_points): Added conversion function.

        * display/TargetEntry.py (TargetEntry._setp_font):
        * display/TargetLabel.py (TargetLabel.__set_font): Added support for
        size units.

        * utils/TypeConverter.py (TypeConverter.str2type): Bug fix.

        * factory/DisplayFactory.py (DisplayFactory.endElement): Use make_id()
        now.

        * display/DisplayTarget.py (DisplayTarget.adjust_geometry): Added
        support for unit conversions.

        * display/ContainerTarget.py: Fixed to use units.

        * utils/units.py:
        * utils/datatypes.py: Removed unit constants from datatypes.py to
        units.py.

        * utils/Makefile.am (install_DATA): Added units.py.

2004-04-21  Christian Neumair  <chris@gnome-de.org>

        * autogen.sh: Fix macro inclusion.
        * configure.in: Remove user installation switches,
        do some more checks.
        * data/desktop-helper.py: Removed.
        * data/gdesklets.applications: Use startup notification.
        * data/gdesklets.keys.in: Changed description.
        * data/gdesklets.xml.in: Added. gDesklets MIME associations eventually
        work.
        * data/.cvsignore:
        * data/Makefile.am: Reflect changes.
        * Makefile.am: Use _SCRIPTS instead of _DATA for installed scripts.
        Should fix broken permissions.

2004-05-13  Christian Meyer  <chrisime@gnome.org>

        * TODO: Update.
        * desktop/GlassWindow.py: Moved to display.
        * desktop/Makefile.am: Removed GlassWindow.py entry.
        * display/Makefile.am: Added GlassWindow.py entry.
        * display/Window.py: fixed import statement.
        * utils/systray.{c, i}: Added systray_icon_destroy(), it might avoid
        a memory leak if called.
        (systray_icon_set_icon): Fixed potential memory leak.
        * utils/tile.c: removed old code, removed wrong "const variable" code.
        * gdesklets: Added help option.

2004-05-13  Martin Grimme  <martin@pycage.de>

        * utils/TypeConverter.py (TypeConverter.str2type): Added conversions
        for centimetres and inches.

2004-05-12  Samúel Jón Gunnarsson  <sammi@techattack.nu>

        * configure.in: Added "is" to ALL_LINGUAS

2004-05-12  Martin Grimme  <martin@pycage.de>

        * utils/datatypes.py: Added units for centimetres and inches.

        * display/TargetCanvas.py (TargetCanvas.__draw): Fixed bug.

        * utils/wallpaper.py: Fixed missing import statement.

        * display/Display.py (Display.__open_configurator):
        (Display.remove_display): Fixed bug.
        (Display.make_id): Added static method for creating unique IDs.
        Implemented menu handling stuff.

        * display/TargetMenuItem.py: Make use of slots.

        * display/TargetMenu.py: Implemented support for slots of menu items.
        This allows merging of menus.

        * sensor/Sensor.py (Sensor.open_menu): Delegate menu stuff to the
        Display.

        * display/TargetGroup.py (TargetGroup.__on_observe_size): Only re-tile
        if size has changed.

        * display/DisplayTarget.py (DisplayTarget._setp_geometry): Got rid of
        the explicit getter method.

        * gdesklets-daemon: Setup i18n at an earlier time.

2004-05-11  Martin Grimme  <martin@pycage.de>

        * gdesklets-daemon: Added initialization of i18n stuff.

2004-05-10  Benoît Dejean  <tazforever@dlfp.org>

        * utils/tiling.c: (tile_on_image), (make_row), (tile): Cleaned and
        optimized.

2004-05-10  Christian Meyer  <chrisime@gnome.org>

        * desktop/__init__.py: Moved some functions in utils/wallpaper.py.
        * desktop/GlassWindow.py: Cleanup + modifications due last changes.
        * desktop/BGWatcher.py: Moved to utils and adopted.
        * display/Display.py (Display.__on_observe_container): Improved.
        (set_settings): Handle sensor_id = "". Not perfect, but works for now.
        * display/DataTarget.py (DataTarget.notify_handle_action): Removed. It
        * display/TargetPlotter.py: Removed import of DisplayTarget.
        * display/Makefile.am: Added wallpaper.py.
        * utils/wallpaper.py: New.

2004-05-09  Martin Grimme  <martin@pycage.de>

        * utils/tiling.c: Fixed bug that broke pixmaps without an alpha
        channel.

        * display/TargetMenuItem.py: Added activation handler.

        * display/targetregistry.py: Added <menu> and <menu-item>.

        * display/Makefile.am (install_DATA): Added TargetMenu.py and
        TargetMenuItem.py.

        * display/Display.py (Display.new_child):
        * display/TargetPlotter.py:
        * display/TargetLabel.py:
        * display/TargetImage.py:
        * display/TargetHTML.py:
        * display/TargetGroup.py:
        * display/TargetGauge.py:
        * display/TargetFrame.py:
        * display/TargetExpander.py:
        * display/TargetEntry.py:
        * display/TargetCanvas.py:
        * display/TargetBonoboControl.py:
        * display/TargetArray.py:
        * display/TargetAlignment.py:
        * display/DisplayTarget.py: Use composition instead of inheritance for
        widget stuff.
        (TargetFrame.__init__):
        (TargetExpander.__set_expanded):
        (DisplayTarget._setp_visible):
        (DisplayTarget._setp__action): Bug fix.

        * display/Display.py (Display.__on_observe_container): Only set size
        values if changed.

        * display/DisplayTarget.py:
        * display/ContainerTarget.py: Implemented support for size units.

        * display/DisplayTarget.py:
        * display/DataTarget.py: Cleaned up code.

        * utils/TypeConverter.py: Added support for size units.

        * utils/datatypes.py: Added constants for size units.

2004-05-08  Benoît Dejean  <tazforever@dlfp.org>

        * locale/.cvsignore:
        * utils/.cvsignore: Updated.

        * utils/Makefile.am:
        * display/Makefile.am: Moved WindowSnapper.

        * utils/tiling.c: (tile_on_image), (make_row), (copy_n_rows),
        (tile):
        * utils/tiling.i: Little improvement.

2004-05-08  Martin Grimme  <martin@pycage.de>

        * configure.in: Added checks for building tiling.c.

        * utils/TilingImage.py (TilingImage.tile): Moved tiling code from
        Python to C.

        * utils/Makefile.am: Added tiling.c and tiling.i.

2004-05-08  Benoît Dejean  <tazforever@dlfp.org>

        * scripting/.cvsignore:
        * libdesklets/.cvsignore:
        * libdesklets/system/.cvsignore:
        * libdesklets/system/FreeBSD/.cvsignore:
        * libdesklets/system/Linux/.cvsignore:
        * libdesklets/system/NetBSD/.cvsignore:
        * libdesklets/system/OpenBSD/.cvsignore: Added.

        * locale/.cvsignore:
        * utils/.cvsignore: Updated.

2004-05-07  Christian Meyer  <chrisime@gnome.org>

        * display/*: Cleanups (removed unnecessary import statements, etc,).
        * display/TargetPlotter.py: s/set_config/set_prop.
        * display/WindowSnapper.py: Move to utils/.
        * display/Window.py: WindowSnapper now lives in utils.

2004-05-06  Martin Grimme  <martin@pycage.de>

        * display/TargetGroup.py: Removed all references to Hash2D. It's a
        relic of old days.

        * main/RemoteSocket.py (RemoteSocket.run): Made this more robust.

        * main/Starter.py (Starter.__add_display): Fixed bug that was
        preventing the daemon from stopping.

        * display/DisplayTarget.py (DisplayTarget.adjust_geometry):
        * display/Display.py (Display.__on_observe_container): Implemented
        manual window resizing.
        (Display.set_position): Fixed handling of unset coordinates.

        * display/Window.py: Added support for detecting window resizing.

        * display/TargetExpander.py: Fixed some typos.

2004-05-04  Martin Grimme  <martin@pycage.de>

        * display/Makefile.am (install_DATA): Added TargetEntry.py.

        * Makefile.am (install_DATA): Added gdesklets-daemon.

        * factory/DisplayFactory.py (DisplayFactory.create_display): Commented
        out old code.

2004-05-03  Martin Grimme  <martin@pycage.de>

        * display/TargetPlotter.py (TargetPlotter.__init__): Fixed missing
        comma.

        * display/Display.py (Display.set_container): Set the position here as
        well.

2004-05-03  Benoît Dejean  <tazforever@dlfp.org>

        * sensor/Sensor.py: Cleaned.
        * utils/BinTree.py: Used True/False instead of 1/0.

2004-05-03  Martin Grimme  <martin@pycage.de>

        * scripting/TargetWrapper.py (TargetWrapper.__setattr__): Use the key
        here.

        * sensor/Sensor.py: No longer call gtk.threads_init() here.

        * main/__init__.py (init): Prepare GTK for threads here.

2004-05-02  Martin Grimme  <martin@pycage.de>

        * scripting/TargetWrapper.py (TargetWrapper.__init__): Fixed a
        security hole.

        * main/__init__.py (POSITIONSFILE): Added path for the file with the
        display positions.

        * factory/DisplayFactory.py: Removed DefaultSensor and profile stuff.

        * display/TargetGroup.py: Added "title" property.

        * display/DisplayTarget.py (DisplayTarget.__init__): Tiny fix for
        the initial position value.

        * main/Starter.py:
        * display/Window.py:
        * display/Display.py: Moved positioning stuff out of GConf and the
        deprecated DefaultSensor.

        * display/DisplayContainer.py: Made more compact.

2004-05-01  Martin Grimme  <martin@pycage.de>

        * config/migration.py: Adjusted configuration migration.

        * config/ConfigManager.py:
        * config/settings.py:
        * sensor/Sensor.py:
        * factory/DisplayFactory.py (DisplayFactory.startElement): Removed
        profile stuff.

2004-01-05  Christian Meyer  <chrisime@gnome.org>

        * TODO: Updated.
        * display/TargetExpander.py:
        * display/TargetHTML.py:
        * display/TargetPlotter.py: Use new property system.

2004-04-30  Benoît Dejean <tazforever@dlfp.org>

        * sensor/Sensor.py (call_action):
        (send_action): /me stupid. Revert version. Back to old prototypes.

2004-04-30  Martin Grimme  <martin@pycage.de>

        * utils/FileWatcher.py (FileWatcher.__init__): Fixed typo.
        (FileWatcher.__init__): No longer crashes if famd is not running.

2004-04-29  Benoît Dejean <tazforever@dlfp.org>

        * HACKING: Added tip on callback.

        * display/targetregistry.py: Removed no_ids stuff.

        * sensor/Sensor.py (watch_stop): Added. Added self.__stop_callback.
        (send_ouput): Removed warning. Removed useless self.__user_knows.
        (call_action):
        (send_action): Changed prototype.

2004-04-29  Martin Grimme  <martin@pycage.de>

        * gdesklets-daemon: The daemon has to detach before everything else.

        * gdesklets: Started with command line frontend.
        Fixed bug that made it impossible to use VFS locations for "open".

2004-04-29  Christian Meyer  <chrisime@gnome.org>

        * display/targetregistry.py: Applied Taz's patch.
        * display/TargetPopup.py: Removed, it never worked.
        * main/client.py: Removed __main__ stuff.
        (starter_new_daemon): private now.
        * gdesklets: changed due modifications in client.py.
        (usage): Added.
        * gdesklets-daemon: added comments, removed some import's.

2004-04-29  Martin Grimme  <martin@pycage.de>

        * sensor/Sensor.py:
        * display/Display.py (Display.__on_observe_sensor): Removed use of
        admin.

        * display/targetregistry.py (_REGISTRY): Added <entry>.

2004-04-28  Christian Meyer  <chrisime@gnome.org>

        * main/client.py (client.geometry): Fixed
        * utils/FileWatcher.py (FileWatcher.__init__): implemented monitoring
        of files using gnome.vfs.add_monitor(). I hope that it'll work.

2004-04-28  Christian Meyer  <chrisime@gnome.org>

        * main/client.py: Removed some functions which aren't needed.
        (client.displays): Implemented.
        (client.geometry): likewise
        * main/remotecommands: Added COMMAND_DISPLAYS and COMMAND_GEOMETRY.
        * main/Starter.py (Starter.__handle_displays): Implemented.
        (Starter.__handle_geometry): likewise

2004-04-28  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.get_geometry): Implemented method.

2004-04-28  Christian Meyer  <chrisime@gnome.org>

        * main/client.py: open_display* and open_plug* now take path (ident)
        instead of *args. Reflects the api doc.

2004-04-28  Christian Meyer  <chrisime@gnome.org>

        * TODO: Updated to reflect current state.

2004-04-28  Martin Grimme  <martin@pycage.de>

        * HACKING: Fixed bug.

        * display/Window.py: Fixed the "starterbar bad positioning" bug.

2004-04-27  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.send_action): Recognize action handlers
        in legacy format here and handle them properly.

2004-04-27  Benoît Dejean  <tazforever@dlfp.org>

        * HACKING: Added file to repository.

2004-04-26  Martin Grimme  <martin@pycage.de>

        * display/DisplayTarget.py (DisplayTarget.__on_file_drop): Fixed method
        call for send_action().

        * display/Display.py (Display.send_action): Improved this function.
        We don't have to search the widget top-down here.
        (Display.new_child): Fixed bug where the <display> was not accessible
        from inline scripts.

2004-04-25  Martin Grimme  <martin@pycage.de>

        * main/RemoteSocket.py (RemoteSocket.__init__): Abort if the socket
        is unavailable. Is this a good behavior?

        * main/client.py: Implemented some parts of the Client-proposal.

        * gdesklets-daemon: Use the constant here.

        * main/__init__.py (LOGFILE): Added constant for the logfile location.

2004-04-25  Benoît Dejean  <tazforever@dlfp.org>

        * gdesklets:
        * gdesklets-daemon: Removed useless gc_collect.

2004-04-25  Martin Grimme  <martin@pycage.de>

        * main/remotecommands.py (COMMAND_OPEN_DISPLAY_WITH_ID): Added command.

        * main/Starter.py (Starter.__handle_open_display_with_id): Added
        handler for OPEN_DISPLAY_WITH_ID.

        * gdesklets-daemon: Implemented the UNIX double fork and redirected
        stdout and stderr to a logfile in order to make the daemon more
        daemonic.
        Cleaned up a bit.

2004-04-24  Benoît Dejean  <tazforever@dlfp.org>

        * utils/xdr.py: Added comments.

2004-04-24  Martin Grimme  <martin@pycage.de>

        * main/Makefile.am (install_DATA): Removed admin.py.

        * main/RemoteSocket.py (RemoteSocket.__init__): Use the DISPLAY
        variable for the socket name. So we can have one daemon per X display.

        * config/settings.py: Removed profile related stuff.

        * main/Starter.py: Eliminated use of the deprecated admin module.

        * display/ContainerTarget.py: Fixed bug with multiple dependencies in
        relative positioning.

2004-04-21  Benoît Dejean  <tazforever@dlfp.org>

        * tools/gdesklets-display-thumbnailer.c: (main): Cleaned a bad hack
        removing gcc warning.

        * utils/systray.i: Removed swig deprecation warning.

2004-04-20  Martin Grimme  <martin@pycage.de>

        * display/TargetBonoboControl.py (TargetBonoboControl._setp_oafiid):
        Implemented "oafiid" property.

2004-04-19  Martin Grimme  <martin@pycage.de>

        * display/DataTarget.py (DataTarget.__init__): Added property
        "index-path".

2004-04-16  Martin Grimme  <martin@pycage.de>

        * Makefile.am (EXTRA_DIST): Added file gdesklets-daemon.

        * main/Starter.py: Removed profile stuff. This will be handled by
        frontends.
        (Starter.__on_display_action): Don't use the deprecated admin module.
        (Starter.__create_display): Likewise.
        Removed deprecated methods.

2004-04-14  Martin Grimme  <martin@pycage.de>

        * display/TargetFrame.py: Works again.

2004-04-13  Martin Grimme  <martin@pycage.de>

        * config/settings.py (translucent): Added switch for real
        translucency.

        * desktop/GlassWindow.py (GlassWindow.__init__): Implemented support
        for real translucency on Keith's freedesktop.org Xserver.

2004-04-12  Gareth Owen  <gowen72@yahoo.com>

        * configure.in: Added en_GB to ALL_LINGUAS

2004-04-12  Martin Grimme  <martin@pycage.de>

        * display/DisplayTarget.py (DisplayTarget.__on_file_drop): Use event
        structure for DnD.

        * display/Display.py (Display.send_action): Fixed FIXME.

2004-04-10  Martin Grimme  <martin@pycage.de>

        * display/TargetGroup.py (TargetGroup.child_observer): Only move()
        children if they have been put() already.

        * display/DisplayTarget.py:
        * display/Display.py: Fixed import statement to the change below.

        * utils/__init__.py: Removed most imports at initialization time.

        * main/Starter.py: Implemented support for XEmbed plugs.

        * main/remotecommands.py (COMMAND_OPEN_PLUG): Added new command.

2004-04-09  Martin Grimme  <martin@pycage.de>

        * main/RemoteSocket.py (RemoteSocket.run): Transport return values as
        tuples.

        * display/Plug.py (Plug.__init__): Fixed bug.

        * main/client.py (RemoteConnection.open_plug): Implemented.

2004-04-09  Benoît Dejean  <tazforever@dlfp.org>

        * display/TargetCanvas.py:

2004-04-08  Martin Grimme  <martin@pycage.de>

        * main/RemoteSocket.py (RemoteSocket.run): Fixed bug.

        * main/client.py (RemoteConnection.__send): Fixed bug.

2004-04-08  Benoît Dejean  <tazforever@dlfp.org>

        * main/RemoteSocket.py (Handler): Added missing member.

2004-04-07  Benoît Dejean  <tazforever@dlfp.org>

        * config/ConfigManager.py:
        * display/DataTarget.py:
        * display/DisplayTarget.py:
        * sensor/Menu.py:
        * sensor/Sensor.py:
        * utils/Observable.py: Cleaned-up some extend call f(*args).

        * main/Starter.py: Added an internal lock for Starter.

2004-04-06  Benoît Dejean  <tazforever@dlfp.org>

        * main/RemoteSocket.py: Handle each connection in a separate thread.

        * README(5): Added evilwm.

        * main/RemoteSocket.py: Used utils.xdr.
        Fixed thread termination.
        (run) Added cleanup. We can't rely on __del__ for self
         because we don't want to join self.
         So when self is stopped, we explicitly close the socket
         so we can safely remove the socket file.

        * sensor/Sensor.py: Used utils.run_in_main_thread.

        * main/client.py (RemoteConnection): Added class with pycage
        documentation.

        * utils/__init__.py (run_in_main_thread): Added.

        * utils/Makefile.am:
        * utils/xdr.py: Added. Implements xdr socket communications.
        Added documentation.

2004-04-06  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.execute_callback_script):
        * scripting/Script.py (Script.add_target): Added "direct" flag for
        indicating that targets should be added directly even if they are in
        an array. This is need for the "self" reference in action handlers.

2004-04-05  Martin Grimme  <martin@pycage.de>

        * display/Window.py (Window.__begin_dragging): Fixed bug that occured
        if the window size is still 0x0.

        * display/TargetCanvas.py: Fixed missing type conversion.

        * display/TargetArray.py (TargetArray.distribute_sensor_output):
        * display/ContainerTarget.py (ContainerTarget.new_child):
        * display/Display.py: Use set_xml_prop() here.

        * display/DataTarget.py (DataTarget.set_xml_prop): Added function for
        setting properties from XML. We only need type conversion here,
        ideally.

2004-04-05  Benoît Dejean  <tazforever@dlfp.org>

        * main/Starter.py:
        * main/RemoteSocket.py: Used threadind.Thread instead of
        thread.start_new_thread.

        * utils/Makefile.am: Added ewmh_wrap.c systray_wrap.c ewmh.py
        systray.py to CLEANFILES. Added Struct.py

        * libdesklets/Makefile.am: Added convert.py.

2004-04-05  Martin Grimme  <martin@pycage.de>

        * main/Makefile.am (install_DATA): Added new files for sockets.

        * main/Starter.py: Added remote socket.

        * main/__init__.py (SOCKET_PATH): Added socket path constant.

2004-04-03  Martin Grimme  <martin@pycage.de>

        * configure.in: Added Makefile for libdesklets/system.

        * utils/TypeConverter.py: Fixed bug.

2004-04-01  Benoît Dejean  <tazforever@dlfp.fr>

        * scripting/Script.py (Script.__init__): Added all (?) safe builtin
        functions. See end of file.

2004-04-03  Martin Grimme  <martin@pycage.de>

        * scripting/Script.py (Script.__init__): Added more functions to the
        sandbox.

2004-04-02  Martin Grimme  <martin@pycage.de>

        * display/DisplayTarget.py:
        * display/Display.py: Use the Struct class for the event property.

        * display/DataTarget.py: Implemented the event property.

2004-04-01  Benoît Dejean  <tazforever@dlfp.fr>

        * README: Added GnomeSupport forum links.
        * libdesklets/glibtop.c (get_fsusage): Added fsusage.block_size (if available).
        * utils/__init__.py:
        * utils/Struct.py: Added.
        Now compliant with pycage's oldish python2.2.
        * sensor/Sensor.py: Used True and False instead of int.
        Yes ! bool are in python2.2 !
        * utils/TypeConverter.py: Used isintance() instead of type().
        (Now waiting for pycage new implementation)
        * main/Starter.py: Cleaned-up.

2004-04-01  Martin Grimme  <martin@pycage.de>

        * scripting/TargetWrapper.py: Replace "_" in attribute names with "-".
        This is necessary because identifiers in Python may not contain "-".

        * gdesklets: Added temporary code for adding display files. That code
        will go away when we use a frontend.

2004-03-31  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.execute_callback_script): Added method
        for calling callback scripts for action handlers.

        * display/ContainerTarget.py (ContainerTarget.new_child): Use
        set_prop() instead of set_conf().

        * display/DisplayTarget.py (DisplayTarget.notify_handle_action): Fixed
        for inline scripting in action handlers.

        * display/DataTarget.py (DataTarget.handle_action): Added inline
        scripting for action handlers and implemented a detection legacy
        action handlers.

        * display/Window.py (Window.__init__): Why were windows set to be
        sticky by default, which you could not turn off? Fixed this.

2004-03-31  Andras Timar  <timar@gnome.hu>

        * configure.in: Added hu to ALL_LINGUAS.

2004-03-30  Benoît Dejean  <tazforever@dlfp.org>

        * display/DataTarget.py: Used warnings.warn instead of print statements.
        (DataTarget.set_prop):
        (DataTarget.get_prop): Cleaned-up.
        (DataTarget.get_action_call):
        (DataTarget._setp):
        (DataTarget._getp): Used dict.__getitem__ instead of slower dict.get.

2004-03-29  Martin Grimme  <martin@pycage.de>

        * display/Display.py: Updated for properties.
        (Display.execute_callback_script): Added method for executing callback
        scripts.

        * display/TargetLabel.py:
        * display/TargetImage.py:
        * display/TargetGroup.py:
        * display/TargetGauge.py:
        * display/TargetCanvas.py:
        * display/TargetArray.py:
        * display/TargetAlignment.py:
        * display/DisplayTarget.py: Migrated properties.

        * utils/TypeConverter.py (TypeConverter.str2type): Fixed idem-potency.

        * scripting/TargetWrapper.py (TargetWrapper.__getattr__): Added.

        * utils/datatypes.py (TYPE_OBJECT): Added new type for objects.

2004-03-28  Martin Grimme  <martin@pycage.de>

        * display/DataTarget.py: Added new methods for getting/setting
        properties and for registering properties. The old set_config() method
        is deprecated and will be removed when the transition has been
        completed.

2004-03-29  Benoît Dejean  <tazforever@dlfp.org>

        * AUTHORS: used UTF-8.

2004-03-28  Christian Kellner <gicmo@xatom.net>

        * configure.in: Added creation of gDesklets.spec.
        * gDesklets.spec.in: Initial import.
        * gDesklets.spec: Updated version created from gDesklets.spec.in.

2004-03-27  Benoît Dejean  <tazforever@dlfp.org>

        * Scripting/TargetWrapper.py: Taught pycage python's name mangling.

2004-03-27  Christian Kellner <gicmo@xatom.net>

        * scripting/Makefile.am: Added TargetWrapper.py and fixed a typo
        * configure.in: Added missing creation of scripting/Makefile

2004-03-22  Martin Grimme  <martin@pycage.de>

        * factory/DisplayFactory.py: More scripting stuff.

        * main/Starter.py (Starter.__init__): (Temporary?) profile fix.

        * scripting/Script.py: Implemented handling of targets and arrays of
        targets.

        * display/TargetArray.py (TargetArray.__add_child): Each child needs a
        unique ID. Put a "#" before the unique part to be able strip it off
        when the XML ID is needed.

        * display/Display.py: Added scripting.

        * display/TargetArray.py:
        * display/Display.py:
        * display/ContainerTarget.py:
        * display/DisplayTarget.py:
        * display/DataTarget.py: Reworked array indexing mess.

        * display/TargetExpander.py (TargetExpander.__init__):
        * display/TargetBonoboControl.py (TargetBonoboControl.__init__):
        * display/TargetHTML.py (TargetHTML.__init__):
        * display/TargetPlotter.py (TargetPlotter.__init__):
        * display/TargetGauge.py (TargetGauge.__init__): Adjusted to work
        with the new design.

2004-03-17  Martin Grimme  <martin@pycage.de>

        * display/DisplayTarget.py (DisplayTarget.set_relative_to):
        * display/ContainerTarget.py (ContainerTarget.set_relative): Fixed
        method name clash.

        * display/DisplayTarget.py (DisplayTarget.set_relative): Fixed that
        new stupid bug in relative positioning.

        * display/TargetCanvas.py (TargetCanvas.__init__): Adjusted to work
        with the new design.

        * display/Display.py (Display.set_config): Enabled this method again.

        * factory/DisplayFactory.py (DisplayFactory.create_display): Enabled
        code for watching the DefaultSensor again.

2004-03-16  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.new_child): Added missing code for
        configuring the root group.

2004-03-15  Martin Grimme  <martin@pycage.de>

        * factory/DisplayFactory.py: Cleaned up code.

        * display/TargetArray.py:
        * display/TargetLabel.py:
        * display/TargetImage.py:
        * display/TargetGroup.py:
        * display/TargetFrame.py:
        * display/TargetAlignment.py: Adjusted to work with the new design.

        * display/DisplayTarget.py: Revised relative positioning.

        * display/Display.py (Display.new_child): Added method.

        * display/DataTarget.py: Adjusted to work with the new design.

        * display/ContainerTarget.py: Revised adding new children.

        * display/targetregistry.py (create): Added factory function.

        * config/settings.py: Fixed typo.

        * Makefile.am (SUBDIRS): Added scripting package.

2004-03-15  Benoît Dejean  <tazforever@dlfp.org>

        * utils/TypeConverter.py: Used inheritance instead of composition.

2004-03-14  Martin Grimme  <martin@pycage.de>

        * config/ConfigManager.py (ConfigManager.__on_observe_backend): Fixed
        bug.

2004-03-13  Benoît Dejean  <tazforever@dlfp.org>

        * config/AbstractBackend.py: Added new file.
        Added abstract backend class.

        * config/GConfBackend.py: Made inherit from AbstractBackend.

        * config/DummyBackend.py: Made inherit from AbstractBackend.
        Moved in the migration.check_for_profiles call.

        * config/ConfigManager.py: Re-designed the ConfigManager class.
        ConfigManager now uses conditional inheritance from DummyBackend
        or GConfBackend depending on settings.

        The config code is now much shorter and simpler. Removed unused
        variables and functions.

        * config/Makefile.am: Added AbstractBackend.py.

        * main/CmdLineParser.py: Moved command line arguments parsing to
        config/settings.py. Removed.
        * main/Makefile.am: Removed CmdLineParser.py.

        * config/settings.py: Added command line arguments parsing.
        Added return codes. Parsing sys.argv now sets
        settings.displays_to_add list which holds the paths to the
        displays to be added.

        * gdesklets: Used return codes for sys.exit.
        Removed CmdLineParser import and call.

        * utils/dialog.py: Used return codes for sys.exit.
        * doc/man/gdesklets.1: Added description for return codes.
        Added a direct url to the GnomeSupport forum.

2004-03-12  Martin Grimme  <martin@pycage.de>

        * scripting/Script.py (Script.add_element): Fixed wrong method name.

        * factory/DisplayFactory.py: Added code for reading <script> tag.
        (DisplayFactory.startElement): Bug fix for VFS locations.

        * scripting/Script.py: Added class for encapsulating inline scripts.

2004-03-11  Martin Grimme  <martin@pycage.de>

        * main/admin.py (get_displays): Fixed typo.
        (get_profile): Fixed bug. Don't let empty profile names exist.

2004-03-10  Benoît Dejean  <tazforever@dlfp.org>

        * display/ContainerTarget.py:
        * display/DataTarget.py:
        * display/Display.py:
        * factory/SensorFactory.py:
        * main/DisplayRepository.py:
        * main/MetaData.py:
        * main/Starter.py:
        * utils/singleton.py: Cleaned-up.

2004-02-28  Benoît Dejean  <tazforever@dlfp.org>

        * gdesklets: gdesklets now prevents users from logging as root (uid=0).

2004-02-27  Benoît Dejean  <tazforever@dlfp.org>

        * config/DummyBackend.py (set)
        (get):
        * config/GConfBackend.py (set)
        (get)
        (list): Cleaned-up and improved. Fixed.
        * display/TargetLabel.py (__set_value): Made UTF-8 convertion safer and cleaner.

2004-02-25  Adam Weinberger  <adamw@FreeBSD.org>

        * configure.in: Added 'en_CA' (Canadian English) to ALL_LINGUAS.

2004-02-24  Benoît Dejean  <tazforever@dlfp.org>

        * display/Display.py: Cleaned-up code.
        * utils/TargetSettings.py: Used inheritance instead of composition.

2004-02-23  Benoît Dejean  <tazforever@dlfp.org>

        * gdesklets: Increased gc_collect time-out to 10 minutes.
        * libdesklets/Network.py: Fixed typo. Clauses #135194.

2004-02-22  Benoît Dejean  <tazforever@dlfp.org>

        * README:
        * main/__init__.py: Change email.

2004-02-22  Martin Grimme  <martin@pycage.de>

        * utils/Makefile.am (_systraymodule_la_SOURCES): Added missing files.

        * sensor/DefaultSensor.py:
        * main/Starter.py: Removed debugging print statements.

2004-02-22  Benoît Dejean  <tazforever@dlfp.org>

        * display/Display.py:
        * display/DisplayTarget.py:
        * display/TargetCanvas.py:
        * display/TargetExpander.py:
        * display/WindowSnapper.py:
        * locale/install_locales.py: Cleaned-up tuple/list unpacking.

2004-02-22  Martin Grimme  <martin@pycage.de>

        * display/DisplayTarget.py (DisplayTarget.adjust_geometry): Fixed
        window positioning bug.

        * main/CmdLineParser.py (CmdLineParser.parse): Removed debugging print
        statement.

        * display/Window.py (Window.__end_dragging): Fixed the recently
        introduced wrong coordinates bug.

        * display/DisplayTarget.py (DisplayTarget.adjust_geometry): Small
        performance improvement by avoiding unnecessary computations.

        * display/Window.py (Window.__do_dragging): Improved snapping code by
        eleminating unnecessary computations.

        * desktop/GlassWindow.py (GlassWindow.__update_bg): Made transparency
        code consume less CPU by implementing the requested "m00se-mode".

2004-02-21  Martin Grimme  <martin@pycage.de>

        * display/Window.py (Window.set_position): Fixed totally silly typo. :D
        (Window.__begin_dragging): Made the display hole for positioning a bit
        larger.

        * main/__init__.py (init): gnome.program_init() in libgnome >= 2.5
        modifies the locale settings. Repair this after invoking
        gnome.program_init().

        * display/Window.py (Window.set_size): Forgot to update window
        bounding box after resizings. Fixed that.
        (Window.set_position): Workaround for bug in metacity that confuses
        window positions when the session starts up.

2004-02-20  Martin Grimme  <martin@pycage.de>

        * desktop/__init__.py (px2pt_scale): Fixed font size bug.

        * display/ContainerTarget.py (ContainerTarget.notify_handle_action):
        LEAVE events have to be propagated to all children of a container.

        * display/TargetAlignment.py (TargetAlignment.handle_action): Fixed
        coordinates bug in the event notification here.

        * README: Updated to reflect version 0.26.

        * main/CmdLineParser.py (CmdLineParser.parse): Fixed bug where always
        the default profile was used.

        * sensor/Sensor.py (Sensor.send_output): Removed wrongly placed newline
        character in the warning message.
        (Sensor.send_output): Print out the warning only once.

2004-02-18  Martin Grimme  <martin@pycage.de>

        * sensor/Sensor.py: Threading patch by Benoît Dejean. Threading works
        fine now, thanks Benoît! The broken LTVCandy stuff can be executed
        again!

2004-02-18  Benoît Dejean  <tazforever@dlfp.org>

        * sensor/Sensor.py (Lock.acquire): Prevent from starvation.
        (_execute): Declared _lock as global.
        (run_in_main_thread): Declared _lock as global.

2004-02-17  Martin Grimme  <martin@pycage.de>

        * display/DisplayTarget.py (DisplayTarget.handle_action): Fixed bug
        where pointer coordinates where not widget-relative.

        * display/TargetArray.py (TargetArray.__place_children): Fixed bug
        where the <array> didn't shrink after removing children.

        * display/Display.py (Display.__on_motion): Fixed LEAVE notify bug that
        was introduced as a workaround for window managers that send LEAVE
        events for mouse clicks.

2004-02-16  Martin Grimme  <martin@pycage.de>

        * sensor/Sensor.py: Redesigned thread safety code.
        (Lock): Implemented GTK-friendly lock.

        * display/Window.py: Removed the proxy window hack for positioning in
        favor of the dig-a-hole hack, which is certainly better. :D

2004-02-13  Martin Grimme  <martin@pycage.de>

        * desktop/GlassWindow.py: Added some experimental code for true
        transparency on systems with a composition manager (freedesktop.org
        X server). It's messed up because GTK isn't aware of the alpha channel
        yet.

        * display/Display.py (Display.__on_motion): Bug fix for detecting of
        leaving the window.

2004-02-12  Martin Grimme  <martin@pycage.de>

        * display/Window.py (Window.set_size): Snapping information gets
        updated when the window size changes.

        * sensor/Sensor.py (Sensor.__transport_data): Added function for thread
        safety. Only the main thread may get/set config data.
        (Sensor.set_config): Made thread safe.
        (Sensor.get_config): Made thread safe.

2004-02-10  Martin Grimme  <martin@pycage.de>

        * display/Makefile.am (install_DATA): Added Plug.py.

        * main/__init__.py (VERSION): Raised version number to 0.26.

        * configure.in: Raised version number to 0.26.

2004-02-09  Martin Grimme  <martin@pycage.de>

        * display/TargetPlotter.py (TargetPlotter.__plot): Fixed plotter.
        A stupid debugging line came into CVS somehow.

        * display/DisplayTarget.py (DisplayTarget.adjust_geometry): Fixed
        geometry bug with invisible targets becoming visible.

2004-02-08  Benoît Dejean <tazforever@dlfp.org>

        * main/Starter.py (Starter.__add_display): Cleaned up code. Again.

2004-02-08  Martin Grimme  <martin@pycage.de>

        * utils/pwstore.py (retrieve): Bug fix for empty values.

        * main/Starter.py (Starter.__add_display): Wait until a display has
        been positioned before attempting to load the next one.

        * display/Window.py (Window.is_placed): Implemented the method.

        * display/DisplayContainer.py (DisplayContainer.is_placed): Added
        boolean method for checking if the display container has been placed.

        * display/Window.py (Window.__begin_dragging): Change cursor for the
        placing window as well.

2004-02-08  Benoît Dejean <tazforever@dlfp.org>

        * Sensors/External/__init__.py:
        * Sensors/FontSelector/__init__.py:
        * config/ConfigManager.py:
        * display/DataTarget.py:
        * display/DisplayConfigurator.py:
        * display/DisplayTarget.py:
        * doc/RestrictedScripts.txt:
        * doc/tutorial/examples/nothing.py:
        * doc/tutorial/examples/output.py:
        * doc/tutorial/examples/timer.py:
        * doc/tutorial/howto_desklets.page:
        * libdesklets/polling.py:
        * sensor/Menu.py:
        * sensor/Sensor.py:
        * utils/Observable.py:
        * utils/dialog.py:
        * utils/singleton.py:
        * utils/vfs.py: Replaced deprecated apply calls by extended call syntax.

        * sensor/SensorConfigurator.py:
        * main/Starter.py: Cleaned up code.

        * utils/ewmh.c (_change_state): Fixed compilation warning.

2004-02-07  Martin Grimme  <martin@pycage.de>

        * doc/docmaker.py (DocParser.__get_next_entry): Fixed bug where ' got
        converted to ".

        * main/admin.py: Revised reference documentation.

        * sensor/Sensor.py: Wrote reference documentation.

2004-02-04  Martin Grimme  <martin@pycage.de>

        * main/CmdLineParser.py (CmdLineParser.parse): Added support for gnome
        session management command line options.

        * display/TargetArray.py (TargetArray.__place_children): Fixed bug with
        relative positioning in arrays with the new geometry engine.

        * display/DisplayTarget.py (DisplayTarget.adjust_geometry): Relative
        positioning makes use of the get_anchor method now.

2004-02-02  Benoît Dejean  <tazforever@dlfp.org>

        * gdesklets: Implemented the Null Object Pattern. The Null object
        is now available as a builtin.

2004-02-02  Martin Grimme  <martin@pycage.de>

        * display/TargetGauge.py (TargetGauge.__set_gauge):
        * display/TargetLabel.py (TargetLabel.__set_value): Added call to
        GdkWindow.process_updates to prevent expose events from cumulating.

        * display/DisplayTarget.py (DisplayTarget.adjust_geometry): Don't
        propagate the geometry if width = 0 or height = 0. This decreases
        startup time a bit.

        * sensor/Menu.py (Menu.popup): Circumvented the double menu bug that
        the new action handling system introduced. A better solution has to be
        found, though.

2004-02-01  Martin Grimme  <martin@pycage.de>

        * display/TargetAlignment.py (TargetAlignment.get_target_at): Removed
        this method.

        * display/TargetArray.py: Changed to work with the new action handling
        system.

        * factory/DisplayFactory.py (DisplayFactory.create_display): Moved
        --orig-coords code here. It's a better place.

        * sensor/DefaultSensor.py: Removed --orig-coords code from here.

        * main/Starter.py (Starter.__add_display): Don't move window to
        -2000, -2000 initially.

2004-02-01  Benoît Dejean <tazforever@dlfp.org>

        * utils/__init__.py (makedirs): Added. See docstring.

        * utils/installer.py:
        * utils/pwstore.py: Use utils.makedirs instead of os.makedirs.

        * locale/install_locales.py: Back to v1.2 to remove dependency on
        the utils module.

        * desktop/__init__.py:
        * display/DataTarget.py:
        * display/Display.py:
        * utils/actionparser.py:
        * main/DisplayRepository.py: Renamed variables that shadowed builtins.

        * utils/vfs.py:
        * utils/pwstore.py:
        * Sensors/External/__init__.py:
        * desktop/GlassWindow.py:
        * display/TargetArray.py: Cleaned up code.

        * display/TargetImage.py: Removed unused variable.

        * utils/BinTree.py (BinTree.dump): Used string.ljust for indentation
        (BinTree.count): Cleaned up code.

        * utils/ewmh.c (_change_state): Declared private function static.

2004-02-01  Martin Grimme  <martin@pycage.de>

        * display/TargetGroup.py (TargetGroup.__set_background): Fixed bug
        which prevented loading background images from VFS locations.

        * display/DataTarget.py (DataTarget.handle_action): Removed debugging
        output.

        * display/TargetGroup.py (TargetGroup.__on_observe_target): Removed
        dead code.

        * display/Display.py (Display.__on_motion): Added missing arguments to
        MOTION event.

        * display/DataTarget.py (DataTarget.set_index): Added method.
        (DataTarget.get_index): Added method.

2004-01-31  Martin Grimme  <martin@pycage.de>

        * sensor/DefaultSensor.py (DefaultSensor.__on_watch_config): Bugfix.

        * display/TargetExpander.py: Made it work with the new geometry engine.
        (TargetExpander.__set_expanded): Added expand state argument to the
        send_action call.

        * display/ContainerTarget.py (ContainerTarget.handle_action): Fixed
        position check.

        * display/DataTarget.py (DataTarget.get_target_at): Removed this
        method.

        * display/TargetGroup.py (TargetGroup.get_target_at): Removed this
        method.

        * display/Display.py (Display.file_drop): Removed this method. It's no
        longer needed as we have send_action now.

        * display/DisplayTarget.py (DisplayTarget.__on_file_drop): Changed to
        use send_action.

        * display/Display.py (Display.send_action): Added method for sending
        actions to the display. Targets can thus notify it of custom actions.

        * main/Starter.py (Starter.start_displays): Fixed profile-related bug.

        * display/ContainerTarget.py (ContainerTarget.handle_action):
        * display/Display.py:
        * display/DataTarget.py:
        * display/DisplayTarget.py: Redesigned event notification system.

2004-01-30  Martin Grimme  <martin@pycage.de>

        * display/Window.py: Cleaned up code.

2004-01-29  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.__on_observe_group): Don't let unset
        window positions reach the container here.

        * config/ConfigManager.py (ConfigManager.__init__): Fixed switching
        between profiles on the command line.

        * utils/vfs.py (join):
        * utils/TypeConverter.py (TypeConverter.str2type):
        * utils/pwstore.py:
        * utils/FileWatcher.py (FileWatcher.__check_mtime): Integrated code
        cleanup patch by Benoît Dejean.

2004-01-28  Martin Grimme  <martin@pycage.de>

        * factory/DisplayFactory.py:
        * display/TargetLabel.py:
        * display/TargetImage.py:
        * display/TargetHTML.py:
        * display/TargetBonoboControl.py:
        * display/TargetArray.py:
        * display/DataTarget.py:
        * desktop/BGWatcher.py: Integrated code cleanup patch by Benoît Dejean.

        * sensor/DefaultSensor.py (DefaultSensor.__init_display): Made
        --orig-coords option working.

        * display/DisplayTarget.py (DisplayTarget.adjust_geometry): Bug fix for
        positioning of windows.

2004-01-26  Martin Grimme  <martin@pycage.de>

        * display/Window.py (Window.__on_configure): Fixed positioning bug
        caused by the fact that GTK seems to return the wrong window
        coordinates the first time a window emits the "configure" event.

2004-01-25  Martin Grimme  <martin@pycage.de>

        * main/__init__.py (init): Removed the pygtk.require("2.0") stuff from
        here.

        * gdesklets: Moved the pygtk.require("2.0") stuff here, so that it gets
        called before every import gtk.

        * sensor/DefaultSensor.py: Fixed typo.

        * main/Starter.py (Starter.__init__): Added systray icon.

        * utils/Makefile.am: Adjusted Makefile.am.
        (install_DATA): Added systray.py.
        (INCLUDES): Added build entries for systray icon wrapper.

        * configure.in: Split up pkg-config requirements for each part.

        * main/admin.py (restart_display): Defused the function for restarting
        displays. Restarting a display is
        remove_display - wait - add_display with same ID. admin.py no longer
        needs gtk.

        * main/Starter.py (Starter.__on_display_action): Moved restarting of
        displays here from admin.py.

        * main/admin.py: Disabled too early initialization of the ConfigManager
        as this caused the --no-config option to fail.

        * display/DisplayTarget.py (DisplayTarget.get_anchor): Added method
        for retrieving the anchor position within the target.
        (DisplayTarget.adjust_geometry): Fixed the geometry calculation bug
        that broke StarterBar.

2004-01-24  Christian Meyer  <chrisime@gnome.org>

        * main/admin.py (remove_display): Fixed.
        (add_display): Likewise.
        * main/CmdLineParser.py: Almost working.

2004-01-24  Christian Meyer  <chrisime@gnome.org>

        * main/admin.py (get_displays): Fixed. DOH!
        * main/CmdLineParser.py: Partially fixed, doesn't work yet.
        * sensor/DefaultSensor.py: Fixed import. DOH!

2004-01-24  Christian Meyer  <chrisime@gnome.org>

        * config/settings.py: Added orig_coords.
        * main/admin.py (get_displays): Extended, now optionally takes a
        profile.
        (set_displays): Make it private. Nobody should mess with it!
        Rearranged code a bit.
        * main/CmdLineParser.py (CmdLineParser.__usage): Added, tells you how
        to use gdesklets ;-).
        (parse): Added help, version and orig-coords options.
        * sensor/DefaultSensor.py (DefaultSensor.__init__display): Check if
        orig_coords is set and set the position of all displays to 0,0 if so.

2004-01-24  Martin Grimme  <martin@pycage.de>

        * display/TargetImage.py (TargetImage.__render_image): Removed buggy
        rests of the caching.

2004-01-23  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.__on_observe_group): Removed debugging
        print statement.

        * display/Window.py (Window.__init__): Fixed setting of EWMH flags.
        It was broken on metacity 2.6 at least, which seems to ignore setting
        ABOVE/BELOW flags more than once.

        * configure.in: Added glib-2.0 to the dependencies.

2004-01-23  Christian Meyer  <chrisime@gnome.org>

        * display/TargetImage.py: We always do image caching. Thus, removed
        _USE_CACHE.

2004-01-22  Martin Grimme  <martin@pycage.de>

        * utils/vfs.py (open): Raise IOError if the file couldn't be opened.

        * display/TargetImage.py (TargetImage.__load_image): Detect if file
        could not be opened and return in that case.

        * display/DisplayTarget.py (DisplayTarget.adjust_geometry): Percentual
        size values work for <display> again.

        * sensor/Sensor.py (Sensor._send_output): Use get_path instead of the
        deprecated _get_path.

        * display/Window.py (Window.__on_configure): Window positions get
        also saved if the window is moved by the window manager now.
        Fixes Debian bug #228955.

        * main/admin.py (add_display): Added optional parameter for the type
        of display. That way we can distinguish between window displays and
        displays that can be embedded in other applications using the XEMBED
        protocol.
        (get_display_type): Added method for retrieving the type of a display.

2004-01-21  Martin Grimme  <martin@pycage.de>

        * gdesklets: Changed gnome-session client restart style from
        RESTART_ANYWAY (bad) to RESTART_IF_RUNNING (hopefully better).

        * display/Window.py (Window.__on_key): SHIFT key can disable window
        snapping during moving now.

        * display/Display.py: Optimized the desklet positioning system.

        * display/DisplayTarget.py (DisplayTarget.adjust_geometry): Fixed bug
        in computing of coordinates.

        * display/Window.py: Fixed window moving and initial positioning.

        * sensor/DefaultSensor.py: Fixed initial desklet positioning.

2004-01-20  Martin Grimme  <martin@pycage.de>

        * gdesklets: Call the new init function here.

        * main/__init__.py (init): Moved gnome.program_init and friends into a
        function because it should not get called in other applications that
        use the gDesklets API. It must not be called within panel applets, e.g.

2004-01-19  Martin Grimme  <martin@pycage.de>

        * locale/install_locales.py (compile_po): Fixed bug where
        install_locales fails in the second run.

2004-01-19  Christian Meyer  <chrisime@gnome.org>

        * configure.in: Added cs and hr to ALL_LINGUAS.

2004-01-17  Martin Grimme  <martin@pycage.de>

        * display/Window.py: Fixed some bugs in window positioning.
        (Window.__init__): Added a special 1x1 positioning window that accepts
        button events for cases where the desklet window doesn't accept them
        (because bonobo controls grab them, e.g.).

        * display/TargetCanvas.py (TargetCanvas.__transform_coords):
        Performance patch by Benoît Dejean.
        (TargetCanvas.__transform_coords): Fixed bug. We have to accept
        string values here.

        * utils/vfs.py:
        * utils/GConfWatcher.py:
        * utils/BinTree.py (BinTree._find_node):
        * utils/actionparser.py (_parse_command):
        * sensor/SensorConfigurator.py (SensorConfigurator.__on_change):
        * main/Starter.py:
        * main/MetaData.py:
        * main/DisplayRepository.py (DisplayRepository.__get_list):
        * main/CmdLineParser.py:
        * main/admin.py:
        * factory/DisplayFactory.py:
        * config/ConfigManager.py (ConfigManager.remove_watcher): Code clean
        up patches by Benoît Dejean.

        * gdesklets:
        * desktop/GlassWindow.py (GlassWindow.__display_bg): Garbage collection
        patches by Benoît Dejean.

        * display/Window.py (Window.__init__): Bug fix patch (forgot to call
        DisplayContainer constructor) by Benoît Dejean.

2004-01-18  Christian Neumair  <chris@gnome-de.org>

        * locale/Makefile.am: Use PYTHON variable instead of hardcoding
        python binary name (#131719).

2004-01-16  Kjartan Maraas  <kmaraas@gnome.org>

        * configure.in: Added "no" to ALL_LINGUAS.

2004-01-16  Martin Grimme  <martin@pycage.de>

        * display/TargetGauge.py (TargetGauge.__set_gauge): Fixed for the new
        geometry engine.

        * sensor/DefaultSensor.py: Changed to use UNSET_COORD constant instead
        of hardcoded value for unset coordinate values.

        * display/TargetLabel.py (TargetLabel.__set_value): Fixed label
        wrapping. pango.Layout.set_width takes pango units, not pixels.

        * display/TargetGroup.py (TargetGroup.get_target_at):
        * display/TargetArray.py (TargetArray.get_target_at):
        * display/DisplayTarget.py (DisplayTarget.get_target_at): Fixed for
        the new geometry engine.

2004-01-15  Martin Grimme  <martin@pycage.de>

        * display/Window.py (Window.set_position): Added missing call to
        set_sensitive.

        * display/TargetArray.py (TargetArray.__place_children): Made the array
        work with the new geometry engine.

        * display/DisplayTarget.py (DisplayTarget.set_position): Added
        method for setting the position of a target.

2004-01-14  Martin Grimme  <martin@pycage.de>

        * display/ContainerTarget.py (ContainerTarget._get_value_for_unset):
        The bug where the container size values weren't computed correctly.

        * display/Window.py (Window.set_position): Fixed initial positioning
        of desklets for the new geometry engine.

        * display/DisplayTarget.py (DisplayTarget.adjust_geometry): Use
        UNSET_COORD constant instead of -1 for unset coordinate values.

        * display/Display.py (Display.__on_observe_group): Cleaned code and
        removed outdated positioning stuff.

2004-01-13  Martin Grimme  <martin@pycage.de>

        * desktop/GlassWindow.py (GlassWindow._set_window_type): Fixed typo
        bug.

        * display/Display.py (Display.__on_observe_group): Make use of set_size
        method of the container here.

        * display/Window.py (Window.set_size): Added implementation for
        set_size method.

        * display/DisplayContainer.py (DisplayContainer.set_size): Added method
        for setting the container size.

2004-01-13  Martin Grimme  <martin@pycage.de>

        * utils/TilingImage.py:
        * display/TargetLabel.py:
        * display/TargetImage.py:
        * display/TargetGroup.py:
        * display/TargetGauge.py:
        * display/TargetFrame.py:
        * display/TargetExpander.py:
        * display/TargetArray.py:
        * display/Display.py:
        * display/ContainerTarget.py:
        * display/DisplayTarget.py: Redesigned the geometry engine to be faster
        and more accurate. Computing the correct geometry is no longer handled
        by the GTK library.

2004-01-13  Christian Meyer <chrisime@gnome.org>

        * display/Window.py (set_window_flags): Check if the window flags are
        valid. In case it isn't there's an error output.

2004-01-11  Martin Grimme  <martin@pycage.de>

        * main/admin.py: Fixed documentation tags.

2004-01-11  Christian Meyer  <chrisime@gnome.org>

        * main/admin.py: Added documentation.
        * sensor/Sensor.py: Partially added documentation.

2004-01-09  Christian Meyer  <chrisime@gnome.org>

        * gdesklets: Removed old commented code. Bumped to 0.25.1(CVS).
        * main/__init__.py: Likewise.

2004-01-08  Christian Meyer  <chrisime@gnome.org>

        * display/Display.py: Removed uncommented code.
        * display/DisplayTarget.py: Likewise.
        * sensor/SensorConfigurator.py (SensorConfigurator__on_change): Removed
        code which isn't used.
        Rearranged code.
        * sensor/Sensor.py: Rearranged code.
        Added aliases for _methods which will become deprecated soon.

2004-01-08  Christian Meyer  <chrisime@gnome.org>

        * desktop/GlassWindow.py (set_window_type): Made protected.
        Removed old gDeskCal code which covered pseudo_transparency and no
        transparency.
        (GlassWindow.set_transparency_mode): Removed
        * display/Window.py (__init__): set_window_type from GlassWindow is
        protected. Adopted.

2004-01-08  Martin Grimme  <martin@pycage.de>

        * locale/install_locales.py:
          main/Starter.py
          utils/installer.py
          utils/Hash2D.py: Integrated patches by Benoît Dejean. Thanks!

2004-01-08  Christian Meyer  <chrisime@gnome.org>

        * README: Updated (thanks to Russell Nelson <nelson@crynwr.com>).
        * desktop/__init__.py: Rearranged code a bit.
        * desktop/BGWatcher.py: Removed uncommented code.
        * desktop/GlassWindow.py: Removed obsolete code (screenshoot stuff from
        gDeskCal).
        (GlassWindow.__display_bg): The garbage collector is invoked every
        five seconds now. Maybe that'll improve the performance a bit.
        (GlassWindow.update_bg): Made it private. Nobody calls that function.

2004-01-06  Christian Meyer  <chrisime@gnome.org>

        * display/TargetLabel.py (TargetLabel.__set_value): Removed uncommented
        code.
        (TargetLabel.__set_wrap): Likewise.

2004-01-06  Martin Grimme  <martin@pycage.de>

        * display/TargetLabel.py (TargetLabel.__set_value): Fixed wrapping
        long text.

        * display/TargetGroup.py (TargetGroup.__on_observe_target): Disabled
        last change here. It's broken.

        * display/ContainerTarget.py: Fixed typo.

2004-01-05  Martin Grimme  <martin@pycage.de>

        * display/ContainerTarget.py (ContainerTarget._get_child): Display
        warning dialog if a target which accepts only one child has more
        children.

        * display/DisplayTarget.py (DisplayTarget.get_geometry): Removed old
        uncommented code pieces.

        * display/TargetGroup.py (TargetGroup.__collapse_bg): Removed old
        uncommented code pieces.
        (TargetGroup.__on_observe_target): Don't resize the group if there
        would only be a minimal change.

2004-01-05  Christian Meyer  <chrisime@gnome.org>

        * utils/i18n.py: Applied patch from bugzilla (#130509).

2004-01-05  Christian Meyer  <chrisime@gnome.org>

        * utils/TilingImage.py (set_from_file): Added try..except to avoid
          nasty error output.
          (set_from_color): Increased tile size to 32x32.

2004-01-05  Martin Grimme  <martin@pycage.de>

        * main/__init__.py (print_about): Replaced the \xa9 character
        (copyright) by "(C)" for shell output. Benoît's patch does not work
        on Python 2.2.

        * utils/TilingImage.py (TilingImage.tile): Added caching for pixmap
        tiling to avoid tiling of small pixmaps too often.

2004-01-03  Martin Grimme  <martin@pycage.de>

        * main/__init__.py: Integrated patch by Benoît Dejean. Thanks again,
        Benoît!

2003-12-30  Martin Grimme  <martin@pycage.de>

        * TODO: Updated.

        * gdesklets: Fixed session management. Either initialize
        it fully or not at all.

2003-12-29  Martin Grimme  <martin@pycage.de>

        * main/__init__.py (VERSION): Set version number to 0.25.1.

        * configure.in: Set version number to 0.25.1.

        * display/TargetFrame.py: Fixed some bugs.

        * sensor/Sensor.py (Sensor._send_output): Exit the bad thread.
        (Sensor._send_output): Display an informative dialog.

        * display/TargetGroup.py: Changed to use TilingImage.

        * display/TargetFrame.py: Totally reworked the frame. It does really
        work now!

        * utils/Makefile.am (install_DATA): Added TilingImage.py.

2003-12-28  Martin Grimme  <martin@pycage.de>

        * sensor/Sensor.py (Sensor._send_output): Check the thread ID to detect
        if we aren't in the main thread. Cancel the action if we're not in the
        main thread.

        * main/admin.py: Made sure that the ConfiManager doesn't get
        initialized too late.

        * display/DisplayTarget.py: Merged user_pos and user_size to
        user_geometry.

        * display/TargetCanvas.py (TargetCanvas.__draw): Fixed bug with endless
        recursion.

2003-12-27  Martin Grimme  <martin@pycage.de>

        * main/Starter.py (Starter.start_displays): Removed dead line.
        (Starter.__create_display): Bug fix.

        * display/TargetExpander.py (TargetExpander.get_container_geometry):
        Added method.

        * display/ContainerTarget.py (ContainerTarget.get_container_geometry):
        Added method for retrieving the container geometry.

        * display/Display.py (Display.save_position): Bug fix.

2003-12-24  Martin Grimme  <martin@pycage.de>

        * README: Added libgtop/kernel2.6 bug.

        * main/__init__.py (VERSION): Raised version number to 0.25.

        * configure.in: Raised version number to 0.25.

        * main/Starter.py (Starter.__add_display): Hacked around dumb window
        managers that restore windows at the wrong position after session
        startup.

        * gdesklets: Implemented gnome-session support.

        * display/Display.py (Display._call_sensor): Changed call_sensor() from
        private to protected.

        * display/DataTarget.py (DataTarget.delete): Removed print statement.

        * sensor/Sensor.py: Removed destructor that only consisted of a silly
        print statement.

        * main/Starter.py (Starter.__add_display): Made print statement
        shorter.

2003-12-23  Martin Grimme  <martin@pycage.de>

        * display/TargetExpander.py: Added more features.
        (TargetExpander.__init__): Put border around the button.

        * display/targetregistry.py (_REGISTRY): Added TargetExpander.

        * display/Makefile.am (install_DATA): Added TargetExpander.py.

        * README: Updated to reflect the current version.

2003-12-23  Christian Meyer  <chrisime@gnome.org>

        * main/__init__.py: Removed unnecessary code. Bumped version to 0.24.99.

2003-12-23  Martin Grimme  <martin@pycage.de>

        * gdesklets (gc_collect): Call main.print_about() here.

        * main/__init__.py (print_about): Moved output of about info into a
        function.

        * config/migration.py (check_for_profiles): Enabled last part of
        migration to profiles - remove the unprofiled stuff from the config.
        (check_for_profiles): Fixed bug.

        * display/TargetLabel.py (TargetLabel.set_config): Tried to implement
        automatic line wrap.
        (TargetLabel.__set_wrap): Improved wrapping and added a property
        "wrap-at".

2003-12-22  Christian Meyer  <chrisime@gnome.org>

        * README: Added a section for supported window managers.

2003-12-22  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.save_position): Bug fix.

        * display/Window.py: Implemented support for snapping windows together.
        (Window.__on_button): Don't snap when moving with SHIFT key pressed.

        * display/Makefile.am (install_DATA): Added WindowSnapper.py.

        * utils/Makefile.am (install_DATA): Added BinTree.py.

2003-12-21  Martin Grimme  <martin@pycage.de>

        * display/Window.py (Window.__on_button): The window shape,
        if available, is now being set after the user has positioned the
        window.

        * utils/installer.py (_Archive.__init__): Detect archives with .tgz
        extension.

        * display/TargetGroup.py (TargetGroup.__set_color): Integrated patch
        by Benoît Dejean to get rid of the hex2dec() method. Thanks, Benoît!

        * desktop/__init__.py (get_wallpaper): Assume solid colored background
        if the bg pixmap is very small. This saves a lot of CPU because we
        don't have to tile 1x1 pixmaps.

        * config/ConfigManager.py (ConfigManager.__init__): Bug fix for
        profiles.

        * sensor/DefaultSensor.py: Removed obsolete code fragments.

        * display/Display.py (Display.__on_observe_group): Added check for
        unset coordinates.

        * display/DisplayTarget.py: Cleaned the code a little.

        * display/Window.py (Window.__on_button): Made the displays event
        insensitive while their windows are being dragged.

        * display/Display.py (Display.add_children): Use UNSET_COORD here.
        (Display.set_sensitive): Implemented flag for event sensitivity.

        * main/__init__.py (UNSET_COORD): Constant for unset coordinate values.

2003-12-20  Martin Grimme  <martin@pycage.de>

        * sensor/DefaultSensor.py (DefaultSensor.__init__): Disabled initial
        positioning of the display window in here.

        * main/Starter.py (Starter.__add_display): Show the display window
        when idle.

        * display/Window.py (Window.set_position): Improved setting the initial
        window position.

        * display/Display.py (Display.__set_settings): Fixed stupid bug that
        broke StarterBar.

2003-12-19  Martin Grimme  <martin@pycage.de>

        * main/Starter.py (Starter.__add_display): Do not show() the window
        here.

        * display/Window.py (Window.set_position): Display the window only
        after x and y values have been set.

        * display/DisplayConfigurator.py (DisplayConfigurator.__init__):
        Centered the dialog window on the screen.

        * display/Display.py: Removed obsolete code fragments.

        * utils/dialog.py: Fixed deadlock that occured sometimes after showing
        message dialogs.

        * factory/DisplayFactory.py (DisplayFactory.startElement): Abort
        loading the display if a sensor could not be found.

        * display/Window.py (Window.__init__): Set default size to 10x10.

2003-12-18  Martin Grimme  <martin@pycage.de>

        * main/Starter.py (Starter.__init__): Removed welcome message. We won't
        need it in the future when we have a user frontend.

        * factory/DisplayFactory.py (DisplayFactory.create_display): Commented
        out obsolete code. This has to be revised yet.

        * main/Starter.py (Starter.__add_display): Changed accordingly. We have
        to place the Display into a Window.

        * display/Display.py: Extracted the GtkWindow part into Window.py.
        Display.py is derived from a GtkEventBox now and may be used as a
        widget.

        * display/Makefile.am (install_DATA): Added DisplayContainer.py and
        Window.py.

        * display/Display.py (Display.__set_settings): Moved setting the config
        values into its own method.
        (Display.__open_configurator): set_transient_for toplevel window
        instead of the Display which is no longer a GtkWindow.

        * configure.in: Added ru to ALL_LINGUAS.

2003-12-17  Martin Grimme  <martin@pycage.de>

        * configure.in: Removed de_BY. It has caused some confusion.

2003-12-10  Martin Grimme  <martin@pycage.de>

        * main/CmdLineParser.py (CmdLineParser.parse): Added --profile command
        line option.

        * main/Starter.py (Starter.__on_change_profile): Implemented switching
        profiles on the fly.

        * config/GConfBackend.py: Removed obsolete methods.

        * config/ConfigManager.py (ConfigManager.__on_observe_backend): Fixed
        off-by-one bug.

        * main/admin.py (get_profiles): Added support for user profiles.

        * config/GConfBackend.py: Bug fixes.

        * config/ConfigManager.py: Bug fixes.

        * config/migration.py (check_for_profiles): Bug fix.

2003-12-09  Martin Grimme  <martin@pycage.de>

        * factory/DisplayFactory.py (DisplayFactory.startElement): Added
        support for user profiles.

        * sensor/Sensor.py: Added support for user profiles.

        * config/Makefile.am (install_DATA): Added migration.py.

        * config/DummyBackend.py (DummyBackend.clear): Changed to the new
        signature.

        * config/GConfBackend.py (GConfBackend.clear): Does no longer clear the
        children of the given path, because the ConfigManager takes care of
        recursions.

        * config/ConfigManager.py (ConfigManager.clear): Made clear() work
        recursively. It takes a list as argument now.

        * config/GConfBackend.py (GConfBackend.list): Fixed bug where list()
        did not return entries.

        * config/settings.py (profile): Added profile setting.

        * tools/Makefile.am (gdesklets_display_thumbnailer_LDFLAGS): Bug fix
        in Makefile.am.

2003-12-07  Martin Grimme  <martin@pycage.de>

        * desktop/__init__.py (get_wallpaper_id): Added proposed bugfix for
        bug #126764 (missing transparency on GTK 2.3).

2003-12-04  Iñaki Larrañaga  <dooteo@euskalgnu.org>

        * configure.in (ALL_LINGUAS): Added 'eu' (Basque).

2003-12-04  Žygimantas Beručka  <uid0@tuxfamily.org>

        * configure.in (ALL_LINGUAS): Added "lt" (Lithuanian).

2003-11-28  Gustavo Maciel Dias Vieira  <gdvieira@zaz.com.br>

        * configure.in: Added pt_BR to ALL_LINGUAS.

2003-11-26  Jordi Mallach  <jordi@sindominio.net>

        * configure.in (ALL_LINGUAS): Added "ca" (Catalan).

2003-11-18  Martin Grimme  <martin@pycage.de>

        * sensor/Sensor.py: Applied the fix by Franz Klammer
        for making threads work on FreeBSD. Thanks Franz! gDesklets can now
        take off on *BSD as well. :)

        * locale/install_locales.py (compile_po): Applied compatibility patch
        for FreeBSD. It doesn't hurt on other systems.

2003-11-16  Martin Grimme  <martin@pycage.de>

        * utils/installer.py (_Archive.extract): Bug fix. The destination
        archive has to exist before extracting.

2003-11-11  Alessio Frusciante  <algol@firenze.linux.it>

        * configure.in: Added "it" (Italian) to ALL_LINGUAS.

2003-11-11  Takeshi AIHANA <aihana@gnome.gr.jp>

        * configure.in: Added 'ja'  into ALL_LINGUAS.

2003-11-10  Martin Grimme  <martin@pycage.de>

        * data/tips: Edited tips.

        * display/TargetImage.py: Fixed image scaling/reloading bug.

        * main/__init__.py (VERSION): Raised version number to 0.24.1.

        * configure.in: Raised version number to 0.24.1.

        * display/TargetImage.py (TargetImage.__init__): Small bug fix for
        image scaling.

2003-11-09  Sebastien Bacher  <seb128@debian.org>

        * tools/Makefile.am:
        Fixed LDADD.

2003-11-09  Martin Grimme  <martin@pycage.de>

        * README: Added libgtop2 to the requirements.

2003-11-08  Martin Grimme  <martin@pycage.de>

        * display/DisplayTarget.py (DisplayTarget.set_position): Bug fix in
        relative positioning.
        (DisplayTarget.get_geometry): Bug fix. It seems to be better to use
        gtk.Widget.get_allocation instead of gtk.Widget.size_request to get
        the size of a widget.
        (DisplayTarget.get_geometry): Reverted the change. It caused trouble.

        * browser/MainWindow.py: Display download dialog before contacting the
        server.

        * data/tips: New tips.

        * browser/CategoryTree.py (CategoryTree.get_selected_path): Bug fix.

        * browser/MainWindow.py (MainWindow.__on_file_drop): Added automatical
        selecting of the installed display after installation.
        (MainWindow.__install_desklet): Avoided code reduplication by adding a
        new method for installing.

        * browser/DisplayList.py (DisplayList.select_display): Added method
        for automatically selecting a display.

        * main/DisplayRepository.py (DisplayRepository.__scan_repository):
        Removed constructing the name from the filename here. It's done
        in MetaData.py now.

        * main/MetaData.py (MetaData.__read_meta): Set the name from the
        filename if none has been specified in the meta tag.

        * browser/Commands.py (Commands.select_display): Added function for
        automatically selecting a display in the GUI.

        * browser/CategoryTree.py (CategoryTree.select_category): Added method
        for automatically selecting a category.

2003-11-07  Martin Grimme  <martin@pycage.de>

        * utils/installer.py (find_displays): Implemented function for getting
        a list of all .display files that were just installed.

2003-11-07  Sebastien Bacher  <seb128@debian.org>

        * tools/gdesklets-display-thumbnailer.c: (main):
        Fixed thumbnailer to work with all the URI types.

2003-11-07  Martin Grimme  <martin@pycage.de>

        * factory/SensorFactory.py (SensorFactory.create_sensor): Print
        stack trace when importing fails.

        * main/__init__.py (VERSION): Raised version number to 0.24.
        (AUTHORS): Added Benoît.

        * configure.in: Raised version number to 0.24.

        * display/TargetGroup.py (TargetGroup.__set_background): Set background
        to be completely transparent when no background image is given.

        * display/TargetImage.py (TargetImage.set_config): Added try..catch
        with stack trace around loading images.

2003-11-05  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.__on_motion): Fixed the evilWM
        "clump bug".

2003-11-04  Martin Grimme  <martin@pycage.de>

        * browser/TipOfTheDay.py (TipOfTheDay.__on_close): Added close button.
        (TipOfTheDay.__init__): Made the close button the default button of
        the dialog.

        * browser/MainWindow.py (MainWindow.__init__): Added menu item for
        Tip of the Day.

        * browser/TipOfTheDay.py (TipOfTheDay.__next_tip): Stripped unwanted
        whitespace off the tip text.
        (TipOfTheDay.__prev_tip): The same here.
        (TipOfTheDay.__init__): Fixed layout of the checkbox.
        Fixed browsing through the tips. The buttons work correctly now.

        * data/Makefile.am (EXTRA_DIST): Added tips file.

        * browser/MainWindow.py (MainWindow.show_tip_of_the_day): Added method
        for the Tip of the Day.

        * gdesklets-browser (win): Added call for Tip of the Day.

        * browser/MainWindow.py (MainWindow.__download_file): Added progress
        bar dialog for downloading desklets.

        * utils/dialog.py (progress): Implemented progress bar dialog.

        * browser/MainWindow.py (MainWindow.__on_file_drop): Added reloading
        the category tree after installing a new desklet.

        * browser/CategoryTree.py (CategoryTree.set_tree): Bug fix. Clear the
        treestore before setting it.

        * main/DisplayRepository.py (DisplayRepository.reload): Added reload
        method.

        * browser/MainWindow.py (MainWindow.__on_file_drop): Implemented
        drag & drop for files and URLs.

2003-11-03  Martin Grimme  <martin@pycage.de>

        * browser/MainWindow.py (MainWindow.__init__): Added "Go" menu.

        * browser/Commands.py (Commands.open_url): Implemented open_url.

        * browser/MainWindow.py (MainWindow.__on_select_category): The
        DisplayList gets the displays in a sorted order now.

        * main/MetaData.py (MetaData.__cmp__): Implemented comparator method.
        MetaData objects are sortable now.

        * browser/MainWindow.py (MainWindow.__on_action): Merged __on_menu and
        __on_tbar into __on_action.
        Implemented handler for quitting the browser.

        * display/Display.py (Display.__on_motion): Filtered out redundant
        motion events. Thanks to Jesse for finding this CPU hog.

2003-11-02  Martin Grimme  <martin@pycage.de>

        * utils/dialog.py (fileselector): Bug fix.

        * utils/Makefile.am (install_DATA): Added installer.py.

        * browser/Commands.py (Commands.install_desklet): Added function for
        installing desklets.

        * browser/MainWindow.py (MainWindow.f): Added handler for opening
        archives.

        * utils/dialog.py (fileselector): Added file selector dialog.

2003-11-01  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.file_drop): Typo bug fix.

        * utils/ewmh.c: Bug fixes. Remove unset window flags. Now STATE_ABOVE
        works with metacity 2.6.

2003-10-31  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.__init__): Moved the display into an
        EventBox. This is the first step towards making displays embeddable.

        * configure.in: Added check for libgtop.

        * AUTHORS: Added Benoît Dejean to the authors.

        * display/Display.py:
        * display/DisplayTarget.py:
        * display/DataTarget.py:
        * display/TargetAlignment.py:
        * display/TargetArray.py:
        * display/TargetFrame.py:
        * display/TargetGroup.py: Improved get_target_at method to make
        things like
        http://www.iheartny.com/xicons/dockskins.php?page=1&order=downloads
        possible.

2003-10-30  Christian Meyer  <chrisime@gnome-de.org>

        * configure.in: Added 'de_BY' to ALL_LINGUAS.
        * AUTHORS: updated.
        * TODO: likewise.

2003-10-28  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.__on_motion): Added workaround for buggy
        window managers that treat mouse clicks as leave-notify events.
        StarterBar now works on fluxbox.

        * main/CmdLineParser.py (CmdLineParser.parse): Bug fix for getting the
        absolute display path.

2003-10-27  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.set_config): Same change here.

        * display/TargetImage.py (TargetImage.__load_image): Use vfs.join
        instead of os.path.join. Loading images from the web does work now.

        * utils/vfs.py (join): Implemented join method for paths.

2003-10-26  Hasbullah Bin Pit <sebol@ikhlas.com>

        * configure.in: Added 'ms' (Malay) to ALL_LINGUAS.

2003-10-26  Martin Grimme  <martin@pycage.de>

        * display/TargetImage.py (TargetImage.set_config): We get a significant
        performance boost by not re-rendering images when nothing has changed.

2003-10-25  Metin Amiroff  <metin@karegen.com>

        * configure.in: Added az to ALL_LINGUAS.

2003-10-24  Martin Grimme  <martin@pycage.de>

        * main/Starter.py (Starter.__create_display): Fixed the bug that caused
        gDesklets to crash when the user removes the .display file.

        * display/TargetArray.py (TargetArray.set_config): Don't place children
        if length is set to the same value.

        * display/DisplayTarget.py (DisplayTarget.__init__): Removed that CPU
        hog comment. It is fixed now.

        * display/Display.py (Display.__on_observe_sensor): Commented out the
        CPU hog gtk.Widget.queue_draw().

2003-10-21  Martin Grimme  <martin@pycage.de>

        * utils/vfs.py (open): Fixed bug reported by Tero Koskinen.

2003-10-16  Sebastien Bacher  <seb128@debian.org>

        * Makefile.am:
        * configure.in:
        Re-added vfs subdir.
        * vfs/findext.c: (parse_file):
        Now handle multiple categories.

2003-10-14  Martin Grimme  <martin@pycage.de>

        * display/DisplayTarget.py (DisplayTarget.__init__): Located and marked
        CPU hog for future fixing.

        * display/TargetLabel.py (TargetLabel.set_config): Don't redraw label
        if nothing has changed. This decreases CPU load a little.

        * desktop/GlassWindow.py (GlassWindow.set_window_type): Fixed bug where
        an invisible (not yet displayed) window causes high CPU load.

2003-10-12  Martin Grimme  <martin@pycage.de>

        * browser/MainWindow.py (MainWindow.__init__): Added menu.

        * sensor/Menu.py (Menu.__build_menu): Added support for GTK stock
        items.
        (Menu.get_menu): Added method for retrieving the GTK menu.

        * browser/Commands.py (Commands.assemble_ui): Added inserting status
        bar.

        * browser/MainWindow.py (MainWindow.__init__): The main window is a
        gnome.ui.App widget now.
        (MainWindow.__init__): Added status bar.

        * browser/Commands.py (Commands.assemble_ui): Changed to use
        gnome.ui.App.

2003-10-11  Martin Grimme  <martin@pycage.de>

        * display/ContainerTarget.py (ContainerTarget._unregister_child): Made
        this method more robust against buggy desklets.

        * factory/DisplayFactory.py (DisplayFactory.startElement): Stupid
        bugfix.

        * configure.in: The same here. We want at least 1.99.17.

        * README: At least gnome-python and pygtk 1.99.17 is required because
        of the PixbufLoader.

2003-10-11  Sebastien Bacher  <seb128@debian.org>

        * vfs/gdesklets.c: (do_open_directory), (update_display_list),
        (delete_tree), (vfs_module_init), (vfs_module_shutdown):
        Implement tree resfresh.

        * vfs/findext.c: (parse_file):
        * vfs/gdesklets.c: (create_tree):
        Use 'meta name' tag to display the names.

        * vfs/.cvsignore:
        * vfs/Makefile.am:
        * vfs/gDesklets_Component.server.in.in:
        Removed useless entry in nautilus contextual menu.

2003-10-10  Sebastien Bacher  <seb128@debian.org>

        * vfs/findext.c: (parse_file):
        * vfs/findext.h:
        * vfs/gdesklets.c: (do_open), (do_read_directory),
        (do_get_file_info), (create_tree):
        Categories' names are now different from dir names.

2003-10-10  Martin Grimme  <martin@pycage.de>

        * display/TargetArray.py (TargetArray.distribute_sensor_output):
        Removed debugging output.

        * sensor/DefaultSensor.py (DefaultSensor.__init_display): Only set
        initial position if it was stored in the config.

        * display/Display.py (Display.__on_observe_group): Bugfix with initial
        positioning.

2003-10-10  Sebastien Bacher  <seb128@debian.org>

        * vfs/findext.c: (parse_file):
        * vfs/gdesklets.c: (do_open), (do_open_directory),
        (do_read_directory), (do_close_directory), (do_get_file_info),
        (update_display_list), (create_tree):
        Bug fixes.

2003-10-10  Sebastien Bacher  <seb128@debian.org>

        * vfs/findext.c: (parse_file):
        * vfs/findext.h:
        * vfs/gdesklets.c: (change_space), (do_open), (do_open_directory),
        (do_read_directory), (do_get_file_info), (update_display_list),
        (create_tree), (vfs_module_init):
        Rewrite the dir browsing code to use a tree instead of a list.

2003-10-09  Martin Grimme  <martin@pycage.de>

        * sensor/Sensor.py (Sensor._duplicate_display): Converted this method
        from public to protected and renamed it to _duplicate_display.

        * display/Display.py (Display.__on_observe_sensor): Added code for
        duplicating a running display.

        * sensor/Sensor.py (Sensor._get_id): Added method for retrieving the
        ID.
        (Sensor.set_id): Added method for setting the ID.
        (Sensor.duplicate): Changed to notify the observer.

        * factory/DisplayFactory.py (DisplayFactory.startElement): Added
        telling the sensor about its ID.

        * utils/Makefile.am (install_DATA): Added actionparser.py.

        * sensor/DefaultSensor.py (DefaultSensor.call_action): Added "exec"
        function for executing shell commands.

        * display/Display.py: Adapted to work with the new action string
        parser.

        * display/DisplayTarget.py (DisplayTarget.__init__): Action strings are
        no longer treated as lists.

        * display/DataTarget.py (DataTarget.set_action_call): Changed to use
        the new parser for action strings.

2003-10-08  Jesse Andrews  <jesse@uky.edu>

        * sensor/Sensor.py: added a function (duplicate) for a sensor to create
        a new copy of the display that is using that sensor

2003-10-08  Martin Grimme  <martin@pycage.de>

        * sensor/DefaultSensor.py (DefaultSensor.call_action): Added "open"
        function.

        * display/Display.py: Changed to use the DEFAULT_SENSOR constant.

        * factory/DisplayFactory.py: Changed to use the DEFAULT_SENSOR
        constant.

        * main/__init__.py (DEFAULT_SENSOR): Added constant for the id of the
        default sensor.

        * display/Display.py (Display.__get_sensor): Made this method return
        None when the sensor could not be found.
        (Display.__call_sensor): Use the default sensor if no sensor has been
        specified.

        * main/Starter.py (Starter.__remove_display): Added explicit garbage
        collection.

        * display/Display.py (Display.remove_display): Call delete method
        instead of _forget_parent.

        * display/ContainerTarget.py (ContainerTarget.delete): The same here.

        * display/DataTarget.py (DataTarget.delete): Changed method name
        _forget_parent to delete, because it is the destructor now. We must not
        use the destructor __del__ with PyGTK.

        * factory/DisplayFactory.py (DisplayFactory.create_display): Let go of
        the display after setting it up, i.e. drop its reference.
        (DisplayFactory.create_display): Added stacktrace output in the case of
        an error.

        * config/DummyBackend.py (DummyBackend.__on_watch): Bugfix.

2003-10-07  Martin Grimme  <martin@pycage.de>

        * sensor/Sensor.py (Sensor.stop): Remove config watcher handler.

        * config/ConfigManager.py (ConfigManager.__on_observe_backend): Removed
        old caching code.
        (ConfigManager.watch): The ConfigManagers takes care of watch handlers
        now.
        (ConfigManager.remove_watcher): Added method for removing watch
        handlers.

        * display/Display.py (Display.remove_display): Drop observers.

        * display/DataTarget.py (DataTarget._forget_parent): Drop observers.

        * utils/Observable.py (Observable.drop_observers): Added convenience
        method for dropping all observers at once.

        * display/Display.py (Display.set_config): Added VFS support for window
        shape files.
        (Display.remove_display): Remove observers at this stage.

2003-10-06  Martin Grimme  <martin@pycage.de>

        * display/TargetImage.py (TargetImage.__load_image): Fixed image
        scaling bug (#123587).

        * display/Display.py (Display.__call_sensor): Disabled Jesse's fix.
        I consider it wrong and we have to figure out where the redundant
        motion events come from.

        * main/__init__.py (VERSION): Raised version number to 0.23.

        * configure.in: Raised version number to 0.23.

        * README: Updated to reflect the current version.

2003-10-05  Jesse <jesse@uky.edu> and Chris <chrisime@gnome-de.org>

        * browser/DisplayList.py: try loading the default preview
        image if loading the preview specified in the .display fails

        * factory/SensorFactory.py, factory/DisplayFactory.py:
        removed crufty code

        * display/Display.py: Modify __call_sensor so that redundant
        mouse motion calls are filtered out.  ( maybe we should figure
        out where they were coming from in the first place? )

2003-10-05  Martin Grimme  <martin@pycage.de>

        * AUTHORS: Added Sebastien.

        * data/gdesklets.applications: Set vfs and expects_uris to true.

        * display/Display.py (Display.__init__): Added VFS support.

        * main/admin.py (get_displays): Changed separator ":" to "::" for VFS
        support. We cannot use ":" anymore because it clashes with VFS URIs.
        (_set_displays): Same change here.

        * main/CmdLineParser.py (CmdLineParser.parse): Added VFS support.

        * main/admin.py: Added VFS support.

        * main/Starter.py (Starter.__create_display): Added VFS support.

        * display/TargetGroup.py (TargetGroup.__set_background): Added VFS
        support.

        * display/TargetImage.py (TargetImage.__load_image): Added VFS support.

        * utils/Makefile.am (install_DATA): Added vfs.py.

2003-10-04  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.__call_sensor): Print a traceback when
        the sensor crashes here.

        * config/DummyBackend.py (DummyBackend.set): Bugfix in the notification
        of config changes.

        * display/Display.py (Display.__on_scroll): Implemented handler for
        rolling the mouse wheel.

        * display/DisplayTarget.py (DisplayTarget.set_config): Added on-scroll.

        * config/Makefile.am (install_DATA): Added DummyBackend.py and
        settings.py.

        * main/CmdLineParser.py (CmdLineParser.parse): Don't exit in no-conf
        mode after adding displays.

        * config/settings.py: Added module for storing application settings.

        * config/ConfigManager.py (ConfigManager.__init__): Use dummy backend
        when we don't want to use the config.

        * main/CmdLineParser.py (CmdLineParser.parse): Added switch for not
        using the configuration.

        * config/DummyBackend.py: Implemented dummy backend for storing
        configuration in memory.

        * config/ConfigManager.py (ConfigManager.__init__): Added dummy
        backend.

        * main/__init__.py (AUTHORS): Added Sebastien.

        * display/TargetCanvas.py (TargetCanvas.__draw): Fixed rectangle
        function.

2003-10-03  Sebastien Bacher  <seb128@debian.org>

        * tools/gdesklets-display-thumbnailer.c: (main):
        * vfs/gdesklets.c: (do_open), (do_file_control):
        Added support for relative preview paths.

2003-10-02  Martin Grimme  <martin@pycage.de>

        * main/__init__.py (PURGE_KEY): Added name constant for the purge key.

        * main/Starter.py (Starter.__purge_config): Implemented removing of
        paths marked for purging.

        * sensor/Sensor.py (Sensor._set_paths_to_purge): New method for
        settings paths to remove for cleaning up.

        * display/Display.py (Display.__init__): The window-flags "sticky" and
        "below" are default now.

2003-10-01  Sebastien Bacher  <seb128@debian.org>

        * Makefile.am:
        * configure.in:
        Added new tools dir.
        * data/Makefile.am:
        * data/gdesklets-display-thumbnail.schemas.in:
        Added a schema file for the thumbnailer.
        * tools/Makefile.am:
        * tools/gdesklets-display-thumbnailer.c: (main), (xml_open_tag):
        Added a thumbnailer for the display's files.
        * vfs/gdesklets.c: (do_read), (do_seek), (do_tell),
        (do_read_directory), (do_close):
        Bug fixes.

2003-10-01  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.__on_motion): Fixed fluxbox/windowmaker
        window-moves-on-hover bug. These WMs draw an ugly thin frame around
        decorationless windows and we have to read the position of the
        GdkWindow without any decorations instead of the GtkWindow's position.

        * main/__init__.py (ICON): No longer exit when pygtk.py could not be
        found. Some distros seem to only have it when you have installed
        pygtk 0.66.x as well.

        * configure.in: Added ko.

2003-10-01  Sebastien Bacher  <seb128@debian.org>

        * configure.in:
        Added vfs/Makefile.

2003-09-30  Sebastien Bacher  <seb128@debian.org>

        * vfs/findext.[ch]: (parse_file), (xml_open_tag):
        Added <meta> tag parser for the displays files.
        * vfs/gdesklets.c: (do_open), (do_read), (do_open_directory),
        (do_read_directory), (do_get_file_info), (update_display_list),
        (vfs_module_init):
        Reverted to the virtual .desktop changes.
        Use <meta>/name attribute for displays' names.

2003-09-29  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.set_config): Implemented window shapes
        for arbitrary window shapes.

2003-09-28  Martin Grimme  <martin@pycage.de>

        * configure.in: Raised version number to 0.22.1.

        * main/__init__.py (VERSION): Raised version number to 0.22.1.

        * display/Display.py (Display.__init__): Set window type to DOCK here
        because sawfish ignores later calls.

        * main/__init__.py (DISPLAYPATHS): Added display repository paths.
        Disabled Python 2.3 check.

2003-09-27  Martin Grimme  <martin@pycage.de>

        * display/Display.py (Display.file_drop): Search for DnD targets by
        beginning at the leaves of the tree.

2003-09-26  Christian Neumair  <chris@gnome-de.org>

        * gdesklets-core.pc.in: Removed dependencies. Thanks to Nicos Panayides
        for pointing this out (Debian, #208621). Added coredir variable.

2003-09-24  Martin Grimme  <martin@pycage.de>

        * display/TargetArray.py (TargetArray.get_target_at): The same fix
        here.

        * display/DisplayTarget.py (DisplayTarget.get_target_at): The same fix
        here.

        * display/TargetGroup.py (TargetGroup.get_target_at): Fixed anchor
        event detection bug reported by Martin Klaffenboeck.

2003-09-23  Martin Grimme  <martin@pycage.de>

        * gdesklets (gc_collect): Removed changing the working directory before
        parsing the command line. This fixes the abs path bug for display
        files (#122993).

        * main/CmdLineParser.py (CmdLineParser.parse): Fixed bug with absolute
        display file path.

2003-09-21  Martin Grimme  <martin@pycage.de>

        * factory/DisplayFactory.py (DisplayFactory.startElement): Added
        handler for the new <meta> tag. Just ignore the tag for now.

        * display/TargetImage.py (TargetImage.__render_image): Fixed scaling
        bug.

        * sensor/SensorConfigurator.py (SensorConfigurator.on_ok): Tooltips
        were broken for the file selection entry. Fixed it.

        * desktop/__init__.py (get_wallcolor): Removed client.add_dir. It's
        not needed for just retrieving one GConf value.

2003-09-21  Sebastien Bacher  <seb128@debian.org>

        * vfs/gdesklets.c: (do_open), (do_read), (do_open_directory),
        (do_read_directory), (do_get_file_info):
        Switched type to virtual desktop files.
        Now the opening works without changing the client ;-).

2003-09-20  Martin Grimme  <martin@pycage.de>

        * main/__init__.py (VERSION): Raised version number to 0.22.

        * configure.in: Raised version number to 0.22.

2003-09-20  Sebastien Bacher  <seb128@debian.org>

        * vfs/gdesklets.c: (do_open_directory), (update_display_list),
        (vfs_module_init): Now the refresh works.

2003-09-20  Sebastien Bacher  <seb128@debian.org>

        * vfs/Makefile.am:
        * vfs/desklets-method.conf:
        * vfs/gdesklets-method.conf:
        * vfs/gDesklets_Component.server.in.in:
        Changed gdesklets:/// to desklets:///

        * vfs/findext.c: (scan_dir):
        Added "/" to the end of dir paths
        * vfs/gdesklets.c: (do_close_directory), (vfs_module_init):
        Check if the dirs exist.
        Fixed some bugs.
        Use DATADIR for the scan path.

2003-09-19  Sebastien Bacher  <seb128@debian.org>

        * vfs/gdesklets.c: Changed header.
        * vfs/scripts/cat-vfs:
        * vfs/scripts/ls-vfs:
        Added python scripts to test the vfs module.

2003-09-19  Martin Grimme  <martin@pycage.de>

        * utils/Makefile.am (install_DATA): Added GConfWatcher.py.

        * utils/__init__.py: Added GConfWatcher.

        * main/admin.py (get_geometry): Added function for retrieving the
        geometry of a display.
        (set_position): Added function for positioning a display.

        * display/TargetLabel.py (TargetLabel.set_config): Fixed or at least
        worked around bug #122501 (cropped labels). This seems to be a bug in
        GTK or Pango actually since earlier versions didn't show this behavior.

2003-09-18  Martin Grimme  <martin@pycage.de>

        * sensor/DefaultSensor.py: Fixed watching config values.

        * main/Starter.py (Starter.__create_display): Bug fix. We have to use
        the admin functions now.

        * config/GConfBackend.py (GConfBackend.watch): Empty parts of the path
        are being ignored now.

        * sensor/Sensor.py (Sensor.__on_watch_config): Added callback method
        for watching the config.
        (Sensor._watch_config): Changed argument list. We now set a watcher for
        watching all config values.

        * config/GConfBackend.py (GConfBackend.__on_watch): Bugfix. We have to
        check whether entry.get_value() is None.

        * factory/DisplayFactory.py (DisplayFactory.startElement): Use
        set_config_id instead of set_config_manager.

        * sensor/Sensor.py (Sensor.set_config_id): Changed set_config_manager
        to set_config_id. The ConfigManager is a singleton and can be created
        directly in the sensor.

2003-09-17  Jesse Andrews  <jesse@uky.edu>

    * main/CmdLineParser.py: didn't work with relative paths, fix
    was to calculate the abspath before sending it to be added

2003-09-17  Martin Grimme  <martin@pycage.de>

        * main/Makefile.am (install_DATA): Replaced add_display.py with
        CmdLineParser.py.

        * gdesklets: Use a command line parser instead of simply running the
        deprecated add_display.py.

        * display/TargetGroup.py (TargetGroup.__set_background): Made this
        method more robust.

        * config/GConfBackend.py (GConfBackend.__on_watch): Ignore non-existing
        entries (those that were just deleted).

        * sensor/Sensor.py (Sensor.stop): Added method for executing shutdown
        tasks.
        (Sensor.stop): Call the shutdown method when the sensor gets stopped.

        * display/Display.py (Display.__on_observe_group): Only move window
        when the window is not in drag mode.

        * sensor/DefaultSensor.py (DefaultSensor.__on_move): Implemented
        watching position configuration changes in the config.

        * sensor/Sensor.py (Sensor._watch_config): Added method for settings
        callbacks for config changes.

2003-09-16  Martin Grimme  <martin@pycage.de>

        * display/TargetArray.py (TargetArray.get_target_at): Fixed bug in
        get_target_at. The wrong coordinates were checked.

        * display/Display.py (Display.file_drop): Added x, y to the values sent
        to the sensor.
        (Display.file_drop): Make use of get_target_at to find the path and
        target. This goes well with the rest of the event handling and looks
        cleaner.

        * display/DisplayTarget.py (DisplayTarget.__on_file_drop): Adjusted
        to use the new semantics of "get_display", which now returns the
        display window instead of the propagator.
        (DisplayTarget.__on_file_drop): Added x, y to the values sent to the
        sensor.

        * display/TargetArray.py (TargetArray.__add_child): Made the array give
        its children the display window instead of "self".

        * display/DataTarget.py (DataTarget.set_config): We no longer call
        add_mapping on the display but on the propagator.

        * display/TargetArray.py (TargetArray.add_mapping): We no longer call
        add_mapping recursively on the display but on the propagator.

        * display/DataTarget.py (DataTarget._get_propagator): Added method
        "get_propagator" for retrieving the sensor watch propagator of a
        target. The propagator is either the display window or an array.

        * display/DisplayTarget.py (DisplayTarget.__on_file_drop): Renamed
        method "file_drop" and made it private.

2003-09-16  Sebastien Bacher  <seb128@debian.org>

        * configure.in:
        * vfs/.cvsignore:
        * vfs/Makefile.am:
        * vfs/findext.c:
        * vfs/findext.h:
        * vfs/gDesklets_Component.server.in.in:
        * vfs/gdesklets-method.conf:
        * vfs/gdesklets.c:
        First version a desklets:/// vfs module. Only list the displays for the
        moment, the gdesklets client part need to be adapted for opening files.

2003-09-15  Fatih Demir <kabalak@gtranslator.org>

        * configure.in: Added "tr" (Turkish) to the languages' list.

2003-09-15  Martin Grimme  <martin@pycage.de>

        * doc/Makefile.am (doc): Added rule "doc" for "synopsis" source code
        documentation tool.

        * display/Display.py (Display.__on_motion): Implemented saving the
        "real" window coordinates.

        * sensor/DefaultSensor.py (DefaultSensor.call_action): Implemented
        saving the "real" window coordinates.

2003-09-14  Martin Grimme  <martin@pycage.de>

        * main/Makefile.am (install_DATA): Added admin.py.

2003-09-14  Jesse Andrews    <jesse@uky.edu>

    * display/*  Added DND (drag-n-drop) functionality to Displays
    * display/*  Added ability for a sensor to register a callback to occur
      when a configurator is closed.

2003-09-14  Christian Meyer  <chrisime@gnome-de.org>

    * config/ConfigManager.py: Added missing comments for functions.
    * config/GConfBackend.py: Likewise.
    * desktop/GlassWindow.py: (set_transparency_mode) Takes now width and
    height. This function was never used and it comes really handy for my
    special purpose at the moment. The function could be removed if I find
    another way to set toggle the transparency if a display is broken.
    * factory/DisplayFactory.py: (create_display) Set the transparency to
    none. It now shows in the title bar which display is broken.
    * factory/SensorFactory.py: (create_sensor) Added a SUGGESTION on how to
    check the sensorpath.
    * utils/*: Likewise.

2003-09-13  Christian Meyer <chrisime@gnome-de.org>

    * main/__init__.py: Added missing comments for functions.
    * main/Starter.py: Likewise.

2003-09-14  Martin Grimme  <martin@pycage.de>

    * config/ConfigManager.py (ConfigManager.list): Implemented method to
    list all dirs of a path.

    * config/GConfBackend.py (GConfBackend.list): Implemented method to
    list all dirs of a path.

    * sensor/Sensor.py (Sensor.stop): Removed purging config. It will be
    done elsewhere.

    * display/Display.py (Display.remove_display): Adjusted class to work
    with the new admin module.

    * main/Starter.py: Adjusted class to use the new admin module for
    display operations.

2003-09-12  Martin Grimme  <martin@pycage.de>

    * autogen.sh (ACLOCAL_FLAGS): Fixed ACLOCAL_FLAGS.

    * utils/ewmh.i: Fixed include path for pygtk.h.

    * main/add_display.py (new_id): Fixed bug that allowed commas on some
    systems get into unique ID strings.

    * display/DisplayTarget.py (DisplayTarget.set_position): Fixed bug
    #121737 (relative-to + anchor).

    * configure.in: Raised version number to 0.21.2.

    * main/__init__.py (VERSION): Raised version number to 0.21.2.

    * display/Display.py (Display.__on_observe_group): Delayed show() of
    window so that it doesn't become visible before it's position has been
    set.

    * display/ContainerTarget.py (ContainerTarget.collapse_siblings): Only
    collapse visible siblings to avoid that invisible targets become
    visible.

    * display/TargetFrame.py (TargetFrame.__init__): Reverted default size
    100% for the <frame>. Default size is unset again.

2003-09-11  Martin Grimme  <martin@pycage.de>

    * display/DisplayTarget.py (DisplayTarget.__init__): Reverted (-1, -1)
    change from yesterday. It breaks displays.

    * main/__init__.py (VERSION): Raised version to 0.21.1.

    * configure.in: Raised version to 0.21.1.

    * desktop/GlassWindow.py (GlassWindow.set_window_type): Removed the
    code that reads the xid property of the GdkWindow. Old versions of
    PyGTK2 don't have this. We are passing the GdkWindow directly down to C
    level instead.

    * utils/ewmh.i: Changed functions to accept a GdkWindow*. Implemented
    a SWIG typemap for GdkWindow*.

    * utils/ewmh.c: Changed functions to accept a GdkWindow*.

2003-09-10  Martin Grimme  <martin@pycage.de>

    * autogen.sh (ACLOCAL_FLAGS): Was broken. Changed "-I macros" to
    "-I $srcdir/macros". autogen.sh works now.

    * configure.in: Added libdesklets.

    * Makefile.am (SUBDIRS): Added libdesklets.

    * display/DisplayTarget.py (DisplayTarget.__init__): Set initial coords
    to (-1, -1) to indicate that it's unset. This fixes the bug that
    display windows become visible before they have been moved to their
    location.

2003-09-09  Laurent Dhima  <laurenti@alblinux.net>

    * configure.in: Added "sq" to ALL_LINGUAS.

2003-09-09  Sebastien Bacher  <seb128@debian.org>

    * doc/man/gdesklets.1: Updated manpage for the next release.

2003-09-09  Martin Grimme  <martin@pycage.de>

    * display/Display.py (Display.__open_configurator): Fixed bug where
    color and font dialogs appeared behind the config dialog.

    * NEWS: Updated for 0.21.

    * README: Listed Sebastien in the Thanks section. :)
    Added new section Community and removed the pointer to the SourceForge
    page (we're no longer there).

    * configure.in: Raised version number to 0.21.

    * main/__init__.py (VERSION): Raised version number to 0.21.

2003-09-09  Duarte Loreto <happyguy_pt@hotmail.com>

    * configure.in: Added Portuguese (pt) to ALL_LINGUAS.

2003-09-08  Martin Grimme  <martin@pycage.de>

    * sensor/DefaultSensor.py (DefaultSensor.call_action): Implemented
    storing size values in the configuration since this was requested.

    * display/Display.py (Display.__on_observe_group): Implemented storing
    size values in the configuration since this was requested.

    * display/TargetCanvas.py (TargetCanvas.__draw): Added code for dynamic
    resizing.

    * display/TargetFrame.py (TargetFrame.__init__): Made 100% the default
    size for the frame.

    * display/TargetHTML.py (TargetHTML.set_config): Added property for
    scrollbars policy.

    * display/Display.py (Display.__on_configure): Added code for detecting
    manual resizing of display windows.

    * display/ContainerTarget.py (ContainerTarget._get_child): Return None
    when the container has no children instead of crashing.

2003-09-08  Christian Neumair  <chris@gnome-de.org>

    * macros/python-include.m4: Added. Thanks to Alexandre Duret-Lutz.
    * Makefile.am (SUBDIRS): Added missing files.
    * autogen.sh (ACLOCAL_FLAGS): Added.
    * configure.in: Use new macro to determine Python's include dir.

2003-09-07  Christian Neumair  <chris@gnome-de.org>

    * configure.in: Added AC_DISABLE_STATIC macro. We don't need static
    libraries.

2003-09-07  Martin Grimme  <martin@pycage.de>

    * display/Display.py (Display.__remove_display): Made sure that sensors
    get deleted when a display is being removed.

    * main/__init__.py (SENSORPATHS): Fixed bug #121515 (loading order).

2003-09-07  Martin Grimme  <martin@pycage.de>

    * desktop/GlassWindow.py: Import _ewmh instead of ewmh now because of
    SWIG-1.3.
    (GlassWindow.set_window_type): Some window flags may only be set on
    visible windows. Implemented delaying of these actions.

    * utils/Makefile.am (_ewmhmodule_la_LDFLAGS): Switched to SWIG-1.3
    syntax. The name of the .so has to start with an underscore.

2003-09-07  Christian Neumair  <chris@gnome-de.org>

    * Sensors/Makefile.am, Sensors/External/Makefile.am,
      Sensors/Makefile.am, doc/Makefile.am, doc/man/Makefile.am: Added.

    * utils/Makefile.am: Slight formatting fixes.

    * configure.in: (AC_OUTPUT): Added missing Makefiles.

2003-09-07  Christian Meyer <chris@gnome-de.org>

        * AUTHORS: Added missing authors.
        * TODO: Updated to reflect current thoughts/ideas.

2003-09-06  Martin Grimme  <martin@pycage.de>

    * desktop/__init__.py (get_wallpaper): Implemented check to see if
    gtk.gdk.gdk_pixmap_foreign_new exists. The PyGTK API has changed and
    the function is now called gtk.gdk.pixmap_foreign_new.
    Thanks to mxpxpod for his help.

    * README: Revised README to reflect the latest version.

    * Sensors/External/__init__.py: Moved External sensor into the core.

    * factory/SensorFactory.py (SensorFactory.create_sensor): Remember the
      absolute sensor path for reloading sensor modules.

    * Sensors/FontSelector/__init__.py: Imported Psi's FontSelector sensor
      into the core. Adjusted code style and made improvements.

    * display/TargetPlotter.py (TargetPlotter.__plot): Implemented
      auto-scaling.
    (TargetPlotter.__plot): Enabled transparent background for bg-color="".

2003-09-06  Sebastien Bacher  <seb128@debian.org>

    * doc/gdesklets.1: Added a manpage.

2003-09-06  Danilo Šegan  <dsegan@gmx.net>

    * configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.

2003-09-05  Christian Neumair  <chris@gnome-de.org>

    * data/Makefile.am: Use $(PYTHON) for python binary.
    * utils/Makefile.am: Add new target to generate ewmh_wrap.c.
    * configure.in: Add python checks.

2003-09-05  Christian Neumair  <chris@gnome-de.org>

    * utils/Makefile.am: Add ewmhmodule.
    * configure.in: (GDESKLETS_CORE_REQS): Added GTK and GDK.

2003-09-05  Martin Grimme  <martin@pycage.de>

    * display/Display.py (Display.__init__): Removed old and unreliable
    SKIP_TASKBAR and SKIP_PAGER code. It's no longer needed.

    * desktop/GlassWindow.py (GlassWindow.set_window_type): Added module
    ewmh for better handling of "above" and "below". The desklets no longer
    appear in the Alt+Tab menu of metacity, and even stay visible when you
    enter "show desktop" mode.

    * display/targetregistry.py (no_ids): The application no longer crashes
    when a target cannot be imported.

    * display/TargetHTML.py (TargetHTML.__init__): Implemented URIs and
    clicking on links.

    * display/TargetImage.py (TargetImage.__load_image): Uses the .display
    path to find the file.

    * display/TargetGroup.py (TargetGroup.__set_background): Uses the
    .display path to find the file.

    * factory/DisplayFactory.py (DisplayFactory.__create_settings): Removed
    the abspath hack. :)

    * display/Display.py (Display.get_path): Added method for retrieving
    the path of the .display file.

    * display/DataTarget.py (DataTarget._get_path): Added method for
    retrieving the path of the .display file.

2003-09-04  Christian Rose  <menthos@menthos.com>

    * configure.in: Added "sv" to ALL_LINGUAS.

2003-09-04  Christian Neumair  <chris@gnome-de.org>

    * autogen.sh: Use GNOME's autogen.sh instead of custom implementation.

2003-09-04  Sebastien Bacher  <seb128@debian.org>

    * display/TargetLabel.py (set_config): Added a test to avoid utf-8
    string breakage.

2003-09-04  Martin Grimme  <martin@pycage.de>

    * sensor/SensorConfigurator.py (SensorConfigurator.add_color_selector):
    Removed set_title. It's not needed after gnome.program_init.
    (SensorConfigurator.add_font_selector): Removed set_title and
    set_preview_text. They're not needed after gnome.program_init.

    * config/GConfBackend.py (GConfBackend.__init__): Located and fixed
    bug #120642. Now gnome.program_init seems to work without flaws.
    We don't have to watch the complete GConf tree, of course. :)

2003-09-04  Christian Neumair  <chris@gnome-de.org>

    * display/Makefile.am (install_DATA): Added some missing files.

2003-09-03  Martin Grimme  <martin@pycage.de>

    * desktop/GlassWindow.py (GlassWindow.__display_bg): Increased
    performance. The garbage collector is not run every time.

2003-09-03  Christian Meyer <chrisime@gnome-de.org>

    * display/TargetFrame (set_config): Implemented porperties which don't
    seem to work right now ;-)

2003-09-03  Martin Grimme  <martin@pycage.de>

    * sensor/Sensor.py (Sensor._get_config_id): Added protected method for
    retrieving the unique config ID of the sensor. Might be useful
    sometimes.
    (Sensor._get_path): Added protected method for retrieving the path of
    the sensor. This is useful because os.getcwd returns the correct path
    only during initialization.

    * desktop/GlassWindow.py (GlassWindow.__display_bg): Implemented the
    proposed work-around for the memory leak bug #110261 of pygtk: run the
    garbage collector manually after the leaking function.

    * desktop/GlassWindow.py (GlassWindow.__display_bg): Fixed memory leak.

    * factory/DisplayFactory.py (DisplayFactory.create_display): 'watch'
    can now be used in the <display> tag as well. The DisplayFactory no
    longer overrides previous 'watch' settings.

    * display/DisplayTarget.py (DisplayTarget.__init__): Fixed the bug Psi
    reported which caused window resizing to fail after one size value has
    been set in the .display file.

    * utils/pwstore.py (_create_store): Fixed large int bug reported by
    Psi that made pwstore fail on Python 2.2.

2003-09-02  Martin Grimme  <martin@pycage.de>

    * display/TargetPlotter.py (TargetPlotter.__init__): Added plotter
    target.

    * display/TargetFrame.py (TargetFrame.__init__): Added target for
    putting frames around a target.

    * display/Display.py (Display.__on_close): The window close action
    properly removes the display now.

2003-09-01  Martin Grimme  <martin@pycage.de>

    * display/TargetImage.py (TargetImage.__render_image): Added explicit
    size option for images.

2003-08-31  Martin Grimme  <martin@pycage.de>

    * display/Makefile.am (install_DATA): Added TargetHTML.py.

    * display/targetregistry.py (_REGISTRY): Added HTML display target.

    * configure.in: Added es to ALL_LINGUAS.

    * README: Updated README.

2003-08-30  Martin Grimme  <martin@pycage.de>

    * display/DisplayTarget.py (DisplayTarget.set_position): Restricted
    the coordinates for percentual values to make sure that children
    with percentual coordinates cannot stretch their parents.

    * display/ContainerTarget.py (ContainerTarget.collapse_siblings):
    Made this method check for percentual coord values as well.

    * display/DisplayTarget.py (DisplayTarget.get_percentual_state):
    Extended this method to return the coordinates states as well.

2003-08-29  Martin Grimme  <martin@pycage.de>

    * configure.in: Raised version number to 0.20.

    * main/__init__.py (VERSION): Raised version number to 0.20.

2003-08-28  Martin Grimme  <martin@pycage.de>

    * display/DisplayTarget.py (DisplayTarget.set_position): Implemented
    percentual positioning.

    * main/__init__.py: Disabled gnome.program_init again.
    It causes lots of crashes.

2003-08-27  Christian Neumair  <chris@gnome-de.org>

    * data/Makefile.am:

    Finally implemented clean usermode desktop installation.

    * data/gdesklets.keys.in: (icon_filename):
    * data/x-gdesklets-display.png:

    Added cool MIME icon for display files by Johannes Rebhan.

2003-08-27  Martin Grimme  <martin@pycage.de>

    * display/TargetBonoboControl.py (TargetBonoboControl.__init__):
    Added target for embedding Bonobo controls.

    * display/DisplayTarget.py (DisplayTarget.__init__): Enabled percentual
    sizes again.

    * display/ContainerTarget.py (ContainerTarget.collapse_siblings):
    Implemented method for causing children with percentual sizes of a
    container collapse so the container may shrink.

2003-08-26  Martin Grimme  <martin@pycage.de>

    * factory/SensorFactory.py (SensorFactory.create_sensor): Added
    stack trace output when importing a sensor fails. This simplifies
    debugging a lot.

    * main/Starter.py (Starter.__restart_display): Implemented restarting
    displays.

    * display/Display.py (Display.__on_observe_sensor): Added handler for
    restarting the display.

    * sensor/Sensor.py (Sensor._open_menu): Added menu entry and handler
    for "Restart display".

2003-08-25  Christian Neumair  <chris@gnome-de.org>

    * data/gdesklets.desktop.in:

    Added Bugzilla information.

    * data/gdesklets.applications: (name):
    * gdesklets.pc.in: (Name):

    s/gDeskLets/gDesklets/.

2003-08-25  Martin Grimme  <martin@pycage.de>

    * display/DisplayConfigurator.py (DisplayConfigurator.__init__):
    The DisplayConfigurator no longer uses a notebook when there is only
    one page of SensorConfigurators.

    * utils/TypeConverter.py: Added data type TYPE_SECRET_STRING.

    * utils/pwstore.py: Added module for (quite) safely storing password
    data.

2003-08-24  Christian Neumair  <chris@gnome-de.org>

    * config/Makefile.am,
    * desktop/Makefile.am,
    * display/Makefile.am,
    * factory/Makefile.am,
    * main/Makefile.am,
    * po/Makefile.am,
    * sensor/Makefile.am,
    * utils/Makefile.am,
    * Makefile.am: (CLEANFILES):

    Added CLEANFILES.

    * locale/Makefile.am: (uninstall-local), (clean-am):

    Tweaked uninstall-local, added clean-am target.

2003-08-24  Martin Grimme  <martin@pycage.de>

    * main/__init__.py (chldhandler): Don't set the SIGCHLD handler
    blindly after running gnome.program_init. Get the correct handler
    before and set it again after calling gnome.program_init.

    * display/TargetLabel.py (TargetLabel.set_config): Only convert
    non-unicode strings to UTF-8, to avoid bad suprises.

    * display/Display.py (Display.__init__): Skip taskbar and skip pager
    work with sawfish finally.

    * main/__init__.py (VERSION): Raised version number to 0.13.

    * display/TargetArray.py (TargetArray.distribute_sensor_output):
    Fixed bug so that nested arrays work as expected now.

    * desktop/GlassWindow.py (GlassWindow.set_window_type): Implemented
    window-flag "above".

2003-08-23  Martin Grimme  <martin@pycage.de>

    * desktop/GlassWindow.py (GlassWindow.__capture_bg): Removed alpha
    channel from the color values so that Python won't raise a
    FutureWarning.

    * sensor/SensorConfigurator.py (SensorConfigurator.on_ok): Added a
    working file selector. gnome.ui.FileEntry couldn't be used because it
    keeps crashing.
    (SensorConfigurator.add_font_selector): Removed font preview text. This
    is not need after gnome.program_init().
    (SensorConfigurator.add_entry): Added optional password option for the
    entry so that the entered text is replaced by dots.

    * sensor/Sensor.py (Sensor.__on_about): The C locale no longer shows
    "translator_credits" as the translators in the about dialog.

    * display/TargetLabel.py (TargetLabel.set_config): Added unicode
    conversion to the label text.

2003-08-21  Martin Grimme  <martin@pycage.de>

    * sensor/SensorConfigurator.py (SensorConfigurator.__add_line):
    Cosmetical change in the dialog layout. Lines with only one element
    use the whole table width now.

2003-08-20  Martin Grimme  <martin@pycage.de>

    * main/__init__.py: Finally found out how to repair the
    broken gnome.program_init. This is only a workaround. I will discuss
    with James about it.
    We have to reset the handler for SIGCHLD to SIG_DFL.

2003-08-19  Martin Grimme  <martin@pycage.de>

    * main/__init__.py: Added signal handler for SIGINT to quit on Ctrl-C.

2003-08-18  Christian Neumair  <chris@gnome-de.org>

    * data/Makefile.am: (install-data-hook):
    * Makefile.am: (install-data-hook):

    Further build improvements. Thanks to Jason Tackaberry <tack@auc.ca>
    for pointing this out and providing a patch.

2003-08-18  Christian Neumair  <chris@gnome-de.org>

    * autogen.sh:

    Replaced gnome-autogen.sh-dependant script by GTK+'s autogen.sh
    version, tweak it.

    * configure.in:

    Added AC_PROG_LIBTOOL macro.

    * Makefile.am: (AUTOMAKE_OPTIONS):

    Simplified tarball creation process.

    * NEWS:

    Updated.

2003-08-18  Martin Grimme  <martin@pycage.de>

    * gdesklets (gc_collect): Added a regular call for the garbage
    collector. Otherwise, Python would free unused memory rather late.

    * main/__init__.py: Disabled gnome.program_init(). It causes trouble
    (this is a known and unfixed bug of gnome2-python).

    * sensor/SensorConfigurator.py (SensorConfigurator.add_option):
    The option menu got broken some day. Repaired it.


2003-08-18  Christian Neumair  <chris@gnome-de.org>

    * data/Makefile.am: (mime_in_files), (mime_DATA):

    Use intltool rule to generate keys file.

    * locale/Makefile.am: (all-am), (uninstall-local):

    Added some hacky VPATH magic to all-am to satisfy distcheck as well as
    a custom uninstall routine.

    * locale/install_locales.py:

    Revamped. Now allows to specify source/target dir and domain at
    runtime.

    * po/Makefile.am:

    Added.

    * Makefile.am: (SUBDIRS), (EXTRA_DIST):

    Added po to SUBDIRS, removed po wildcard from EXTRA_DIST.

    * NEWS:

    Updated.

    * configure.in: (AC_OUTPUT):

    Added po/Makefile.

2003-08-17  Martin Grimme  <martin@pycage.de>

    * main/__init__.py: Added gnome.program_init(). Thanks to Sebastien
    Bacher for this tip. The about dialog works better now.

2003-08-17  Christian Neumair  <chris@gnome-de.org>

    * config/Makefile.am:
    * desktop/Makefile.am:
    * display/Makefile.am:
    * factory/Makefile.am:
    * locale/Makefile.am:
    * main/Makefile.am:
    * sensor/Makefile.am:
    * utils/Makefile.am:

    Re-hardcode dirname (instead of invoking basename) in order to reduce
    dependencies, use list for install_DATA instead of wildcard to
    re-enable distcheck.

2003-08-17  Christian Neumair  <chris@gnome-de.org>

    * config/Makefile.am: (install-data-hook):
    * desktop/Makefile.am: (install-data-hook):
    * display/Makefile.am: (install-data-hook):
    * factory/Makefile.am: (install-data-hook):
    * locale/Makefile.am: (install-data-hook):
    * main/Makefile.am: (install-data-hook):
    * sensor/Makefile.am: (install-data-hook):
    * utils/Makefile.am: (install-data-hook):
    * Makefile.am: (install-data-hook):

    Removed obsolete hooks, unexisting install dirs are generated
    automagically by autotools.

    * data/Makefile.am: (install-data-hook), (uninstall-local):

    Ditto, added some desktop-helper.py calls and user installation magic.

    * data/desktop-helper.py:

    Added.

    * configure.in:

    Added user installation, i.e. data files are installed only for
    current user.

    * user-install:

    Dropped in favor of data/desktop-helper.py.

2003-08-17  Martin Grimme  <martin@pycage.de>

    * main/__init__.py (VERSION): Raised version number to 0.12.

    * display/DisplayTarget.py (DisplayTarget.__init__): Disabled
    percentual sizes until the problems are fixed.

    * display/TargetGroup.py (TargetGroup.__collapse_bg): Improved handling
    of the group background a little bit.

2003-08-16  Martin Grimme  <martin@pycage.de>

    * sensor/SensorConfigurator.py (SensorConfigurator.add_font_selector):
    Added method for adding font selector.
    (SensorConfigurator.add_color_selector): Added method for adding color
    selector.
    (SensorConfigurator.add_color_selector): Set empty title for the
    GnomeColorPicker to avoid encoding errors.
    (SensorConfigurator.__on_change): Removed alpha channel from the picked
    color. The alpha channel is only valid for GdkPixbuf. It may be
    necessary to provide an extra color picker that has alpha support.

    * display/DisplayTarget.py (DisplayTarget.__on_observe_parent):
    Improved the handling of percentual size values, but there still remain
    some problems.

2003-08-15  Martin Grimme  <martin@pycage.de>

    * factory/DisplayFactory.py (DisplayFactory.__create_settings): Fixed
    bug where relative URIs where used at a point where the working
    directory has changed. Made the URIs absolute.

    * display/DisplayTarget.py (DisplayTarget.__on_observe_parent):
    Implemented percentual values for width and height properties.

    * utils/datatypes.py (TYPE_SIZE): Added size data type for target
    properties.

    * main/__init__.py (_): The (c) does now display correctly in the
    shell.

2003-08-14  Martin Grimme  <martin@pycage.de>

    * display/DisplayTarget.py (DisplayTarget.set_position): Fixed the
    semantics of relative positioning. This was not really a bug, but it's
    better now (more intuitive). Unfortunately, this will break some
    displays... Better now rather than when too many displays rely on it.

2003-08-13  Martin Grimme  <martin@pycage.de>

    * main/__init__.py (VERSION): Raised version number to 0.12pre.

    * display/TargetArray.py (TargetArray.__place_children): Added relative
    positioning to arrays. This allows for array elements with different or
    even dynamically changing size.

    * desktop/GlassWindow.py (GlassWindow.__init__): Popup menus now work
    on XFCE4. Windows with flag "below" now lower themselves on
    focus-in-event and button-press-event (instead of on expose-event).

    * display/TargetCanvas.py (TargetCanvas.__draw): PyGTK 1.99.15 doesn't
    like instantiating GdkColor (it's an abstract class there). Changed
    this to use gdk_color_parse() to create colors.

    * sensor/SensorConfigurator.py (SensorConfigurator.add_title): Gave ""
    as argument to the GtkLabel constructor. Otherwise PyGTK 1.99.15
    crashes.

2003-08-12  Christian Neumair  <chris@gnome-de.org>

    * config/Makefile.am: (install-data-hook):
    * data/Makefile.am: (install-data-hook):
    * desktop/Makefile.am: (install-data-hook):
    * display/Makefile.am: (install-data-hook):
    * factory/Makefile.am: (install-data-hook):
    * locale/Makefile.am: (install-data-hook):
    * main/Makefile.am: (install-data-hook):
    * sensor/Makefile.am: (install-data-hook):
    * utils/Makefile.am: (install-data-hook):
    * Makefile.am: (install-data-hook):

    Some fixes in order to make gDesklets work with Gentoo. Thanks to Ian
    Leitch (port001@w0r.mine.nu) for reporting these issues.

    * NEWS:

    Updated.

2003-08-12  Martin Grimme  <martin@pycage.de>

    * main/__init__.py (VERSION): Raised version number to 0.11. Ready for
    the next release.

2003-08-11  Martin Grimme  <martin@pycage.de>

    * locale/install_locales.py (files): The domain name is now a command
    line argument instead of being extracted from the filename of the
    .pot file.

    * factory/SensorFactory.py: Fixed bug with missing gettext function _.
    It was not imported from main.

    * de.po: Fixed ugly bugs in the German translation file.

    * utils/i18n.py (dummy): gDesklets now survives when gettext is
    unavailable.

2003-08-12  Christian Meyer  <chrisime@gnome-de.org>

    * locale/install_locales.py: Fixed locale stuff. Patch from
    Olivier Blin <olivierblin@club-internet.fr>. The buildsystem should
    work now.

2003-08-11  Christian Neumair  <chris@gnome-de.org>

    * display/DisplayConfigurator.py:
    Made outer spacing HIG-compliant.

2003-08-10  Martin Grimme  <martin@pycage.de>

    * desktop/__init__.py (get_wallcolor): Solid colored backgrounds are
    now captured using the value from GConf. Ported this from gDeskCal.

    * main/__init__.py (VERSION): Raised version number to 0.101.

    * desktop/BGWatcher.py (BGWatcher.__check_bg): Hopefully found a
    workaround for the background updating bug in nautilus. Delay the
    background update for a little amount of time.

    * display/Display.py (Display.__on_observe_sensor): Made the display
    force a redraw after target properties have been set.

    * main/__init__.py (VERSION): Set version number to 0.10.

2003-08-09  Martin Grimme  <martin@pycage.de>

    * README: Revised the README to make sure that it reflects the current
    version.

    * display/TargetArray.py (TargetArray.__remove_child): When a child
    is removed from the array, it also has to be removed from the Hash2D
    data structure. This is now fixed.

    * display/TargetGroup.py (TargetGroup.__tile_background): Corrected
    bug with tiling the background where the group could not get smaller
    than its bg image.

2003-08-09  Christian Meyer  <chrisime@gnome-de.org>

    * README: Added recommended versions.

    * gdesklets: Added encoding header which is necessary for python 2.3.

    * main/__init__.py: Removed special copyright sign until I've figured
    out how to fix it. Use UTF-8 now.
    Warning if python version smaller than 2.3.
    Bumped to version to 0.10rc3.

    * display/TargetLable.py: Fixed implicit cast in __set_font.
    Python 2.3 doesn't like float there anymore; using int now.

2003-08-08  Martin Grimme  <martin@pycage.de>

    * display/Display.py (Display.add_mapping): Removed bug where targets
    receive the same settings more than once at a time.

    * sensor/SensorConfigurator.py (SensorConfigurator.add_spin): Made the
    spin button accept only numerals.

    * display/TargetImage.py (TargetImage.__scale_image): Comparison of
    the old and new scaling values also checks whether the cache is
    empty, so we don't miss necessary updates.

    * display/DisplayTarget.py (DisplayTarget.set_config): Added on-press
    and on-release to the known action of a DisplayTarget.

    * display/Display.py (Display.__on_button): Revised the detection of
    mouse actions. Made a difference between button release and button
    click.

2003-08-07  Christian Meyer  <chrisime@gnome-de.org>

    * core/sensor/SensorConfigurator.py: Removed hardcoded values in
    add_spin().

2003-08-07  Martin Grimme  <martin@pycage.de>

    * main/__init__.py (VERSION): release candidate 2

    * sensor/Sensor.py (Sensor.__on_about): Set the icon of the about
    window to the gDesklets icon.

    * display/Display.py (Display.__on_observe_sensor): Window updates are
    now frozen while the Sensor output is being processed. This hopefully
    results in less flickering.
    (Display.__init__): The displays now have an icon. Alt+Tab in metacity
    always shows the windows regardless of their skip-pager state.

2003-08-06  Martin Grimme  <martin@pycage.de>

    * SensorFactory.py: Added dialog that tells the user which sensor is
    missing or broken.

    * Display.py: Fixed bug which caused wrong window positioning when the
    program is started after login.

2003-08-05  Martin Grimme  <martin@pycage.de>

    * gDesklets: release candidate 1

/* vim: set tabstop=8 noet: */
