2008-03-23  Jussi Judin  <jjudin+audacious@iki.fi>

	* eggdesktopfile.c (egg_desktop_file_new_from_key_file): do not 
	leak the type.

2008-03-15  Dan Winship  <danw@gnome.org>

	* eggsmclient-xsmp.c: Reorganize; we have to call
	gdk_set_sm_client_id() before the application creates any windows
	(you're not allowed to change SM_CLIENT_ID while you have windows
	mapped), which means that to be safe, we have to do it at startup
	time, not after the main loop starts.
	(EggSMClientXSMP): add a waiting_to_set_initial_properties flag.
	(sm_client_xsmp_startup): Move the begining of the old
	sm_client_xsmp_connect to here. Set
	waiting_to_set_initial_properties and set up an idle handler to do
	that.
	(sm_client_xsmp_set_initial_properties): The rest of the old
	sm_client_xsmp_connect.
	(sm_client_xsmp_end_session): XSMP_STATE_START no longer exists,
	but we have to deal with waiting_to_set_initial_properties now.
	(xsmp_save_yourself): Likewise, if this arrives before we get a
	chance to set the initial properties, set them now.

	Based on a patch from Ivan N. Zlatev.

2007-05-02  Dan Winship  <danw@novell.com>

	* egglauncher.c:
	* eggdesktopfile.c: Replace EggLauncher with EggDesktopFile,
	which is more like GnomeDesktopItem, but with a nicer launching
	API.

	* eggsmclient.c (egg_sm_client_register): Gone; apps can use
	egg_set_desktop_file() to set the global desktop file, and
	egg_sm_client_set_mode() to indicate they don't want to be
	restarted.
	(egg_sm_client_set_mode): New, lets an app indicate that it wants
	to not connect to the SM, or that it wants to not be restarted.
	(The common case--wanting to be restarted if the session is
	resumed--is now automatic.)
	(egg_sm_client_get): Update docs and code for those changes.

	* eggsmclient-libgnomeui.c: add more stuff to make it possible to
	set desktop file and EggSMClientMode from gnome_program_new().

	* eggsmclient-win32.c: Remove unused untested "#ifdef VISTA" stuff
	involving state saving. It works in theory, someone else can
	implement it later if we actually end up wanting it to work.

	* eggsmclient-xsmp.c (sm_client_xsmp_connect, save_state): Use
	egg_get_desktop_file() to see if a desktop file has been set for
	the app, and that and egg_sm_client_get_mode() to see what
	restart_style to use.

	* egg-launch.c: update for EggDesktopFile

	* README:
	* gedit.diff: update
	
	* NEWS: add this to make it easier for people to see what has
	changed API-wise when they grab a new source snapshot.

2007-04-02  Dan Winship  <danw@novell.com>

	* eggsmclient.c (egg_sm_client_end_session): Remove the "client"
	argument; eventually this method will not be visibly attached to
	the rest of the sm client API.
	(EggSMClientPrivate, egg_sm_client_get_state_file): oops, fix bugs
	in previous commit

	* egg-session-end.c (main): update

2007-04-02  Dan Winship  <danw@novell.com>

	* eggsmclient.c (egg_sm_client_save_state): Change this signal to
	use a GKeyFile rather than a directory name (and return that to
	the caller).
	(egg_sm_client_get_state_file): replaces get_state_dir, and
	returns a GKeyFile
	(egg_sm_client_get_config_prefix): Kill for now. Maybe will be
	resurrected X11-only later.

	* eggsmclient-xsmp.c (sm_client_xsmp_connect): move some stuff
	here from other places; the caller has to call _register() and/or
	_set_restart_command() before the main loop starts, so they'll
	always have been run before sm_client_xsmp_connect is reached, so
	we can do everything from here.
	(save_state): update to use a GKeyFile for state rather than a
	directory. Merge the app's state into its .desktop file and update
	the Exec key in that combined file using %k to point to itself,
	thus creating a self-contained launcher/saved state.

	* README:
	* gedit.diff: update

2007-03-16  Dan Winship  <danw@novell.com>

	* egglauncher.c (egg_launcher_add_document): use
	g_filename_to_uri() and g_filename_from_uri() rather than rolling
	our own.

	* egglauncher.h: add two missing prototypes

2007-03-04  Dan Winship  <danw@novell.com>

	* eggsmclient-win32.c: Redo this to fix quit_requested handling,
	by listening for WM_QUERYENDSESSION messages in another thread
	that can then block waiting for the main thread to handle it. More
	of #399315.
	(sm_client_win32_end_session): EWX_FORCE means "don't allow
	clients to cancel", not "don't show a logout dialog" (which
	ExitWindowsEx never does), so don't use it to implement the
	request_confirmation flag.

	* Makefile.am: make this work on both unix and windows

	* README: Update. In particular, note that EggSMClientWin32
	requires "-mwindows" and g_thread_init().

	* egg-session-end.c (main): call g_thread_init

	* logout-test.c (main): call g_thread_init, fix window-closed
	handler

	* eggsmclient.c (egg_sm_client_save_state): don't try to compile
	this on Windows. (Temporary workaround)

2007-02-10  Dan Winship  <danw@novell.com>

	* egglauncher.c: New, replaces EggDesktopFile (as a replacement
	for GnomeDesktopItem...)

	* eggdesktopfile.c: gone

	* egg-launch.c: test program

	* eggsmclient-xsmp.c (set_restart_properties): use EggLauncher

2007-02-10  Dan Winship  <danw@novell.com>

	* eggsmclient-win32.c: Make this compile and at least partially
	work (quit_requested doesn't work and probably needs to be
	rewritten using a second thread as suggested in the comments in
	will_quit()). Patch from Yevgen Muntyan, #399315.

	* eggsmclient-xsmp.c: Use gdk_threads_enter/_leave around gtk
	calls and EggSMClient signal emissions. Based on a patch from
	Yevgen Muntyan.

	* Makefile.am:
	* eggsmclient.c (egg_sm_client_get): Change the #defines from
	HAVE_XSMP and HAVE_DBUS to EGG_SM_CLIENT_BACKEND_XSMP and
	EGG_SM_CLIENT_BACKEND_DBUS, to avoid being tricked by the app
	having its own HAVE_DBUS define. Needs to be fixed better though.
	Also change the win32 check from G_OS_WIN32 to
	GDK_WINDOWING_WIN32, since it assumes the win32 gdk backend.

	* logout-test.c: New test program to test logout
	notification/cancellation support (and demonstrate that it doesn't
	really work on Windows).

2007-01-18  Dan Winship  <danw@novell.com>

	* README: add more GnomeClient porting notes based on an email
	exchange with Jani Monoses

