Go to the source code of this file.
Data Structures | |
| struct | ParseData |
| struct | LameClientsDialogData |
Enumerations | |
| enum | ClientState { STATE_DISCONNECTED, STATE_IDLE, STATE_SAVING_PHASE_1, STATE_WAITING_FOR_PHASE_2, STATE_SAVING_PHASE_2, STATE_WAITING_FOR_INTERACT, STATE_DONE_WITH_INTERACT, STATE_SKIPPING_GLOBAL_SAVE, STATE_FROZEN, STATE_REGISTERING } |
| enum | WindowTag { WINDOW_TAG_NONE, WINDOW_TAG_DESKTOP, WINDOW_TAG_STICKY, WINDOW_TAG_MINIMIZED, WINDOW_TAG_MAXIMIZED, WINDOW_TAG_GEOMETRY } |
Functions | |
| static void | ice_io_error_handler (IceConn connection) |
| static void | new_ice_connection (IceConn connection, IcePointer client_data, Bool opening, IcePointer *watch_data) |
| static void | save_state (void) |
| static char * | load_state (const char *previous_save_file) |
| static void | regenerate_save_file (void) |
| static const char * | full_save_file (void) |
| static void | warn_about_lame_clients_and_finish_interact (gboolean shutdown) |
| static gboolean | process_ice_messages (GIOChannel *channel, GIOCondition condition, gpointer client_data) |
| static void | ice_init (void) |
| static void | save_phase_2_callback (SmcConn smc_conn, SmPointer client_data) |
| static void | interact_callback (SmcConn smc_conn, SmPointer client_data) |
| static void | shutdown_cancelled_callback (SmcConn smc_conn, SmPointer client_data) |
| static void | save_complete_callback (SmcConn smc_conn, SmPointer client_data) |
| static void | die_callback (SmcConn smc_conn, SmPointer client_data) |
| static void | save_yourself_callback (SmcConn smc_conn, SmPointer client_data, int save_style, Bool shutdown, int interact_style, Bool fast) |
| static void | set_clone_restart_commands (void) |
| void | meta_session_init (const char *previous_client_id, const char *previous_save_file) |
| void | meta_session_shutdown (void) |
| static void | disconnect (void) |
| static void | save_yourself_possibly_done (gboolean shutdown, gboolean successful) |
| static const char * | window_type_to_string (MetaWindowType type) |
| static MetaWindowType | window_type_from_string (const char *str) |
| static int | window_gravity_from_string (const char *str) |
| static char * | encode_text_as_utf8_markup (const char *text) |
| static char * | decode_text_from_utf8 (const char *text) |
| static void | session_info_free (MetaWindowSessionInfo *info) |
| static MetaWindowSessionInfo * | session_info_new (void) |
| static void | start_element_handler (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error) |
| static void | end_element_handler (GMarkupParseContext *context, const gchar *element_name, gpointer user_data, GError **error) |
| static void | text_handler (GMarkupParseContext *context, const gchar *text, gsize text_len, gpointer user_data, GError **error) |
| static gboolean | both_null_or_matching (const char *a, const char *b) |
| static GSList * | get_possible_matches (MetaWindow *window) |
| static const MetaWindowSessionInfo * | find_best_match (GSList *infos, MetaWindow *window) |
| const MetaWindowSessionInfo * | meta_window_lookup_saved_state (MetaWindow *window) |
| void | meta_window_release_saved_state (const MetaWindowSessionInfo *info) |
| static int | windows_cmp_by_title (MetaWindow *a, MetaWindow *b) |
| static void | finish_interact (gboolean shutdown) |
| static gboolean | io_from_warning_dialog (GIOChannel *channel, GIOCondition condition, gpointer data) |
Variables | |
| static IceIOErrorHandler | ice_installed_handler |
| static char * | client_id = NULL |
| static gpointer | session_connection = NULL |
| static ClientState | current_state = STATE_DISCONNECTED |
| static gboolean | interaction_allowed = FALSE |
| static GMarkupParser | metacity_session_parser |
| static GSList * | window_info_list = NULL |
| static char * | full_save_path = NULL |
| enum ClientState |
| enum WindowTag |
| static gboolean both_null_or_matching | ( | const char * | a, | |
| const char * | b | |||
| ) | [static] |
Definition at line 1498 of file session.c.
References FALSE, NULL, and TRUE.
Referenced by find_best_match(), and get_possible_matches().
| static char* decode_text_from_utf8 | ( | const char * | text | ) | [static] |
| static void die_callback | ( | SmcConn | smc_conn, | |
| SmPointer | client_data | |||
| ) | [static] |
Definition at line 540 of file session.c.
References disconnect(), META_DEBUG_SM, META_EXIT_SUCCESS, and meta_quit().
Referenced by meta_session_init().
| static void disconnect | ( | void | ) | [static] |
Definition at line 395 of file session.c.
References current_state, NULL, session_connection, and STATE_DISCONNECTED.
Referenced by die_callback().
| static char* encode_text_as_utf8_markup | ( | const char * | text | ) | [static] |
| static void end_element_handler | ( | GMarkupParseContext * | context, | |
| const gchar * | element_name, | |||
| gpointer | user_data, | |||
| GError ** | error | |||
| ) | [static] |
Definition at line 1460 of file session.c.
References ParseData::info, META_DEBUG_SM, NULL, _MetaWindowSessionInfo::res_class, _MetaWindowSessionInfo::res_name, _MetaWindowSessionInfo::role, and window_info_list.
| static const MetaWindowSessionInfo* find_best_match | ( | GSList * | infos, | |
| MetaWindow * | window | |||
| ) | [static] |
Definition at line 1580 of file session.c.
References both_null_or_matching(), NULL, _MetaWindow::title, _MetaWindowSessionInfo::title, _MetaWindow::type, and _MetaWindowSessionInfo::type.
Referenced by meta_window_lookup_saved_state().
| static void finish_interact | ( | gboolean | shutdown | ) | [static] |
Definition at line 1734 of file session.c.
References current_state, save_yourself_possibly_done(), session_connection, STATE_DONE_WITH_INTERACT, and TRUE.
Referenced by io_from_warning_dialog(), and warn_about_lame_clients_and_finish_interact().
| static const char * full_save_file | ( | void | ) | [static] |
Definition at line 1714 of file session.c.
References full_save_path.
Referenced by save_state(), and set_clone_restart_commands().
| static GSList* get_possible_matches | ( | MetaWindow * | window | ) | [static] |
Definition at line 1510 of file session.c.
References both_null_or_matching(), _MetaWindow::desc, _MetaWindowSessionInfo::id, META_DEBUG_SM, meta_is_verbose(), NULL, _MetaWindow::res_class, _MetaWindowSessionInfo::res_class, _MetaWindow::res_name, _MetaWindowSessionInfo::res_name, _MetaWindow::role, _MetaWindowSessionInfo::role, _MetaWindow::sm_client_id, and window_info_list.
Referenced by meta_window_lookup_saved_state().
| static void ice_init | ( | void | ) | [static] |
Definition at line 167 of file session.c.
References FALSE, ice_installed_handler, ice_io_error_handler(), new_ice_connection(), NULL, and TRUE.
Referenced by meta_session_init().
| static void ice_io_error_handler | ( | IceConn | connection | ) | [static] |
Definition at line 160 of file session.c.
References ice_installed_handler.
Referenced by ice_init().
| static void interact_callback | ( | SmcConn | smc_conn, | |
| SmPointer | client_data | |||
| ) | [static] |
Definition at line 568 of file session.c.
References current_state, META_DEBUG_SM, STATE_DONE_WITH_INTERACT, and warn_about_lame_clients_and_finish_interact().
Referenced by save_yourself_possibly_done().
| static gboolean io_from_warning_dialog | ( | GIOChannel * | channel, | |
| GIOCondition | condition, | |||
| gpointer | data | |||
| ) | [static] |
Definition at line 1745 of file session.c.
References LameClientsDialogData::child_pipe, FALSE, finish_interact(), META_DEBUG_PING, LameClientsDialogData::shutdown, and TRUE.
Referenced by warn_about_lame_clients_and_finish_interact().
| static char * load_state | ( | const char * | previous_save_file | ) | [static] |
Definition at line 1055 of file session.c.
References _, ParseData::info, META_DEBUG_SM, meta_warning(), metacity_session_parser, NULL, ParseData::previous_id, and session_info_free().
Referenced by meta_session_init().
| void meta_session_init | ( | const char * | previous_client_id, | |
| const char * | previous_save_file | |||
| ) |
Definition at line 225 of file session.c.
References client_id, current_state, die_callback(), ice_init(), load_state(), meta_bug(), META_DEBUG_SM, NULL, save_complete_callback(), save_yourself_callback(), session_connection, shutdown_cancelled_callback(), STATE_IDLE, and STATE_REGISTERING.
Referenced by main().
| void meta_session_shutdown | ( | void | ) |
Definition at line 370 of file session.c.
References NULL, and session_connection.
Referenced by main().
| const MetaWindowSessionInfo* meta_window_lookup_saved_state | ( | MetaWindow * | window | ) |
Definition at line 1623 of file session.c.
References _MetaWindow::desc, find_best_match(), get_possible_matches(), META_DEBUG_SM, NULL, and _MetaWindow::sm_client_id.
Referenced by meta_window_new_with_attrs().
| void meta_window_release_saved_state | ( | const MetaWindowSessionInfo * | info | ) |
Definition at line 1658 of file session.c.
References session_info_free(), and window_info_list.
Referenced by meta_window_new_with_attrs().
| static void new_ice_connection | ( | IceConn | connection, | |
| IcePointer | client_data, | |||
| Bool | opening, | |||
| IcePointer * | watch_data | |||
| ) | [static] |
Definition at line 121 of file session.c.
References process_ice_messages().
Referenced by ice_init().
| static gboolean process_ice_messages | ( | GIOChannel * | channel, | |
| GIOCondition | condition, | |||
| gpointer | client_data | |||
| ) | [static] |
| static void regenerate_save_file | ( | void | ) | [static] |
Definition at line 1698 of file session.c.
References client_id, full_save_path, and NULL.
Referenced by save_yourself_callback().
| static void save_complete_callback | ( | SmcConn | smc_conn, | |
| SmPointer | client_data | |||
| ) | [static] |
Definition at line 548 of file session.c.
References META_DEBUG_SM.
Referenced by meta_session_init().
| static void save_phase_2_callback | ( | SmcConn | smc_conn, | |
| SmPointer | client_data | |||
| ) | [static] |
Definition at line 463 of file session.c.
References current_state, META_DEBUG_SM, save_state(), save_yourself_possibly_done(), STATE_SAVING_PHASE_2, and TRUE.
Referenced by save_yourself_possibly_done().
| static void save_state | ( | void | ) | [static] |
Definition at line 805 of file session.c.
References _, client_id, _MetaWindow::desc, encode_text_as_utf8_markup(), full_save_file(), _MetaRectangle::height, META_DEBUG_SM, meta_display_list_windows(), meta_display_stack_cmp(), meta_get_display(), meta_gravity_to_string(), meta_warning(), meta_window_get_geometry(), META_WINDOW_MAXIMIZED, meta_workspace_index(), _MetaWindow::minimized, NULL, _MetaWindow::on_all_workspaces, _MetaWindow::res_class, _MetaWindow::res_name, _MetaWindow::role, _MetaWindow::saved_rect, _MetaWindow::size_hints, _MetaWindow::sm_client_id, _MetaWindow::title, _MetaWindow::type, _MetaRectangle::width, window_type_to_string(), windows, _MetaWindow::workspace, _MetaRectangle::x, and _MetaRectangle::y.
Referenced by save_phase_2_callback().
| static void save_yourself_callback | ( | SmcConn | smc_conn, | |
| SmPointer | client_data, | |||
| int | save_style, | |||
| Bool | shutdown, | |||
| int | interact_style, | |||
| Bool | fast | |||
| ) | [static] |
Definition at line 479 of file session.c.
References current_state, interaction_allowed, META_DEBUG_SM, regenerate_save_file(), save_yourself_possibly_done(), session_connection, set_clone_restart_commands(), STATE_IDLE, STATE_REGISTERING, STATE_SAVING_PHASE_1, STATE_SKIPPING_GLOBAL_SAVE, and TRUE.
Referenced by meta_session_init().
| static void save_yourself_possibly_done | ( | gboolean | shutdown, | |
| gboolean | successful | |||
| ) | [static] |
Definition at line 403 of file session.c.
References current_state, interact_callback(), interaction_allowed, META_DEBUG_SM, save_phase_2_callback(), session_connection, STATE_DONE_WITH_INTERACT, STATE_FROZEN, STATE_IDLE, STATE_SAVING_PHASE_1, STATE_SAVING_PHASE_2, STATE_SKIPPING_GLOBAL_SAVE, STATE_WAITING_FOR_INTERACT, and STATE_WAITING_FOR_PHASE_2.
Referenced by finish_interact(), save_phase_2_callback(), and save_yourself_callback().
| static void session_info_free | ( | MetaWindowSessionInfo * | info | ) | [static] |
Definition at line 1669 of file session.c.
References _MetaWindowSessionInfo::id, _MetaWindowSessionInfo::res_class, _MetaWindowSessionInfo::res_name, _MetaWindowSessionInfo::role, _MetaWindowSessionInfo::title, and _MetaWindowSessionInfo::workspace_indices.
Referenced by load_state(), meta_window_release_saved_state(), and start_element_handler().
| static MetaWindowSessionInfo * session_info_new | ( | void | ) | [static] |
Definition at line 1683 of file session.c.
References _MetaWindowSessionInfo::gravity, META_WINDOW_NORMAL, and _MetaWindowSessionInfo::type.
Referenced by start_element_handler().
| static void set_clone_restart_commands | ( | void | ) | [static] |
Definition at line 583 of file session.c.
References client_id, full_save_file(), NULL, and session_connection.
Referenced by save_yourself_callback().
| static void shutdown_cancelled_callback | ( | SmcConn | smc_conn, | |
| SmPointer | client_data | |||
| ) | [static] |
Definition at line 555 of file session.c.
References current_state, META_DEBUG_SM, NULL, session_connection, STATE_FROZEN, and STATE_IDLE.
Referenced by meta_session_init().
| static void start_element_handler | ( | GMarkupParseContext * | context, | |
| const gchar * | element_name, | |||
| const gchar ** | attribute_names, | |||
| const gchar ** | attribute_values, | |||
| gpointer | user_data, | |||
| GError ** | error | |||
| ) | [static] |
Definition at line 1151 of file session.c.
References _, decode_text_from_utf8(), _MetaWindowSessionInfo::geometry_set, _MetaWindowSessionInfo::gravity, _MetaRectangle::height, _MetaWindowSessionInfo::id, ParseData::info, _MetaWindowSessionInfo::maximized, _MetaWindowSessionInfo::maximized_set, META_DEBUG_SM, meta_gravity_to_string(), _MetaWindowSessionInfo::minimized, _MetaWindowSessionInfo::minimized_set, NULL, _MetaWindowSessionInfo::on_all_workspaces, _MetaWindowSessionInfo::on_all_workspaces_set, ParseData::previous_id, _MetaWindowSessionInfo::rect, _MetaWindowSessionInfo::res_class, _MetaWindowSessionInfo::res_name, _MetaWindowSessionInfo::role, _MetaWindowSessionInfo::saved_rect, _MetaWindowSessionInfo::saved_rect_set, session_info_free(), session_info_new(), _MetaWindowSessionInfo::stack_position, _MetaWindowSessionInfo::stack_position_set, _MetaWindowSessionInfo::title, TRUE, _MetaWindowSessionInfo::type, _MetaRectangle::width, window_gravity_from_string(), window_type_from_string(), _MetaWindowSessionInfo::workspace_indices, _MetaRectangle::x, and _MetaRectangle::y.
| static void text_handler | ( | GMarkupParseContext * | context, | |
| const gchar * | text, | |||
| gsize | text_len, | |||
| gpointer | user_data, | |||
| GError ** | error | |||
| ) | [static] |
| static void warn_about_lame_clients_and_finish_interact | ( | gboolean | shutdown | ) | [static] |
Definition at line 1784 of file session.c.
References _, LameClientsDialogData::child_pid, LameClientsDialogData::child_pipe, finish_interact(), io_from_warning_dialog(), meta_display_get_current_time_roundtrip(), meta_display_list_windows(), meta_get_display(), meta_warning(), META_WINDOW_NORMAL, NULL, _MetaWindow::res_class, LameClientsDialogData::shutdown, _MetaWindow::sm_client_id, _MetaWindow::title, _MetaWindow::type, windows, and windows_cmp_by_title().
Referenced by interact_callback().
| static int window_gravity_from_string | ( | const char * | str | ) | [static] |
| static MetaWindowType window_type_from_string | ( | const char * | str | ) | [static] |
Definition at line 707 of file session.c.
References META_WINDOW_DESKTOP, META_WINDOW_DIALOG, META_WINDOW_DOCK, META_WINDOW_MENU, META_WINDOW_MODAL_DIALOG, META_WINDOW_NORMAL, META_WINDOW_SPLASHSCREEN, META_WINDOW_TOOLBAR, and META_WINDOW_UTILITY.
Referenced by start_element_handler().
| static const char* window_type_to_string | ( | MetaWindowType | type | ) | [static] |
Definition at line 679 of file session.c.
References META_WINDOW_DESKTOP, META_WINDOW_DIALOG, META_WINDOW_DOCK, META_WINDOW_MENU, META_WINDOW_MODAL_DIALOG, META_WINDOW_NORMAL, META_WINDOW_SPLASHSCREEN, META_WINDOW_TOOLBAR, and META_WINDOW_UTILITY.
Referenced by save_state().
| static int windows_cmp_by_title | ( | MetaWindow * | a, | |
| MetaWindow * | b | |||
| ) | [static] |
Definition at line 1720 of file session.c.
References _MetaWindow::title.
Referenced by warn_about_lame_clients_and_finish_interact().
char* client_id = NULL [static] |
Definition at line 219 of file session.c.
Referenced by meta_session_init(), regenerate_save_file(), save_state(), and set_clone_restart_commands().
ClientState current_state = STATE_DISCONNECTED [static] |
Definition at line 221 of file session.c.
Referenced by disconnect(), finish_interact(), interact_callback(), meta_session_init(), save_phase_2_callback(), save_yourself_callback(), save_yourself_possibly_done(), and shutdown_cancelled_callback().
char* full_save_path = NULL [static] |
Definition at line 1695 of file session.c.
Referenced by full_save_file(), and regenerate_save_file().
IceIOErrorHandler ice_installed_handler [static] |
gboolean interaction_allowed = FALSE [static] |
Definition at line 222 of file session.c.
Referenced by save_yourself_callback(), and save_yourself_possibly_done().
GMarkupParser metacity_session_parser [static] |
Initial value:
{
start_element_handler,
end_element_handler,
text_handler,
NULL,
NULL
}
Definition at line 1044 of file session.c.
Referenced by load_state().
gpointer session_connection = NULL [static] |
Definition at line 220 of file session.c.
Referenced by disconnect(), finish_interact(), meta_session_init(), meta_session_shutdown(), save_yourself_callback(), save_yourself_possibly_done(), set_clone_restart_commands(), and shutdown_cancelled_callback().
GSList* window_info_list = NULL [static] |
Definition at line 1052 of file session.c.
Referenced by end_element_handler(), get_possible_matches(), and meta_window_release_saved_state().
1.5.5