1999-02-16 Felix Bellaby * manager.c (start_client): drop non-session aware clients from memory. * save.c (delete_session): read non-session aware clients from config. (write_session): write non-session aware clients back into config. (set_session_name): record name of current session in config. (read_session): use name of last session run as first fallback. * manager.h: move DEFAULT_SESSION to session.h * session.h: add the additional info needed by session-properties. These changes allow the session-properties capplet to control which non-session aware clients are in the session by editing the config. * session-properties.c: fixed but rendered obsolete by capplet. 1999-02-14 Owen Taylor * manager.c (close_connection): Removed C++ comment. 1999-02-14 Felix Bellaby * manager.c (io_error_handler): NEVER close connections outside gnome-ice.c because the ICElibs sometimes go haywire if you close a connection inside the IceProcessMessages call! (kill_client_connection): redundant and removed. 1999-02-14 Felix Bellaby * manager.c (io_error_handler): do not close connections which have no matching clients as gnome-ice.c does this for us. 1999-02-12 Felix Bellaby * save.c (write_session): write details of clients in the purged_list. (delete_session): do not call discard commands on purged_list clients. (read_one_client): reallocate g_malloc'd strings as malloc'd strings to avoid potential seg faults when they are free'd. * manager.c (update_save_state): clear the purged_list on shutdown so that any remaining purged clients are discarded. 1999-02-11 Felix Bellaby * save.c: Replace "Priority with "_GSM_Priority" throughout. (write_session): write details of clients in the pending_list. * manager.c (close_connection): use start_client on respawned clients so that they are purged when they fail to connect. 1999-02-10 Felix Bellaby * save.c (delete_session): do not call discard commands on clients in the pending_list. * manager.c: export pending_list to save.c 1999-02-09 Felix Bellaby * manager.c (close_connection): restart RestartImmediately clients unless they have failed 10 times in last 2 minutes. * save.c (delete_session): use free_client to free ALL client memory. * manager.h: export free_client and expand Client struct. 1999-02-06 Changwoo Ryu * gsm.desktop: Updated Korean translation. 1999-01-28 Felix Bellaby * default.in: added esd to start up. 1999-01-22 Felix Bellaby * manager.h, manager.c (load_session) : queue session starts. (process_load_request): initialise load bas on priority ordering. (purge): clear slow clients from list of awaited registrations. (start_client) support non-session aware clients as well. (register_client): maximise retention of previous client ids. (update_save_state): startup clients in run level order. * save.c (unlock_session, set_session_name) skeleton for name locking. * main.c (main): new option to set purge-delay during start up. * default.in (accept_connection): new format including runlevels. * ice.c (accept_connection): do not close connection on an error as the gtk_main_loop does this now inside gnome-ice.c. * save-session.c (main): wait until request is acknowledged before dying because gnome-session no longer honours requests from zombies. 1999-01-21 Carsten Schaar * ice.c (initialize_ice): Removed the 'free' call to the argument of 'putenv', because this breaks the setting of the environment variable at least on my libc5 system. Tue Jan 19 Felix Bellaby * manager.c (kill_client_connection): close protocol cleanly. (run_command): run a command for a live client. (start_client): convenience function. (register_client): carry forward properties on restarted clients and send SaveYourselfs to new ones to get their properties. (interact_request): allow multiple requests per client and dispatch them in order, separating requests for each client. (interact_done): wait for SaveDones following a ShutdownCancel to avoid confusing one session save with another. (process_save_request): process a queued save request. (update_save_state): less cryptic replacement for check_session_end which does not close connections (as this often kills clients). (display_reasons): warning dialog. (close_connection): handle RestartImmediately & close cleanly. (new_client): refuse connections during shutdown with reason. (io_error_handler): display warning. * save.c (properties): save SmRestartStyleHint and SmProgram. (read_client): translates config file to SmProperties. (read_clients): recover full client details from config section. (read_session): clone merged session if one is already running (delete_session): pulled all the discard code together. Tue Jan 12 Felix Bellaby * manager.c (send_message): Fixed bug patched over by Jay. Mon Dec 21 Jay Painter * manager.c (send_message): I don't know what it was suppose to do, but now at least it sends messages correctly. Felix needs to look at this. Mon Dec 14 * manager.c (save_yourself_p2_request): only accept one such request per client and check if ready to send the Save Yourself P2 messages. Fri Dec 11 Felix Bellaby * manager.c (send_message): protect against io errors. * manager.c (save_session): protect against io errors. * manager.c (check_session_end): protect against io errors. * manager.c (interact_done): cancel shutdown when a shutdown cancel is sent. Ignore cancels when not shutting down. * manager.c (save_yourself_done): do nothing if a shutdown cancelled has already been sent. Thu Dec 10 Felix Bellaby * save.c (run_commands): fix broken logic on last change. Thu Dec 10 Felix Bellaby * save.c (run_commands): fix some memory leaks. * save.c (run_string_commands): alternate version of above for backwards compatibility with xsm string format discard commands. * save.c (delete_session): run string format discard commands. * save.c (write_one_client): added support for saving string format discard commands. Tue Dec 7 Felix Bellaby * save.c (run_commands): call discard commands on clients that are still in the session IF they have changed their discard commands. [ partial reversion of change on Nov 28 ] * manager.c (check_session_end): write all running SmRestartIfRunning clients even when the Save Yourself only covered a single client. Sat Dec 5 Felix Bellaby * manager.c (save_yourself_request): fix g_assert. 1998-11-29 Herbert Valerio Riedel * session-properties.c (program_remove_cb): added one GPOINTER_TO_INT * manager.[ch] (find_client_by_id): added const to arguments * prop.c: added #include for memcpy-prototype Sat Nov 28 Felix Bellaby * prop.c (find_string_property): fixed problem that created need for "static" patch reverted on Nov 25. * save.c (delete_session): do not call discard command on clients that are still in the session. * save.c (run_commands): do not call commands on clients in either of two lists. * manager.h, manager.c (find_client_by_id): now exported. 1998-11-27 Jay Painter * session-properties.c: big UI cleanup in preperation for moving it into the Gnome Control Center. 1998-11-25 Tom Tromey * save.c (write_one_client): Reverted `static' change of Nov 11. 1998-11-24 Martin Baulig * session-properties.c (setup): Put the GtkCList into a GtkScrolledWindow and use gtk_scrolled_window_set_policy () if using Gtk 1.1.4. * session-properties.c (setup): Set the GtkCList in multiple selection mode to fix this fixme. Wed Nov 11 Felix Bellaby * save.c (write_one_client) change argvs to static variable - temporary fix until real reason for stack corruption is known. Fri Nov 6 Felix Bellaby * save-session.c (options) added missing val item from struct so that save session does not zap session every time. Sun Aug 16 17:47:00 1998 Tom Tromey * main.c (main): Call clean_ice(). (options): New array. (debugging): New global. (parse_an_arg): Recognize --debug. (main): Handle debugging case. * auth.h: Use real function prototypes. * auth.c: Include auth.h and libgnome/libgnome.h. (SetAuthentication): Put .xsm files into ~/.gnome/. Thu Jul 23 21:50:33 1998 Tom Tromey * session-properties.c (session_die): New function. (session_save): New function. (struct info): Added `argv0' element. (setup): Initialize argv0 element of info. Return info structure. (options): New structure. (parse_an_arg): New function. (geometry): New global. (parser): New global. (main): Handle session management and argument parsing. Wed Jul 22 23:11:47 1998 Tom Tromey * session-properties.c (setup): Use GNOME_PAD and GNOME_PAD_SMALL. 1998-07-23 Nuno Ferreira * session.desktop: Added Portuguese translation. Tue Jul 21 10:25:55 1998 Tom Tromey * session-properties.c (setup): Connect to "activate" signal on entry. Disable "Delete" button initially. Connect to "clicked" signal on button. (entry_ok): New function. (remove_items): New function. (struct info): New structure. * save.c (run_default_session): Use run_preloads to run default session. * Makefile.am (EXTRA_DIST): Added default.in. (data_DATA): New macro. (default.session): New target. (INCLUDES): Define DEFAULTDIR. * default.in: New file. * session-properties.c (apply_properties): Use PRELOAD_COUNT_KEY. (fill_clist): Likewise. * save.c (session_loaded): New global. (run_preloads): New function. (num_preloads): New function. (read_session): Call run_preloads. * save.c: Include "session.h". * session-properties.c: Include "session.h". * Makefile.am (gnome_session_SOURCES): Added session.h. (session_properties_SOURCES): Likewise. * session.h: New file. * session-properties.c (setup): Set scrollbar policy on clist. Left align label above clist. (apply_properties): Synchronize config. (PRELOAD_PREFIX): New define. (apply_properties): Use it. (fill_clist): New function. (setup): Call it. Sun Jul 19 16:31:51 1998 Tom Tromey * session.desktop: New file. * Makefile.am (sysdir): New macro. (sys_DATA): Likewise. (EXTRA_DIST): Likewise. * Makefile.am (bin_PROGRAMS): Added session-properties. (session_properties_SOURCES): New macro. * session-properties.c: New file. * manager.c (save_yourself_request): Handle single-client saves. Reverted most changes from July 7. * manager.c (old_sess): Removed. (restart_session): Removed. (save_ps): Removed. (saving_ps): Removed. * save.c (get_session_name): Removed. * manager.h (get_session_name): Removed. Thu Jul 16 18:10:26 1998 Tom Tromey * save.c (run_default_session): Run gnome-smproxy, not smproxy. mar jul 7 09:56:07 ART 1998 Horacio J. Peņa * manager.c: added support for saving state of only one process and for restarting sessions. (it's ugly) New global variables saving_ps & old_sess. save_yourself_request: added a bunch of code to check for the "new" services. check_session_end: removed !live_list check (Tom, is it ok?) check_session_end: added support for saving_ps & old_sess. New functions: save_ps & restart_session. * manager.h: Added prototipe for get_session_name. * save.c: Added get_session_name. Sun Jul 5 18:16:00 1998 Tom Tromey * main.c (main): Set the DISPLAY environment variable. * save.c (properties): Added SmEnvironment. (run_commands): Look up environment and pass to exec. Sat Jun 13 20:54:05 1998 Tom Tromey Fixed all -Wall warnings: * auth.c: Include , , . * save-session.c: Include libgnomeui.h, not gnome-client.h. (main): Removed unused variable. * save.c (write_one_client): Removed unused variable. (run_commands): Likewise. (delete_session): Likewise. * main.c: Include libgnomeui.h, not gnome-client.h. * ice.c: Include , . * manager.c: Include , , . Sat Jun 6 02:09:49 1998 Tom Tromey * save.c (read_session): If no clients in saved session, load default session. * manager.c (run_shutdown_commands): New function. (check_session_end): Call it. 1998-06-06 Carsten Schaar * save-session.c (main): Replaced 'gnome_client_new_default' with 'gnome_master_client'. * main.c: Included 'libgnome/gnome-client.h'. (main): Added call to 'gnome_client_disable_master_connection' because otherwise 'gnome-session' tries to connect to itself. Sat May 16 00:47:11 1998 Tom Tromey * Makefile.am (gnome_session_SOURCES): Removed exec.c. * manager.h: Don't declare execute_async. * save.c (run_commands): Use gnome_execute_async. (run_default_session): Likewise. * exec.c: Removed. Thu May 14 09:49:08 1998 Tom Tromey * save.c (run_default_session): Make icewm the default window manager. * save-session.c (main): Print error if couldn't connect to session manager. * manager.c (kill_client_connection): New function. (check_session_end): Correctly determine when last ordinary client finishes. Send kill_client_connection message to each client, just to make sure. Sun May 3 10:53:01 1998 Tom Tromey * manager.c (io_error_handler): Call IceCloseConnection. Thu Apr 30 23:13:53 1998 Tom Tromey * save.c (run_default_session): Run `smproxy'. * prop.c (find_string_property): Put trailing \0 on result string. (find_vector_property): Likewise. Sun Apr 26 16:19:31 1998 Tom Tromey * save.c (run_default_session): If WINDOW_MANAGER defined, then launch it. Wed Mar 18 22:26:54 1998 Tom Tromey * save.c (run_default_session): Put `gmc' into the default session. Mon Mar 16 00:52:21 1998 Tom Tromey * main.c (ignore): Use sigemptyset to initialize sa_mask member. * save-session.c (main): Removed local "zap" variable. * main.c (ignore): New function. (main): Ignore SIGPIPE. Tue Mar 10 21:40:28 1998 Tom Tromey * save.c (run_commands): Pass saved directory information to execute_async(). * exec.c (execute_async): Added `dir' argument. Sun Mar 8 18:36:38 1998 Tom Tromey * save.c (run_commands): `def' now a gboolean. (read_session): Likewise. (delete_session): Likewise. * Makefile.am (INCLUDES): Added GNOME_INCLUDEDIR. Define GNOMELOCALEDIR. Sat Mar 7 11:45:07 1998 Tom Tromey * save-session.c (options): New structure. (parser): Likewise. (usage): Removed. (zap): New global. (parse_an_arg): New function. (main): Use new argument parsing and client-handling functions. * Makefile.am (gnome_session_SOURCES): Removed testbed.c, added main.c. * testbed.c: Removed. * main.c: New file. Thu Feb 26 02:26:51 1998 Tom Tromey * exec.c (errno): Declare if not a macro. * Makefile.am (bin_PROGRAMS): Only define if session support available. * Makefile.am (bin_PROGRAMS): Added save-session. (save_session_SOURCES): New macro. * save-session.c: New file. * testbed.c (main): Don't call gtk_init. * exec.c (execute_async): "pid" is a pid_t, not an int. Close read end of pipe in child; mark write end as close-on-exec. * save.c (run_default_session): Run gnome-help-browser. Mon Feb 23 00:49:05 1998 Tom Tromey * save.c (run_default_session): NULL-terminate argv. * exec.c (report_errno): New function. (execute_async): Use it. 1998-02-19 Federico Mena Quintero * testbed.c (main): Added app_id "gsm-testbed". Mon Feb 16 00:04:09 1998 Tom Tromey * exec.c (execute_async): Wait for child process. * save.c (run_default_session): New function. (read_session): If no saved session, and trying to load the default, then call run_default_session. * manager.c (check_session_end): Call gtk_main_quit if shutting down. * manager.h (execute_func): Removed. * save.c (run_commands): Removed executor argument. * manager.c (check_session_end): Save anyway_list first. * save.c (write_one_client): If restart style is RestartNever, don't bother saving client. (write_session): Added list2 argument. * manager.c (anyway_list): New global. (free_client): Do nothing if client is NULL. (close_connection): Take restart hints into account. (check_session_end): Pass anyway_list to write_session. * save.c: Include . Mon Feb 16 11:15:43 KST 1998 Changwoo Ryu * save.c: Include . Replace "gnome-session.h" with "gnome-client.h". Sat Feb 14 01:45:26 1998 Tom Tromey * exec.c (execute_once): Removed. * manager.h (execute_once): Removed decl. * save.c (properties): Removed GNOME_SM_INIT_COMMAND. (read_session): Don't run initialization commands. * Makefile.am (LDADD): Don't include LEXLIB or DL_LIB. Do include INTLLIBS. Mon Feb 9 13:24:01 1998 Tom Tromey * save.c (write_session): gnome -> session. (run_commands): Likewise. (read_session): Likewise. (delete_session): Likewise. * Makefile.am (bin_PROGRAMS): Changed name to gnome-session. (gnome_session_SOURCES): Likewise. Tue Feb 3 00:38:40 1998 Tom Tromey * save.c (write_session): gsm->gnome. (run_commands): Likewise. (read_session): Likewise. (delete_session): Likewise. * exec.c (execute_async): Wrote. * Makefile.am (bin_PROGRAMS): Program named "gnome". (gnome_SOURCES): Renamed. * save.c (delete_session): Call gnome_config_sync(). Mon Feb 2 23:08:50 1998 Tom Tromey * save.c (write_one_client): Use gnome_config_set_vector. (write_session): Use prefix that doesn't result in new sub-keys. (read_session): Use new prefix. (run_commands): Likewise. Use gnome_config_get_vector_with_default. Thu Jan 29 16:49:12 EST 1998 Nathan Bryant * Makefile.am: add DL_LIB. Wed Jan 21 00:41:27 1998 Federico Mena * gsm.c (gsm_generate_session_list): Replace snprintf with g_snprintf. Tue Jan 20 18:43:50 1998 Tom Tromey * gsm.h, gsm.c, gsm-backend.c: Removed. Sun Jan 18 15:28:06 1998 Tom Tromey * manager.c (check_session_end): New function. (save_yourself_done): Use it. (close_connection): Likewise. * manager.c: Include . * ice.c: Include . * testbed.c (main): Read session. Fri Jan 16 23:50:48 1998 Tom Tromey * ice.c (initialize_ice): Use Gnome's version number. Sun Jan 4 13:24:47 1998 Tom Tromey * save.c (read_session): Changed return value. Started implementation. (run_commands): New function. (delete_session): Use it. * manager.c (add_zombie): New function. * manager.h (add_zombie): Declare. * Makefile.am (gsm_SOURCES): Include exec.c. * exec.c: New file. * manager.h (execute_async): Declare. * save.c (write_one_client): Added `number' argument; changed return value; changed how information represented in file. (prefix): No longer global. (write_session): Changed how information represented in file. (delete_session): Wrote. Fri Jan 2 00:11:49 1998 Tom Tromey * manager.c (save_yourself_done): Move save_finished_list to live_list when done. Thu Jan 1 15:53:26 1998 Tom Tromey * manager.h: Declare delete_session. * manager.c (save_yourself_done): Call write_session. * save.c (set_session_name): Made name argument const. (read_session): Likewise. (write_session): Made list argument const. (propsave): New type. (properties): New array. (NUM_PROPERTIES): New macro. (write_one_client): New function. (write_session): Wrote. (delete_session): New function. * prop.c (find_property_by_name): Made client argument const. (find_card8_property): Likewise. (find_string_property): Likewise. (find_vector_property): Likewise. Sat Dec 27 12:39:40 1997 Tom Tromey * save.c: New file. * prop.c: New file. * Makefile.am (gsm_SOURCES): Include prop.c, save.c. * manager.h: Declare find_property_by_name, find_card8_property, find_string_property, find_vector_property. * manager.c (save_helper): Removed. (x_save_type, x_interact_style, x_fast): Removed. (save_session): Traverse list by hand. (find_property_by_name): Moved to prop.c; exported. Fri Dec 26 00:00:42 1997 Tom Tromey * manager.c (find_client_by_connection): New function. (io_error_handler): New function. * manager.h: Declare io_error_handler. * ice.c (initialize_ice): Install IO error handler. * manager.c (close_connection): Remove client from all lists. Free client structure. * auth.c (write_iceauth): Make sure data is in range for fprintf. * Makefile: Removed. * Makefile.am: New file. * testbed.c: New file. Thu Dec 25 00:12:44 1997 Tom Tromey * ice.c (accept_connection): Must wait for ICE connection to leave pending state. Wed Dec 24 23:33:09 1997 Tom Tromey * auth.c, auth.h: Modified files from X11R6.3 `xsm' program. * TODO, manager.c, manager.h, ice.c: New files.