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

	* display/Window.py (Window.set_position): Cancel dragging properly.

	* main/__init__.py (VERSION): 
	(COPYRIGHT): Changed long list of names to "The gDesklets Team".

	* configure.in: Raised version number to 0.26.2.

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

	* main/admin.py (get_displays): Fixed typo.
	(get_profile): Don't allow empty profile names.

	* README: Added documentation for the --tray-icon option.

	* main/Starter.py (Starter.__init__): Only use tray icon if the user
	explicitly wishes it.

	* config/settings.py (tray_icon): Added.

	* main/CmdLineParser.py (CmdLineParser.parse): Added --tray-icon
	command line option.

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

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 Benoit Dejean. Threading works
	fine now, thanks Benoit! The broken LTVCandy stuff can be executed
	again!

2004-02-18  Benoit 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  Benoit 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  Benoit 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  Benoit 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 Benoit 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 Benoit 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 Benoit 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 Benoit Dejean.

	* gdesklets: 
	* desktop/GlassWindow.py (GlassWindow.__display_bg): Garbage collection
	patches by Benoit Dejean.

	* display/Window.py (Window.__init__): Bug fix patch (forgot to call
	DisplayContainer constructor) by Benoit 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 Benoit 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. Benoit'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 Benoit Dejean. Thanks again,
	Benoit!

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 Benoit Dejean to get rid of the hex2dec() method. Thanks, Benoit!

	* 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 Benoit.

	* 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 Benoit 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
