session.c File Reference

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 MetaWindowSessionInfosession_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 MetaWindowSessionInfometa_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


Enumeration Type Documentation

Enumerator:
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 

Definition at line 187 of file session.c.

enum WindowTag

Enumerator:
WINDOW_TAG_NONE 
WINDOW_TAG_DESKTOP 
WINDOW_TAG_STICKY 
WINDOW_TAG_MINIMIZED 
WINDOW_TAG_MAXIMIZED 
WINDOW_TAG_GEOMETRY 

Definition at line 1009 of file session.c.


Function Documentation

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]

Definition at line 784 of file session.c.

References FALSE.

Referenced by start_element_handler().

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]

Definition at line 759 of file session.c.

References TRUE.

Referenced by save_state().

static void end_element_handler ( GMarkupParseContext *  context,
const gchar *  element_name,
gpointer  user_data,
GError **  error 
) [static]

static const MetaWindowSessionInfo* find_best_match ( GSList *  infos,
MetaWindow window 
) [static]

static void finish_interact ( gboolean  shutdown  )  [static]

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]

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]

static gboolean io_from_warning_dialog ( GIOChannel *  channel,
GIOCondition  condition,
gpointer  data 
) [static]

static char * load_state ( const char *  previous_save_file  )  [static]

void meta_session_init ( const char *  previous_client_id,
const char *  previous_save_file 
)

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  ) 

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]

Definition at line 89 of file session.c.

References FALSE, NULL, and TRUE.

Referenced by new_ice_connection().

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]

static void save_state ( void   )  [static]

static void save_yourself_callback ( SmcConn  smc_conn,
SmPointer  client_data,
int  save_style,
Bool  shutdown,
int  interact_style,
Bool  fast 
) [static]

static void save_yourself_possibly_done ( gboolean  shutdown,
gboolean  successful 
) [static]

static void session_info_free ( MetaWindowSessionInfo info  )  [static]

static MetaWindowSessionInfo * session_info_new ( void   )  [static]

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]

static void text_handler ( GMarkupParseContext *  context,
const gchar *  text,
gsize  text_len,
gpointer  user_data,
GError **  error 
) [static]

Definition at line 1486 of file session.c.

static void warn_about_lame_clients_and_finish_interact ( gboolean  shutdown  )  [static]

static int window_gravity_from_string ( const char *  str  )  [static]

Definition at line 732 of file session.c.

Referenced by start_element_handler().

static MetaWindowType window_type_from_string ( const char *  str  )  [static]

static const char* window_type_to_string ( MetaWindowType  type  )  [static]

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().


Variable Documentation

char* client_id = NULL [static]

ClientState current_state = STATE_DISCONNECTED [static]

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]

Definition at line 155 of file session.c.

Referenced by ice_init(), and ice_io_error_handler().

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:

Definition at line 1044 of file session.c.

Referenced by load_state().

gpointer session_connection = NULL [static]

GSList* window_info_list = NULL [static]


Generated on Sat Aug 23 22:04:21 2008 for metacity by  doxygen 1.5.5