diff options
author | Wu Xiaotian <[email protected]> | 2018-11-19 14:12:59 +0800 |
---|---|---|
committer | raveit65 <[email protected]> | 2018-11-26 13:02:53 +0100 |
commit | 6b7875b9714d5872f80b6b4012f24fb8f548aca2 (patch) | |
tree | bf3ba2f47a359ecad1281604cb869fbfe1200a05 | |
parent | bdec713320b7487c429bd4415fdde55cf48cb44b (diff) | |
download | mate-session-manager-6b7875b9714d5872f80b6b4012f24fb8f548aca2.tar.bz2 mate-session-manager-6b7875b9714d5872f80b6b4012f24fb8f548aca2.tar.xz |
Avoid compile warning for g_type_class_add_private
- capplet/gsm-app-dialog.c
- capplet/gsm-app-dialog.h
- capplet/gsm-properties-dialog.c
- capplet/gsm-properties-dialog.h
- capplet/gsp-app-manager.c
- capplet/gsp-app-manager.h
- capplet/gsp-app.c
- capplet/gsp-app.h
- mate-session/gsm-app.c
- mate-session/gsm-app.h
- mate-session/gsm-autostart-app.c
- mate-session/gsm-autostart-app.h
- mate-session/gsm-client.c
- mate-session/gsm-client.h
- mate-session/gsm-consolekit.c
- mate-session/gsm-consolekit.h
- mate-session/gsm-dbus-client.c
- mate-session/gsm-dbus-client.h
- mate-session/gsm-inhibit-dialog.c
- mate-session/gsm-inhibit-dialog.h
- mate-session/gsm-inhibitor.c
- mate-session/gsm-inhibitor.h
- mate-session/gsm-logout-dialog.c
- mate-session/gsm-logout-dialog.h
- mate-session/gsm-store.c
- mate-session/gsm-store.h
- mate-session/gsm-systemd.c
- mate-session/gsm-systemd.h
- mate-session/gsm-xsmp-client.c
- mate-session/gsm-xsmp-client.h
- mate-session/gsm-xsmp-server.c
- mate-session/gsm-xsmp-server.h
32 files changed, 1486 insertions, 1513 deletions
diff --git a/capplet/gsm-app-dialog.c b/capplet/gsm-app-dialog.c index 04aaf28..fbcfbef 100644 --- a/capplet/gsm-app-dialog.c +++ b/capplet/gsm-app-dialog.c @@ -35,16 +35,15 @@ #define CAPPLET_COMMENT_ENTRY_WIDGET_NAME "session_properties_comment_entry" #define CAPPLET_BROWSE_WIDGET_NAME "session_properties_browse_button" -#define GSM_APP_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_APP_DIALOG, GsmAppDialogPrivate)) - #ifdef __GNUC__ #define UNUSED_VARIABLE __attribute__ ((unused)) #else #define UNUSED_VARIABLE #endif -struct GsmAppDialogPrivate +struct _GsmAppDialog { + GtkDialog parent; GtkWidget *name_entry; GtkWidget *command_entry; GtkWidget *comment_entry; @@ -56,7 +55,6 @@ struct GsmAppDialogPrivate static void gsm_app_dialog_class_init (GsmAppDialogClass *klass); static void gsm_app_dialog_init (GsmAppDialog *app_dialog); -static void gsm_app_dialog_finalize (GObject *object); enum { PROP_0, @@ -138,7 +136,7 @@ on_browse_button_clicked (GtkWidget *widget, g_free (text); - gtk_entry_set_text (GTK_ENTRY (dialog->priv->command_entry), uri); + gtk_entry_set_text (GTK_ENTRY (dialog->command_entry), uri); g_free (uri); } @@ -191,9 +189,9 @@ setup_dialog (GsmAppDialog *dialog) gtk_dialog_add_button (GTK_DIALOG (dialog), "gtk-cancel", GTK_RESPONSE_CANCEL); - if (dialog->priv->name == NULL - && dialog->priv->command == NULL - && dialog->priv->comment == NULL) { + if (dialog->name == NULL + && dialog->command == NULL + && dialog->comment == NULL) { gtk_window_set_title (GTK_WINDOW (dialog), _("Add Startup Program")); gtk_dialog_add_button (GTK_DIALOG (dialog), "gtk-add", GTK_RESPONSE_OK); @@ -203,37 +201,37 @@ setup_dialog (GsmAppDialog *dialog) "gtk-save", GTK_RESPONSE_OK); } - dialog->priv->name_entry = GTK_WIDGET (gtk_builder_get_object (xml, CAPPLET_NAME_ENTRY_WIDGET_NAME)); - g_signal_connect (dialog->priv->name_entry, + dialog->name_entry = GTK_WIDGET (gtk_builder_get_object (xml, CAPPLET_NAME_ENTRY_WIDGET_NAME)); + g_signal_connect (dialog->name_entry, "activate", G_CALLBACK (on_entry_activate), dialog); - if (dialog->priv->name != NULL) { - gtk_entry_set_text (GTK_ENTRY (dialog->priv->name_entry), dialog->priv->name); + if (dialog->name != NULL) { + gtk_entry_set_text (GTK_ENTRY (dialog->name_entry), dialog->name); } - dialog->priv->browse_button = GTK_WIDGET (gtk_builder_get_object (xml, CAPPLET_BROWSE_WIDGET_NAME)); - g_signal_connect (dialog->priv->browse_button, + dialog->browse_button = GTK_WIDGET (gtk_builder_get_object (xml, CAPPLET_BROWSE_WIDGET_NAME)); + g_signal_connect (dialog->browse_button, "clicked", G_CALLBACK (on_browse_button_clicked), dialog); - dialog->priv->command_entry = GTK_WIDGET (gtk_builder_get_object (xml, CAPPLET_COMMAND_ENTRY_WIDGET_NAME)); - g_signal_connect (dialog->priv->command_entry, + dialog->command_entry = GTK_WIDGET (gtk_builder_get_object (xml, CAPPLET_COMMAND_ENTRY_WIDGET_NAME)); + g_signal_connect (dialog->command_entry, "activate", G_CALLBACK (on_entry_activate), dialog); - if (dialog->priv->command != NULL) { - gtk_entry_set_text (GTK_ENTRY (dialog->priv->command_entry), dialog->priv->command); + if (dialog->command != NULL) { + gtk_entry_set_text (GTK_ENTRY (dialog->command_entry), dialog->command); } - dialog->priv->comment_entry = GTK_WIDGET (gtk_builder_get_object (xml, CAPPLET_COMMENT_ENTRY_WIDGET_NAME)); - g_signal_connect (dialog->priv->comment_entry, + dialog->comment_entry = GTK_WIDGET (gtk_builder_get_object (xml, CAPPLET_COMMENT_ENTRY_WIDGET_NAME)); + g_signal_connect (dialog->comment_entry, "activate", G_CALLBACK (on_entry_activate), dialog); - if (dialog->priv->comment != NULL) { - gtk_entry_set_text (GTK_ENTRY (dialog->priv->comment_entry), dialog->priv->comment); + if (dialog->comment != NULL) { + gtk_entry_set_text (GTK_ENTRY (dialog->comment_entry), dialog->comment); } if (xml != NULL) { @@ -249,8 +247,8 @@ gsm_app_dialog_constructor (GType type, GsmAppDialog *dialog; dialog = GSM_APP_DIALOG (G_OBJECT_CLASS (gsm_app_dialog_parent_class)->constructor (type, - n_construct_app, - construct_app)); + n_construct_app, + construct_app)); setup_dialog (dialog); @@ -267,12 +265,12 @@ gsm_app_dialog_dispose (GObject *object) dialog = GSM_APP_DIALOG (object); - g_free (dialog->priv->name); - dialog->priv->name = NULL; - g_free (dialog->priv->command); - dialog->priv->command = NULL; - g_free (dialog->priv->comment); - dialog->priv->comment = NULL; + g_free (dialog->name); + dialog->name = NULL; + g_free (dialog->command); + dialog->command = NULL; + g_free (dialog->comment); + dialog->comment = NULL; G_OBJECT_CLASS (gsm_app_dialog_parent_class)->dispose (object); } @@ -283,9 +281,9 @@ gsm_app_dialog_set_name (GsmAppDialog *dialog, { g_return_if_fail (GSM_IS_APP_DIALOG (dialog)); - g_free (dialog->priv->name); + g_free (dialog->name); - dialog->priv->name = g_strdup (name); + dialog->name = g_strdup (name); g_object_notify (G_OBJECT (dialog), "name"); } @@ -295,9 +293,9 @@ gsm_app_dialog_set_command (GsmAppDialog *dialog, { g_return_if_fail (GSM_IS_APP_DIALOG (dialog)); - g_free (dialog->priv->command); + g_free (dialog->command); - dialog->priv->command = g_strdup (name); + dialog->command = g_strdup (name); g_object_notify (G_OBJECT (dialog), "command"); } @@ -307,9 +305,9 @@ gsm_app_dialog_set_comment (GsmAppDialog *dialog, { g_return_if_fail (GSM_IS_APP_DIALOG (dialog)); - g_free (dialog->priv->comment); + g_free (dialog->comment); - dialog->priv->comment = g_strdup (name); + dialog->comment = g_strdup (name); g_object_notify (G_OBJECT (dialog), "comment"); } @@ -317,21 +315,21 @@ const char * gsm_app_dialog_get_name (GsmAppDialog *dialog) { g_return_val_if_fail (GSM_IS_APP_DIALOG (dialog), NULL); - return gtk_entry_get_text (GTK_ENTRY (dialog->priv->name_entry)); + return gtk_entry_get_text (GTK_ENTRY (dialog->name_entry)); } const char * gsm_app_dialog_get_command (GsmAppDialog *dialog) { g_return_val_if_fail (GSM_IS_APP_DIALOG (dialog), NULL); - return gtk_entry_get_text (GTK_ENTRY (dialog->priv->command_entry)); + return gtk_entry_get_text (GTK_ENTRY (dialog->command_entry)); } const char * gsm_app_dialog_get_comment (GsmAppDialog *dialog) { g_return_val_if_fail (GSM_IS_APP_DIALOG (dialog), NULL); - return gtk_entry_get_text (GTK_ENTRY (dialog->priv->comment_entry)); + return gtk_entry_get_text (GTK_ENTRY (dialog->comment_entry)); } static void @@ -368,13 +366,13 @@ gsm_app_dialog_get_property (GObject *object, switch (prop_id) { case PROP_NAME: - g_value_set_string (value, dialog->priv->name); + g_value_set_string (value, dialog->name); break; case PROP_COMMAND: - g_value_set_string (value, dialog->priv->command); + g_value_set_string (value, dialog->command); break; case PROP_COMMENT: - g_value_set_string (value, dialog->priv->comment); + g_value_set_string (value, dialog->comment); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -391,7 +389,6 @@ gsm_app_dialog_class_init (GsmAppDialogClass *klass) object_class->set_property = gsm_app_dialog_set_property; object_class->constructor = gsm_app_dialog_constructor; object_class->dispose = gsm_app_dialog_dispose; - object_class->finalize = gsm_app_dialog_finalize; g_object_class_install_property (object_class, PROP_NAME, @@ -414,30 +411,12 @@ gsm_app_dialog_class_init (GsmAppDialogClass *klass) "comment", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - g_type_class_add_private (klass, sizeof (GsmAppDialogPrivate)); } static void gsm_app_dialog_init (GsmAppDialog *dialog) { - dialog->priv = GSM_APP_DIALOG_GET_PRIVATE (dialog); -} - -static void -gsm_app_dialog_finalize (GObject *object) -{ - GsmAppDialog *dialog; - - g_return_if_fail (object != NULL); - g_return_if_fail (GSM_IS_APP_DIALOG (object)); - - dialog = GSM_APP_DIALOG (object); - - g_return_if_fail (dialog->priv != NULL); - - G_OBJECT_CLASS (gsm_app_dialog_parent_class)->finalize (object); } GtkWidget * diff --git a/capplet/gsm-app-dialog.h b/capplet/gsm-app-dialog.h index 8fc5b52..5869242 100644 --- a/capplet/gsm-app-dialog.h +++ b/capplet/gsm-app-dialog.h @@ -24,31 +24,10 @@ #include <glib-object.h> #include <gtk/gtk.h> -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS -#define GSM_TYPE_APP_DIALOG (gsm_app_dialog_get_type ()) -#define GSM_APP_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_APP_DIALOG, GsmAppDialog)) -#define GSM_APP_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_APP_DIALOG, GsmAppDialogClass)) -#define GSM_IS_APP_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_APP_DIALOG)) -#define GSM_IS_APP_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_APP_DIALOG)) -#define GSM_APP_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_APP_DIALOG, GsmAppDialogClass)) - -typedef struct GsmAppDialogPrivate GsmAppDialogPrivate; - -typedef struct -{ - GtkDialog parent; - GsmAppDialogPrivate *priv; -} GsmAppDialog; - -typedef struct -{ - GtkDialogClass parent_class; -} GsmAppDialogClass; - -GType gsm_app_dialog_get_type (void); +#define GSM_TYPE_APP_DIALOG (gsm_app_dialog_get_type ()) +G_DECLARE_FINAL_TYPE (GsmAppDialog, gsm_app_dialog, GSM, APP_DIALOG, GtkDialog) GtkWidget * gsm_app_dialog_new (const char *name, const char *command, @@ -63,8 +42,6 @@ const char * gsm_app_dialog_get_name (GsmAppDialog *dialog); const char * gsm_app_dialog_get_command (GsmAppDialog *dialog); const char * gsm_app_dialog_get_comment (GsmAppDialog *dialog); -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_APP_DIALOG_H */ diff --git a/capplet/gsm-properties-dialog.c b/capplet/gsm-properties-dialog.c index 09042a6..e6463cd 100644 --- a/capplet/gsm-properties-dialog.c +++ b/capplet/gsm-properties-dialog.c @@ -35,8 +35,6 @@ #include "gsp-app.h" #include "gsp-app-manager.h" -#define GSM_PROPERTIES_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_PROPERTIES_DIALOG, GsmPropertiesDialogPrivate)) - #define GTKBUILDER_FILE "session-properties.ui" #define CAPPLET_TREEVIEW_WIDGET_NAME "session_properties_treeview" @@ -51,8 +49,9 @@ #define SPC_CONFIG_SCHEMA "org.mate.session" #define SPC_AUTOSAVE_KEY "auto-save-session" -struct GsmPropertiesDialogPrivate +struct _GsmPropertiesDialog { + GtkDialog parent; GtkBuilder *xml; GtkListStore *list_store; GtkTreeModel *tree_filter; @@ -167,12 +166,12 @@ _app_changed (GsmPropertiesDialog *dialog, { GtkTreeIter iter; - if (!find_by_app (GTK_TREE_MODEL (dialog->priv->list_store), + if (!find_by_app (GTK_TREE_MODEL (dialog->list_store), &iter, app)) { return; } - _fill_iter_from_app (dialog->priv->list_store, &iter, app); + _fill_iter_from_app (dialog->list_store, &iter, app); } static void @@ -181,8 +180,8 @@ append_app (GsmPropertiesDialog *dialog, { GtkTreeIter iter; - gtk_list_store_append (dialog->priv->list_store, &iter); - _fill_iter_from_app (dialog->priv->list_store, &iter, app); + gtk_list_store_append (dialog->list_store, &iter); + _fill_iter_from_app (dialog->list_store, &iter, app); g_signal_connect_swapped (app, "changed", G_CALLBACK (_app_changed), dialog); @@ -203,7 +202,7 @@ _app_removed (GsmPropertiesDialog *dialog, { GtkTreeIter iter; - if (!find_by_app (GTK_TREE_MODEL (dialog->priv->list_store), + if (!find_by_app (GTK_TREE_MODEL (dialog->list_store), &iter, app)) { return; } @@ -211,7 +210,7 @@ _app_removed (GsmPropertiesDialog *dialog, g_signal_handlers_disconnect_by_func (app, _app_changed, dialog); - gtk_list_store_remove (dialog->priv->list_store, &iter); + gtk_list_store_remove (dialog->list_store, &iter); } static void @@ -220,7 +219,7 @@ populate_model (GsmPropertiesDialog *dialog) GSList *apps; GSList *l; - apps = gsp_app_manager_get_apps (dialog->priv->manager); + apps = gsp_app_manager_get_apps (dialog->manager); for (l = apps; l != NULL; l = l->next) { append_app (dialog, GSP_APP (l->data)); } @@ -235,8 +234,8 @@ on_selection_changed (GtkTreeSelection *selection, sel = gtk_tree_selection_get_selected (selection, NULL, NULL); - gtk_widget_set_sensitive (dialog->priv->edit_button, sel); - gtk_widget_set_sensitive (dialog->priv->delete_button, sel); + gtk_widget_set_sensitive (dialog->edit_button, sel); + gtk_widget_set_sensitive (dialog->delete_button, sel); } static void @@ -248,13 +247,13 @@ on_startup_enabled_toggled (GtkCellRendererToggle *cell_renderer, GspApp *app; gboolean active; - if (!gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (dialog->priv->tree_filter), + if (!gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (dialog->tree_filter), &iter, path)) { return; } app = NULL; - gtk_tree_model_get (GTK_TREE_MODEL (dialog->priv->tree_filter), + gtk_tree_model_get (GTK_TREE_MODEL (dialog->tree_filter), &iter, STORE_COL_APP, &app, -1); @@ -312,11 +311,11 @@ on_drag_begin (GtkWidget *widget, GspApp *app; gtk_tree_view_get_cursor (GTK_TREE_VIEW (widget), &path, NULL); - gtk_tree_model_get_iter (GTK_TREE_MODEL (dialog->priv->tree_filter), + gtk_tree_model_get_iter (GTK_TREE_MODEL (dialog->tree_filter), &iter, path); gtk_tree_path_free (path); - gtk_tree_model_get (GTK_TREE_MODEL (dialog->priv->tree_filter), + gtk_tree_model_get (GTK_TREE_MODEL (dialog->tree_filter), &iter, STORE_COL_APP, &app, -1); @@ -384,14 +383,14 @@ on_delete_app_clicked (GtkWidget *widget, GtkTreeIter iter; GspApp *app; - selection = gtk_tree_view_get_selection (dialog->priv->treeview); + selection = gtk_tree_view_get_selection (dialog->treeview); if (!gtk_tree_selection_get_selected (selection, NULL, &iter)) { return; } app = NULL; - gtk_tree_model_get (GTK_TREE_MODEL (dialog->priv->tree_filter), + gtk_tree_model_get (GTK_TREE_MODEL (dialog->tree_filter), &iter, STORE_COL_APP, &app, -1); @@ -410,14 +409,14 @@ on_edit_app_clicked (GtkWidget *widget, GtkTreeIter iter; GspApp *app; - selection = gtk_tree_view_get_selection (dialog->priv->treeview); + selection = gtk_tree_view_get_selection (dialog->treeview); if (!gtk_tree_selection_get_selected (selection, NULL, &iter)) { return; } app = NULL; - gtk_tree_model_get (GTK_TREE_MODEL (dialog->priv->tree_filter), + gtk_tree_model_get (GTK_TREE_MODEL (dialog->tree_filter), &iter, STORE_COL_APP, &app, -1); @@ -478,24 +477,24 @@ setup_dialog (GsmPropertiesDialog *dialog) "gtk-close", GTK_RESPONSE_CLOSE, NULL); - dialog->priv->list_store = gtk_list_store_new (NUMBER_OF_COLUMNS, - G_TYPE_BOOLEAN, - G_TYPE_BOOLEAN, - G_TYPE_ICON, - G_TYPE_STRING, - G_TYPE_OBJECT, - G_TYPE_STRING); - tree_filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (dialog->priv->list_store), + dialog->list_store = gtk_list_store_new (NUMBER_OF_COLUMNS, + G_TYPE_BOOLEAN, + G_TYPE_BOOLEAN, + G_TYPE_ICON, + G_TYPE_STRING, + G_TYPE_OBJECT, + G_TYPE_STRING); + tree_filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (dialog->list_store), NULL); - g_object_unref (dialog->priv->list_store); - dialog->priv->tree_filter = tree_filter; + g_object_unref (dialog->list_store); + dialog->tree_filter = tree_filter; gtk_tree_model_filter_set_visible_column (GTK_TREE_MODEL_FILTER (tree_filter), STORE_COL_VISIBLE); - treeview = GTK_TREE_VIEW (gtk_builder_get_object (dialog->priv->xml, + treeview = GTK_TREE_VIEW (gtk_builder_get_object (dialog->xml, CAPPLET_TREEVIEW_WIDGET_NAME)); - dialog->priv->treeview = treeview; + dialog->treeview = treeview; gtk_tree_view_set_model (treeview, tree_filter); g_object_unref (tree_filter); @@ -590,56 +589,56 @@ setup_dialog (GsmPropertiesDialog *dialog) G_CALLBACK (on_drag_data_received), dialog); - gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (dialog->priv->list_store), + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (dialog->list_store), STORE_COL_DESCRIPTION, GTK_SORT_ASCENDING); - button = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml, + button = GTK_WIDGET (gtk_builder_get_object (dialog->xml, CAPPLET_ADD_WIDGET_NAME)); - dialog->priv->add_button = button; + dialog->add_button = button; g_signal_connect (button, "clicked", G_CALLBACK (on_add_app_clicked), dialog); - button = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml, + button = GTK_WIDGET (gtk_builder_get_object (dialog->xml, CAPPLET_DELETE_WIDGET_NAME)); - dialog->priv->delete_button = button; + dialog->delete_button = button; g_signal_connect (button, "clicked", G_CALLBACK (on_delete_app_clicked), dialog); - button = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml, + button = GTK_WIDGET (gtk_builder_get_object (dialog->xml, CAPPLET_EDIT_WIDGET_NAME)); - dialog->priv->edit_button = button; + dialog->edit_button = button; g_signal_connect (button, "clicked", G_CALLBACK (on_edit_app_clicked), dialog); - dialog->priv->settings = g_settings_new (SPC_CONFIG_SCHEMA); + dialog->settings = g_settings_new (SPC_CONFIG_SCHEMA); - button = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml, + button = GTK_WIDGET (gtk_builder_get_object (dialog->xml, CAPPLET_REMEMBER_WIDGET_NAME)); - g_settings_bind (dialog->priv->settings, SPC_AUTOSAVE_KEY, + g_settings_bind (dialog->settings, SPC_AUTOSAVE_KEY, button, "active", G_SETTINGS_BIND_DEFAULT); - button = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml, + button = GTK_WIDGET (gtk_builder_get_object (dialog->xml, CAPPLET_SAVE_WIDGET_NAME)); g_signal_connect (button, "clicked", G_CALLBACK (on_save_session_clicked), dialog); - dialog->priv->manager = gsp_app_manager_get (); - gsp_app_manager_fill (dialog->priv->manager); - g_signal_connect_swapped (dialog->priv->manager, "added", + dialog->manager = gsp_app_manager_get (); + gsp_app_manager_fill (dialog->manager); + g_signal_connect_swapped (dialog->manager, "added", G_CALLBACK (_app_added), dialog); - g_signal_connect_swapped (dialog->priv->manager, "removed", + g_signal_connect_swapped (dialog->manager, "removed", G_CALLBACK (_app_removed), dialog); populate_model (dialog); @@ -653,8 +652,8 @@ gsm_properties_dialog_constructor (GType type, GsmPropertiesDialog *dialog; dialog = GSM_PROPERTIES_DIALOG (G_OBJECT_CLASS (gsm_properties_dialog_parent_class)->constructor (type, - n_construct_properties, - construct_properties)); + n_construct_properties, + construct_properties)); setup_dialog (dialog); @@ -671,14 +670,14 @@ gsm_properties_dialog_dispose (GObject *object) dialog = GSM_PROPERTIES_DIALOG (object); - if (dialog->priv->xml != NULL) { - g_object_unref (dialog->priv->xml); - dialog->priv->xml = NULL; + if (dialog->xml != NULL) { + g_object_unref (dialog->xml); + dialog->xml = NULL; } - if (dialog->priv->settings != NULL) { - g_object_unref (dialog->priv->settings); - dialog->priv->settings = NULL; + if (dialog->settings != NULL) { + g_object_unref (dialog->settings); + dialog->settings = NULL; } G_OBJECT_CLASS (gsm_properties_dialog_parent_class)->dispose (object); @@ -686,9 +685,9 @@ gsm_properties_dialog_dispose (GObject *object) /* it's important to do this after chaining to the parent dispose * method because we want to make sure the treeview has been disposed * and removed all its references to GspApp objects */ - if (dialog->priv->manager != NULL) { - g_object_unref (dialog->priv->manager); - dialog->priv->manager = NULL; + if (dialog->manager != NULL) { + g_object_unref (dialog->manager); + dialog->manager = NULL; } } @@ -700,8 +699,6 @@ gsm_properties_dialog_class_init (GsmPropertiesDialogClass *klass) object_class->constructor = gsm_properties_dialog_constructor; object_class->dispose = gsm_properties_dialog_dispose; object_class->finalize = gsm_properties_dialog_finalize; - - g_type_class_add_private (klass, sizeof (GsmPropertiesDialogPrivate)); } static void @@ -711,13 +708,11 @@ gsm_properties_dialog_init (GsmPropertiesDialog *dialog) GtkWidget *widget; GError *error; - dialog->priv = GSM_PROPERTIES_DIALOG_GET_PRIVATE (dialog); - - dialog->priv->xml = gtk_builder_new (); - gtk_builder_set_translation_domain (dialog->priv->xml, GETTEXT_PACKAGE); + dialog->xml = gtk_builder_new (); + gtk_builder_set_translation_domain (dialog->xml, GETTEXT_PACKAGE); error = NULL; - if (!gtk_builder_add_from_file (dialog->priv->xml, + if (!gtk_builder_add_from_file (dialog->xml, GTKBUILDER_DIR "/" GTKBUILDER_FILE, &error)) { if (error) { @@ -730,7 +725,7 @@ gsm_properties_dialog_init (GsmPropertiesDialog *dialog) } content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); - widget = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml, + widget = GTK_WIDGET (gtk_builder_get_object (dialog->xml, "main-notebook")); gtk_box_pack_start (GTK_BOX (content_area), widget, TRUE, TRUE, 0); @@ -744,15 +739,9 @@ gsm_properties_dialog_init (GsmPropertiesDialog *dialog) static void gsm_properties_dialog_finalize (GObject *object) { - GsmPropertiesDialog *dialog; - g_return_if_fail (object != NULL); g_return_if_fail (GSM_IS_PROPERTIES_DIALOG (object)); - dialog = GSM_PROPERTIES_DIALOG (object); - - g_return_if_fail (dialog->priv != NULL); - G_OBJECT_CLASS (gsm_properties_dialog_parent_class)->finalize (object); } diff --git a/capplet/gsm-properties-dialog.h b/capplet/gsm-properties-dialog.h index 0103581..93ef91b 100644 --- a/capplet/gsm-properties-dialog.h +++ b/capplet/gsm-properties-dialog.h @@ -24,38 +24,15 @@ #include <glib-object.h> #include <gtk/gtk.h> -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS #define GSM_TYPE_PROPERTIES_DIALOG (gsm_properties_dialog_get_type ()) -#define GSM_PROPERTIES_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_PROPERTIES_DIALOG, GsmPropertiesDialog)) -#define GSM_PROPERTIES_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_PROPERTIES_DIALOG, GsmPropertiesDialogClass)) -#define GSM_IS_PROPERTIES_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_PROPERTIES_DIALOG)) -#define GSM_IS_PROPERTIES_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_PROPERTIES_DIALOG)) -#define GSM_PROPERTIES_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_PROPERTIES_DIALOG, GsmPropertiesDialogClass)) - -typedef struct GsmPropertiesDialogPrivate GsmPropertiesDialogPrivate; - -typedef struct -{ - GtkDialog parent; - GsmPropertiesDialogPrivate *priv; -} GsmPropertiesDialog; - -typedef struct -{ - GtkDialogClass parent_class; -} GsmPropertiesDialogClass; - -GType gsm_properties_dialog_get_type (void); +G_DECLARE_FINAL_TYPE (GsmPropertiesDialog, gsm_properties_dialog, GSM, PROPERTIES_DIALOG, GtkDialog) GtkWidget * gsm_properties_dialog_new (void); #define GSM_PROPERTIES_ICON_SIZE GTK_ICON_SIZE_LARGE_TOOLBAR -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_PROPERTIES_DIALOG_H */ diff --git a/capplet/gsp-app-manager.c b/capplet/gsp-app-manager.c index be22c87..7e245db 100644 --- a/capplet/gsp-app-manager.c +++ b/capplet/gsp-app-manager.c @@ -36,13 +36,10 @@ typedef struct { GFileMonitor *monitor; } GspXdgDir; -struct _GspAppManagerPrivate { +typedef struct { GSList *apps; GSList *dirs; -}; - -#define GSP_APP_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSP_TYPE_APP_MANAGER, GspAppManagerPrivate)) - +} GspAppManagerPrivate; enum { ADDED, @@ -53,7 +50,7 @@ enum { static guint gsp_app_manager_signals[LAST_SIGNAL] = { 0 }; -G_DEFINE_TYPE (GspAppManager, gsp_app_manager, G_TYPE_OBJECT) +G_DEFINE_TYPE_WITH_PRIVATE (GspAppManager, gsp_app_manager, G_TYPE_OBJECT) static void gsp_app_manager_dispose (GObject *object); static void gsp_app_manager_finalize (GObject *object); @@ -124,33 +121,36 @@ gsp_app_manager_class_init (GspAppManagerClass *class) g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_OBJECT); - g_type_class_add_private (class, sizeof (GspAppManagerPrivate)); } static void gsp_app_manager_init (GspAppManager *manager) { - manager->priv = GSP_APP_MANAGER_GET_PRIVATE (manager); + GspAppManagerPrivate *priv; + priv = gsp_app_manager_get_instance_private (manager); - memset (manager->priv, 0, sizeof (GspAppManagerPrivate)); + // is needed? + memset (priv, 0, sizeof (GspAppManagerPrivate)); } static void gsp_app_manager_dispose (GObject *object) { GspAppManager *manager; + GspAppManagerPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GSP_IS_APP_MANAGER (object)); manager = GSP_APP_MANAGER (object); + priv = gsp_app_manager_get_instance_private (manager); /* we unref GspApp objects in dispose since they might need to * reference us during their dispose/finalize */ - g_slist_foreach (manager->priv->apps, + g_slist_foreach (priv->apps, (GFunc) _gsp_app_manager_app_unref, manager); - g_slist_free (manager->priv->apps); - manager->priv->apps = NULL; + g_slist_free (priv->apps); + priv->apps = NULL; G_OBJECT_CLASS (gsp_app_manager_parent_class)->dispose (object); } @@ -159,16 +159,18 @@ static void gsp_app_manager_finalize (GObject *object) { GspAppManager *manager; + GspAppManagerPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GSP_IS_APP_MANAGER (object)); manager = GSP_APP_MANAGER (object); + priv = gsp_app_manager_get_instance_private (manager); - g_slist_foreach (manager->priv->dirs, + g_slist_foreach (priv->dirs, (GFunc) _gsp_xdg_dir_free, NULL); - g_slist_free (manager->priv->dirs); - manager->priv->dirs = NULL; + g_slist_free (priv->dirs); + priv->dirs = NULL; G_OBJECT_CLASS (gsp_app_manager_parent_class)->finalize (object); @@ -201,11 +203,14 @@ gsp_app_manager_get_dir_index (GspAppManager *manager, { GSList *l; GspXdgDir *xdgdir; + GspAppManagerPrivate *priv; g_return_val_if_fail (GSP_IS_APP_MANAGER (manager), -1); g_return_val_if_fail (dir != NULL, -1); - for (l = manager->priv->dirs; l != NULL; l = l->next) { + priv = gsp_app_manager_get_instance_private (manager); + + for (l = priv->dirs; l != NULL; l = l->next) { xdgdir = l->data; if (strcmp (dir, xdgdir->dir) == 0) { return xdgdir->index; @@ -221,10 +226,13 @@ gsp_app_manager_get_dir (GspAppManager *manager, { GSList *l; GspXdgDir *xdgdir; + GspAppManagerPrivate *priv; g_return_val_if_fail (GSP_IS_APP_MANAGER (manager), NULL); - for (l = manager->priv->dirs; l != NULL; l = l->next) { + priv = gsp_app_manager_get_instance_private (manager); + + for (l = priv->dirs; l != NULL; l = l->next) { xdgdir = l->data; if (index == xdgdir->index) { return xdgdir->dir; @@ -244,11 +252,13 @@ _gsp_app_manager_find_dir_with_basename (GspAppManager *manager, char *path; GKeyFile *keyfile; int result = -1; + GspAppManagerPrivate *priv; path = NULL; keyfile = g_key_file_new (); + priv = gsp_app_manager_get_instance_private (manager); - for (l = manager->priv->dirs; l != NULL; l = l->next) { + for (l = priv->dirs; l != NULL; l = l->next) { xdgdir = l->data; if (xdgdir->index <= minimum_index) { @@ -485,8 +495,11 @@ gsp_app_manager_fill (GspAppManager *manager) { char **autostart_dirs; int i; + GspAppManagerPrivate *priv; + + priv = gsp_app_manager_get_instance_private (manager); - if (manager->priv->apps != NULL) + if (priv->apps != NULL) return; autostart_dirs = gsm_util_get_autostart_dirs (); @@ -503,7 +516,7 @@ gsp_app_manager_fill (GspAppManager *manager) } xdgdir = _gsp_xdg_dir_new (autostart_dirs[i], i); - manager->priv->dirs = g_slist_prepend (manager->priv->dirs, + priv->dirs = g_slist_prepend (priv->dirs, xdgdir); _gsp_app_manager_fill_from_dir (manager, xdgdir); @@ -530,8 +543,11 @@ static void _gsp_app_manager_app_removed (GspAppManager *manager, GspApp *app) { + GspAppManagerPrivate *priv; + _gsp_app_manager_emit_removed (manager, app); - manager->priv->apps = g_slist_remove (manager->priv->apps, app); + priv = gsp_app_manager_get_instance_private (manager); + priv->apps = g_slist_remove (priv->apps, app); _gsp_app_manager_app_unref (app, manager); } @@ -539,11 +555,15 @@ void gsp_app_manager_add (GspAppManager *manager, GspApp *app) { + GspAppManagerPrivate *priv; + g_return_if_fail (GSP_IS_APP_MANAGER (manager)); g_return_if_fail (GSP_IS_APP (app)); - manager->priv->apps = g_slist_prepend (manager->priv->apps, - g_object_ref (app)); + priv = gsp_app_manager_get_instance_private (manager); + + priv->apps = g_slist_prepend (priv->apps, + g_object_ref (app)); g_signal_connect_swapped (app, "removed", G_CALLBACK (_gsp_app_manager_app_removed), manager); @@ -556,11 +576,14 @@ gsp_app_manager_find_app_with_basename (GspAppManager *manager, { GSList *l; GspApp *app; + GspAppManagerPrivate *priv; g_return_val_if_fail (GSP_IS_APP_MANAGER (manager), NULL); g_return_val_if_fail (basename != NULL, NULL); - for (l = manager->priv->apps; l != NULL; l = l->next) { + priv = gsp_app_manager_get_instance_private (manager); + + for (l = priv->apps; l != NULL; l = l->next) { app = GSP_APP (l->data); if (strcmp (basename, gsp_app_get_basename (app)) == 0) return app; @@ -587,7 +610,11 @@ gsp_app_manager_get (void) GSList * gsp_app_manager_get_apps (GspAppManager *manager) { + GspAppManagerPrivate *priv; + g_return_val_if_fail (GSP_IS_APP_MANAGER (manager), NULL); - return g_slist_copy (manager->priv->apps); + priv = gsp_app_manager_get_instance_private (manager); + + return g_slist_copy (priv->apps); } diff --git a/capplet/gsp-app-manager.h b/capplet/gsp-app-manager.h index 11bf8a9..b3ceb1e 100644 --- a/capplet/gsp-app-manager.h +++ b/capplet/gsp-app-manager.h @@ -28,21 +28,10 @@ #include <gsp-app.h> -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS #define GSP_TYPE_APP_MANAGER (gsp_app_manager_get_type ()) -#define GSP_APP_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSP_TYPE_APP_MANAGER, GspAppManager)) -#define GSP_APP_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSP_TYPE_APP_MANAGER, GspAppManagerClass)) -#define GSP_IS_APP_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSP_TYPE_APP_MANAGER)) -#define GSP_IS_APP_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSP_TYPE_APP_MANAGER)) -#define GSP_APP_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSP_TYPE_APP_MANAGER, GspAppManagerClass)) - -typedef struct _GspAppManager GspAppManager; -typedef struct _GspAppManagerClass GspAppManagerClass; - -typedef struct _GspAppManagerPrivate GspAppManagerPrivate; +G_DECLARE_DERIVABLE_TYPE (GspAppManager, gsp_app_manager, GSP, APP_MANAGER, GObject) struct _GspAppManagerClass { @@ -54,14 +43,7 @@ struct _GspAppManagerClass GspApp *app); }; -struct _GspAppManager -{ - GObject parent_instance; - - GspAppManagerPrivate *priv; -}; - -GType gsp_app_manager_get_type (void); +GType gsp_app_manager_get_type (void) G_GNUC_CONST; GspAppManager *gsp_app_manager_get (void); @@ -78,8 +60,6 @@ const char *gsp_app_manager_get_dir (GspAppManager *manager, void gsp_app_manager_add (GspAppManager *manager, GspApp *app); -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSP_APP_MANAGER_H */ diff --git a/capplet/gsp-app.c b/capplet/gsp-app.c index 4b299f5..02a91cc 100644 --- a/capplet/gsp-app.c +++ b/capplet/gsp-app.c @@ -48,7 +48,7 @@ #define GSP_ASP_SAVE_MASK_COMMENT 0x0010 #define GSP_ASP_SAVE_MASK_ALL 0xffff -struct _GspAppPrivate { +typedef struct { char *basename; char *path; @@ -77,10 +77,7 @@ struct _GspAppPrivate { /* after writing to file, we skip the next file monitor event of type * CHANGED */ gboolean skip_next_monitor_event; -}; - -#define GSP_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSP_TYPE_APP, GspAppPrivate)) - +} GspAppPrivate; enum { CHANGED, @@ -91,7 +88,7 @@ enum { static guint gsp_app_signals[LAST_SIGNAL] = { 0 }; -G_DEFINE_TYPE (GspApp, gsp_app, G_TYPE_OBJECT) +G_DEFINE_TYPE_WITH_PRIVATE (GspApp, gsp_app, G_TYPE_OBJECT) static void gsp_app_dispose (GObject *object); static void gsp_app_finalize (GObject *object); @@ -148,60 +145,64 @@ gsp_app_class_init (GspAppClass *class) g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); - g_type_class_add_private (class, sizeof (GspAppPrivate)); } static void gsp_app_init (GspApp *app) { - app->priv = GSP_APP_GET_PRIVATE (app); + GspAppPrivate *priv; - memset (app->priv, 0, sizeof (GspAppPrivate)); - app->priv->xdg_position = G_MAXUINT; - app->priv->xdg_system_position = G_MAXUINT; + priv = gsp_app_get_instance_private (app); + + memset (priv, 0, sizeof (GspAppPrivate)); + priv->xdg_position = G_MAXUINT; + priv->xdg_system_position = G_MAXUINT; } static void _gsp_app_free_reusable_data (GspApp *app) { - if (app->priv->path) { - g_free (app->priv->path); - app->priv->path = NULL; + GspAppPrivate *priv; + + priv = gsp_app_get_instance_private (app); + if (priv->path) { + g_free (priv->path); + priv->path = NULL; } - if (app->priv->name) { - g_free (app->priv->name); - app->priv->name = NULL; + if (priv->name) { + g_free (priv->name); + priv->name = NULL; } - if (app->priv->exec) { - g_free (app->priv->exec); - app->priv->exec = NULL; + if (priv->exec) { + g_free (priv->exec); + priv->exec = NULL; } - if (app->priv->comment) { - g_free (app->priv->comment); - app->priv->comment = NULL; + if (priv->comment) { + g_free (priv->comment); + priv->comment = NULL; } - if (app->priv->icon) { - g_free (app->priv->icon); - app->priv->icon = NULL; + if (priv->icon) { + g_free (priv->icon); + priv->icon = NULL; } - if (app->priv->gicon) { - g_object_unref (app->priv->gicon); - app->priv->gicon = NULL; + if (priv->gicon) { + g_object_unref (priv->gicon); + priv->gicon = NULL; } - if (app->priv->description) { - g_free (app->priv->description); - app->priv->description = NULL; + if (priv->description) { + g_free (priv->description); + priv->description = NULL; } - if (app->priv->old_system_path) { - g_free (app->priv->old_system_path); - app->priv->old_system_path = NULL; + if (priv->old_system_path) { + g_free (priv->old_system_path); + priv->old_system_path = NULL; } } @@ -209,16 +210,18 @@ static void gsp_app_dispose (GObject *object) { GspApp *app; + GspAppPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GSP_IS_APP (object)); app = GSP_APP (object); + priv = gsp_app_get_instance_private (app); /* we save in dispose since we might need to reference GspAppManager */ - if (app->priv->save_timeout) { - g_source_remove (app->priv->save_timeout); - app->priv->save_timeout = 0; + if (priv->save_timeout) { + g_source_remove (priv->save_timeout); + priv->save_timeout = 0; /* save now */ _gsp_app_save (app); @@ -231,15 +234,17 @@ static void gsp_app_finalize (GObject *object) { GspApp *app; + GspAppPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GSP_IS_APP (object)); app = GSP_APP (object); + priv = gsp_app_get_instance_private (app); - if (app->priv->basename) { - g_free (app->priv->basename); - app->priv->basename = NULL; + if (priv->basename) { + g_free (priv->basename); + priv->basename = NULL; } _gsp_app_free_reusable_data (app); @@ -264,25 +269,28 @@ _gsp_app_update_description (GspApp *app) { const char *primary; const char *secondary; + GspAppPrivate *priv; - if (!gsm_util_text_is_blank (app->priv->name)) { - primary = app->priv->name; - } else if (!gsm_util_text_is_blank (app->priv->exec)) { - primary = app->priv->exec; + priv = gsp_app_get_instance_private (app); + + if (!gsm_util_text_is_blank (priv->name)) { + primary = priv->name; + } else if (!gsm_util_text_is_blank (priv->exec)) { + primary = priv->exec; } else { primary = _("No name"); } - if (!gsm_util_text_is_blank (app->priv->comment)) { - secondary = app->priv->comment; + if (!gsm_util_text_is_blank (priv->comment)) { + secondary = priv->comment; } else { secondary = _("No description"); } - g_free (app->priv->description); - app->priv->description = g_markup_printf_escaped ("<b>%s</b>\n%s", - primary, - secondary); + g_free (priv->description); + priv->description = g_markup_printf_escaped ("<b>%s</b>\n%s", + primary, + secondary); } /* @@ -305,20 +313,22 @@ _gsp_app_user_equal_system (GspApp *app, char **system_path) { GspAppManager *manager; + GspAppPrivate *priv; const char *system_dir; char *path; char *str; GKeyFile *keyfile; manager = gsp_app_manager_get (); + priv = gsp_app_get_instance_private (app); system_dir = gsp_app_manager_get_dir (manager, - app->priv->xdg_system_position); + priv->xdg_system_position); g_object_unref (manager); if (!system_dir) { return FALSE; } - path = g_build_filename (system_dir, app->priv->basename, NULL); + path = g_build_filename (system_dir, priv->basename, NULL); keyfile = g_key_file_new (); if (!g_key_file_load_from_file (keyfile, path, G_KEY_FILE_NONE, NULL)) { @@ -329,10 +339,10 @@ _gsp_app_user_equal_system (GspApp *app, if (gsp_key_file_get_boolean (keyfile, G_KEY_FILE_DESKTOP_KEY_HIDDEN, - FALSE) != app->priv->hidden || + FALSE) != priv->hidden || gsp_key_file_get_boolean (keyfile, GSP_KEY_FILE_DESKTOP_KEY_AUTOSTART_ENABLED, - TRUE) != app->priv->enabled) { + TRUE) != priv->enabled) { g_free (path); g_key_file_free (keyfile); return FALSE; @@ -340,7 +350,7 @@ _gsp_app_user_equal_system (GspApp *app, str = gsp_key_file_get_locale_string (keyfile, G_KEY_FILE_DESKTOP_KEY_NAME); - if (!_gsp_str_equal (str, app->priv->name)) { + if (!_gsp_str_equal (str, priv->name)) { g_free (str); g_free (path); g_key_file_free (keyfile); @@ -350,7 +360,7 @@ _gsp_app_user_equal_system (GspApp *app, str = gsp_key_file_get_locale_string (keyfile, G_KEY_FILE_DESKTOP_KEY_COMMENT); - if (!_gsp_str_equal (str, app->priv->comment)) { + if (!_gsp_str_equal (str, priv->comment)) { g_free (str); g_free (path); g_key_file_free (keyfile); @@ -360,7 +370,7 @@ _gsp_app_user_equal_system (GspApp *app, str = gsp_key_file_get_string (keyfile, G_KEY_FILE_DESKTOP_KEY_EXEC); - if (!_gsp_str_equal (str, app->priv->exec)) { + if (!_gsp_str_equal (str, priv->exec)) { g_free (str); g_free (path); g_key_file_free (keyfile); @@ -370,7 +380,7 @@ _gsp_app_user_equal_system (GspApp *app, str = gsp_key_file_get_locale_string (keyfile, G_KEY_FILE_DESKTOP_KEY_ICON); - if (!_gsp_str_equal (str, app->priv->icon)) { + if (!_gsp_str_equal (str, priv->icon)) { g_free (str); g_free (path); g_key_file_free (keyfile); @@ -388,11 +398,14 @@ _gsp_app_user_equal_system (GspApp *app, static inline void _gsp_app_save_done_success (GspApp *app) { - app->priv->save_mask = 0; + GspAppPrivate *priv; + + priv = gsp_app_get_instance_private (app); + priv->save_mask = 0; - if (app->priv->old_system_path) { - g_free (app->priv->old_system_path); - app->priv->old_system_path = NULL; + if (priv->old_system_path) { + g_free (priv->old_system_path); + priv->old_system_path = NULL; } } @@ -403,30 +416,32 @@ _gsp_app_save (gpointer data) char *use_path; GKeyFile *keyfile; GError *error; + GspAppPrivate *priv; app = GSP_APP (data); + priv = gsp_app_get_instance_private (app); /* first check if removing the data from the user dir and using the * data from the system dir is enough -- this helps us keep clean the * user config dir by removing unneeded files */ if (_gsp_app_user_equal_system (app, &use_path)) { - if (g_file_test (app->priv->path, G_FILE_TEST_EXISTS)) { - g_remove (app->priv->path); + if (g_file_test (priv->path, G_FILE_TEST_EXISTS)) { + g_remove (priv->path); } - g_free (app->priv->path); - app->priv->path = use_path; + g_free (priv->path); + priv->path = use_path; - app->priv->xdg_position = app->priv->xdg_system_position; + priv->xdg_position = priv->xdg_system_position; _gsp_app_save_done_success (app); return FALSE; } - if (app->priv->old_system_path) - use_path = app->priv->old_system_path; + if (priv->old_system_path) + use_path = priv->old_system_path; else - use_path = app->priv->path; + use_path = priv->path; keyfile = g_key_file_new (); @@ -440,80 +455,83 @@ _gsp_app_save (gpointer data) gsp_key_file_populate (keyfile); } - if (app->priv->save_mask & GSP_ASP_SAVE_MASK_HIDDEN) { + if (priv->save_mask & GSP_ASP_SAVE_MASK_HIDDEN) { gsp_key_file_set_boolean (keyfile, G_KEY_FILE_DESKTOP_KEY_HIDDEN, - app->priv->hidden); + priv->hidden); } - if (app->priv->save_mask & GSP_ASP_SAVE_MASK_ENABLED) { + if (priv->save_mask & GSP_ASP_SAVE_MASK_ENABLED) { gsp_key_file_set_boolean (keyfile, GSP_KEY_FILE_DESKTOP_KEY_AUTOSTART_ENABLED, - app->priv->enabled); + priv->enabled); } - if (app->priv->save_mask & GSP_ASP_SAVE_MASK_NAME) { + if (priv->save_mask & GSP_ASP_SAVE_MASK_NAME) { gsp_key_file_set_locale_string (keyfile, G_KEY_FILE_DESKTOP_KEY_NAME, - app->priv->name); + priv->name); gsp_key_file_ensure_C_key (keyfile, G_KEY_FILE_DESKTOP_KEY_NAME); } - if (app->priv->save_mask & GSP_ASP_SAVE_MASK_COMMENT) { + if (priv->save_mask & GSP_ASP_SAVE_MASK_COMMENT) { gsp_key_file_set_locale_string (keyfile, G_KEY_FILE_DESKTOP_KEY_COMMENT, - app->priv->comment); + priv->comment); gsp_key_file_ensure_C_key (keyfile, G_KEY_FILE_DESKTOP_KEY_COMMENT); } - if (app->priv->save_mask & GSP_ASP_SAVE_MASK_EXEC) { + if (priv->save_mask & GSP_ASP_SAVE_MASK_EXEC) { gsp_key_file_set_string (keyfile, G_KEY_FILE_DESKTOP_KEY_EXEC, - app->priv->exec); + priv->exec); } _gsp_ensure_user_autostart_dir (); - if (gsp_key_file_to_file (keyfile, app->priv->path, NULL)) { - app->priv->skip_next_monitor_event = TRUE; + if (gsp_key_file_to_file (keyfile, priv->path, NULL)) { + priv->skip_next_monitor_event = TRUE; _gsp_app_save_done_success (app); } else { - g_warning ("Could not save %s file", app->priv->path); + g_warning ("Could not save %s file", priv->path); } g_key_file_free (keyfile); - app->priv->save_timeout = 0; + priv->save_timeout = 0; return FALSE; } static void _gsp_app_queue_save (GspApp *app) { - if (app->priv->save_timeout) { - g_source_remove (app->priv->save_timeout); - app->priv->save_timeout = 0; + GspAppPrivate *priv; + + priv = gsp_app_get_instance_private (app); + if (priv->save_timeout) { + g_source_remove (priv->save_timeout); + priv->save_timeout = 0; } /* if the file was not in the user directory, then we'll create a copy * there */ - if (app->priv->xdg_position != 0) { - app->priv->xdg_position = 0; + if (priv->xdg_position != 0) { + priv->xdg_position = 0; - if (app->priv->old_system_path == NULL) { - app->priv->old_system_path = app->priv->path; + if (priv->old_system_path == NULL) { + priv->old_system_path = priv->path; /* if old_system_path was not NULL, then it means we * tried to save and we failed; in that case, we want * to try again and use the old file as a basis again */ } - app->priv->path = g_build_filename (g_get_user_config_dir (), - "autostart", - app->priv->basename, NULL); + priv->path = g_build_filename (g_get_user_config_dir (), + "autostart", + priv->basename, NULL); } - app->priv->save_timeout = g_timeout_add_seconds (GSP_APP_SAVE_DELAY, - _gsp_app_save, - app); + priv->save_timeout = g_timeout_add_seconds (GSP_APP_SAVE_DELAY, + _gsp_app_save, + app); } /* @@ -523,47 +541,67 @@ _gsp_app_queue_save (GspApp *app) const char * gsp_app_get_basename (GspApp *app) { + GspAppPrivate *priv; + g_return_val_if_fail (GSP_IS_APP (app), NULL); - return app->priv->basename; + priv = gsp_app_get_instance_private (app); + + return priv->basename; } const char * gsp_app_get_path (GspApp *app) { + GspAppPrivate *priv; + g_return_val_if_fail (GSP_IS_APP (app), NULL); - return app->priv->path; + priv = gsp_app_get_instance_private (app); + + return priv->path; } gboolean gsp_app_get_hidden (GspApp *app) { + GspAppPrivate *priv; + g_return_val_if_fail (GSP_IS_APP (app), FALSE); - return app->priv->hidden; + priv = gsp_app_get_instance_private (app); + + return priv->hidden; } gboolean gsp_app_get_enabled (GspApp *app) { + GspAppPrivate *priv; + g_return_val_if_fail (GSP_IS_APP (app), FALSE); - return app->priv->enabled; + priv = gsp_app_get_instance_private (app); + + return priv->enabled; } void gsp_app_set_enabled (GspApp *app, gboolean enabled) { + GspAppPrivate *priv; + g_return_if_fail (GSP_IS_APP (app)); - if (enabled == app->priv->enabled) { + priv = gsp_app_get_instance_private (app); + + if (enabled == priv->enabled) { return; } - app->priv->enabled = enabled; - app->priv->save_mask |= GSP_ASP_SAVE_MASK_ENABLED; + priv->enabled = enabled; + priv->save_mask |= GSP_ASP_SAVE_MASK_ENABLED; _gsp_app_queue_save (app); _gsp_app_emit_changed (app); @@ -572,34 +610,50 @@ gsp_app_set_enabled (GspApp *app, const char * gsp_app_get_name (GspApp *app) { + GspAppPrivate *priv; + g_return_val_if_fail (GSP_IS_APP (app), NULL); - return app->priv->name; + priv = gsp_app_get_instance_private (app); + + return priv->name; } const char * gsp_app_get_exec (GspApp *app) { + GspAppPrivate *priv; + g_return_val_if_fail (GSP_IS_APP (app), NULL); - return app->priv->exec; + priv = gsp_app_get_instance_private (app); + + return priv->exec; } const char * gsp_app_get_comment (GspApp *app) { + GspAppPrivate *priv; + g_return_val_if_fail (GSP_IS_APP (app), NULL); - return app->priv->comment; + priv = gsp_app_get_instance_private (app); + + return priv->comment; } GIcon * gsp_app_get_icon (GspApp *app) { + GspAppPrivate *priv; + g_return_val_if_fail (GSP_IS_APP (app), NULL); - if (app->priv->gicon) { - return g_object_ref (app->priv->gicon); + priv = gsp_app_get_instance_private (app); + + if (priv->gicon) { + return g_object_ref (priv->gicon); } else { return NULL; } @@ -608,34 +662,50 @@ gsp_app_get_icon (GspApp *app) unsigned int gsp_app_get_xdg_position (GspApp *app) { + GspAppPrivate *priv; + g_return_val_if_fail (GSP_IS_APP (app), G_MAXUINT); - return app->priv->xdg_position; + priv = gsp_app_get_instance_private (app); + + return priv->xdg_position; } unsigned int gsp_app_get_xdg_system_position (GspApp *app) { + GspAppPrivate *priv; + g_return_val_if_fail (GSP_IS_APP (app), G_MAXUINT); - return app->priv->xdg_system_position; + priv = gsp_app_get_instance_private (app); + + return priv->xdg_system_position; } void gsp_app_set_xdg_system_position (GspApp *app, unsigned int position) { + GspAppPrivate *priv; + g_return_if_fail (GSP_IS_APP (app)); - app->priv->xdg_system_position = position; + priv = gsp_app_get_instance_private (app); + + priv->xdg_system_position = position; } const char * gsp_app_get_description (GspApp *app) { + GspAppPrivate *priv; + g_return_val_if_fail (GSP_IS_APP (app), NULL); - return app->priv->description; + priv = gsp_app_get_instance_private (app); + + return priv->description; } /* @@ -649,34 +719,36 @@ gsp_app_update (GspApp *app, const char *exec) { gboolean changed; + GspAppPrivate *priv; g_return_if_fail (GSP_IS_APP (app)); changed = FALSE; + priv = gsp_app_get_instance_private (app); - if (!_gsp_str_equal (name, app->priv->name)) { + if (!_gsp_str_equal (name, priv->name)) { changed = TRUE; - g_free (app->priv->name); - app->priv->name = g_strdup (name); - app->priv->save_mask |= GSP_ASP_SAVE_MASK_NAME; + g_free (priv->name); + priv->name = g_strdup (name); + priv->save_mask |= GSP_ASP_SAVE_MASK_NAME; } - if (!_gsp_str_equal (comment, app->priv->comment)) { + if (!_gsp_str_equal (comment, priv->comment)) { changed = TRUE; - g_free (app->priv->comment); - app->priv->comment = g_strdup (comment); - app->priv->save_mask |= GSP_ASP_SAVE_MASK_COMMENT; + g_free (priv->comment); + priv->comment = g_strdup (comment); + priv->save_mask |= GSP_ASP_SAVE_MASK_COMMENT; } if (changed) { _gsp_app_update_description (app); } - if (!_gsp_str_equal (exec, app->priv->exec)) { + if (!_gsp_str_equal (exec, priv->exec)) { changed = TRUE; - g_free (app->priv->exec); - app->priv->exec = g_strdup (exec); - app->priv->save_mask |= GSP_ASP_SAVE_MASK_EXEC; + g_free (priv->exec); + priv->exec = g_strdup (exec); + priv->save_mask |= GSP_ASP_SAVE_MASK_EXEC; } if (changed) { @@ -688,30 +760,33 @@ gsp_app_update (GspApp *app, void gsp_app_delete (GspApp *app) { + GspAppPrivate *priv; + g_return_if_fail (GSP_IS_APP (app)); - if (app->priv->xdg_position == 0 && - app->priv->xdg_system_position == G_MAXUINT) { + priv = gsp_app_get_instance_private (app); + if (priv->xdg_position == 0 && + priv->xdg_system_position == G_MAXUINT) { /* exists in user directory only */ - if (app->priv->save_timeout) { - g_source_remove (app->priv->save_timeout); - app->priv->save_timeout = 0; + if (priv->save_timeout) { + g_source_remove (priv->save_timeout); + priv->save_timeout = 0; } - if (g_file_test (app->priv->path, G_FILE_TEST_EXISTS)) { - g_remove (app->priv->path); + if (g_file_test (priv->path, G_FILE_TEST_EXISTS)) { + g_remove (priv->path); } /* for extra safety */ - app->priv->hidden = TRUE; - app->priv->save_mask |= GSP_ASP_SAVE_MASK_HIDDEN; + priv->hidden = TRUE; + priv->save_mask |= GSP_ASP_SAVE_MASK_HIDDEN; _gsp_app_emit_removed (app); } else { /* also exists in system directory, so we have to keep a file * in the user directory */ - app->priv->hidden = TRUE; - app->priv->save_mask |= GSP_ASP_SAVE_MASK_HIDDEN; + priv->hidden = TRUE; + priv->save_mask |= GSP_ASP_SAVE_MASK_HIDDEN; _gsp_app_queue_save (app); _gsp_app_emit_changed (app); @@ -727,9 +802,13 @@ gsp_app_reload_at (GspApp *app, const char *path, unsigned int xdg_position) { + GspAppPrivate *priv; + g_return_if_fail (GSP_IS_APP (app)); - app->priv->xdg_position = G_MAXUINT; + priv = gsp_app_get_instance_private (app); + + priv->xdg_position = G_MAXUINT; gsp_app_new (path, xdg_position); } @@ -778,34 +857,36 @@ gsp_app_new (const char *path, GKeyFile *keyfile; char *basename; gboolean new; + GspAppPrivate *priv; basename = g_path_get_basename (path); manager = gsp_app_manager_get (); app = gsp_app_manager_find_app_with_basename (manager, basename); + priv = gsp_app_get_instance_private (app); g_object_unref (manager); new = (app == NULL); if (!new) { - if (app->priv->xdg_position == xdg_position) { - if (app->priv->skip_next_monitor_event) { - app->priv->skip_next_monitor_event = FALSE; + if (priv->xdg_position == xdg_position) { + if (priv->skip_next_monitor_event) { + priv->skip_next_monitor_event = FALSE; return NULL; } /* else: the file got changed but not by us, we'll * update our data from disk */ } - if (app->priv->xdg_position < xdg_position || - app->priv->save_timeout != 0) { + if (priv->xdg_position < xdg_position || + priv->save_timeout != 0) { /* we don't really care about this file, since we * already have something with a higher priority, or * we're going to write something in the user config * anyway. * Note: xdg_position >= 1 so it's a system dir */ - app->priv->xdg_system_position = MIN (xdg_position, - app->priv->xdg_system_position); + priv->xdg_system_position = MIN (xdg_position, + priv->xdg_system_position); return NULL; } } @@ -825,49 +906,50 @@ gsp_app_new (const char *path, if (new) { app = g_object_new (GSP_TYPE_APP, NULL); - app->priv->basename = basename; + priv = gsp_app_get_instance_private (app); + priv->basename = basename; } else { g_free (basename); _gsp_app_free_reusable_data (app); } - app->priv->path = g_strdup (path); + priv->path = g_strdup (path); - app->priv->hidden = gsp_key_file_get_boolean (keyfile, - G_KEY_FILE_DESKTOP_KEY_HIDDEN, - FALSE); - app->priv->enabled = gsp_key_file_get_boolean (keyfile, - GSP_KEY_FILE_DESKTOP_KEY_AUTOSTART_ENABLED, - TRUE); + priv->hidden = gsp_key_file_get_boolean (keyfile, + G_KEY_FILE_DESKTOP_KEY_HIDDEN, + FALSE); + priv->enabled = gsp_key_file_get_boolean (keyfile, + GSP_KEY_FILE_DESKTOP_KEY_AUTOSTART_ENABLED, + TRUE); - app->priv->name = gsp_key_file_get_locale_string (keyfile, - G_KEY_FILE_DESKTOP_KEY_NAME); - app->priv->exec = gsp_key_file_get_string (keyfile, - G_KEY_FILE_DESKTOP_KEY_EXEC); - app->priv->comment = gsp_key_file_get_locale_string (keyfile, - G_KEY_FILE_DESKTOP_KEY_COMMENT); + priv->name = gsp_key_file_get_locale_string (keyfile, + G_KEY_FILE_DESKTOP_KEY_NAME); + priv->exec = gsp_key_file_get_string (keyfile, + G_KEY_FILE_DESKTOP_KEY_EXEC); + priv->comment = gsp_key_file_get_locale_string (keyfile, + G_KEY_FILE_DESKTOP_KEY_COMMENT); - if (gsm_util_text_is_blank (app->priv->name)) { - g_free (app->priv->name); - app->priv->name = g_strdup (app->priv->exec); + if (gsm_util_text_is_blank (priv->name)) { + g_free (priv->name); + priv->name = g_strdup (priv->exec); } - app->priv->icon = gsp_key_file_get_locale_string (keyfile, - G_KEY_FILE_DESKTOP_KEY_ICON); + priv->icon = gsp_key_file_get_locale_string (keyfile, + G_KEY_FILE_DESKTOP_KEY_ICON); - if (app->priv->icon) { + if (priv->icon) { /* look at icon and see if it's a themed icon or not */ - if (g_path_is_absolute (app->priv->icon)) { + if (g_path_is_absolute (priv->icon)) { GFile *iconfile; - iconfile = g_file_new_for_path (app->priv->icon); - app->priv->gicon = g_file_icon_new (iconfile); + iconfile = g_file_new_for_path (priv->icon); + priv->gicon = g_file_icon_new (iconfile); g_object_unref (iconfile); } else { - app->priv->gicon = g_themed_icon_new (app->priv->icon); + priv->gicon = g_themed_icon_new (priv->icon); } } else { - app->priv->gicon = NULL; + priv->gicon = NULL; } g_key_file_free (keyfile); @@ -875,16 +957,16 @@ gsp_app_new (const char *path, _gsp_app_update_description (app); if (xdg_position > 0) { - g_assert (xdg_position <= app->priv->xdg_system_position); - app->priv->xdg_system_position = xdg_position; + g_assert (xdg_position <= priv->xdg_system_position); + priv->xdg_system_position = xdg_position; } /* else we keep the old value (which is G_MAXUINT if it wasn't set) */ - app->priv->xdg_position = xdg_position; + priv->xdg_position = xdg_position; - g_assert (!new || app->priv->save_timeout == 0); - app->priv->save_timeout = 0; - app->priv->old_system_path = NULL; - app->priv->skip_next_monitor_event = FALSE; + g_assert (!new || priv->save_timeout == 0); + priv->save_timeout = 0; + priv->old_system_path = NULL; + priv->skip_next_monitor_event = FALSE; if (!new) { _gsp_app_emit_changed (app); @@ -956,6 +1038,7 @@ gsp_app_create (const char *name, const char *exec) { GspAppManager *manager; + GspAppPrivate *priv; GspApp *app; char *basename; char **argv; @@ -974,35 +1057,36 @@ gsp_app_create (const char *name, } app = g_object_new (GSP_TYPE_APP, NULL); + priv = gsp_app_get_instance_private (app); - app->priv->basename = basename; - app->priv->path = g_build_filename (g_get_user_config_dir (), - "autostart", - app->priv->basename, NULL); + priv->basename = basename; + priv->path = g_build_filename (g_get_user_config_dir (), + "autostart", + priv->basename, NULL); - app->priv->hidden = FALSE; - app->priv->enabled = TRUE; + priv->hidden = FALSE; + priv->enabled = TRUE; if (!gsm_util_text_is_blank (name)) { - app->priv->name = g_strdup (name); + priv->name = g_strdup (name); } else { - app->priv->name = g_strdup (exec); + priv->name = g_strdup (exec); } - app->priv->exec = g_strdup (exec); - app->priv->comment = g_strdup (comment); - app->priv->icon = NULL; + priv->exec = g_strdup (exec); + priv->comment = g_strdup (comment); + priv->icon = NULL; - app->priv->gicon = NULL; + priv->gicon = NULL; _gsp_app_update_description (app); /* by definition */ - app->priv->xdg_position = 0; - app->priv->xdg_system_position = G_MAXUINT; + priv->xdg_position = 0; + priv->xdg_system_position = G_MAXUINT; - app->priv->save_timeout = 0; - app->priv->save_mask |= GSP_ASP_SAVE_MASK_ALL; - app->priv->old_system_path = NULL; - app->priv->skip_next_monitor_event = FALSE; + priv->save_timeout = 0; + priv->save_mask |= GSP_ASP_SAVE_MASK_ALL; + priv->old_system_path = NULL; + priv->skip_next_monitor_event = FALSE; _gsp_app_queue_save (app); @@ -1016,6 +1100,7 @@ gboolean gsp_app_copy_desktop_file (const char *uri) { GspAppManager *manager; + GspAppPrivate *priv; GspApp *app; GFile *src_file; char *src_basename; @@ -1062,6 +1147,7 @@ gsp_app_copy_desktop_file (const char *uri) g_object_unref (dst_file); app = gsp_app_new (dst_path, 0); + priv = gsp_app_get_instance_private (app); if (!app) { g_remove (dst_path); g_free (dst_path); @@ -1071,16 +1157,16 @@ gsp_app_copy_desktop_file (const char *uri) g_free (dst_path); changed = FALSE; - if (app->priv->hidden) { + if (priv->hidden) { changed = TRUE; - app->priv->hidden = FALSE; - app->priv->save_mask |= GSP_ASP_SAVE_MASK_HIDDEN; + priv->hidden = FALSE; + priv->save_mask |= GSP_ASP_SAVE_MASK_HIDDEN; } - if (!app->priv->enabled) { + if (!priv->enabled) { changed = TRUE; - app->priv->enabled = TRUE; - app->priv->save_mask |= GSP_ASP_SAVE_MASK_ENABLED; + priv->enabled = TRUE; + priv->save_mask |= GSP_ASP_SAVE_MASK_ENABLED; } if (changed) { diff --git a/capplet/gsp-app.h b/capplet/gsp-app.h index b72db13..3525d9f 100644 --- a/capplet/gsp-app.h +++ b/capplet/gsp-app.h @@ -27,21 +27,10 @@ #include <glib-object.h> #include <gio/gio.h> -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS #define GSP_TYPE_APP (gsp_app_get_type ()) -#define GSP_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSP_TYPE_APP, GspApp)) -#define GSP_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSP_TYPE_APP, GspAppClass)) -#define GSP_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSP_TYPE_APP)) -#define GSP_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSP_TYPE_APP)) -#define GSP_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSP_TYPE_APP, GspAppClass)) - -typedef struct _GspApp GspApp; -typedef struct _GspAppClass GspAppClass; - -typedef struct _GspAppPrivate GspAppPrivate; +G_DECLARE_DERIVABLE_TYPE (GspApp, gsp_app, GSP, APP, GObject) struct _GspAppClass { @@ -51,14 +40,7 @@ struct _GspAppClass void (* removed) (GspApp *app); }; -struct _GspApp -{ - GObject parent_instance; - - GspAppPrivate *priv; -}; - -GType gsp_app_get_type (void); +GType gsp_app_get_type (void) G_GNUC_CONST; void gsp_app_create (const char *name, const char *comment, @@ -102,8 +84,6 @@ unsigned int gsp_app_get_xdg_system_position (GspApp *app); void gsp_app_set_xdg_system_position (GspApp *app, unsigned int position); -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSP_APP_H */ diff --git a/mate-session/gsm-app.c b/mate-session/gsm-app.c index 55c2911..7d693b8 100644 --- a/mate-session/gsm-app.c +++ b/mate-session/gsm-app.c @@ -29,17 +29,13 @@ #include "gsm-app.h" #include "gsm-app-glue.h" -#define GSM_APP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_APP, GsmAppPrivate)) - -struct _GsmAppPrivate -{ +typedef struct { char *id; char *app_id; int phase; char *startup_id; DBusGConnection *connection; -}; - +} GsmAppPrivate; enum { EXITED, @@ -60,7 +56,7 @@ enum { LAST_PROP }; -G_DEFINE_TYPE (GsmApp, gsm_app, G_TYPE_OBJECT) +G_DEFINE_TYPE_WITH_PRIVATE (GsmApp, gsm_app, G_TYPE_OBJECT) GQuark gsm_app_error_quark (void) @@ -92,10 +88,13 @@ static gboolean register_app (GsmApp *app) { GError *error; + GsmAppPrivate *priv; error = NULL; - app->priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); - if (app->priv->connection == NULL) { + priv = gsm_app_get_instance_private (app); + + priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); + if (priv->connection == NULL) { if (error != NULL) { g_critical ("error getting session bus: %s", error->message); g_error_free (error); @@ -103,7 +102,7 @@ register_app (GsmApp *app) return FALSE; } - dbus_g_connection_register_g_object (app->priv->connection, app->priv->id, G_OBJECT (app)); + dbus_g_connection_register_g_object (priv->connection, priv->id, G_OBJECT (app)); return TRUE; } @@ -115,13 +114,15 @@ gsm_app_constructor (GType type, { GsmApp *app; gboolean res; + GsmAppPrivate *priv; app = GSM_APP (G_OBJECT_CLASS (gsm_app_parent_class)->constructor (type, n_construct_properties, construct_properties)); + priv = gsm_app_get_instance_private (app); - g_free (app->priv->id); - app->priv->id = g_strdup_printf ("/org/gnome/SessionManager/App%u", get_next_app_serial ()); + g_free (priv->id); + priv->id = g_strdup_printf ("/org/gnome/SessionManager/App%u", get_next_app_serial ()); res = register_app (app); if (! res) { @@ -134,27 +135,32 @@ gsm_app_constructor (GType type, static void gsm_app_init (GsmApp *app) { - app->priv = GSM_APP_GET_PRIVATE (app); } static void gsm_app_set_phase (GsmApp *app, int phase) { + GsmAppPrivate *priv; g_return_if_fail (GSM_IS_APP (app)); - app->priv->phase = phase; + priv = gsm_app_get_instance_private (app); + + priv->phase = phase; } static void gsm_app_set_id (GsmApp *app, const char *id) { + GsmAppPrivate *priv; g_return_if_fail (GSM_IS_APP (app)); - g_free (app->priv->id); + priv = gsm_app_get_instance_private (app); + + g_free (priv->id); - app->priv->id = g_strdup (id); + priv->id = g_strdup (id); g_object_notify (G_OBJECT (app), "id"); } @@ -162,11 +168,14 @@ static void gsm_app_set_startup_id (GsmApp *app, const char *startup_id) { + GsmAppPrivate *priv; g_return_if_fail (GSM_IS_APP (app)); - g_free (app->priv->startup_id); + priv = gsm_app_get_instance_private (app); - app->priv->startup_id = g_strdup (startup_id); + g_free (priv->startup_id); + + priv->startup_id = g_strdup (startup_id); g_object_notify (G_OBJECT (app), "startup-id"); } @@ -200,17 +209,20 @@ gsm_app_get_property (GObject *object, GValue *value, GParamSpec *pspec) { + GsmAppPrivate *priv; GsmApp *app = GSM_APP (object); + priv = gsm_app_get_instance_private (app); + switch (prop_id) { case PROP_STARTUP_ID: - g_value_set_string (value, app->priv->startup_id); + g_value_set_string (value, priv->startup_id); break; case PROP_ID: - g_value_set_string (value, app->priv->id); + g_value_set_string (value, priv->id); break; case PROP_PHASE: - g_value_set_int (value, app->priv->phase); + g_value_set_int (value, priv->phase); break; default: break; @@ -220,13 +232,16 @@ gsm_app_get_property (GObject *object, static void gsm_app_dispose (GObject *object) { + GsmAppPrivate *priv; GsmApp *app = GSM_APP (object); - g_free (app->priv->startup_id); - app->priv->startup_id = NULL; + priv = gsm_app_get_instance_private (app); - g_free (app->priv->id); - app->priv->id = NULL; + g_free (priv->startup_id); + priv->startup_id = NULL; + + g_free (priv->id); + priv->id = NULL; G_OBJECT_CLASS (gsm_app_parent_class)->dispose (object); } @@ -301,14 +316,16 @@ gsm_app_class_init (GsmAppClass *klass) G_TYPE_NONE, 0); - g_type_class_add_private (klass, sizeof (GsmAppPrivate)); dbus_g_object_type_install_info (GSM_TYPE_APP, &dbus_glib_gsm_app_object_info); } const char * gsm_app_peek_id (GsmApp *app) { - return app->priv->id; + GsmAppPrivate *priv; + priv = gsm_app_get_instance_private (app); + + return priv->id; } const char * @@ -320,7 +337,10 @@ gsm_app_peek_app_id (GsmApp *app) const char * gsm_app_peek_startup_id (GsmApp *app) { - return app->priv->startup_id; + GsmAppPrivate *priv; + + priv = gsm_app_get_instance_private (app); + return priv->startup_id; } /** @@ -334,9 +354,12 @@ gsm_app_peek_startup_id (GsmApp *app) GsmManagerPhase gsm_app_peek_phase (GsmApp *app) { + GsmAppPrivate *priv; g_return_val_if_fail (GSM_IS_APP (app), GSM_MANAGER_PHASE_APPLICATION); - return app->priv->phase; + priv = gsm_app_get_instance_private (app); + + return priv->phase; } gboolean @@ -414,7 +437,10 @@ gboolean gsm_app_start (GsmApp *app, GError **error) { - g_debug ("Starting app: %s", app->priv->id); + GsmAppPrivate *priv; + + priv = gsm_app_get_instance_private (app); + g_debug ("Starting app: %s", priv->id); return GSM_APP_GET_CLASS (app)->impl_start (app, error); } @@ -423,7 +449,11 @@ gboolean gsm_app_restart (GsmApp *app, GError **error) { - g_debug ("Re-starting app: %s", app->priv->id); + GsmAppPrivate *priv; + + priv = gsm_app_get_instance_private (app); + + g_debug ("Re-starting app: %s", priv->id); return GSM_APP_GET_CLASS (app)->impl_restart (app, error); } @@ -486,8 +516,11 @@ gsm_app_get_startup_id (GsmApp *app, char **id, GError **error) { + GsmAppPrivate *priv; g_return_val_if_fail (GSM_IS_APP (app), FALSE); - *id = g_strdup (app->priv->startup_id); + + priv = gsm_app_get_instance_private (app); + *id = g_strdup (priv->startup_id); return TRUE; } @@ -496,7 +529,10 @@ gsm_app_get_phase (GsmApp *app, guint *phase, GError **error) { + GsmAppPrivate *priv; g_return_val_if_fail (GSM_IS_APP (app), FALSE); - *phase = app->priv->phase; + + priv = gsm_app_get_instance_private (app); + *phase = priv->phase; return TRUE; } diff --git a/mate-session/gsm-app.h b/mate-session/gsm-app.h index a1adaa3..a535fc5 100644 --- a/mate-session/gsm-app.h +++ b/mate-session/gsm-app.h @@ -30,26 +30,10 @@ #include "gsm-manager.h" #include "gsm-client.h" -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS #define GSM_TYPE_APP (gsm_app_get_type ()) -#define GSM_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_APP, GsmApp)) -#define GSM_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_APP, GsmAppClass)) -#define GSM_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_APP)) -#define GSM_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_APP)) -#define GSM_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_APP, GsmAppClass)) - -typedef struct _GsmApp GsmApp; -typedef struct _GsmAppClass GsmAppClass; -typedef struct _GsmAppPrivate GsmAppPrivate; - -struct _GsmApp -{ - GObject parent; - GsmAppPrivate *priv; -}; +G_DECLARE_DERIVABLE_TYPE (GsmApp, gsm_app, GSM, APP, GObject) struct _GsmAppClass { @@ -131,8 +115,6 @@ gboolean gsm_app_get_phase (GsmApp *app, guint *phase, GError **error); -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_APP_H__ */ diff --git a/mate-session/gsm-autostart-app.c b/mate-session/gsm-autostart-app.c index 11ac4f4..aac072c 100644 --- a/mate-session/gsm-autostart-app.c +++ b/mate-session/gsm-autostart-app.c @@ -56,7 +56,7 @@ enum { #define GSM_SESSION_CLIENT_DBUS_INTERFACE "org.mate.SessionClient" -struct _GsmAutostartAppPrivate { +typedef struct { char *desktop_filename; char *desktop_id; char *startup_id; @@ -78,7 +78,7 @@ struct _GsmAutostartAppPrivate { DBusGProxy *proxy; DBusGProxyCall *proxy_call; -}; +} GsmAutostartAppPrivate; enum { CONDITION_CHANGED, @@ -92,19 +92,19 @@ enum { static guint signals[LAST_SIGNAL] = { 0 }; -#define GSM_AUTOSTART_APP_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), GSM_TYPE_AUTOSTART_APP, GsmAutostartAppPrivate)) - -G_DEFINE_TYPE (GsmAutostartApp, gsm_autostart_app, GSM_TYPE_APP) +G_DEFINE_TYPE_WITH_PRIVATE (GsmAutostartApp, gsm_autostart_app, GSM_TYPE_APP) static void gsm_autostart_app_init (GsmAutostartApp *app) { - app->priv = GSM_AUTOSTART_APP_GET_PRIVATE (app); + GsmAutostartAppPrivate *priv; - app->priv->pid = -1; - app->priv->condition_monitor = NULL; - app->priv->condition = FALSE; - app->priv->autostart_delay = -1; + priv = gsm_autostart_app_get_instance_private (app); + + priv->pid = -1; + priv->condition_monitor = NULL; + priv->condition = FALSE; + priv->autostart_delay = -1; } static gboolean @@ -112,7 +112,7 @@ is_disabled (GsmApp *app) { GsmAutostartAppPrivate *priv; - priv = GSM_AUTOSTART_APP (app)->priv; + priv = gsm_autostart_app_get_instance_private (GSM_AUTOSTART_APP(app)); /* GSM_AUTOSTART_APP_ENABLED_KEY key, used by old mate-session */ if (egg_desktop_file_has_key (priv->desktop_file, @@ -196,7 +196,7 @@ if_exists_condition_cb (GFileMonitor *monitor, GsmAutostartAppPrivate *priv; gboolean condition = FALSE; - priv = GSM_AUTOSTART_APP (app)->priv; + priv = gsm_autostart_app_get_instance_private (GSM_AUTOSTART_APP(app)); switch (event) { case G_FILE_MONITOR_EVENT_CREATED: @@ -227,7 +227,7 @@ unless_exists_condition_cb (GFileMonitor *monitor, GsmAutostartAppPrivate *priv; gboolean condition = FALSE; - priv = GSM_AUTOSTART_APP (app)->priv; + priv = gsm_autostart_app_get_instance_private (GSM_AUTOSTART_APP(app)); switch (event) { case G_FILE_MONITOR_EVENT_CREATED: @@ -261,7 +261,7 @@ gsettings_condition_cb (GSettings *settings, app = GSM_APP (user_data); - priv = GSM_AUTOSTART_APP (app)->priv; + priv = gsm_autostart_app_get_instance_private (GSM_AUTOSTART_APP(app)); condition = g_settings_get_boolean (settings, key); @@ -286,9 +286,12 @@ setup_gsettings_condition_monitor (GsmAutostartApp *app, char **elems; gboolean retval = FALSE; char *signal; + GsmAutostartAppPrivate *priv; elems = g_strsplit (key, " ", 2); + priv = gsm_autostart_app_get_instance_private (app); + if (elems == NULL) goto out; @@ -312,7 +315,7 @@ setup_gsettings_condition_monitor (GsmAutostartApp *app, retval = g_settings_get_boolean (settings, elems[1]); - app->priv->condition_settings = settings; + priv->condition_settings = settings; out: g_strfreev (elems); @@ -327,17 +330,20 @@ setup_condition_monitor (GsmAutostartApp *app) char *key; gboolean res; gboolean UNUSED_VARIABLE disabled; + GsmAutostartAppPrivate *priv; + + priv = gsm_autostart_app_get_instance_private (app); - if (app->priv->condition_monitor != NULL) { - g_file_monitor_cancel (app->priv->condition_monitor); + if (priv->condition_monitor != NULL) { + g_file_monitor_cancel (priv->condition_monitor); } - if (app->priv->condition_settings != NULL) { - g_object_unref (app->priv->condition_settings); - app->priv->condition_settings = NULL; + if (priv->condition_settings != NULL) { + g_object_unref (priv->condition_settings); + priv->condition_settings = NULL; } - if (app->priv->condition_string == NULL) { + if (priv->condition_string == NULL) { return; } @@ -347,7 +353,7 @@ setup_condition_monitor (GsmAutostartApp *app) } key = NULL; - res = parse_condition_string (app->priv->condition_string, &kind, &key); + res = parse_condition_string (priv->condition_string, &kind, &key); if (! res) { g_free (key); return; @@ -366,9 +372,9 @@ setup_condition_monitor (GsmAutostartApp *app) disabled = !g_file_test (file_path, G_FILE_TEST_EXISTS); file = g_file_new_for_path (file_path); - app->priv->condition_monitor = g_file_monitor_file (file, 0, NULL, NULL); + priv->condition_monitor = g_file_monitor_file (file, 0, NULL, NULL); - g_signal_connect (app->priv->condition_monitor, "changed", + g_signal_connect (priv->condition_monitor, "changed", G_CALLBACK (if_exists_condition_cb), app); @@ -383,9 +389,9 @@ setup_condition_monitor (GsmAutostartApp *app) disabled = g_file_test (file_path, G_FILE_TEST_EXISTS); file = g_file_new_for_path (file_path); - app->priv->condition_monitor = g_file_monitor_file (file, 0, NULL, NULL); + priv->condition_monitor = g_file_monitor_file (file, 0, NULL, NULL); - g_signal_connect (app->priv->condition_monitor, "changed", + g_signal_connect (priv->condition_monitor, "changed", G_CALLBACK (unless_exists_condition_cb), app); @@ -412,12 +418,15 @@ load_desktop_file (GsmAutostartApp *app) char *phase_str; int phase; gboolean res; + GsmAutostartAppPrivate *priv; + + priv = gsm_autostart_app_get_instance_private (app); - if (app->priv->desktop_file == NULL) { + if (priv->desktop_file == NULL) { return FALSE; } - phase_str = egg_desktop_file_get_string (app->priv->desktop_file, + phase_str = egg_desktop_file_get_string (priv->desktop_file, GSM_AUTOSTART_APP_PHASE_KEY, NULL); if (phase_str != NULL) { @@ -438,20 +447,20 @@ load_desktop_file (GsmAutostartApp *app) phase = GSM_MANAGER_PHASE_APPLICATION; } - dbus_name = egg_desktop_file_get_string (app->priv->desktop_file, + dbus_name = egg_desktop_file_get_string (priv->desktop_file, GSM_AUTOSTART_APP_DBUS_NAME_KEY, NULL); if (dbus_name != NULL) { - app->priv->launch_type = AUTOSTART_LAUNCH_ACTIVATE; + priv->launch_type = AUTOSTART_LAUNCH_ACTIVATE; } else { - app->priv->launch_type = AUTOSTART_LAUNCH_SPAWN; + priv->launch_type = AUTOSTART_LAUNCH_SPAWN; } /* this must only be done on first load */ - switch (app->priv->launch_type) { + switch (priv->launch_type) { case AUTOSTART_LAUNCH_SPAWN: startup_id = - egg_desktop_file_get_string (app->priv->desktop_file, + egg_desktop_file_get_string (priv->desktop_file, GSM_AUTOSTART_APP_STARTUP_ID_KEY, NULL); @@ -466,32 +475,32 @@ load_desktop_file (GsmAutostartApp *app) g_assert_not_reached (); } - res = egg_desktop_file_has_key (app->priv->desktop_file, + res = egg_desktop_file_has_key (priv->desktop_file, GSM_AUTOSTART_APP_AUTORESTART_KEY, NULL); if (res) { - app->priv->autorestart = egg_desktop_file_get_boolean (app->priv->desktop_file, - GSM_AUTOSTART_APP_AUTORESTART_KEY, - NULL); + priv->autorestart = egg_desktop_file_get_boolean (priv->desktop_file, + GSM_AUTOSTART_APP_AUTORESTART_KEY, + NULL); } else { - app->priv->autorestart = FALSE; + priv->autorestart = FALSE; } - g_free (app->priv->condition_string); - app->priv->condition_string = egg_desktop_file_get_string (app->priv->desktop_file, - "AutostartCondition", - NULL); + g_free (priv->condition_string); + priv->condition_string = egg_desktop_file_get_string (priv->desktop_file, + "AutostartCondition", + NULL); setup_condition_monitor (app); if (phase == GSM_MANAGER_PHASE_APPLICATION) { /* Only accept an autostart delay for the application phase */ - app->priv->autostart_delay = egg_desktop_file_get_integer (app->priv->desktop_file, - GSM_AUTOSTART_APP_DELAY_KEY, - NULL); - if (app->priv->autostart_delay < 0) { - g_warning ("Invalid autostart delay of %d for %s", app->priv->autostart_delay, + priv->autostart_delay = egg_desktop_file_get_integer (priv->desktop_file, + GSM_AUTOSTART_APP_DELAY_KEY, + NULL); + if (priv->autostart_delay < 0) { + g_warning ("Invalid autostart delay of %d for %s", priv->autostart_delay, gsm_app_peek_id (GSM_APP (app))); - app->priv->autostart_delay = -1; + priv->autostart_delay = -1; } } @@ -511,22 +520,25 @@ gsm_autostart_app_set_desktop_filename (GsmAutostartApp *app, const char *desktop_filename) { GError *error; + GsmAutostartAppPrivate *priv; + + priv = gsm_autostart_app_get_instance_private (app); - if (app->priv->desktop_file != NULL) { - egg_desktop_file_free (app->priv->desktop_file); - app->priv->desktop_file = NULL; - g_free (app->priv->desktop_id); + if (priv->desktop_file != NULL) { + egg_desktop_file_free (priv->desktop_file); + priv->desktop_file = NULL; + g_free (priv->desktop_id); } if (desktop_filename == NULL) { return; } - app->priv->desktop_id = g_path_get_basename (desktop_filename); + priv->desktop_id = g_path_get_basename (desktop_filename); error = NULL; - app->priv->desktop_file = egg_desktop_file_new (desktop_filename, &error); - if (app->priv->desktop_file == NULL) { + priv->desktop_file = egg_desktop_file_new (desktop_filename, &error); + if (priv->desktop_file == NULL) { g_warning ("Could not parse desktop file %s: %s", desktop_filename, error->message); @@ -562,13 +574,15 @@ gsm_autostart_app_get_property (GObject *object, GParamSpec *pspec) { GsmAutostartApp *self; + GsmAutostartAppPrivate *priv; self = GSM_AUTOSTART_APP (object); + priv = gsm_autostart_app_get_instance_private (self); switch (prop_id) { case PROP_DESKTOP_FILENAME: - if (self->priv->desktop_file != NULL) { - g_value_set_string (value, egg_desktop_file_get_source (self->priv->desktop_file)); + if (priv->desktop_file != NULL) { + g_value_set_string (value, egg_desktop_file_get_source (priv->desktop_file)); } else { g_value_set_string (value, NULL); } @@ -584,7 +598,7 @@ gsm_autostart_app_dispose (GObject *object) { GsmAutostartAppPrivate *priv; - priv = GSM_AUTOSTART_APP (object)->priv; + priv = gsm_autostart_app_get_instance_private (GSM_AUTOSTART_APP(object)); if (priv->startup_id) { g_free (priv->startup_id); @@ -639,7 +653,7 @@ is_running (GsmApp *app) GsmAutostartAppPrivate *priv; gboolean is; - priv = GSM_AUTOSTART_APP (app)->priv; + priv = gsm_autostart_app_get_instance_private (GSM_AUTOSTART_APP(app)); /* is running if pid is still valid or * or a client is connected @@ -653,13 +667,13 @@ is_running (GsmApp *app) static gboolean is_conditionally_disabled (GsmApp *app) { - GsmAutostartAppPrivate *priv; gboolean res; gboolean disabled; char *key; guint kind; + GsmAutostartAppPrivate *priv; - priv = GSM_AUTOSTART_APP (app)->priv; + priv = gsm_autostart_app_get_instance_private (GSM_AUTOSTART_APP(app)); /* Check AutostartCondition */ if (priv->condition_string == NULL) { @@ -716,6 +730,9 @@ app_exited (GPid pid, int status, GsmAutostartApp *app) { + GsmAutostartAppPrivate *priv; + + priv = gsm_autostart_app_get_instance_private (app); g_debug ("GsmAutostartApp: (pid:%d) done (%s:%d)", (int) pid, WIFEXITED (status) ? "status" @@ -725,9 +742,9 @@ app_exited (GPid pid, : WIFSIGNALED (status) ? WTERMSIG (status) : -1); - g_spawn_close_pid (app->priv->pid); - app->priv->pid = -1; - app->priv->child_watch_id = 0; + g_spawn_close_pid (priv->pid); + priv->pid = -1; + priv->child_watch_id = 0; if (WIFEXITED (status)) { gsm_app_exited (GSM_APP (app)); @@ -768,8 +785,11 @@ autostart_app_stop_spawn (GsmAutostartApp *app, GError **error) { int res; + GsmAutostartAppPrivate *priv; + + priv = gsm_autostart_app_get_instance_private (app); - if (app->priv->pid < 1) { + if (priv->pid < 1) { g_set_error (error, GSM_APP_ERROR, GSM_APP_ERROR_STOP, @@ -777,7 +797,7 @@ autostart_app_stop_spawn (GsmAutostartApp *app, return FALSE; } - res = _signal_pid (app->priv->pid, SIGTERM); + res = _signal_pid (priv->pid, SIGTERM); if (res != 0) { g_set_error (error, GSM_APP_ERROR, @@ -803,12 +823,14 @@ gsm_autostart_app_stop (GsmApp *app, { GsmAutostartApp *aapp; gboolean ret; + GsmAutostartAppPrivate *priv; aapp = GSM_AUTOSTART_APP (app); - g_return_val_if_fail (aapp->priv->desktop_file != NULL, FALSE); + priv = gsm_autostart_app_get_instance_private (aapp); + g_return_val_if_fail (priv->desktop_file != NULL, FALSE); - switch (aapp->priv->launch_type) { + switch (priv->launch_type) { case AUTOSTART_LAUNCH_SPAWN: ret = autostart_app_stop_spawn (aapp, error); break; @@ -832,43 +854,45 @@ autostart_app_start_spawn (GsmAutostartApp *app, GError *local_error; const char *startup_id; char *command; + GsmAutostartAppPrivate *priv; startup_id = gsm_app_peek_startup_id (GSM_APP (app)); g_assert (startup_id != NULL); + priv = gsm_autostart_app_get_instance_private (app); env[0] = g_strdup_printf ("DESKTOP_AUTOSTART_ID=%s", startup_id); local_error = NULL; - command = egg_desktop_file_parse_exec (app->priv->desktop_file, + command = egg_desktop_file_parse_exec (priv->desktop_file, NULL, &local_error); if (command == NULL) { g_warning ("Unable to parse command from '%s': %s", - egg_desktop_file_get_source (app->priv->desktop_file), + egg_desktop_file_get_source (priv->desktop_file), local_error->message); g_error_free (local_error); } - g_debug ("GsmAutostartApp: starting %s: command=%s startup-id=%s", app->priv->desktop_id, command, startup_id); + g_debug ("GsmAutostartApp: starting %s: command=%s startup-id=%s", priv->desktop_id, command, startup_id); g_free (command); - g_free (app->priv->startup_id); + g_free (priv->startup_id); local_error = NULL; - success = egg_desktop_file_launch (app->priv->desktop_file, + success = egg_desktop_file_launch (priv->desktop_file, NULL, &local_error, EGG_DESKTOP_FILE_LAUNCH_PUTENV, env, EGG_DESKTOP_FILE_LAUNCH_FLAGS, G_SPAWN_DO_NOT_REAP_CHILD, - EGG_DESKTOP_FILE_LAUNCH_RETURN_PID, &app->priv->pid, - EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID, &app->priv->startup_id, + EGG_DESKTOP_FILE_LAUNCH_RETURN_PID, &priv->pid, + EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID, &priv->startup_id, NULL); g_free (env[0]); if (success) { - g_debug ("GsmAutostartApp: started pid:%d", app->priv->pid); - app->priv->child_watch_id = g_child_watch_add (app->priv->pid, - (GChildWatchFunc)app_exited, - app); + g_debug ("GsmAutostartApp: started pid:%d", priv->pid); + priv->child_watch_id = g_child_watch_add (priv->pid, + (GChildWatchFunc)app_exited, + app); } else { g_set_error (error, GSM_APP_ERROR, @@ -887,19 +911,22 @@ start_notify (DBusGProxy *proxy, { gboolean res; GError *error; + GsmAutostartAppPrivate *priv; + + priv = gsm_autostart_app_get_instance_private (app); error = NULL; res = dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID); - app->priv->proxy_call = NULL; + priv->proxy_call = NULL; if (! res) { g_warning ("GsmAutostartApp: Error starting application: %s", error->message); g_error_free (error); } else { - g_debug ("GsmAutostartApp: Started application %s", app->priv->desktop_id); + g_debug ("GsmAutostartApp: Started application %s", priv->desktop_id); } } @@ -912,6 +939,9 @@ autostart_app_start_activate (GsmAutostartApp *app, char *arguments; DBusGConnection *bus; GError *local_error; + GsmAutostartAppPrivate *priv; + + priv = gsm_autostart_app_get_instance_private (app); local_error = NULL; bus = dbus_g_bus_get (DBUS_BUS_SESSION, &local_error); @@ -926,7 +956,7 @@ autostart_app_start_activate (GsmAutostartApp *app, name = gsm_app_peek_startup_id (GSM_APP (app)); g_assert (name != NULL); - path = egg_desktop_file_get_string (app->priv->desktop_file, + path = egg_desktop_file_get_string (priv->desktop_file, GSM_AUTOSTART_APP_DBUS_PATH_KEY, NULL); if (path == NULL) { @@ -934,15 +964,15 @@ autostart_app_start_activate (GsmAutostartApp *app, path = g_strdup ("/"); } - arguments = egg_desktop_file_get_string (app->priv->desktop_file, + arguments = egg_desktop_file_get_string (priv->desktop_file, GSM_AUTOSTART_APP_DBUS_ARGS_KEY, NULL); - app->priv->proxy = dbus_g_proxy_new_for_name (bus, - name, - path, - GSM_SESSION_CLIENT_DBUS_INTERFACE); - if (app->priv->proxy == NULL) { + priv->proxy = dbus_g_proxy_new_for_name (bus, + name, + path, + GSM_SESSION_CLIENT_DBUS_INTERFACE); + if (priv->proxy == NULL) { g_set_error (error, GSM_APP_ERROR, GSM_APP_ERROR_START, @@ -950,16 +980,16 @@ autostart_app_start_activate (GsmAutostartApp *app, return FALSE; } - app->priv->proxy_call = dbus_g_proxy_begin_call (app->priv->proxy, - "Start", - (DBusGProxyCallNotify)start_notify, - app, - NULL, - G_TYPE_STRING, arguments, - G_TYPE_INVALID); - if (app->priv->proxy_call == NULL) { - g_object_unref (app->priv->proxy); - app->priv->proxy = NULL; + priv->proxy_call = dbus_g_proxy_begin_call (priv->proxy, + "Start", + (DBusGProxyCallNotify)start_notify, + app, + NULL, + G_TYPE_STRING, arguments, + G_TYPE_INVALID); + if (priv->proxy_call == NULL) { + g_object_unref (priv->proxy); + priv->proxy = NULL; g_set_error (error, GSM_APP_ERROR, GSM_APP_ERROR_START, @@ -976,12 +1006,14 @@ gsm_autostart_app_start (GsmApp *app, { GsmAutostartApp *aapp; gboolean ret; + GsmAutostartAppPrivate *priv; aapp = GSM_AUTOSTART_APP (app); + priv = gsm_autostart_app_get_instance_private (aapp); - g_return_val_if_fail (aapp->priv->desktop_file != NULL, FALSE); + g_return_val_if_fail (priv->desktop_file != NULL, FALSE); - switch (aapp->priv->launch_type) { + switch (priv->launch_type) { case AUTOSTART_LAUNCH_SPAWN: ret = autostart_app_start_spawn (aapp, error); break; @@ -1028,16 +1060,19 @@ gsm_autostart_app_provides (GsmApp *app, gsize len; gsize i; GsmAutostartApp *aapp; + GsmAutostartAppPrivate *priv; + g_return_val_if_fail (GSM_IS_APP (app), FALSE); aapp = GSM_AUTOSTART_APP (app); + priv = gsm_autostart_app_get_instance_private (aapp); - if (aapp->priv->desktop_file == NULL) { + if (priv->desktop_file == NULL) { return FALSE; } - provides = egg_desktop_file_get_string_list (aapp->priv->desktop_file, + provides = egg_desktop_file_get_string_list (priv->desktop_file, GSM_AUTOSTART_APP_PROVIDES_KEY, &len, NULL); if (!provides) { @@ -1060,17 +1095,19 @@ gsm_autostart_app_has_autostart_condition (GsmApp *app, const char *condition) { GsmAutostartApp *aapp; + GsmAutostartAppPrivate *priv; g_return_val_if_fail (GSM_IS_APP (app), FALSE); g_return_val_if_fail (condition != NULL, FALSE); aapp = GSM_AUTOSTART_APP (app); + priv = gsm_autostart_app_get_instance_private (aapp); - if (aapp->priv->condition_string == NULL) { + if (priv->condition_string == NULL) { return FALSE; } - if (strcmp (aapp->priv->condition_string, condition) == 0) { + if (strcmp (priv->condition_string, condition) == 0) { return TRUE; } @@ -1082,18 +1119,21 @@ gsm_autostart_app_get_autorestart (GsmApp *app) { gboolean res; gboolean autorestart; + GsmAutostartAppPrivate *priv; + + priv = gsm_autostart_app_get_instance_private (GSM_AUTOSTART_APP(app)); - if (GSM_AUTOSTART_APP (app)->priv->desktop_file == NULL) { + if (priv->desktop_file == NULL) { return FALSE; } autorestart = FALSE; - res = egg_desktop_file_has_key (GSM_AUTOSTART_APP (app)->priv->desktop_file, + res = egg_desktop_file_has_key (priv->desktop_file, GSM_AUTOSTART_APP_AUTORESTART_KEY, NULL); if (res) { - autorestart = egg_desktop_file_get_boolean (GSM_AUTOSTART_APP (app)->priv->desktop_file, + autorestart = egg_desktop_file_get_boolean (priv->desktop_file, GSM_AUTOSTART_APP_AUTORESTART_KEY, NULL); } @@ -1106,12 +1146,15 @@ gsm_autostart_app_get_app_id (GsmApp *app) { const char *location; const char *slash; + GsmAutostartAppPrivate *priv; + + priv = gsm_autostart_app_get_instance_private (GSM_AUTOSTART_APP(app)); - if (GSM_AUTOSTART_APP (app)->priv->desktop_file == NULL) { + if (priv->desktop_file == NULL) { return NULL; } - location = egg_desktop_file_get_source (GSM_AUTOSTART_APP (app)->priv->desktop_file); + location = egg_desktop_file_get_source (priv->desktop_file); slash = strrchr (location, '/'); if (slash != NULL) { @@ -1124,9 +1167,12 @@ gsm_autostart_app_get_app_id (GsmApp *app) static int gsm_autostart_app_peek_autostart_delay (GsmApp *app) { + GsmAutostartAppPrivate *priv; GsmAutostartApp *aapp = GSM_AUTOSTART_APP (app); - return aapp->priv->autostart_delay; + priv = gsm_autostart_app_get_instance_private (aapp); + + return priv->autostart_delay; } static GObject * @@ -1188,8 +1234,6 @@ gsm_autostart_app_class_init (GsmAutostartAppClass *klass) G_TYPE_NONE, 1, G_TYPE_BOOLEAN); - - g_type_class_add_private (object_class, sizeof (GsmAutostartAppPrivate)); } GsmApp * diff --git a/mate-session/gsm-autostart-app.h b/mate-session/gsm-autostart-app.h index 4c45338..ff92fca 100644 --- a/mate-session/gsm-autostart-app.h +++ b/mate-session/gsm-autostart-app.h @@ -26,27 +26,10 @@ #include <X11/SM/SMlib.h> -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS #define GSM_TYPE_AUTOSTART_APP (gsm_autostart_app_get_type ()) -#define GSM_AUTOSTART_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_AUTOSTART_APP, GsmAutostartApp)) -#define GSM_AUTOSTART_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_AUTOSTART_APP, GsmAutostartAppClass)) -#define GSM_IS_AUTOSTART_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_AUTOSTART_APP)) -#define GSM_IS_AUTOSTART_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_AUTOSTART_APP)) -#define GSM_AUTOSTART_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_AUTOSTART_APP, GsmAutostartAppClass)) - -typedef struct _GsmAutostartApp GsmAutostartApp; -typedef struct _GsmAutostartAppClass GsmAutostartAppClass; -typedef struct _GsmAutostartAppPrivate GsmAutostartAppPrivate; - -struct _GsmAutostartApp -{ - GsmApp parent; - - GsmAutostartAppPrivate *priv; -}; +G_DECLARE_DERIVABLE_TYPE (GsmAutostartApp, gsm_autostart_app, GSM, AUTOSTART_APP, GsmApp) struct _GsmAutostartAppClass { @@ -72,8 +55,6 @@ GsmApp *gsm_autostart_app_new (const char *desktop_file); #define GSM_AUTOSTART_APP_DISCARD_KEY "X-MATE-Autostart-discard-exec" #define GSM_AUTOSTART_APP_DELAY_KEY "X-MATE-Autostart-Delay" -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_AUTOSTART_APP_H__ */ diff --git a/mate-session/gsm-client.c b/mate-session/gsm-client.c index 2909d99..13c6169 100644 --- a/mate-session/gsm-client.c +++ b/mate-session/gsm-client.c @@ -31,16 +31,14 @@ static guint32 client_serial = 1; -#define GSM_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_CLIENT, GsmClientPrivate)) - -struct GsmClientPrivate -{ +typedef struct { + GObject parent; char *id; char *startup_id; char *app_id; guint status; DBusGConnection *connection; -}; +} GsmClientPrivate; enum { PROP_0, @@ -58,7 +56,7 @@ enum { static guint signals[LAST_SIGNAL] = { 0 }; -G_DEFINE_ABSTRACT_TYPE (GsmClient, gsm_client, G_TYPE_OBJECT) +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GsmClient, gsm_client, G_TYPE_OBJECT) GQuark gsm_client_error_quark (void) @@ -111,10 +109,12 @@ static gboolean register_client (GsmClient *client) { GError *error; + GsmClientPrivate *priv; error = NULL; - client->priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); - if (client->priv->connection == NULL) { + priv = gsm_client_get_instance_private (client); + priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); + if (priv->connection == NULL) { if (error != NULL) { g_critical ("error getting session bus: %s", error->message); g_error_free (error); @@ -122,7 +122,7 @@ register_client (GsmClient *client) return FALSE; } - dbus_g_connection_register_g_object (client->priv->connection, client->priv->id, G_OBJECT (client)); + dbus_g_connection_register_g_object (priv->connection, priv->id, G_OBJECT (client)); return TRUE; } @@ -134,13 +134,14 @@ gsm_client_constructor (GType type, { GsmClient *client; gboolean res; + GsmClientPrivate *priv; client = GSM_CLIENT (G_OBJECT_CLASS (gsm_client_parent_class)->constructor (type, n_construct_properties, construct_properties)); - - g_free (client->priv->id); - client->priv->id = g_strdup_printf ("/org/gnome/SessionManager/Client%u", get_next_client_serial ()); + priv = gsm_client_get_instance_private (client); + g_free (priv->id); + priv->id = g_strdup_printf ("/org/gnome/SessionManager/Client%u", get_next_client_serial ()); res = register_client (client); if (! res) { @@ -153,24 +154,25 @@ gsm_client_constructor (GType type, static void gsm_client_init (GsmClient *client) { - client->priv = GSM_CLIENT_GET_PRIVATE (client); } static void gsm_client_finalize (GObject *object) { GsmClient *client; + GsmClientPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GSM_IS_CLIENT (object)); client = GSM_CLIENT (object); + priv = gsm_client_get_instance_private (client); - g_return_if_fail (client->priv != NULL); + g_return_if_fail (priv != NULL); - g_free (client->priv->id); - g_free (client->priv->startup_id); - g_free (client->priv->app_id); + g_free (priv->id); + g_free (priv->startup_id); + g_free (priv->app_id); G_OBJECT_CLASS (gsm_client_parent_class)->finalize (object); } @@ -179,9 +181,12 @@ void gsm_client_set_status (GsmClient *client, guint status) { + GsmClientPrivate *priv; g_return_if_fail (GSM_IS_CLIENT (client)); - if (client->priv->status != status) { - client->priv->status = status; + + priv = gsm_client_get_instance_private (client); + if (priv->status != status) { + priv->status = status; g_object_notify (G_OBJECT (client), "status"); } } @@ -190,14 +195,17 @@ static void gsm_client_set_startup_id (GsmClient *client, const char *startup_id) { + GsmClientPrivate *priv; g_return_if_fail (GSM_IS_CLIENT (client)); - g_free (client->priv->startup_id); + priv = gsm_client_get_instance_private (client); + + g_free (priv->startup_id); if (startup_id != NULL) { - client->priv->startup_id = g_strdup (startup_id); + priv->startup_id = g_strdup (startup_id); } else { - client->priv->startup_id = g_strdup (""); + priv->startup_id = g_strdup (""); } g_object_notify (G_OBJECT (client), "startup-id"); } @@ -206,14 +214,17 @@ void gsm_client_set_app_id (GsmClient *client, const char *app_id) { + GsmClientPrivate *priv; g_return_if_fail (GSM_IS_CLIENT (client)); - g_free (client->priv->app_id); + priv = gsm_client_get_instance_private (client); + + g_free (priv->app_id); if (app_id != NULL) { - client->priv->app_id = g_strdup (app_id); + priv->app_id = g_strdup (app_id); } else { - client->priv->app_id = g_strdup (""); + priv->app_id = g_strdup (""); } g_object_notify (G_OBJECT (client), "app-id"); } @@ -251,18 +262,20 @@ gsm_client_get_property (GObject *object, GParamSpec *pspec) { GsmClient *self; + GsmClientPrivate *priv; self = GSM_CLIENT (object); + priv = gsm_client_get_instance_private (self); switch (prop_id) { case PROP_STARTUP_ID: - g_value_set_string (value, self->priv->startup_id); + g_value_set_string (value, priv->startup_id); break; case PROP_APP_ID: - g_value_set_string (value, self->priv->app_id); + g_value_set_string (value, priv->app_id); break; case PROP_STATUS: - g_value_set_uint (value, self->priv->status); + g_value_set_uint (value, priv->status); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -285,13 +298,15 @@ static void gsm_client_dispose (GObject *object) { GsmClient *client; + GsmClientPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GSM_IS_CLIENT (object)); client = GSM_CLIENT (object); + priv = gsm_client_get_instance_private (client); - g_debug ("GsmClient: disposing %s", client->priv->id); + g_debug ("GsmClient: disposing %s", priv->id); G_OBJECT_CLASS (gsm_client_parent_class)->dispose (object); } @@ -352,17 +367,18 @@ gsm_client_class_init (GsmClientClass *klass) GSM_CLIENT_UNREGISTERED, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - g_type_class_add_private (klass, sizeof (GsmClientPrivate)); - dbus_g_object_type_install_info (GSM_TYPE_CLIENT, &dbus_glib_gsm_client_object_info); } const char * gsm_client_peek_id (GsmClient *client) { + GsmClientPrivate *priv; g_return_val_if_fail (GSM_IS_CLIENT (client), NULL); - return client->priv->id; + priv = gsm_client_get_instance_private (client); + + return priv->id; } /** @@ -378,25 +394,34 @@ gsm_client_peek_id (GsmClient *client) const char * gsm_client_peek_app_id (GsmClient *client) { + GsmClientPrivate *priv; g_return_val_if_fail (GSM_IS_CLIENT (client), NULL); - return client->priv->app_id; + priv = gsm_client_get_instance_private (client); + + return priv->app_id; } const char * gsm_client_peek_startup_id (GsmClient *client) { + GsmClientPrivate *priv; g_return_val_if_fail (GSM_IS_CLIENT (client), NULL); - return client->priv->startup_id; + priv = gsm_client_get_instance_private (client); + + return priv->startup_id; } guint gsm_client_peek_status (GsmClient *client) { + GsmClientPrivate *priv; g_return_val_if_fail (GSM_IS_CLIENT (client), GSM_CLIENT_UNREGISTERED); - return client->priv->status; + priv = gsm_client_get_instance_private (client); + + return priv->status; } guint @@ -412,9 +437,12 @@ gsm_client_get_startup_id (GsmClient *client, char **id, GError **error) { + GsmClientPrivate *priv; g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE); - *id = g_strdup (client->priv->startup_id); + priv = gsm_client_get_instance_private (client); + + *id = g_strdup (priv->startup_id); return TRUE; } @@ -424,9 +452,12 @@ gsm_client_get_app_id (GsmClient *client, char **id, GError **error) { + GsmClientPrivate *priv; g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE); - *id = g_strdup (client->priv->app_id); + priv = gsm_client_get_instance_private (client); + + *id = g_strdup (priv->app_id); return TRUE; } @@ -448,9 +479,12 @@ gsm_client_get_status (GsmClient *client, guint *status, GError **error) { + GsmClientPrivate *priv; g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE); - *status = client->priv->status; + priv = gsm_client_get_instance_private (client); + + *status = priv->status; return TRUE; } diff --git a/mate-session/gsm-client.h b/mate-session/gsm-client.h index 91e9cba..b623742 100644 --- a/mate-session/gsm-client.h +++ b/mate-session/gsm-client.h @@ -26,21 +26,10 @@ #include <glib-object.h> #include <sys/types.h> -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS #define GSM_TYPE_CLIENT (gsm_client_get_type ()) -#define GSM_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_CLIENT, GsmClient)) -#define GSM_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_CLIENT, GsmClientClass)) -#define GSM_IS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_CLIENT)) -#define GSM_IS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_CLIENT)) -#define GSM_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_CLIENT, GsmClientClass)) - -typedef struct _GsmClient GsmClient; -typedef struct _GsmClientClass GsmClientClass; - -typedef struct GsmClientPrivate GsmClientPrivate; +G_DECLARE_DERIVABLE_TYPE (GsmClient, gsm_client, GSM, CLIENT, GObject) typedef enum { GSM_CLIENT_UNREGISTERED = 0, @@ -62,12 +51,6 @@ typedef enum { GSM_CLIENT_END_SESSION_FLAG_LAST = 1 << 2 } GsmClientEndSessionFlag; -struct _GsmClient -{ - GObject parent; - GsmClientPrivate *priv; -}; - struct _GsmClientClass { GObjectClass parent_class; @@ -110,7 +93,6 @@ typedef enum GType gsm_client_error_get_type (void); GQuark gsm_client_error_quark (void); - GType gsm_client_get_type (void) G_GNUC_CONST; const char *gsm_client_peek_id (GsmClient *client); @@ -168,8 +150,6 @@ void gsm_client_end_session_response (GsmClient *client, gboolean cancel, const char *reason); -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_CLIENT_H__ */ diff --git a/mate-session/gsm-consolekit.c b/mate-session/gsm-consolekit.c index 5f39358..31dbb70 100644 --- a/mate-session/gsm-consolekit.c +++ b/mate-session/gsm-consolekit.c @@ -43,16 +43,13 @@ #define CK_SEAT_INTERFACE "org.freedesktop.ConsoleKit.Seat" #define CK_SESSION_INTERFACE "org.freedesktop.ConsoleKit.Session" -#define GSM_CONSOLEKIT_GET_PRIVATE(o) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_CONSOLEKIT, GsmConsolekitPrivate)) - -struct _GsmConsolekitPrivate +typedef struct { DBusGConnection *dbus_connection; DBusGProxy *bus_proxy; DBusGProxy *ck_proxy; guint32 is_connected : 1; -}; +} GsmConsolekitPrivate; enum { PROP_0, @@ -83,7 +80,7 @@ static void gsm_consolekit_on_name_owner_changed (DBusGProxy *bus_pro const char *new_owner, GsmConsolekit *manager); -G_DEFINE_TYPE (GsmConsolekit, gsm_consolekit, G_TYPE_OBJECT); +G_DEFINE_TYPE_WITH_PRIVATE (GsmConsolekit, gsm_consolekit, G_TYPE_OBJECT); static void gsm_consolekit_get_property (GObject *object, @@ -92,11 +89,14 @@ gsm_consolekit_get_property (GObject *object, GParamSpec *pspec) { GsmConsolekit *manager = GSM_CONSOLEKIT (object); + GsmConsolekitPrivate *priv; + + priv = gsm_consolekit_get_instance_private (manager); switch (prop_id) { case PROP_IS_CONNECTED: g_value_set_boolean (value, - manager->priv->is_connected); + priv->is_connected); break; default: @@ -148,7 +148,6 @@ gsm_consolekit_class_init (GsmConsolekitClass *manager_class) G_TYPE_NONE, 3, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_POINTER); - g_type_class_add_private (manager_class, sizeof (GsmConsolekitPrivate)); } static DBusHandlerResult @@ -177,64 +176,66 @@ gsm_consolekit_ensure_ck_connection (GsmConsolekit *manager, { GError *connection_error; gboolean is_connected; + GsmConsolekitPrivate *priv; connection_error = NULL; + priv = gsm_consolekit_get_instance_private (manager); - if (manager->priv->dbus_connection == NULL) { + if (priv->dbus_connection == NULL) { DBusConnection *connection; - manager->priv->dbus_connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, - &connection_error); + priv->dbus_connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, + &connection_error); - if (manager->priv->dbus_connection == NULL) { + if (priv->dbus_connection == NULL) { g_propagate_error (error, connection_error); is_connected = FALSE; goto out; } - connection = dbus_g_connection_get_connection (manager->priv->dbus_connection); + connection = dbus_g_connection_get_connection (priv->dbus_connection); dbus_connection_set_exit_on_disconnect (connection, FALSE); dbus_connection_add_filter (connection, gsm_consolekit_dbus_filter, manager, NULL); } - if (manager->priv->bus_proxy == NULL) { - manager->priv->bus_proxy = - dbus_g_proxy_new_for_name_owner (manager->priv->dbus_connection, + if (priv->bus_proxy == NULL) { + priv->bus_proxy = + dbus_g_proxy_new_for_name_owner (priv->dbus_connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, &connection_error); - if (manager->priv->bus_proxy == NULL) { + if (priv->bus_proxy == NULL) { g_propagate_error (error, connection_error); is_connected = FALSE; goto out; } - dbus_g_proxy_add_signal (manager->priv->bus_proxy, + dbus_g_proxy_add_signal (priv->bus_proxy, "NameOwnerChanged", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); - dbus_g_proxy_connect_signal (manager->priv->bus_proxy, + dbus_g_proxy_connect_signal (priv->bus_proxy, "NameOwnerChanged", G_CALLBACK (gsm_consolekit_on_name_owner_changed), manager, NULL); } - if (manager->priv->ck_proxy == NULL) { - manager->priv->ck_proxy = - dbus_g_proxy_new_for_name_owner (manager->priv->dbus_connection, + if (priv->ck_proxy == NULL) { + priv->ck_proxy = + dbus_g_proxy_new_for_name_owner (priv->dbus_connection, "org.freedesktop.ConsoleKit", "/org/freedesktop/ConsoleKit/Manager", "org.freedesktop.ConsoleKit.Manager", &connection_error); - if (manager->priv->ck_proxy == NULL) { + if (priv->ck_proxy == NULL) { g_propagate_error (error, connection_error); is_connected = FALSE; goto out; @@ -244,26 +245,26 @@ gsm_consolekit_ensure_ck_connection (GsmConsolekit *manager, is_connected = TRUE; out: - if (manager->priv->is_connected != is_connected) { - manager->priv->is_connected = is_connected; + if (priv->is_connected != is_connected) { + priv->is_connected = is_connected; g_object_notify (G_OBJECT (manager), "is-connected"); } if (!is_connected) { - if (manager->priv->dbus_connection == NULL) { - if (manager->priv->bus_proxy != NULL) { - g_object_unref (manager->priv->bus_proxy); - manager->priv->bus_proxy = NULL; + if (priv->dbus_connection == NULL) { + if (priv->bus_proxy != NULL) { + g_object_unref (priv->bus_proxy); + priv->bus_proxy = NULL; } - if (manager->priv->ck_proxy != NULL) { - g_object_unref (manager->priv->ck_proxy); - manager->priv->ck_proxy = NULL; + if (priv->ck_proxy != NULL) { + g_object_unref (priv->ck_proxy); + priv->ck_proxy = NULL; } - } else if (manager->priv->bus_proxy == NULL) { - if (manager->priv->ck_proxy != NULL) { - g_object_unref (manager->priv->ck_proxy); - manager->priv->ck_proxy = NULL; + } else if (priv->bus_proxy == NULL) { + if (priv->ck_proxy != NULL) { + g_object_unref (priv->ck_proxy); + priv->ck_proxy = NULL; } } } @@ -278,13 +279,17 @@ gsm_consolekit_on_name_owner_changed (DBusGProxy *bus_proxy, const char *new_owner, GsmConsolekit *manager) { + GsmConsolekitPrivate *priv; + if (name != NULL && strcmp (name, "org.freedesktop.ConsoleKit") != 0) { return; } - if (manager->priv->ck_proxy != NULL) { - g_object_unref (manager->priv->ck_proxy); - manager->priv->ck_proxy = NULL; + priv = gsm_consolekit_get_instance_private (manager); + + if (priv->ck_proxy != NULL) { + g_object_unref (priv->ck_proxy); + priv->ck_proxy = NULL; } gsm_consolekit_ensure_ck_connection (manager, NULL); @@ -295,8 +300,6 @@ gsm_consolekit_init (GsmConsolekit *manager) { GError *error; - manager->priv = GSM_CONSOLEKIT_GET_PRIVATE (manager); - error = NULL; if (!gsm_consolekit_ensure_ck_connection (manager, &error)) { @@ -309,25 +312,28 @@ gsm_consolekit_init (GsmConsolekit *manager) static void gsm_consolekit_free_dbus (GsmConsolekit *manager) { - if (manager->priv->bus_proxy != NULL) { - g_object_unref (manager->priv->bus_proxy); - manager->priv->bus_proxy = NULL; + GsmConsolekitPrivate *priv; + + priv = gsm_consolekit_get_instance_private (manager); + if (priv->bus_proxy != NULL) { + g_object_unref (priv->bus_proxy); + priv->bus_proxy = NULL; } - if (manager->priv->ck_proxy != NULL) { - g_object_unref (manager->priv->ck_proxy); - manager->priv->ck_proxy = NULL; + if (priv->ck_proxy != NULL) { + g_object_unref (priv->ck_proxy); + priv->ck_proxy = NULL; } - if (manager->priv->dbus_connection != NULL) { + if (priv->dbus_connection != NULL) { DBusConnection *connection; - connection = dbus_g_connection_get_connection (manager->priv->dbus_connection); + connection = dbus_g_connection_get_connection (priv->dbus_connection); dbus_connection_remove_filter (connection, gsm_consolekit_dbus_filter, manager); - dbus_g_connection_unref (manager->priv->dbus_connection); - manager->priv->dbus_connection = NULL; + dbus_g_connection_unref (priv->dbus_connection); + priv->dbus_connection = NULL; } } @@ -421,8 +427,10 @@ gsm_consolekit_attempt_restart (GsmConsolekit *manager) { gboolean res; GError *error; + GsmConsolekitPrivate *priv; error = NULL; + priv = gsm_consolekit_get_instance_private (manager); if (!gsm_consolekit_ensure_ck_connection (manager, &error)) { g_warning ("Could not connect to ConsoleKit: %s", @@ -432,7 +440,7 @@ gsm_consolekit_attempt_restart (GsmConsolekit *manager) return; } - res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy, + res = dbus_g_proxy_call_with_timeout (priv->ck_proxy, "Restart", INT_MAX, &error, @@ -453,8 +461,10 @@ gsm_consolekit_attempt_stop (GsmConsolekit *manager) { gboolean res; GError *error; + GsmConsolekitPrivate *priv; error = NULL; + priv = gsm_consolekit_get_instance_private (manager); if (!gsm_consolekit_ensure_ck_connection (manager, &error)) { g_warning ("Could not connect to ConsoleKit: %s", @@ -464,7 +474,7 @@ gsm_consolekit_attempt_stop (GsmConsolekit *manager) return; } - res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy, + res = dbus_g_proxy_call_with_timeout (priv->ck_proxy, "Stop", INT_MAX, &error, @@ -485,8 +495,10 @@ gsm_consolekit_attempt_suspend (GsmConsolekit *manager) { gboolean res; GError *error; + GsmConsolekitPrivate *priv; error = NULL; + priv = gsm_consolekit_get_instance_private (manager); if (!gsm_consolekit_ensure_ck_connection (manager, &error)) { g_warning ("Could not connect to ConsoleKit: %s", @@ -495,7 +507,7 @@ gsm_consolekit_attempt_suspend (GsmConsolekit *manager) return; } - res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy, + res = dbus_g_proxy_call_with_timeout (priv->ck_proxy, "Suspend", INT_MAX, &error, @@ -514,8 +526,10 @@ gsm_consolekit_attempt_hibernate (GsmConsolekit *manager) { gboolean res; GError *error; + GsmConsolekitPrivate *priv; error = NULL; + priv = gsm_consolekit_get_instance_private (manager); if (!gsm_consolekit_ensure_ck_connection (manager, &error)) { g_warning ("Could not connect to ConsoleKit: %s", @@ -524,7 +538,7 @@ gsm_consolekit_attempt_hibernate (GsmConsolekit *manager) return; } - res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy, + res = dbus_g_proxy_call_with_timeout (priv->ck_proxy, "Hibernate", INT_MAX, &error, @@ -678,8 +692,10 @@ gsm_consolekit_set_session_idle (GsmConsolekit *manager, DBusMessage *reply; DBusError dbus_error; DBusMessageIter iter; + GsmConsolekitPrivate *priv; error = NULL; + priv = gsm_consolekit_get_instance_private (manager); if (!gsm_consolekit_ensure_ck_connection (manager, &error)) { g_warning ("Could not connect to ConsoleKit: %s", @@ -689,7 +705,7 @@ gsm_consolekit_set_session_idle (GsmConsolekit *manager, } session_id = NULL; - res = get_current_session_id (dbus_g_connection_get_connection (manager->priv->dbus_connection), + res = get_current_session_id (dbus_g_connection_get_connection (priv->dbus_connection), &session_id); if (!res) { goto out; @@ -711,7 +727,7 @@ gsm_consolekit_set_session_idle (GsmConsolekit *manager, /* FIXME: use async? */ dbus_error_init (&dbus_error); - reply = dbus_connection_send_with_reply_and_block (dbus_g_connection_get_connection (manager->priv->dbus_connection), + reply = dbus_connection_send_with_reply_and_block (dbus_g_connection_get_connection (priv->dbus_connection), message, -1, &dbus_error); @@ -785,8 +801,10 @@ gsm_consolekit_can_switch_user (GsmConsolekit *manager) GError *error; char *seat_id; gboolean ret; + GsmConsolekitPrivate *priv; error = NULL; + priv = gsm_consolekit_get_instance_private (manager); if (!gsm_consolekit_ensure_ck_connection (manager, &error)) { g_warning ("Could not connect to ConsoleKit: %s", @@ -795,13 +813,13 @@ gsm_consolekit_can_switch_user (GsmConsolekit *manager) return FALSE; } - seat_id = get_current_seat_id (dbus_g_connection_get_connection (manager->priv->dbus_connection)); + seat_id = get_current_seat_id (dbus_g_connection_get_connection (priv->dbus_connection)); if (seat_id == NULL || seat_id[0] == '\0') { g_debug ("seat id is not set; can't switch sessions"); return FALSE; } - ret = seat_can_activate_sessions (dbus_g_connection_get_connection (manager->priv->dbus_connection), + ret = seat_can_activate_sessions (dbus_g_connection_get_connection (priv->dbus_connection), seat_id); g_free (seat_id); @@ -834,8 +852,10 @@ gsm_consolekit_can_restart (GsmConsolekit *manager) gboolean res; gboolean can_restart; GError *error; + GsmConsolekitPrivate *priv; error = NULL; + priv = gsm_consolekit_get_instance_private (manager); if (!gsm_consolekit_ensure_ck_connection (manager, &error)) { g_warning ("Could not connect to ConsoleKit: %s", @@ -844,7 +864,7 @@ gsm_consolekit_can_restart (GsmConsolekit *manager) return FALSE; } - res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy, + res = dbus_g_proxy_call_with_timeout (priv->ck_proxy, "CanRestart", INT_MAX, &error, @@ -867,8 +887,10 @@ gsm_consolekit_can_stop (GsmConsolekit *manager) gboolean res; gboolean can_stop; GError *error; + GsmConsolekitPrivate *priv; error = NULL; + priv = gsm_consolekit_get_instance_private (manager); if (!gsm_consolekit_ensure_ck_connection (manager, &error)) { g_warning ("Could not connect to ConsoleKit: %s", @@ -877,7 +899,7 @@ gsm_consolekit_can_stop (GsmConsolekit *manager) return FALSE; } - res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy, + res = dbus_g_proxy_call_with_timeout (priv->ck_proxy, "CanStop", INT_MAX, &error, @@ -902,6 +924,9 @@ gsm_consolekit_can_suspend (GsmConsolekit *manager) gboolean can_suspend; gchar *retval; GError *error = NULL; + GsmConsolekitPrivate *priv; + + priv = gsm_consolekit_get_instance_private (manager); if (!gsm_consolekit_ensure_ck_connection (manager, &error)) { g_warning ("Could not connect to ConsoleKit: %s", @@ -910,7 +935,7 @@ gsm_consolekit_can_suspend (GsmConsolekit *manager) return FALSE; } - res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy, + res = dbus_g_proxy_call_with_timeout (priv->ck_proxy, "CanSuspend", INT_MAX, &error, @@ -939,6 +964,9 @@ gsm_consolekit_can_hibernate (GsmConsolekit *manager) gboolean can_hibernate; gchar *retval; GError *error = NULL; + GsmConsolekitPrivate *priv; + + priv = gsm_consolekit_get_instance_private (manager); if (!gsm_consolekit_ensure_ck_connection (manager, &error)) { g_warning ("Could not connect to ConsoleKit: %s", @@ -947,7 +975,7 @@ gsm_consolekit_can_hibernate (GsmConsolekit *manager) return FALSE; } - res = dbus_g_proxy_call_with_timeout (manager->priv->ck_proxy, + res = dbus_g_proxy_call_with_timeout (priv->ck_proxy, "CanHibernate", INT_MAX, &error, @@ -981,10 +1009,12 @@ gsm_consolekit_get_current_session_type (GsmConsolekit *manager) gchar *ret; DBusMessageIter iter; const char *value; + GsmConsolekitPrivate *priv; session_id = NULL; ret = NULL; gerror = NULL; + priv = gsm_consolekit_get_instance_private (manager); if (!gsm_consolekit_ensure_ck_connection (manager, &gerror)) { g_warning ("Could not connect to ConsoleKit: %s", @@ -993,7 +1023,7 @@ gsm_consolekit_get_current_session_type (GsmConsolekit *manager) goto out; } - connection = dbus_g_connection_get_connection (manager->priv->dbus_connection); + connection = dbus_g_connection_get_connection (priv->dbus_connection); if (!get_current_session_id (connection, &session_id)) { goto out; } diff --git a/mate-session/gsm-consolekit.h b/mate-session/gsm-consolekit.h index 3dbb4f8..6cffd5b 100644 --- a/mate-session/gsm-consolekit.h +++ b/mate-session/gsm-consolekit.h @@ -27,29 +27,14 @@ #include <glib.h> #include <glib-object.h> -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS #define GSM_TYPE_CONSOLEKIT (gsm_consolekit_get_type ()) -#define GSM_CONSOLEKIT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_CONSOLEKIT, GsmConsolekit)) -#define GSM_CONSOLEKIT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_CONSOLEKIT, GsmConsolekitClass)) -#define GSM_IS_CONSOLEKIT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_CONSOLEKIT)) -#define GSM_IS_CONSOLEKIT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_CONSOLEKIT)) -#define GSM_CONSOLEKIT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GSM_TYPE_CONSOLEKIT, GsmConsolekitClass)) #define GSM_CONSOLEKIT_ERROR (gsm_consolekit_error_quark ()) -typedef struct _GsmConsolekit GsmConsolekit; -typedef struct _GsmConsolekitClass GsmConsolekitClass; -typedef struct _GsmConsolekitPrivate GsmConsolekitPrivate; -typedef enum _GsmConsolekitError GsmConsolekitError; - -struct _GsmConsolekit -{ - GObject parent; +G_DECLARE_DERIVABLE_TYPE (GsmConsolekit, gsm_consolekit, GSM, CONSOLEKIT, GObject) - GsmConsolekitPrivate *priv; -}; +typedef enum _GsmConsolekitError GsmConsolekitError; struct _GsmConsolekitClass { @@ -71,7 +56,7 @@ enum _GsmConsolekitError { #define GSM_CONSOLEKIT_SESSION_TYPE_LOGIN_WINDOW "LoginWindow" -GType gsm_consolekit_get_type (void); +GType gsm_consolekit_get_type (void) G_GNUC_CONST; GQuark gsm_consolekit_error_quark (void); @@ -106,8 +91,6 @@ gchar *gsm_consolekit_get_current_session_type (GsmConsolekit *manager GsmConsolekit *gsm_get_consolekit (void); -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_CONSOLEKIT_H__ */ diff --git a/mate-session/gsm-dbus-client.c b/mate-session/gsm-dbus-client.c index 3b33170..eba098c 100644 --- a/mate-session/gsm-dbus-client.c +++ b/mate-session/gsm-dbus-client.c @@ -38,13 +38,12 @@ #include "gsm-manager.h" #include "gsm-util.h" -#define GSM_DBUS_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_DBUS_CLIENT, GsmDBusClientPrivate)) - #define SM_DBUS_NAME "org.gnome.SessionManager" #define SM_DBUS_CLIENT_PRIVATE_INTERFACE "org.gnome.SessionManager.ClientPrivate" -struct GsmDBusClientPrivate +struct _GsmDBusClient { + GsmClient parent; char *bus_name; GPid caller_pid; GsmClientRestartStyle restart_style_hint; @@ -98,9 +97,9 @@ setup_connection (GsmDBusClient *client) dbus_error_init (&error); - if (client->priv->connection == NULL) { - client->priv->connection = dbus_bus_get (DBUS_BUS_SESSION, &error); - if (client->priv->connection == NULL) { + if (client->connection == NULL) { + client->connection = dbus_bus_get (DBUS_BUS_SESSION, &error); + if (client->connection == NULL) { if (dbus_error_is_set (&error)) { g_debug ("GsmDbusClient: Couldn't connect to session bus: %s", error.message); @@ -109,8 +108,8 @@ setup_connection (GsmDBusClient *client) return FALSE; } - dbus_connection_setup_with_g_main (client->priv->connection, NULL); - dbus_connection_set_exit_on_disconnect (client->priv->connection, FALSE); + dbus_connection_setup_with_g_main (client->connection, NULL); + dbus_connection_set_exit_on_disconnect (client->connection, FALSE); } return TRUE; @@ -160,7 +159,7 @@ handle_end_session_response (GsmDBusClient *client, g_warning ("Invalid method call: %s", error.message); dbus_error_free (&error); } - raise_error (client->priv->connection, + raise_error (client->connection, message, DBUS_ERROR_FAILED, "There is a syntax error in the invocation of the method EndSessionResponse"); @@ -172,10 +171,10 @@ handle_end_session_response (GsmDBusClient *client, /* make sure it is from our client */ sender = dbus_message_get_sender (message); if (sender == NULL - || IS_STRING_EMPTY (client->priv->bus_name) - || strcmp (sender, client->priv->bus_name) != 0) { + || IS_STRING_EMPTY (client->bus_name) + || strcmp (sender, client->bus_name) != 0) { - raise_error (client->priv->connection, + raise_error (client->connection, message, DBUS_ERROR_FAILED, "Caller not recognized as the client"); @@ -191,7 +190,7 @@ handle_end_session_response (GsmDBusClient *client, is_ok, FALSE, FALSE, reason); - if (! dbus_connection_send (client->priv->connection, reply, NULL)) { + if (! dbus_connection_send (client->connection, reply, NULL)) { g_error ("No memory"); } @@ -247,7 +246,7 @@ gsm_dbus_client_constructor (GType type, } /* Object path is already registered by base class */ - dbus_connection_add_filter (client->priv->connection, client_dbus_filter_function, client, NULL); + dbus_connection_add_filter (client->connection, client_dbus_filter_function, client, NULL); return G_OBJECT (client); } @@ -255,7 +254,6 @@ gsm_dbus_client_constructor (GType type, static void gsm_dbus_client_init (GsmDBusClient *client) { - client->priv = GSM_DBUS_CLIENT_GET_PRIVATE (client); } /* adapted from PolicyKit */ @@ -335,12 +333,12 @@ gsm_dbus_client_set_bus_name (GsmDBusClient *client, g_return_if_fail (GSM_IS_DBUS_CLIENT (client)); - g_free (client->priv->bus_name); + g_free (client->bus_name); - client->priv->bus_name = g_strdup (bus_name); + client->bus_name = g_strdup (bus_name); g_object_notify (G_OBJECT (client), "bus-name"); - if (client->priv->bus_name != NULL) { + if (client->bus_name != NULL) { gboolean res; res = get_caller_info (client, bus_name, &uid, &pid); @@ -350,7 +348,7 @@ gsm_dbus_client_set_bus_name (GsmDBusClient *client, } else { pid = 0; } - client->priv->caller_pid = pid; + client->caller_pid = pid; } const char * @@ -358,7 +356,7 @@ gsm_dbus_client_get_bus_name (GsmDBusClient *client) { g_return_val_if_fail (GSM_IS_DBUS_CLIENT (client), NULL); - return client->priv->bus_name; + return client->bus_name; } static void @@ -393,7 +391,7 @@ gsm_dbus_client_get_property (GObject *object, switch (prop_id) { case PROP_BUS_NAME: - g_value_set_string (value, self->priv->bus_name); + g_value_set_string (value, self->bus_name); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -406,7 +404,7 @@ gsm_dbus_client_finalize (GObject *object) { GsmDBusClient *client = (GsmDBusClient *) object; - g_free (client->priv->bus_name); + g_free (client->bus_name); G_OBJECT_CLASS (gsm_dbus_client_parent_class)->finalize (object); } @@ -441,11 +439,11 @@ dbus_client_stop (GsmClient *client, if (message == NULL) { goto out; } - if (!dbus_message_set_destination (message, dbus_client->priv->bus_name)) { + if (!dbus_message_set_destination (message, dbus_client->bus_name)) { goto out; } - if (!dbus_connection_send (dbus_client->priv->connection, message, NULL)) { + if (!dbus_connection_send (dbus_client->connection, message, NULL)) { goto out; } @@ -469,13 +467,13 @@ dbus_client_get_app_name (GsmClient *client) static GsmClientRestartStyle dbus_client_get_restart_style_hint (GsmClient *client) { - return (GSM_DBUS_CLIENT (client)->priv->restart_style_hint); + return (GSM_DBUS_CLIENT (client)->restart_style_hint); } static guint dbus_client_get_unix_process_id (GsmClient *client) { - return (GSM_DBUS_CLIENT (client)->priv->caller_pid); + return (GSM_DBUS_CLIENT (client)->caller_pid); } static gboolean @@ -490,7 +488,7 @@ dbus_client_query_end_session (GsmClient *client, ret = FALSE; - if (dbus_client->priv->bus_name == NULL) { + if (dbus_client->bus_name == NULL) { g_set_error (error, GSM_CLIENT_ERROR, GSM_CLIENT_ERROR_NOT_REGISTERED, @@ -498,7 +496,7 @@ dbus_client_query_end_session (GsmClient *client, return FALSE; } - g_debug ("GsmDBusClient: sending QueryEndSession signal to %s", dbus_client->priv->bus_name); + g_debug ("GsmDBusClient: sending QueryEndSession signal to %s", dbus_client->bus_name); /* unicast the signal to only the registered bus name */ message = dbus_message_new_signal (gsm_client_peek_id (client), @@ -511,7 +509,7 @@ dbus_client_query_end_session (GsmClient *client, "Unable to send QueryEndSession message"); goto out; } - if (!dbus_message_set_destination (message, dbus_client->priv->bus_name)) { + if (!dbus_message_set_destination (message, dbus_client->bus_name)) { g_set_error (error, GSM_CLIENT_ERROR, GSM_CLIENT_ERROR_NOT_REGISTERED, @@ -522,7 +520,7 @@ dbus_client_query_end_session (GsmClient *client, dbus_message_iter_init_append (message, &iter); dbus_message_iter_append_basic (&iter, DBUS_TYPE_UINT32, &flags); - if (!dbus_connection_send (dbus_client->priv->connection, message, NULL)) { + if (!dbus_connection_send (dbus_client->connection, message, NULL)) { g_set_error (error, GSM_CLIENT_ERROR, GSM_CLIENT_ERROR_NOT_REGISTERED, @@ -563,7 +561,7 @@ dbus_client_end_session (GsmClient *client, "Unable to send EndSession message"); goto out; } - if (!dbus_message_set_destination (message, dbus_client->priv->bus_name)) { + if (!dbus_message_set_destination (message, dbus_client->bus_name)) { g_set_error (error, GSM_CLIENT_ERROR, GSM_CLIENT_ERROR_NOT_REGISTERED, @@ -574,7 +572,7 @@ dbus_client_end_session (GsmClient *client, dbus_message_iter_init_append (message, &iter); dbus_message_iter_append_basic (&iter, DBUS_TYPE_UINT32, &flags); - if (!dbus_connection_send (dbus_client->priv->connection, message, NULL)) { + if (!dbus_connection_send (dbus_client->connection, message, NULL)) { g_set_error (error, GSM_CLIENT_ERROR, GSM_CLIENT_ERROR_NOT_REGISTERED, @@ -610,7 +608,7 @@ dbus_client_cancel_end_session (GsmClient *client, "Unable to send CancelEndSession message"); goto out; } - if (!dbus_message_set_destination (message, dbus_client->priv->bus_name)) { + if (!dbus_message_set_destination (message, dbus_client->bus_name)) { g_set_error (error, GSM_CLIENT_ERROR, GSM_CLIENT_ERROR_NOT_REGISTERED, @@ -618,7 +616,7 @@ dbus_client_cancel_end_session (GsmClient *client, goto out; } - if (!dbus_connection_send (dbus_client->priv->connection, message, NULL)) { + if (!dbus_connection_send (dbus_client->connection, message, NULL)) { g_set_error (error, GSM_CLIENT_ERROR, GSM_CLIENT_ERROR_NOT_REGISTERED, @@ -646,7 +644,7 @@ gsm_dbus_client_dispose (GObject *object) client = GSM_DBUS_CLIENT (object); - dbus_connection_remove_filter (client->priv->connection, client_dbus_filter_function, client); + dbus_connection_remove_filter (client->connection, client_dbus_filter_function, client); G_OBJECT_CLASS (gsm_dbus_client_parent_class)->dispose (object); } @@ -679,8 +677,6 @@ gsm_dbus_client_class_init (GsmDBusClientClass *klass) "bus-name", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - g_type_class_add_private (klass, sizeof (GsmDBusClientPrivate)); } GsmClient * diff --git a/mate-session/gsm-dbus-client.h b/mate-session/gsm-dbus-client.h index 4b9dc7a..a1007cc 100644 --- a/mate-session/gsm-dbus-client.h +++ b/mate-session/gsm-dbus-client.h @@ -23,32 +23,10 @@ #include "gsm-client.h" -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS #define GSM_TYPE_DBUS_CLIENT (gsm_dbus_client_get_type ()) -#define GSM_DBUS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_DBUS_CLIENT, GsmDBusClient)) -#define GSM_DBUS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_DBUS_CLIENT, GsmDBusClientClass)) -#define GSM_IS_DBUS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_DBUS_CLIENT)) -#define GSM_IS_DBUS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_DBUS_CLIENT)) -#define GSM_DBUS_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_DBUS_CLIENT, GsmDBusClientClass)) - -typedef struct _GsmDBusClient GsmDBusClient; -typedef struct _GsmDBusClientClass GsmDBusClientClass; - -typedef struct GsmDBusClientPrivate GsmDBusClientPrivate; - -struct _GsmDBusClient -{ - GsmClient parent; - GsmDBusClientPrivate *priv; -}; - -struct _GsmDBusClientClass -{ - GsmClientClass parent_class; -}; +G_DECLARE_FINAL_TYPE (GsmDBusClient, gsm_dbus_client, GSM, DBUS_CLIENT, GsmClient) typedef enum { @@ -64,14 +42,10 @@ GType gsm_dbus_client_error_get_type (void); GQuark gsm_dbus_client_error_quark (void); -GType gsm_dbus_client_get_type (void) G_GNUC_CONST; - GsmClient * gsm_dbus_client_new (const char *startup_id, const char *bus_name); const char * gsm_dbus_client_get_bus_name (GsmDBusClient *client); -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_DBUS_CLIENT_H__ */ diff --git a/mate-session/gsm-inhibit-dialog.c b/mate-session/gsm-inhibit-dialog.c index 1ea58ed..7c6ec97 100644 --- a/mate-session/gsm-inhibit-dialog.c +++ b/mate-session/gsm-inhibit-dialog.c @@ -43,8 +43,6 @@ #include <X11/extensions/Xrender.h> #endif -#define GSM_INHIBIT_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_INHIBIT_DIALOG, GsmInhibitDialogPrivate)) - #define GTKBUILDER_FILE "gsm-inhibit-dialog.ui" #ifndef DEFAULT_ICON_SIZE @@ -57,8 +55,9 @@ #define DIALOG_RESPONSE_LOCK_SCREEN 1 -struct GsmInhibitDialogPrivate +struct _GsmInhibitDialog { + GtkDialog parent; GtkBuilder *xml; int action; gboolean is_done; @@ -108,7 +107,7 @@ on_response (GsmInhibitDialog *dialog, gint response_id) { - if (dialog->priv->is_done) { + if (dialog->is_done) { g_signal_stop_emission_by_name (dialog, "response"); return; } @@ -119,7 +118,7 @@ on_response (GsmInhibitDialog *dialog, lock_screen (dialog); break; default: - dialog->priv->is_done = TRUE; + dialog->is_done = TRUE; break; } } @@ -128,7 +127,7 @@ static void gsm_inhibit_dialog_set_action (GsmInhibitDialog *dialog, int action) { - dialog->priv->action = action; + dialog->action = action; } static gboolean @@ -142,7 +141,7 @@ find_inhibitor (GsmInhibitDialog *dialog, g_assert (GSM_IS_INHIBIT_DIALOG (dialog)); found_item = FALSE; - model = GTK_TREE_MODEL (dialog->priv->list_store); + model = GTK_TREE_MODEL (dialog->list_store); if (!gtk_tree_model_get_iter_first (model, iter)) { return FALSE; @@ -479,7 +478,7 @@ add_inhibitor (GsmInhibitDialog *dialog, xid = gsm_inhibitor_peek_toplevel_xid (inhibitor); g_debug ("GsmInhibitDialog: inhibitor has XID %u", xid); - if (xid > 0 && dialog->priv->have_xrender) { + if (xid > 0 && dialog->have_xrender) { pixbuf = get_pixbuf_for_window (gdkdisplay, xid, DEFAULT_SNAPSHOT_SIZE, DEFAULT_SNAPSHOT_SIZE); if (pixbuf == NULL) { g_debug ("GsmInhibitDialog: unable to read pixbuf from %u", xid); @@ -567,7 +566,7 @@ add_inhibitor (GsmInhibitDialog *dialog, client_id = gsm_inhibitor_peek_client_id (inhibitor); if (! IS_STRING_EMPTY (client_id)) { GsmClient *client; - client = GSM_CLIENT (gsm_store_lookup (dialog->priv->clients, client_id)); + client = GSM_CLIENT (gsm_store_lookup (dialog->clients, client_id)); if (client != NULL) { freeme = gsm_client_get_app_name (client); name = freeme; @@ -592,7 +591,7 @@ add_inhibitor (GsmInhibitDialog *dialog, NULL); } - gtk_list_store_insert_with_values (dialog->priv->list_store, + gtk_list_store_insert_with_values (dialog->list_store, NULL, 0, INHIBIT_IMAGE_COLUMN, pixbuf, INHIBIT_NAME_COLUMN, name, @@ -628,7 +627,7 @@ update_dialog_text (GsmInhibitDialog *dialog) const char *header_text; GtkWidget *widget; - if (model_has_one_entry (GTK_TREE_MODEL (dialog->priv->list_store))) { + if (model_has_one_entry (GTK_TREE_MODEL (dialog->list_store))) { g_debug ("Found one entry in model"); header_text = _("A program is still running:"); description_text = _("Waiting for the program to finish. Interrupting the program may cause you to lose work."); @@ -638,7 +637,7 @@ update_dialog_text (GsmInhibitDialog *dialog) description_text = _("Waiting for programs to finish. Interrupting these programs may cause you to lose work."); } - widget = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml, + widget = GTK_WIDGET (gtk_builder_get_object (dialog->xml, "header-label")); if (widget != NULL) { char *markup; @@ -647,7 +646,7 @@ update_dialog_text (GsmInhibitDialog *dialog) g_free (markup); } - widget = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml, + widget = GTK_WIDGET (gtk_builder_get_object (dialog->xml, "description-label")); if (widget != NULL) { gtk_label_set_text (GTK_LABEL (widget), description_text); @@ -664,7 +663,7 @@ on_store_inhibitor_added (GsmStore *store, g_debug ("GsmInhibitDialog: inhibitor added: %s", id); - if (dialog->priv->is_done) { + if (dialog->is_done) { return; } @@ -687,18 +686,18 @@ on_store_inhibitor_removed (GsmStore *store, g_debug ("GsmInhibitDialog: inhibitor removed: %s", id); - if (dialog->priv->is_done) { + if (dialog->is_done) { return; } /* Remove from model */ if (find_inhibitor (dialog, id, &iter)) { - gtk_list_store_remove (dialog->priv->list_store, &iter); + gtk_list_store_remove (dialog->list_store, &iter); update_dialog_text (dialog); } /* if there are no inhibitors left then trigger response */ - if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL (dialog->priv->list_store), &iter)) { + if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL (dialog->list_store), &iter)) { gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT); } } @@ -713,28 +712,28 @@ gsm_inhibit_dialog_set_inhibitor_store (GsmInhibitDialog *dialog, g_object_ref (store); } - if (dialog->priv->inhibitors != NULL) { - g_signal_handlers_disconnect_by_func (dialog->priv->inhibitors, + if (dialog->inhibitors != NULL) { + g_signal_handlers_disconnect_by_func (dialog->inhibitors, on_store_inhibitor_added, dialog); - g_signal_handlers_disconnect_by_func (dialog->priv->inhibitors, + g_signal_handlers_disconnect_by_func (dialog->inhibitors, on_store_inhibitor_removed, dialog); - g_object_unref (dialog->priv->inhibitors); + g_object_unref (dialog->inhibitors); } g_debug ("GsmInhibitDialog: setting store %p", store); - dialog->priv->inhibitors = store; + dialog->inhibitors = store; - if (dialog->priv->inhibitors != NULL) { - g_signal_connect (dialog->priv->inhibitors, + if (dialog->inhibitors != NULL) { + g_signal_connect (dialog->inhibitors, "added", G_CALLBACK (on_store_inhibitor_added), dialog); - g_signal_connect (dialog->priv->inhibitors, + g_signal_connect (dialog->inhibitors, "removed", G_CALLBACK (on_store_inhibitor_removed), dialog); @@ -751,11 +750,11 @@ gsm_inhibit_dialog_set_client_store (GsmInhibitDialog *dialog, g_object_ref (store); } - if (dialog->priv->clients != NULL) { - g_object_unref (dialog->priv->clients); + if (dialog->clients != NULL) { + g_object_unref (dialog->clients); } - dialog->priv->clients = store; + dialog->clients = store; } static void @@ -792,13 +791,13 @@ gsm_inhibit_dialog_get_property (GObject *object, switch (prop_id) { case PROP_ACTION: - g_value_set_int (value, dialog->priv->action); + g_value_set_int (value, dialog->action); break; case PROP_INHIBITOR_STORE: - g_value_set_object (value, dialog->priv->inhibitors); + g_value_set_object (value, dialog->inhibitors); break; case PROP_CLIENT_STORE: - g_value_set_object (value, dialog->priv->clients); + g_value_set_object (value, dialog->clients); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -849,7 +848,7 @@ add_to_model (const char *id, static void populate_model (GsmInhibitDialog *dialog) { - gsm_store_foreach_remove (dialog->priv->inhibitors, + gsm_store_foreach_remove (dialog->inhibitors, (GsmStoreFunc)add_to_model, dialog); update_dialog_text (dialog); @@ -863,7 +862,7 @@ setup_dialog (GsmInhibitDialog *dialog) GtkTreeViewColumn *column; GtkCellRenderer *renderer; - switch (dialog->priv->action) { + switch (dialog->action) { case GSM_LOGOUT_ACTION_SWITCH_USER: button_text = _("Switch User Anyway"); break; @@ -901,17 +900,17 @@ setup_dialog (GsmInhibitDialog *dialog) G_CALLBACK (on_response), dialog); - dialog->priv->list_store = gtk_list_store_new (NUMBER_OF_COLUMNS, - GDK_TYPE_PIXBUF, - G_TYPE_STRING, - G_TYPE_STRING, - G_TYPE_STRING); + dialog->list_store = gtk_list_store_new (NUMBER_OF_COLUMNS, + GDK_TYPE_PIXBUF, + G_TYPE_STRING, + G_TYPE_STRING, + G_TYPE_STRING); - treeview = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml, + treeview = GTK_WIDGET (gtk_builder_get_object (dialog->xml, "inhibitors-treeview")); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE); gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), - GTK_TREE_MODEL (dialog->priv->list_store)); + GTK_TREE_MODEL (dialog->list_store)); /* IMAGE COLUMN */ renderer = gtk_cell_renderer_pixbuf_new (); @@ -953,25 +952,25 @@ gsm_inhibit_dialog_constructor (GType type, GdkDisplay *gdkdisplay; #endif /* HAVE_XRENDER */ dialog = GSM_INHIBIT_DIALOG (G_OBJECT_CLASS (gsm_inhibit_dialog_parent_class)->constructor (type, - n_construct_properties, - construct_properties)); + n_construct_properties, + construct_properties)); #ifdef HAVE_XRENDER gdkdisplay = gdk_display_get_default (); gdk_x11_display_error_trap_push (gdkdisplay); - if (XRenderQueryExtension (GDK_DISPLAY_XDISPLAY (gdkdisplay), &dialog->priv->xrender_event_base, &dialog->priv->xrender_error_base)) { + if (XRenderQueryExtension (GDK_DISPLAY_XDISPLAY (gdkdisplay), &dialog->xrender_event_base, &dialog->xrender_error_base)) { g_debug ("GsmInhibitDialog: Initialized XRender extension"); - dialog->priv->have_xrender = TRUE; + dialog->have_xrender = TRUE; } else { g_debug ("GsmInhibitDialog: Unable to initialize XRender extension"); - dialog->priv->have_xrender = FALSE; + dialog->have_xrender = FALSE; } gdk_display_sync (gdkdisplay); gdk_x11_display_error_trap_pop_ignored (gdkdisplay); #endif /* HAVE_XRENDER */ /* FIXME: turn this on when it is ready */ - dialog->priv->have_xrender = FALSE; + dialog->have_xrender = FALSE; setup_dialog (dialog); @@ -992,26 +991,26 @@ gsm_inhibit_dialog_dispose (GObject *object) g_debug ("GsmInhibitDialog: dispose called"); - if (dialog->priv->list_store != NULL) { - g_object_unref (dialog->priv->list_store); - dialog->priv->list_store = NULL; + if (dialog->list_store != NULL) { + g_object_unref (dialog->list_store); + dialog->list_store = NULL; } - if (dialog->priv->inhibitors != NULL) { - g_signal_handlers_disconnect_by_func (dialog->priv->inhibitors, + if (dialog->inhibitors != NULL) { + g_signal_handlers_disconnect_by_func (dialog->inhibitors, on_store_inhibitor_added, dialog); - g_signal_handlers_disconnect_by_func (dialog->priv->inhibitors, + g_signal_handlers_disconnect_by_func (dialog->inhibitors, on_store_inhibitor_removed, dialog); - g_object_unref (dialog->priv->inhibitors); - dialog->priv->inhibitors = NULL; + g_object_unref (dialog->inhibitors); + dialog->inhibitors = NULL; } - if (dialog->priv->xml != NULL) { - g_object_unref (dialog->priv->xml); - dialog->priv->xml = NULL; + if (dialog->xml != NULL) { + g_object_unref (dialog->xml); + dialog->xml = NULL; } G_OBJECT_CLASS (gsm_inhibit_dialog_parent_class)->dispose (object); @@ -1051,8 +1050,6 @@ gsm_inhibit_dialog_class_init (GsmInhibitDialogClass *klass) NULL, GSM_TYPE_STORE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - g_type_class_add_private (klass, sizeof (GsmInhibitDialogPrivate)); } static void @@ -1062,13 +1059,11 @@ gsm_inhibit_dialog_init (GsmInhibitDialog *dialog) GtkWidget *widget; GError *error; - dialog->priv = GSM_INHIBIT_DIALOG_GET_PRIVATE (dialog); - - dialog->priv->xml = gtk_builder_new (); - gtk_builder_set_translation_domain (dialog->priv->xml, GETTEXT_PACKAGE); + dialog->xml = gtk_builder_new (); + gtk_builder_set_translation_domain (dialog->xml, GETTEXT_PACKAGE); error = NULL; - if (!gtk_builder_add_from_file (dialog->priv->xml, + if (!gtk_builder_add_from_file (dialog->xml, GTKBUILDER_DIR "/" GTKBUILDER_FILE, &error)) { if (error) { @@ -1081,7 +1076,7 @@ gsm_inhibit_dialog_init (GsmInhibitDialog *dialog) } content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); - widget = GTK_WIDGET (gtk_builder_get_object (dialog->priv->xml, + widget = GTK_WIDGET (gtk_builder_get_object (dialog->xml, "main-box")); gtk_container_add (GTK_CONTAINER (content_area), widget); @@ -1103,7 +1098,7 @@ gsm_inhibit_dialog_finalize (GObject *object) dialog = GSM_INHIBIT_DIALOG (object); - g_return_if_fail (dialog->priv != NULL); + g_return_if_fail (dialog != NULL); g_debug ("GsmInhibitDialog: finalizing"); diff --git a/mate-session/gsm-inhibit-dialog.h b/mate-session/gsm-inhibit-dialog.h index c48dc90..89c7121 100644 --- a/mate-session/gsm-inhibit-dialog.h +++ b/mate-session/gsm-inhibit-dialog.h @@ -26,18 +26,10 @@ #include "gsm-store.h" -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS #define GSM_TYPE_INHIBIT_DIALOG (gsm_inhibit_dialog_get_type ()) -#define GSM_INHIBIT_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_INHIBIT_DIALOG, GsmInhibitDialog)) -#define GSM_INHIBIT_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_INHIBIT_DIALOG, GsmInhibitDialogClass)) -#define GSM_IS_INHIBIT_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_INHIBIT_DIALOG)) -#define GSM_IS_INHIBIT_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_INHIBIT_DIALOG)) -#define GSM_INHIBIT_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_INHIBIT_DIALOG, GsmInhibitDialogClass)) - -typedef struct GsmInhibitDialogPrivate GsmInhibitDialogPrivate; +G_DECLARE_FINAL_TYPE (GsmInhibitDialog, gsm_inhibit_dialog, GSM, INHIBIT_DIALOG, GtkDialog) typedef enum { @@ -49,26 +41,11 @@ typedef enum GSM_LOGOUT_ACTION_SLEEP } GsmLogoutAction; -typedef struct -{ - GtkDialog parent; - GsmInhibitDialogPrivate *priv; -} GsmInhibitDialog; - -typedef struct -{ - GtkDialogClass parent_class; -} GsmInhibitDialogClass; - -GType gsm_inhibit_dialog_get_type (void); - GtkWidget * gsm_inhibit_dialog_new (GsmStore *inhibitors, GsmStore *clients, int action); GtkTreeModel * gsm_inhibit_dialog_get_model (GsmInhibitDialog *dialog); -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_INHIBIT_DIALOG_H */ diff --git a/mate-session/gsm-inhibitor.c b/mate-session/gsm-inhibitor.c index 6f4e229..6129ddb 100644 --- a/mate-session/gsm-inhibitor.c +++ b/mate-session/gsm-inhibitor.c @@ -34,10 +34,9 @@ static guint32 inhibitor_serial = 1; -#define GSM_INHIBITOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_INHIBITOR, GsmInhibitorPrivate)) - -struct GsmInhibitorPrivate +struct _GsmInhibitor { + GObject parent; char *id; char *bus_name; char *app_id; @@ -115,8 +114,8 @@ register_inhibitor (GsmInhibitor *inhibitor) GError *error; error = NULL; - inhibitor->priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); - if (inhibitor->priv->connection == NULL) { + inhibitor->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error); + if (inhibitor->connection == NULL) { if (error != NULL) { g_critical ("error getting session bus: %s", error->message); g_error_free (error); @@ -124,7 +123,7 @@ register_inhibitor (GsmInhibitor *inhibitor) return FALSE; } - dbus_g_connection_register_g_object (inhibitor->priv->connection, inhibitor->priv->id, G_OBJECT (inhibitor)); + dbus_g_connection_register_g_object (inhibitor->connection, inhibitor->id, G_OBJECT (inhibitor)); return TRUE; } @@ -141,8 +140,8 @@ gsm_inhibitor_constructor (GType type, n_construct_properties, construct_properties)); - g_free (inhibitor->priv->id); - inhibitor->priv->id = g_strdup_printf ("/org/gnome/SessionManager/Inhibitor%u", get_next_inhibitor_serial ()); + g_free (inhibitor->id); + inhibitor->id = g_strdup_printf ("/org/gnome/SessionManager/Inhibitor%u", get_next_inhibitor_serial ()); res = register_inhibitor (inhibitor); if (! res) { g_warning ("Unable to register inhibitor with session bus"); @@ -154,7 +153,6 @@ gsm_inhibitor_constructor (GType type, static void gsm_inhibitor_init (GsmInhibitor *inhibitor) { - inhibitor->priv = GSM_INHIBITOR_GET_PRIVATE (inhibitor); } static void @@ -163,12 +161,12 @@ gsm_inhibitor_set_bus_name (GsmInhibitor *inhibitor, { g_return_if_fail (GSM_IS_INHIBITOR (inhibitor)); - g_free (inhibitor->priv->bus_name); + g_free (inhibitor->bus_name); if (bus_name != NULL) { - inhibitor->priv->bus_name = g_strdup (bus_name); + inhibitor->bus_name = g_strdup (bus_name); } else { - inhibitor->priv->bus_name = g_strdup (""); + inhibitor->bus_name = g_strdup (""); } g_object_notify (G_OBJECT (inhibitor), "bus-name"); } @@ -179,9 +177,9 @@ gsm_inhibitor_set_app_id (GsmInhibitor *inhibitor, { g_return_if_fail (GSM_IS_INHIBITOR (inhibitor)); - g_free (inhibitor->priv->app_id); + g_free (inhibitor->app_id); - inhibitor->priv->app_id = g_strdup (app_id); + inhibitor->app_id = g_strdup (app_id); g_object_notify (G_OBJECT (inhibitor), "app-id"); } @@ -191,14 +189,14 @@ gsm_inhibitor_set_client_id (GsmInhibitor *inhibitor, { g_return_if_fail (GSM_IS_INHIBITOR (inhibitor)); - g_free (inhibitor->priv->client_id); + g_free (inhibitor->client_id); g_debug ("GsmInhibitor: setting client-id = %s", client_id); if (client_id != NULL) { - inhibitor->priv->client_id = g_strdup (client_id); + inhibitor->client_id = g_strdup (client_id); } else { - inhibitor->priv->client_id = g_strdup (""); + inhibitor->client_id = g_strdup (""); } g_object_notify (G_OBJECT (inhibitor), "client-id"); } @@ -209,12 +207,12 @@ gsm_inhibitor_set_reason (GsmInhibitor *inhibitor, { g_return_if_fail (GSM_IS_INHIBITOR (inhibitor)); - g_free (inhibitor->priv->reason); + g_free (inhibitor->reason); if (reason != NULL) { - inhibitor->priv->reason = g_strdup (reason); + inhibitor->reason = g_strdup (reason); } else { - inhibitor->priv->reason = g_strdup (""); + inhibitor->reason = g_strdup (""); } g_object_notify (G_OBJECT (inhibitor), "reason"); } @@ -225,8 +223,8 @@ gsm_inhibitor_set_cookie (GsmInhibitor *inhibitor, { g_return_if_fail (GSM_IS_INHIBITOR (inhibitor)); - if (inhibitor->priv->cookie != cookie) { - inhibitor->priv->cookie = cookie; + if (inhibitor->cookie != cookie) { + inhibitor->cookie = cookie; g_object_notify (G_OBJECT (inhibitor), "cookie"); } } @@ -237,8 +235,8 @@ gsm_inhibitor_set_flags (GsmInhibitor *inhibitor, { g_return_if_fail (GSM_IS_INHIBITOR (inhibitor)); - if (inhibitor->priv->flags != flags) { - inhibitor->priv->flags = flags; + if (inhibitor->flags != flags) { + inhibitor->flags = flags; g_object_notify (G_OBJECT (inhibitor), "flags"); } } @@ -249,8 +247,8 @@ gsm_inhibitor_set_toplevel_xid (GsmInhibitor *inhibitor, { g_return_if_fail (GSM_IS_INHIBITOR (inhibitor)); - if (inhibitor->priv->toplevel_xid != xid) { - inhibitor->priv->toplevel_xid = xid; + if (inhibitor->toplevel_xid != xid) { + inhibitor->toplevel_xid = xid; g_object_notify (G_OBJECT (inhibitor), "toplevel-xid"); } } @@ -260,7 +258,7 @@ gsm_inhibitor_peek_bus_name (GsmInhibitor *inhibitor) { g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), NULL); - return inhibitor->priv->bus_name; + return inhibitor->bus_name; } gboolean @@ -270,8 +268,8 @@ gsm_inhibitor_get_app_id (GsmInhibitor *inhibitor, { g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), FALSE); - if (inhibitor->priv->app_id != NULL) { - *id = g_strdup (inhibitor->priv->app_id); + if (inhibitor->app_id != NULL) { + *id = g_strdup (inhibitor->app_id); } else { *id = g_strdup (""); } @@ -287,7 +285,7 @@ gsm_inhibitor_get_client_id (GsmInhibitor *inhibitor, g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), FALSE); /* object paths are not allowed to be NULL or blank */ - if (IS_STRING_EMPTY (inhibitor->priv->client_id)) { + if (IS_STRING_EMPTY (inhibitor->client_id)) { g_set_error (error, GSM_INHIBITOR_ERROR, GSM_INHIBITOR_ERROR_NOT_SET, @@ -295,7 +293,7 @@ gsm_inhibitor_get_client_id (GsmInhibitor *inhibitor, return FALSE; } - *id = g_strdup (inhibitor->priv->client_id); + *id = g_strdup (inhibitor->client_id); g_debug ("GsmInhibitor: getting client-id = '%s'", *id); @@ -309,8 +307,8 @@ gsm_inhibitor_get_reason (GsmInhibitor *inhibitor, { g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), FALSE); - if (inhibitor->priv->reason != NULL) { - *reason = g_strdup (inhibitor->priv->reason); + if (inhibitor->reason != NULL) { + *reason = g_strdup (inhibitor->reason); } else { *reason = g_strdup (""); } @@ -325,7 +323,7 @@ gsm_inhibitor_get_flags (GsmInhibitor *inhibitor, { g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), FALSE); - *flags = inhibitor->priv->flags; + *flags = inhibitor->flags; return TRUE; } @@ -337,7 +335,7 @@ gsm_inhibitor_get_toplevel_xid (GsmInhibitor *inhibitor, { g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), FALSE); - *xid = inhibitor->priv->toplevel_xid; + *xid = inhibitor->toplevel_xid; return TRUE; } @@ -347,7 +345,7 @@ gsm_inhibitor_peek_id (GsmInhibitor *inhibitor) { g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), NULL); - return inhibitor->priv->id; + return inhibitor->id; } const char * @@ -355,7 +353,7 @@ gsm_inhibitor_peek_app_id (GsmInhibitor *inhibitor) { g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), NULL); - return inhibitor->priv->app_id; + return inhibitor->app_id; } const char * @@ -363,7 +361,7 @@ gsm_inhibitor_peek_client_id (GsmInhibitor *inhibitor) { g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), NULL); - return inhibitor->priv->client_id; + return inhibitor->client_id; } const char * @@ -371,7 +369,7 @@ gsm_inhibitor_peek_reason (GsmInhibitor *inhibitor) { g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), NULL); - return inhibitor->priv->reason; + return inhibitor->reason; } guint @@ -379,7 +377,7 @@ gsm_inhibitor_peek_flags (GsmInhibitor *inhibitor) { g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), 0); - return inhibitor->priv->flags; + return inhibitor->flags; } guint @@ -387,7 +385,7 @@ gsm_inhibitor_peek_toplevel_xid (GsmInhibitor *inhibitor) { g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), 0); - return inhibitor->priv->toplevel_xid; + return inhibitor->toplevel_xid; } guint @@ -395,7 +393,7 @@ gsm_inhibitor_peek_cookie (GsmInhibitor *inhibitor) { g_return_val_if_fail (GSM_IS_INHIBITOR (inhibitor), 0); - return inhibitor->priv->cookie; + return inhibitor->cookie; } static void @@ -448,25 +446,25 @@ gsm_inhibitor_get_property (GObject *object, switch (prop_id) { case PROP_BUS_NAME: - g_value_set_string (value, self->priv->bus_name); + g_value_set_string (value, self->bus_name); break; case PROP_APP_ID: - g_value_set_string (value, self->priv->app_id); + g_value_set_string (value, self->app_id); break; case PROP_CLIENT_ID: - g_value_set_string (value, self->priv->client_id); + g_value_set_string (value, self->client_id); break; case PROP_REASON: - g_value_set_string (value, self->priv->reason); + g_value_set_string (value, self->reason); break; case PROP_FLAGS: - g_value_set_uint (value, self->priv->flags); + g_value_set_uint (value, self->flags); break; case PROP_COOKIE: - g_value_set_uint (value, self->priv->cookie); + g_value_set_uint (value, self->cookie); break; case PROP_TOPLEVEL_XID: - g_value_set_uint (value, self->priv->toplevel_xid); + g_value_set_uint (value, self->toplevel_xid); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -479,11 +477,11 @@ gsm_inhibitor_finalize (GObject *object) { GsmInhibitor *inhibitor = (GsmInhibitor *) object; - g_free (inhibitor->priv->id); - g_free (inhibitor->priv->bus_name); - g_free (inhibitor->priv->app_id); - g_free (inhibitor->priv->client_id); - g_free (inhibitor->priv->reason); + g_free (inhibitor->id); + g_free (inhibitor->bus_name); + g_free (inhibitor->app_id); + g_free (inhibitor->client_id); + g_free (inhibitor->reason); G_OBJECT_CLASS (gsm_inhibitor_parent_class)->finalize (object); } @@ -556,7 +554,6 @@ gsm_inhibitor_class_init (GsmInhibitorClass *klass) dbus_g_object_type_install_info (GSM_TYPE_INHIBITOR, &dbus_glib_gsm_inhibitor_object_info); dbus_g_error_domain_register (GSM_INHIBITOR_ERROR, NULL, GSM_INHIBITOR_TYPE_ERROR); - g_type_class_add_private (klass, sizeof (GsmInhibitorPrivate)); } GsmInhibitor * diff --git a/mate-session/gsm-inhibitor.h b/mate-session/gsm-inhibitor.h index 66aba28..653f717 100644 --- a/mate-session/gsm-inhibitor.h +++ b/mate-session/gsm-inhibitor.h @@ -24,32 +24,12 @@ #include <glib-object.h> #include <sys/types.h> -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS #define GSM_TYPE_INHIBITOR (gsm_inhibitor_get_type ()) -#define GSM_INHIBITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_INHIBITOR, GsmInhibitor)) -#define GSM_INHIBITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_INHIBITOR, GsmInhibitorClass)) -#define GSM_IS_INHIBITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_INHIBITOR)) -#define GSM_IS_INHIBITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_INHIBITOR)) -#define GSM_INHIBITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_INHIBITOR, GsmInhibitorClass)) - -typedef struct _GsmInhibitor GsmInhibitor; -typedef struct _GsmInhibitorClass GsmInhibitorClass; - -typedef struct GsmInhibitorPrivate GsmInhibitorPrivate; - -struct _GsmInhibitor -{ - GObject parent; - GsmInhibitorPrivate *priv; -}; - -struct _GsmInhibitorClass -{ - GObjectClass parent_class; -}; +#define GSM_INHIBITOR_ERROR (gsm_inhibitor_error_quark ()) +#define GSM_INHIBITOR_TYPE_ERROR (gsm_inhibitor_error_get_type ()) +G_DECLARE_FINAL_TYPE (GsmInhibitor, gsm_inhibitor, GSM, INHIBITOR, GObject) typedef enum { GSM_INHIBITOR_FLAG_LOGOUT = 1 << 0, @@ -65,14 +45,10 @@ typedef enum GSM_INHIBITOR_NUM_ERRORS } GsmInhibitorError; -#define GSM_INHIBITOR_ERROR gsm_inhibitor_error_quark () GType gsm_inhibitor_error_get_type (void); -#define GSM_INHIBITOR_TYPE_ERROR (gsm_inhibitor_error_get_type ()) GQuark gsm_inhibitor_error_quark (void); -GType gsm_inhibitor_get_type (void) G_GNUC_CONST; - GsmInhibitor * gsm_inhibitor_new (const char *app_id, guint toplevel_xid, guint flags, @@ -112,9 +88,6 @@ gboolean gsm_inhibitor_get_toplevel_xid (GsmInhibitor *inhibitor, guint *xid, GError **error); - -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_INHIBITOR_H__ */ diff --git a/mate-session/gsm-logout-dialog.c b/mate-session/gsm-logout-dialog.c index 3183036..0b5741c 100644 --- a/mate-session/gsm-logout-dialog.c +++ b/mate-session/gsm-logout-dialog.c @@ -34,9 +34,6 @@ #include "gsm-consolekit.h" #include "mdm.h" -#define GSM_LOGOUT_DIALOG_GET_PRIVATE(o) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_LOGOUT_DIALOG, GsmLogoutDialogPrivate)) - #define GSM_ICON_LOGOUT "system-log-out" #define GSM_ICON_SHUTDOWN "system-shutdown" @@ -51,8 +48,9 @@ typedef enum { GSM_DIALOG_LOGOUT_TYPE_SHUTDOWN } GsmDialogLogoutType; -struct _GsmLogoutDialogPrivate +struct _GsmLogoutDialog { + GtkMessageDialog parent; GsmDialogLogoutType type; #ifdef HAVE_SYSTEMD GsmSystemd *systemd; @@ -133,32 +131,28 @@ gsm_logout_dialog_class_init (GsmLogoutDialogClass *klass) g_object_class_override_property (gobject_class, PROP_MESSAGE_TYPE, "message-type"); - - g_type_class_add_private (klass, sizeof (GsmLogoutDialogPrivate)); } static void gsm_logout_dialog_init (GsmLogoutDialog *logout_dialog) { - logout_dialog->priv = GSM_LOGOUT_DIALOG_GET_PRIVATE (logout_dialog); - - logout_dialog->priv->timeout_id = 0; - logout_dialog->priv->timeout = 0; - logout_dialog->priv->default_response = GTK_RESPONSE_CANCEL; + logout_dialog->timeout_id = 0; + logout_dialog->timeout = 0; + logout_dialog->default_response = GTK_RESPONSE_CANCEL; - GtkStyleContext *context; - context = gtk_widget_get_style_context (GTK_WIDGET (logout_dialog)); - gtk_style_context_add_class (context, "logout-dialog"); + GtkStyleContext *context; + context = gtk_widget_get_style_context (GTK_WIDGET (logout_dialog)); + gtk_style_context_add_class (context, "logout-dialog"); gtk_window_set_skip_taskbar_hint (GTK_WINDOW (logout_dialog), TRUE); gtk_window_set_keep_above (GTK_WINDOW (logout_dialog), TRUE); gtk_window_stick (GTK_WINDOW (logout_dialog)); #ifdef HAVE_SYSTEMD if (LOGIND_RUNNING()) - logout_dialog->priv->systemd = gsm_get_systemd (); + logout_dialog->systemd = gsm_get_systemd (); else #endif - logout_dialog->priv->consolekit = gsm_get_consolekit (); + logout_dialog->consolekit = gsm_get_consolekit (); g_signal_connect (logout_dialog, "destroy", @@ -175,20 +169,20 @@ static void gsm_logout_dialog_destroy (GsmLogoutDialog *logout_dialog, gpointer data) { - if (logout_dialog->priv->timeout_id != 0) { - g_source_remove (logout_dialog->priv->timeout_id); - logout_dialog->priv->timeout_id = 0; + if (logout_dialog->timeout_id != 0) { + g_source_remove (logout_dialog->timeout_id); + logout_dialog->timeout_id = 0; } #ifdef HAVE_SYSTEMD - if (logout_dialog->priv->systemd) { - g_object_unref (logout_dialog->priv->systemd); - logout_dialog->priv->systemd = NULL; + if (logout_dialog->systemd) { + g_object_unref (logout_dialog->systemd); + logout_dialog->systemd = NULL; } #endif - if (logout_dialog->priv->consolekit) { - g_object_unref (logout_dialog->priv->consolekit); - logout_dialog->priv->consolekit = NULL; + if (logout_dialog->consolekit) { + g_object_unref (logout_dialog->consolekit); + logout_dialog->consolekit = NULL; } current_dialog = NULL; @@ -201,10 +195,10 @@ gsm_logout_supports_system_suspend (GsmLogoutDialog *logout_dialog) ret = FALSE; #ifdef HAVE_SYSTEMD if (LOGIND_RUNNING()) - ret = gsm_systemd_can_suspend (logout_dialog->priv->systemd); + ret = gsm_systemd_can_suspend (logout_dialog->systemd); else #endif - ret = gsm_consolekit_can_suspend (logout_dialog->priv->consolekit); + ret = gsm_consolekit_can_suspend (logout_dialog->consolekit); return ret; } @@ -215,10 +209,10 @@ gsm_logout_supports_system_hibernate (GsmLogoutDialog *logout_dialog) ret = FALSE; #ifdef HAVE_SYSTEMD if (LOGIND_RUNNING()) - ret = gsm_systemd_can_hibernate (logout_dialog->priv->systemd); + ret = gsm_systemd_can_hibernate (logout_dialog->systemd); else #endif - ret = gsm_consolekit_can_hibernate (logout_dialog->priv->consolekit); + ret = gsm_consolekit_can_hibernate (logout_dialog->consolekit); return ret; } @@ -237,10 +231,10 @@ gsm_logout_supports_switch_user (GsmLogoutDialog *logout_dialog) if (!locked) { #ifdef HAVE_SYSTEMD if (LOGIND_RUNNING()) - ret = gsm_systemd_can_switch_user (logout_dialog->priv->systemd); + ret = gsm_systemd_can_switch_user (logout_dialog->systemd); else #endif - ret = gsm_consolekit_can_switch_user (logout_dialog->priv->consolekit); + ret = gsm_consolekit_can_switch_user (logout_dialog->consolekit); } return ret; @@ -253,10 +247,10 @@ gsm_logout_supports_reboot (GsmLogoutDialog *logout_dialog) #ifdef HAVE_SYSTEMD if (LOGIND_RUNNING()) - ret = gsm_systemd_can_restart (logout_dialog->priv->systemd); + ret = gsm_systemd_can_restart (logout_dialog->systemd); else #endif - ret = gsm_consolekit_can_restart (logout_dialog->priv->consolekit); + ret = gsm_consolekit_can_restart (logout_dialog->consolekit); if (!ret) { ret = mdm_supports_logout_action (MDM_LOGOUT_ACTION_REBOOT); } @@ -271,10 +265,10 @@ gsm_logout_supports_shutdown (GsmLogoutDialog *logout_dialog) #ifdef HAVE_SYSTEMD if (LOGIND_RUNNING()) - ret = gsm_systemd_can_stop (logout_dialog->priv->systemd); + ret = gsm_systemd_can_stop (logout_dialog->systemd); else #endif - ret = gsm_consolekit_can_stop (logout_dialog->priv->consolekit); + ret = gsm_consolekit_can_stop (logout_dialog->consolekit); if (!ret) { ret = mdm_supports_logout_action (MDM_LOGOUT_ACTION_SHUTDOWN); @@ -300,20 +294,20 @@ gsm_logout_dialog_timeout (gpointer data) logout_dialog = (GsmLogoutDialog *) data; - if (!logout_dialog->priv->timeout) { + if (!logout_dialog->timeout) { gtk_dialog_response (GTK_DIALOG (logout_dialog), - logout_dialog->priv->default_response); + logout_dialog->default_response); return FALSE; } - switch (logout_dialog->priv->type) { + switch (logout_dialog->type) { case GSM_DIALOG_LOGOUT_TYPE_LOGOUT: seconds_warning = ngettext ("You will be automatically logged " "out in %d second", "You will be automatically logged " "out in %d seconds", - logout_dialog->priv->timeout); + logout_dialog->timeout); break; case GSM_DIALOG_LOGOUT_TYPE_SHUTDOWN: @@ -321,13 +315,13 @@ gsm_logout_dialog_timeout (gpointer data) "shut down in %d second", "This system will be automatically " "shut down in %d seconds", - logout_dialog->priv->timeout); + logout_dialog->timeout); break; default: g_assert_not_reached (); } - seconds_warning = g_strdup_printf (seconds_warning, logout_dialog->priv->timeout); + seconds_warning = g_strdup_printf (seconds_warning, logout_dialog->timeout); if (session_type == NULL) { #ifdef HAVE_SYSTEMD @@ -370,16 +364,16 @@ gsm_logout_dialog_timeout (gpointer data) secondary_text = g_strdup (seconds_warning); } - gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (logout_dialog->priv->progressbar), - logout_dialog->priv->timeout / 60.0); - gtk_progress_bar_set_text (GTK_PROGRESS_BAR (logout_dialog->priv->progressbar), + gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (logout_dialog->progressbar), + logout_dialog->timeout / 60.0); + gtk_progress_bar_set_text (GTK_PROGRESS_BAR (logout_dialog->progressbar), seconds_warning); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (logout_dialog), secondary_text, NULL); - logout_dialog->priv->timeout--; + logout_dialog->timeout--; g_free (secondary_text); g_free (seconds_warning); @@ -394,22 +388,22 @@ gsm_logout_dialog_set_timeout (GsmLogoutDialog *logout_dialog) settings = g_settings_new (SESSION_SCHEMA); - logout_dialog->priv->timeout = g_settings_get_int (settings, KEY_LOGOUT_TIMEOUT); + logout_dialog->timeout = g_settings_get_int (settings, KEY_LOGOUT_TIMEOUT); - if (logout_dialog->priv->timeout > 0) { + if (logout_dialog->timeout > 0) { /* Sets the secondary text */ gsm_logout_dialog_timeout (logout_dialog); - if (logout_dialog->priv->timeout_id != 0) { - g_source_remove (logout_dialog->priv->timeout_id); + if (logout_dialog->timeout_id != 0) { + g_source_remove (logout_dialog->timeout_id); } - logout_dialog->priv->timeout_id = g_timeout_add (1000, - gsm_logout_dialog_timeout, - logout_dialog); + logout_dialog->timeout_id = g_timeout_add (1000, + gsm_logout_dialog_timeout, + logout_dialog); } else { - gtk_widget_hide (logout_dialog->priv->progressbar); + gtk_widget_hide (logout_dialog->progressbar); } g_object_unref (settings); @@ -435,7 +429,7 @@ gsm_get_dialog (GsmDialogLogoutType type, gtk_window_set_title (GTK_WINDOW (logout_dialog), ""); - logout_dialog->priv->type = type; + logout_dialog->type = type; icon_name = NULL; primary_text = NULL; @@ -445,7 +439,7 @@ gsm_get_dialog (GsmDialogLogoutType type, icon_name = GSM_ICON_LOGOUT; primary_text = _("Log out of this system now?"); - logout_dialog->priv->default_response = GSM_LOGOUT_RESPONSE_LOGOUT; + logout_dialog->default_response = GSM_LOGOUT_RESPONSE_LOGOUT; if (gsm_logout_supports_switch_user (logout_dialog)) { gtk_dialog_add_button (GTK_DIALOG (logout_dialog), @@ -466,7 +460,7 @@ gsm_get_dialog (GsmDialogLogoutType type, icon_name = GSM_ICON_SHUTDOWN; primary_text = _("Shut down this system now?"); - logout_dialog->priv->default_response = GSM_LOGOUT_RESPONSE_SHUTDOWN; + logout_dialog->default_response = GSM_LOGOUT_RESPONSE_SHUTDOWN; if (gsm_logout_supports_system_suspend (logout_dialog)) { gtk_dialog_add_button (GTK_DIALOG (logout_dialog), @@ -501,11 +495,11 @@ gsm_get_dialog (GsmDialogLogoutType type, } hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); - logout_dialog->priv->progressbar = gtk_progress_bar_new (); - gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (logout_dialog->priv->progressbar), TRUE); - gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (logout_dialog->priv->progressbar), 1.0); + logout_dialog->progressbar = gtk_progress_bar_new (); + gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (logout_dialog->progressbar), TRUE); + gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (logout_dialog->progressbar), 1.0); gtk_box_pack_start (GTK_BOX (hbox), - logout_dialog->priv->progressbar, + logout_dialog->progressbar, TRUE, TRUE, 12); gtk_widget_show_all (hbox); gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (logout_dialog))), hbox); @@ -515,7 +509,7 @@ gsm_get_dialog (GsmDialogLogoutType type, gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (logout_dialog), primary_text); gtk_dialog_set_default_response (GTK_DIALOG (logout_dialog), - logout_dialog->priv->default_response); + logout_dialog->default_response); gtk_window_set_screen (GTK_WINDOW (logout_dialog), screen); diff --git a/mate-session/gsm-logout-dialog.h b/mate-session/gsm-logout-dialog.h index dcde2cb..2166521 100644 --- a/mate-session/gsm-logout-dialog.h +++ b/mate-session/gsm-logout-dialog.h @@ -26,9 +26,10 @@ #include <gtk/gtk.h> -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS + +#define GSM_TYPE_LOGOUT_DIALOG (gsm_logout_dialog_get_type ()) +G_DECLARE_FINAL_TYPE (GsmLogoutDialog, gsm_logout_dialog, GSM, LOGOUT_DIALOG, GtkMessageDialog) enum { @@ -40,38 +41,11 @@ enum GSM_LOGOUT_RESPONSE_SLEEP }; -#define GSM_TYPE_LOGOUT_DIALOG (gsm_logout_dialog_get_type ()) -#define GSM_LOGOUT_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_LOGOUT_DIALOG, GsmLogoutDialog)) -#define GSM_LOGOUT_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_LOGOUT_DIALOG, GsmLogoutDialogClass)) -#define GSM_IS_LOGOUT_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_LOGOUT_DIALOG)) -#define GSM_IS_LOGOUT_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_LOGOUT_DIALOG)) -#define GSM_LOGOUT_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_LOGOUT_DIALOG, GsmLogoutDialogClass)) - -typedef struct _GsmLogoutDialog GsmLogoutDialog; -typedef struct _GsmLogoutDialogClass GsmLogoutDialogClass; -typedef struct _GsmLogoutDialogPrivate GsmLogoutDialogPrivate; - -struct _GsmLogoutDialog -{ - GtkMessageDialog parent; - - GsmLogoutDialogPrivate *priv; -}; - -struct _GsmLogoutDialogClass -{ - GtkMessageDialogClass parent_class; -}; - -GType gsm_logout_dialog_get_type (void) G_GNUC_CONST; - GtkWidget *gsm_get_logout_dialog (GdkScreen *screen, guint32 activate_time); GtkWidget *gsm_get_shutdown_dialog (GdkScreen *screen, guint32 activate_time); -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_LOGOUT_DIALOG_H__ */ diff --git a/mate-session/gsm-store.c b/mate-session/gsm-store.c index 2d1721f..e715e73 100644 --- a/mate-session/gsm-store.c +++ b/mate-session/gsm-store.c @@ -32,13 +32,11 @@ #include "gsm-store.h" -#define GSM_STORE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_STORE, GsmStorePrivate)) - -struct GsmStorePrivate +typedef struct { GHashTable *objects; gboolean locked; -}; +} GsmStorePrivate; enum { ADDED, @@ -57,7 +55,7 @@ static void gsm_store_class_init (GsmStoreClass *klass); static void gsm_store_init (GsmStore *store); static void gsm_store_finalize (GObject *object); -G_DEFINE_TYPE (GsmStore, gsm_store, G_TYPE_OBJECT) +G_DEFINE_TYPE_WITH_PRIVATE (GsmStore, gsm_store, G_TYPE_OBJECT) GQuark gsm_store_error_quark (void) @@ -73,7 +71,9 @@ gsm_store_error_quark (void) guint gsm_store_size (GsmStore *store) { - return g_hash_table_size (store->priv->objects); + GsmStorePrivate *priv; + priv = gsm_store_get_instance_private (store); + return g_hash_table_size (priv->objects); } gboolean @@ -83,10 +83,12 @@ gsm_store_remove (GsmStore *store, GObject *found; gboolean removed; char *id_copy; + GsmStorePrivate *priv; g_return_val_if_fail (store != NULL, FALSE); - found = g_hash_table_lookup (store->priv->objects, id); + priv = gsm_store_get_instance_private (store); + found = g_hash_table_lookup (priv->objects, id); if (found == NULL) { return FALSE; } @@ -95,7 +97,7 @@ gsm_store_remove (GsmStore *store, g_object_ref (found); - removed = g_hash_table_remove (store->priv->objects, id_copy); + removed = g_hash_table_remove (priv->objects, id_copy); g_assert (removed); g_signal_emit (store, signals [REMOVED], 0, id_copy); @@ -113,8 +115,10 @@ gsm_store_foreach (GsmStore *store, { g_return_if_fail (store != NULL); g_return_if_fail (func != NULL); + GsmStorePrivate *priv; + priv = gsm_store_get_instance_private (store); - g_hash_table_find (store->priv->objects, + g_hash_table_find (priv->objects, (GHRFunc)func, user_data); } @@ -125,11 +129,13 @@ gsm_store_find (GsmStore *store, gpointer user_data) { GObject *object; + GsmStorePrivate *priv; g_return_val_if_fail (store != NULL, NULL); g_return_val_if_fail (predicate != NULL, NULL); + priv = gsm_store_get_instance_private (store); - object = g_hash_table_find (store->priv->objects, + object = g_hash_table_find (priv->objects, (GHRFunc)predicate, user_data); return object; @@ -140,11 +146,13 @@ gsm_store_lookup (GsmStore *store, const char *id) { GObject *object; + GsmStorePrivate *priv; g_return_val_if_fail (store != NULL, NULL); g_return_val_if_fail (id != NULL, NULL); + priv = gsm_store_get_instance_private (store); - object = g_hash_table_lookup (store->priv->objects, id); + object = g_hash_table_lookup (priv->objects, id); return object; } @@ -180,16 +188,18 @@ gsm_store_foreach_remove (GsmStore *store, { guint ret; WrapperData data; + GsmStorePrivate *priv; g_return_val_if_fail (store != NULL, 0); g_return_val_if_fail (func != NULL, 0); + priv = gsm_store_get_instance_private (store); data.store = store; data.user_data = user_data; data.func = func; data.removed = NULL; - ret = g_hash_table_foreach_remove (store->priv->objects, + ret = g_hash_table_foreach_remove (priv->objects, (GHRFunc)foreach_remove_wrapper, &data); @@ -231,19 +241,22 @@ gsm_store_add (GsmStore *store, const char *id, GObject *object) { + GsmStorePrivate *priv; g_return_val_if_fail (store != NULL, FALSE); g_return_val_if_fail (id != NULL, FALSE); g_return_val_if_fail (object != NULL, FALSE); + priv = gsm_store_get_instance_private (store); + /* If we're locked, we don't accept any new session objects. */ - if (store->priv->locked) { + if (priv->locked) { return FALSE; } g_debug ("GsmStore: Adding object id %s to store", id); - g_hash_table_insert (store->priv->objects, + g_hash_table_insert (priv->objects, g_strdup (id), g_object_ref (object)); @@ -256,17 +269,21 @@ void gsm_store_set_locked (GsmStore *store, gboolean locked) { + GsmStorePrivate *priv; g_return_if_fail (GSM_IS_STORE (store)); + priv = gsm_store_get_instance_private (store); - store->priv->locked = locked; + priv->locked = locked; } gboolean gsm_store_get_locked (GsmStore *store) { + GsmStorePrivate *priv; g_return_val_if_fail (GSM_IS_STORE (store), FALSE); + priv = gsm_store_get_instance_private (store); - return store->priv->locked; + return priv->locked; } static void @@ -296,12 +313,14 @@ gsm_store_get_property (GObject *object, GParamSpec *pspec) { GsmStore *self; + GsmStorePrivate *priv; self = GSM_STORE (object); + priv = gsm_store_get_instance_private (self); switch (prop_id) { case PROP_LOCKED: - g_value_set_boolean (value, self->priv->locked); + g_value_set_boolean (value, priv->locked); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -361,8 +380,6 @@ gsm_store_class_init (GsmStoreClass *klass) NULL, FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - g_type_class_add_private (klass, sizeof (GsmStorePrivate)); } static void @@ -375,28 +392,30 @@ _destroy_object (GObject *object) static void gsm_store_init (GsmStore *store) { + GsmStorePrivate *priv; + priv = gsm_store_get_instance_private (store); - store->priv = GSM_STORE_GET_PRIVATE (store); - - store->priv->objects = g_hash_table_new_full (g_str_hash, - g_str_equal, - g_free, - (GDestroyNotify) _destroy_object); + priv->objects = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + (GDestroyNotify) _destroy_object); } static void gsm_store_finalize (GObject *object) { GsmStore *store; + GsmStorePrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GSM_IS_STORE (object)); store = GSM_STORE (object); + priv = gsm_store_get_instance_private (store); - g_return_if_fail (store->priv != NULL); + g_return_if_fail (priv != NULL); - g_hash_table_destroy (store->priv->objects); + g_hash_table_destroy (priv->objects); G_OBJECT_CLASS (gsm_store_parent_class)->finalize (object); } diff --git a/mate-session/gsm-store.h b/mate-session/gsm-store.h index c7b1c85..5a7f408 100644 --- a/mate-session/gsm-store.h +++ b/mate-session/gsm-store.h @@ -24,26 +24,12 @@ #include <glib-object.h> -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS #define GSM_TYPE_STORE (gsm_store_get_type ()) -#define GSM_STORE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_STORE, GsmStore)) -#define GSM_STORE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_STORE, GsmStoreClass)) -#define GSM_IS_STORE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_STORE)) -#define GSM_IS_STORE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_STORE)) -#define GSM_STORE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_STORE, GsmStoreClass)) +G_DECLARE_DERIVABLE_TYPE (GsmStore, gsm_store, GSM, STORE, GObject) -typedef struct GsmStorePrivate GsmStorePrivate; - -typedef struct -{ - GObject parent; - GsmStorePrivate *priv; -} GsmStore; - -typedef struct +struct _GsmStoreClass { GObjectClass parent_class; @@ -51,7 +37,7 @@ typedef struct const char *id); void (* removed) (GsmStore *store, const char *id); -} GsmStoreClass; +}; typedef enum { @@ -65,7 +51,7 @@ typedef gboolean (*GsmStoreFunc) (const char *id, gpointer user_data); GQuark gsm_store_error_quark (void); -GType gsm_store_get_type (void); +GType gsm_store_get_type (void) G_GNUC_CONST; GsmStore * gsm_store_new (void); @@ -93,9 +79,6 @@ GObject * gsm_store_find (GsmStore *store, GObject * gsm_store_lookup (GsmStore *store, const char *id); - -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_STORE_H */ diff --git a/mate-session/gsm-systemd.c b/mate-session/gsm-systemd.c index 3ef6e48..5eafaed 100644 --- a/mate-session/gsm-systemd.c +++ b/mate-session/gsm-systemd.c @@ -44,16 +44,13 @@ #define SD_SEAT_INTERFACE "org.freedesktop.login1.Seat" #define SD_SESSION_INTERFACE "org.freedesktop.login1.Session" -#define GSM_SYSTEMD_GET_PRIVATE(o) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_SYSTEMD, GsmSystemdPrivate)) - -struct _GsmSystemdPrivate +typedef struct { DBusGConnection *dbus_connection; DBusGProxy *bus_proxy; DBusGProxy *sd_proxy; guint32 is_connected : 1; -}; +} GsmSystemdPrivate; enum { PROP_0, @@ -84,7 +81,7 @@ static void gsm_systemd_on_name_owner_changed (DBusGProxy *bus_proxy, const char *new_owner, GsmSystemd *manager); -G_DEFINE_TYPE (GsmSystemd, gsm_systemd, G_TYPE_OBJECT); +G_DEFINE_TYPE_WITH_PRIVATE (GsmSystemd, gsm_systemd, G_TYPE_OBJECT); static void gsm_systemd_get_property (GObject *object, @@ -92,12 +89,15 @@ gsm_systemd_get_property (GObject *object, GValue *value, GParamSpec *pspec) { + GsmSystemdPrivate *priv; GsmSystemd *manager = GSM_SYSTEMD (object); + priv = gsm_systemd_get_instance_private (manager); + switch (prop_id) { case PROP_IS_CONNECTED: g_value_set_boolean (value, - manager->priv->is_connected); + priv->is_connected); break; default: @@ -148,8 +148,6 @@ gsm_systemd_class_init (GsmSystemdClass *manager_class) gsm_marshal_VOID__BOOLEAN_BOOLEAN_POINTER, G_TYPE_NONE, 3, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_POINTER); - - g_type_class_add_private (manager_class, sizeof (GsmSystemdPrivate)); } static DBusHandlerResult @@ -177,64 +175,67 @@ gsm_systemd_ensure_sd_connection (GsmSystemd *manager, { GError *connection_error; gboolean is_connected; + GsmSystemdPrivate *priv; connection_error = NULL; - if (manager->priv->dbus_connection == NULL) { + priv = gsm_systemd_get_instance_private (manager); + + if (priv->dbus_connection == NULL) { DBusConnection *connection; - manager->priv->dbus_connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, - &connection_error); + priv->dbus_connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, + &connection_error); - if (manager->priv->dbus_connection == NULL) { + if (priv->dbus_connection == NULL) { g_propagate_error (error, connection_error); is_connected = FALSE; goto out; } - connection = dbus_g_connection_get_connection (manager->priv->dbus_connection); + connection = dbus_g_connection_get_connection (priv->dbus_connection); dbus_connection_set_exit_on_disconnect (connection, FALSE); dbus_connection_add_filter (connection, gsm_systemd_dbus_filter, manager, NULL); } - if (manager->priv->bus_proxy == NULL) { - manager->priv->bus_proxy = - dbus_g_proxy_new_for_name_owner (manager->priv->dbus_connection, + if (priv->bus_proxy == NULL) { + priv->bus_proxy = + dbus_g_proxy_new_for_name_owner (priv->dbus_connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, &connection_error); - if (manager->priv->bus_proxy == NULL) { + if (priv->bus_proxy == NULL) { g_propagate_error (error, connection_error); is_connected = FALSE; goto out; } - dbus_g_proxy_add_signal (manager->priv->bus_proxy, + dbus_g_proxy_add_signal (priv->bus_proxy, "NameOwnerChanged", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); - dbus_g_proxy_connect_signal (manager->priv->bus_proxy, + dbus_g_proxy_connect_signal (priv->bus_proxy, "NameOwnerChanged", G_CALLBACK (gsm_systemd_on_name_owner_changed), manager, NULL); } - if (manager->priv->sd_proxy == NULL) { - manager->priv->sd_proxy = - dbus_g_proxy_new_for_name_owner (manager->priv->dbus_connection, + if (priv->sd_proxy == NULL) { + priv->sd_proxy = + dbus_g_proxy_new_for_name_owner (priv->dbus_connection, SD_NAME, SD_PATH, SD_INTERFACE, &connection_error); - if (manager->priv->sd_proxy == NULL) { + if (priv->sd_proxy == NULL) { g_propagate_error (error, connection_error); is_connected = FALSE; goto out; @@ -244,26 +245,26 @@ gsm_systemd_ensure_sd_connection (GsmSystemd *manager, is_connected = TRUE; out: - if (manager->priv->is_connected != is_connected) { - manager->priv->is_connected = is_connected; + if (priv->is_connected != is_connected) { + priv->is_connected = is_connected; g_object_notify (G_OBJECT (manager), "is-connected"); } if (!is_connected) { - if (manager->priv->dbus_connection == NULL) { - if (manager->priv->bus_proxy != NULL) { - g_object_unref (manager->priv->bus_proxy); - manager->priv->bus_proxy = NULL; + if (priv->dbus_connection == NULL) { + if (priv->bus_proxy != NULL) { + g_object_unref (priv->bus_proxy); + priv->bus_proxy = NULL; } - if (manager->priv->sd_proxy != NULL) { - g_object_unref (manager->priv->sd_proxy); - manager->priv->sd_proxy = NULL; + if (priv->sd_proxy != NULL) { + g_object_unref (priv->sd_proxy); + priv->sd_proxy = NULL; } - } else if (manager->priv->bus_proxy == NULL) { - if (manager->priv->sd_proxy != NULL) { - g_object_unref (manager->priv->sd_proxy); - manager->priv->sd_proxy = NULL; + } else if (priv->bus_proxy == NULL) { + if (priv->sd_proxy != NULL) { + g_object_unref (priv->sd_proxy); + priv->sd_proxy = NULL; } } } @@ -278,13 +279,16 @@ gsm_systemd_on_name_owner_changed (DBusGProxy *bus_proxy, const char *new_owner, GsmSystemd *manager) { + GsmSystemdPrivate *priv; + + priv = gsm_systemd_get_instance_private (manager); if (name != NULL && g_strcmp0 (name, SD_NAME) != 0) { return; } - if (manager->priv->sd_proxy != NULL) { - g_object_unref (manager->priv->sd_proxy); - manager->priv->sd_proxy = NULL; + if (priv->sd_proxy != NULL) { + g_object_unref (priv->sd_proxy); + priv->sd_proxy = NULL; } gsm_systemd_ensure_sd_connection (manager, NULL); @@ -295,8 +299,6 @@ gsm_systemd_init (GsmSystemd *manager) { GError *error; - manager->priv = GSM_SYSTEMD_GET_PRIVATE (manager); - error = NULL; if (!gsm_systemd_ensure_sd_connection (manager, &error)) { @@ -309,25 +311,28 @@ gsm_systemd_init (GsmSystemd *manager) static void gsm_systemd_free_dbus (GsmSystemd *manager) { - if (manager->priv->bus_proxy != NULL) { - g_object_unref (manager->priv->bus_proxy); - manager->priv->bus_proxy = NULL; + GsmSystemdPrivate *priv; + + priv = gsm_systemd_get_instance_private (manager); + if (priv->bus_proxy != NULL) { + g_object_unref (priv->bus_proxy); + priv->bus_proxy = NULL; } - if (manager->priv->sd_proxy != NULL) { - g_object_unref (manager->priv->sd_proxy); - manager->priv->sd_proxy = NULL; + if (priv->sd_proxy != NULL) { + g_object_unref (priv->sd_proxy); + priv->sd_proxy = NULL; } - if (manager->priv->dbus_connection != NULL) { + if (priv->dbus_connection != NULL) { DBusConnection *connection; - connection = dbus_g_connection_get_connection (manager->priv->dbus_connection); + connection = dbus_g_connection_get_connection (priv->dbus_connection); dbus_connection_remove_filter (connection, gsm_systemd_dbus_filter, manager); - dbus_g_connection_unref (manager->priv->dbus_connection); - manager->priv->dbus_connection = NULL; + dbus_g_connection_unref (priv->dbus_connection); + priv->dbus_connection = NULL; } } @@ -421,8 +426,10 @@ gsm_systemd_attempt_restart (GsmSystemd *manager) { gboolean res; GError *error; + GsmSystemdPrivate *priv; error = NULL; + priv = gsm_systemd_get_instance_private (manager); if (!gsm_systemd_ensure_sd_connection (manager, &error)) { g_warning ("Could not connect to Systemd: %s", @@ -432,7 +439,7 @@ gsm_systemd_attempt_restart (GsmSystemd *manager) return; } - res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy, + res = dbus_g_proxy_call_with_timeout (priv->sd_proxy, "Reboot", INT_MAX, &error, @@ -454,8 +461,10 @@ gsm_systemd_attempt_stop (GsmSystemd *manager) { gboolean res; GError *error; + GsmSystemdPrivate *priv; error = NULL; + priv = gsm_systemd_get_instance_private (manager); if (!gsm_systemd_ensure_sd_connection (manager, &error)) { g_warning ("Could not connect to Systemd: %s", @@ -465,7 +474,7 @@ gsm_systemd_attempt_stop (GsmSystemd *manager) return; } - res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy, + res = dbus_g_proxy_call_with_timeout (priv->sd_proxy, "PowerOff", INT_MAX, &error, @@ -552,8 +561,10 @@ gsm_systemd_set_session_idle (GsmSystemd *manager, DBusMessage *reply; DBusError dbus_error; DBusMessageIter iter; + GsmSystemdPrivate *priv; error = NULL; + priv = gsm_systemd_get_instance_private (manager); if (!gsm_systemd_ensure_sd_connection (manager, &error)) { g_warning ("Could not connect to Systemd: %s", @@ -562,7 +573,7 @@ gsm_systemd_set_session_idle (GsmSystemd *manager, return; } - gsm_systemd_get_session_path (dbus_g_connection_get_connection (manager->priv->dbus_connection), &session_path); + gsm_systemd_get_session_path (dbus_g_connection_get_connection (priv->dbus_connection), &session_path); g_return_if_fail (session_path != NULL); @@ -581,7 +592,7 @@ gsm_systemd_set_session_idle (GsmSystemd *manager, /* FIXME: use async? */ dbus_error_init (&dbus_error); - reply = dbus_connection_send_with_reply_and_block (dbus_g_connection_get_connection (manager->priv->dbus_connection), + reply = dbus_connection_send_with_reply_and_block (dbus_g_connection_get_connection (priv->dbus_connection), message, -1, &dbus_error); @@ -638,8 +649,8 @@ gboolean gsm_systemd_get_restart_privileges (GsmSystemd *manager) { g_signal_emit (G_OBJECT (manager), - signals [PRIVILEGES_COMPLETED], - 0, TRUE, TRUE, NULL); + signals [PRIVILEGES_COMPLETED], + 0, TRUE, TRUE, NULL); return TRUE; } @@ -648,8 +659,8 @@ gboolean gsm_systemd_get_stop_privileges (GsmSystemd *manager) { g_signal_emit (G_OBJECT (manager), - signals [PRIVILEGES_COMPLETED], - 0, TRUE, TRUE, NULL); + signals [PRIVILEGES_COMPLETED], + 0, TRUE, TRUE, NULL); return TRUE; } @@ -661,8 +672,10 @@ gsm_systemd_can_restart (GsmSystemd *manager) gchar *value; gboolean can_restart; GError *error; + GsmSystemdPrivate *priv; error = NULL; + priv = gsm_systemd_get_instance_private (manager); if (!gsm_systemd_ensure_sd_connection (manager, &error)) { g_warning ("Could not connect to Systemd: %s", @@ -671,7 +684,7 @@ gsm_systemd_can_restart (GsmSystemd *manager) return FALSE; } - res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy, + res = dbus_g_proxy_call_with_timeout (priv->sd_proxy, "CanReboot", INT_MAX, &error, @@ -698,8 +711,10 @@ gsm_systemd_can_stop (GsmSystemd *manager) gchar *value; gboolean can_stop; GError *error; + GsmSystemdPrivate *priv; error = NULL; + priv = gsm_systemd_get_instance_private (manager); if (!gsm_systemd_ensure_sd_connection (manager, &error)) { g_warning ("Could not connect to Systemd: %s", @@ -708,7 +723,7 @@ gsm_systemd_can_stop (GsmSystemd *manager) return FALSE; } - res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy, + res = dbus_g_proxy_call_with_timeout (priv->sd_proxy, "CanPowerOff", INT_MAX, &error, @@ -736,26 +751,28 @@ gsm_systemd_can_hibernate (GsmSystemd *manager) gchar *value; gboolean can_hibernate; GError *error; + GsmSystemdPrivate *priv; error = NULL; + priv = gsm_systemd_get_instance_private (manager); if (!gsm_systemd_ensure_sd_connection (manager, &error)) { g_warning ("Could not connect to Systemd: %s", - error->message); + error->message); g_error_free (error); return FALSE; } - res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy, - "CanHibernate", - INT_MAX, - &error, - G_TYPE_INVALID, - G_TYPE_STRING, &value, - G_TYPE_INVALID); + res = dbus_g_proxy_call_with_timeout (priv->sd_proxy, + "CanHibernate", + INT_MAX, + &error, + G_TYPE_INVALID, + G_TYPE_STRING, &value, + G_TYPE_INVALID); if (res == FALSE) { g_warning ("Could not make DBUS call: %s", - error->message); + error->message); g_error_free (error); return FALSE; } @@ -773,26 +790,28 @@ gsm_systemd_can_suspend (GsmSystemd *manager) gchar *value; gboolean can_suspend; GError *error; + GsmSystemdPrivate *priv; error = NULL; + priv = gsm_systemd_get_instance_private (manager); if (!gsm_systemd_ensure_sd_connection (manager, &error)) { g_warning ("Could not connect to Systemd: %s", - error->message); + error->message); g_error_free (error); return FALSE; } - res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy, - "CanSuspend", - INT_MAX, - &error, - G_TYPE_INVALID, - G_TYPE_STRING, &value, - G_TYPE_INVALID); + res = dbus_g_proxy_call_with_timeout (priv->sd_proxy, + "CanSuspend", + INT_MAX, + &error, + G_TYPE_INVALID, + G_TYPE_STRING, &value, + G_TYPE_INVALID); if (res == FALSE) { g_warning ("Could not make DBUS call: %s", - error->message); + error->message); g_error_free (error); return FALSE; } @@ -808,26 +827,28 @@ gsm_systemd_attempt_hibernate (GsmSystemd *manager) { gboolean res; GError *error; + GsmSystemdPrivate *priv; error = NULL; + priv = gsm_systemd_get_instance_private (manager); if (!gsm_systemd_ensure_sd_connection (manager, &error)) { g_warning ("Could not connect to Systemd: %s", - error->message); + error->message); g_error_free (error); return; } - res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy, - "Hibernate", - INT_MAX, - &error, + res = dbus_g_proxy_call_with_timeout (priv->sd_proxy, + "Hibernate", + INT_MAX, + &error, G_TYPE_BOOLEAN, TRUE, /* interactive */ - G_TYPE_INVALID, - G_TYPE_INVALID); + G_TYPE_INVALID, + G_TYPE_INVALID); if (res == FALSE) { g_warning ("Could not make DBUS call: %s", - error->message); + error->message); g_error_free (error); return; } @@ -839,26 +860,28 @@ gsm_systemd_attempt_suspend (GsmSystemd *manager) { gboolean res; GError *error; + GsmSystemdPrivate *priv; error = NULL; + priv = gsm_systemd_get_instance_private (manager); if (!gsm_systemd_ensure_sd_connection (manager, &error)) { g_warning ("Could not connect to Systemd: %s", - error->message); + error->message); g_error_free (error); return; } - res = dbus_g_proxy_call_with_timeout (manager->priv->sd_proxy, - "Suspend", - INT_MAX, - &error, + res = dbus_g_proxy_call_with_timeout (priv->sd_proxy, + "Suspend", + INT_MAX, + &error, G_TYPE_BOOLEAN, TRUE, /* interactive */ G_TYPE_INVALID, - G_TYPE_INVALID); + G_TYPE_INVALID); if (res == FALSE) { g_warning ("Could not make DBUS call: %s", - error->message); + error->message); g_error_free (error); return; } diff --git a/mate-session/gsm-systemd.h b/mate-session/gsm-systemd.h index e0e21c4..5d6b654 100644 --- a/mate-session/gsm-systemd.h +++ b/mate-session/gsm-systemd.h @@ -27,32 +27,15 @@ #include <glib.h> #include <glib-object.h> -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS #define GSM_TYPE_SYSTEMD (gsm_systemd_get_type ()) -#define GSM_SYSTEMD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_SYSTEMD, GsmSystemd)) -#define GSM_SYSTEMD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_SYSTEMD, GsmSystemdClass)) -#define GSM_IS_SYSTEMD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_SYSTEMD)) -#define GSM_IS_SYSTEMD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_SYSTEMD)) -#define GSM_SYSTEMD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GSM_TYPE_SYSTEMD, GsmSystemdClass)) #define GSM_SYSTEMD_ERROR (gsm_systemd_error_quark ()) +G_DECLARE_DERIVABLE_TYPE (GsmSystemd, gsm_systemd, GSM, SYSTEMD, GObject) #define LOGIND_RUNNING() (access("/run/systemd/seats/", F_OK) >= 0) - -typedef struct _GsmSystemd GsmSystemd; -typedef struct _GsmSystemdClass GsmSystemdClass; -typedef struct _GsmSystemdPrivate GsmSystemdPrivate; typedef enum _GsmSystemdError GsmSystemdError; -struct _GsmSystemd -{ - GObject parent; - - GsmSystemdPrivate *priv; -}; - struct _GsmSystemdClass { GObjectClass parent_class; @@ -73,7 +56,7 @@ enum _GsmSystemdError { #define GSM_SYSTEMD_SESSION_TYPE_LOGIN_WINDOW "greeter" -GType gsm_systemd_get_type (void); +GType gsm_systemd_get_type (void) G_GNUC_CONST; GQuark gsm_systemd_error_quark (void); @@ -108,8 +91,6 @@ gchar *gsm_systemd_get_current_session_type (GsmSystemd *manager); GsmSystemd *gsm_get_systemd (void); -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_SYSTEMD_H__ */ diff --git a/mate-session/gsm-xsmp-client.c b/mate-session/gsm-xsmp-client.c index 9c61497..5e15744 100644 --- a/mate-session/gsm-xsmp-client.c +++ b/mate-session/gsm-xsmp-client.c @@ -40,11 +40,8 @@ #define GsmDesktopFile "_GSM_DesktopFile" -#define GSM_XSMP_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_XSMP_CLIENT, GsmXSMPClientPrivate)) - -struct GsmXSMPClientPrivate -{ - +typedef struct { + GsmClient parent; SmsConn conn; IceConn ice_connection; @@ -57,7 +54,7 @@ struct GsmXSMPClientPrivate int current_save_yourself; int next_save_yourself; guint next_save_yourself_allow_interact : 1; -}; +} GsmXSMPClientPrivate; enum { PROP_0, @@ -72,7 +69,7 @@ enum { static guint signals[LAST_SIGNAL] = { 0 }; -G_DEFINE_TYPE (GsmXSMPClient, gsm_xsmp_client, GSM_TYPE_CLIENT) +G_DEFINE_TYPE_WITH_PRIVATE (GsmXSMPClient, gsm_xsmp_client, GSM_TYPE_CLIENT) static gboolean client_iochannel_watch (GIOChannel *channel, @@ -80,15 +77,18 @@ client_iochannel_watch (GIOChannel *channel, GsmXSMPClient *client) { gboolean keep_going; + GsmXSMPClientPrivate *priv; g_object_ref (client); - switch (IceProcessMessages (client->priv->ice_connection, NULL, NULL)) { + priv = gsm_xsmp_client_get_instance_private (client); + + switch (IceProcessMessages (priv->ice_connection, NULL, NULL)) { case IceProcessMessagesSuccess: keep_going = TRUE; break; case IceProcessMessagesIOError: - g_debug ("GsmXSMPClient: IceProcessMessagesIOError on '%s'", client->priv->description); + g_debug ("GsmXSMPClient: IceProcessMessagesIOError on '%s'", priv->description); gsm_client_set_status (GSM_CLIENT (client), GSM_CLIENT_FAILED); /* Emitting "disconnected" will eventually cause * IceCloseConnection() to be called. @@ -99,8 +99,8 @@ client_iochannel_watch (GIOChannel *channel, case IceProcessMessagesConnectionClosed: g_debug ("GsmXSMPClient: IceProcessMessagesConnectionClosed on '%s'", - client->priv->description); - client->priv->ice_connection = NULL; + priv->description); + priv->ice_connection = NULL; keep_going = FALSE; break; @@ -119,9 +119,12 @@ find_property (GsmXSMPClient *client, { SmProp *prop; int i; + GsmXSMPClientPrivate *priv; + + priv = gsm_xsmp_client_get_instance_private (client); - for (i = 0; i < client->priv->props->len; i++) { - prop = client->priv->props->pdata[i]; + for (i = 0; i < priv->props->len; i++) { + prop = priv->props->pdata[i]; if (!strcmp (prop->name, name)) { if (index) { @@ -139,21 +142,23 @@ set_description (GsmXSMPClient *client) { SmProp *prop; const char *id; + GsmXSMPClientPrivate *priv; + priv = gsm_xsmp_client_get_instance_private (client); prop = find_property (client, SmProgram, NULL); id = gsm_client_peek_startup_id (GSM_CLIENT (client)); - g_free (client->priv->description); + g_free (priv->description); if (prop) { - client->priv->description = g_strdup_printf ("%p [%.*s %s]", - client, - prop->vals[0].length, - (char *)prop->vals[0].value, - id); + priv->description = g_strdup_printf ("%p [%.*s %s]", + client, + prop->vals[0].length, + (char *)prop->vals[0].value, + id); } else if (id != NULL) { - client->priv->description = g_strdup_printf ("%p [%s]", client, id); + priv->description = g_strdup_printf ("%p [%s]", client, id); } else { - client->priv->description = g_strdup_printf ("%p", client); + priv->description = g_strdup_printf ("%p", client); } } @@ -162,21 +167,23 @@ setup_connection (GsmXSMPClient *client) { GIOChannel *channel; int fd; + GsmXSMPClientPrivate *priv; + priv = gsm_xsmp_client_get_instance_private (client); g_debug ("GsmXSMPClient: Setting up new connection"); - fd = IceConnectionNumber (client->priv->ice_connection); + fd = IceConnectionNumber (priv->ice_connection); fcntl (fd, F_SETFD, fcntl (fd, F_GETFD, 0) | FD_CLOEXEC); channel = g_io_channel_unix_new (fd); - client->priv->watch_id = g_io_add_watch (channel, - G_IO_IN | G_IO_ERR, - (GIOFunc)client_iochannel_watch, - client); + priv->watch_id = g_io_add_watch (channel, + G_IO_IN | G_IO_ERR, + (GIOFunc)client_iochannel_watch, + client); g_io_channel_unref (channel); set_description (client); - g_debug ("GsmXSMPClient: New client '%s'", client->priv->description); + g_debug ("GsmXSMPClient: New client '%s'", priv->description); } static GObject * @@ -197,12 +204,14 @@ gsm_xsmp_client_constructor (GType type, static void gsm_xsmp_client_init (GsmXSMPClient *client) { - client->priv = GSM_XSMP_CLIENT_GET_PRIVATE (client); + GsmXSMPClientPrivate *priv; - client->priv->props = g_ptr_array_new (); - client->priv->current_save_yourself = -1; - client->priv->next_save_yourself = -1; - client->priv->next_save_yourself_allow_interact = FALSE; + priv = gsm_xsmp_client_get_instance_private (client); + + priv->props = g_ptr_array_new (); + priv->current_save_yourself = -1; + priv->next_save_yourself = -1; + priv->next_save_yourself_allow_interact = FALSE; } @@ -212,6 +221,9 @@ delete_property (GsmXSMPClient *client, { int index; SmProp *prop; + GsmXSMPClientPrivate *priv; + + priv = gsm_xsmp_client_get_instance_private (client); prop = find_property (client, name, &index); if (!prop) { @@ -231,7 +243,7 @@ delete_property (GsmXSMPClient *client, } #endif - g_ptr_array_remove_index_fast (client->priv->props, index); + g_ptr_array_remove_index_fast (priv->props, index); SmFreeProperty (prop); } @@ -274,14 +286,17 @@ set_properties_callback (SmsConn conn, int num_props, SmProp **props) { - GsmXSMPClient *client = manager_data; int i; + GsmXSMPClientPrivate *priv; + GsmXSMPClient *client = manager_data; + + priv = gsm_xsmp_client_get_instance_private (client); - g_debug ("GsmXSMPClient: Set properties from client '%s'", client->priv->description); + g_debug ("GsmXSMPClient: Set properties from client '%s'", priv->description); for (i = 0; i < num_props; i++) { delete_property (client, props[i]->name); - g_ptr_array_add (client->priv->props, props[i]); + g_ptr_array_add (priv->props, props[i]); debug_print_property (props[i]); @@ -299,10 +314,13 @@ delete_properties_callback (SmsConn conn, int num_props, char **prop_names) { - GsmXSMPClient *client = manager_data; int i; + GsmXSMPClientPrivate *priv; + GsmXSMPClient *client = manager_data; + + priv = gsm_xsmp_client_get_instance_private (client); - g_debug ("GsmXSMPClient: Delete properties from '%s'", client->priv->description); + g_debug ("GsmXSMPClient: Delete properties from '%s'", priv->description); for (i = 0; i < num_props; i++) { delete_property (client, prop_names[i]); @@ -317,13 +335,16 @@ static void get_properties_callback (SmsConn conn, SmPointer manager_data) { + GsmXSMPClientPrivate *priv; GsmXSMPClient *client = manager_data; - g_debug ("GsmXSMPClient: Get properties request from '%s'", client->priv->description); + priv = gsm_xsmp_client_get_instance_private (client); + + g_debug ("GsmXSMPClient: Get properties request from '%s'", priv->description); SmsReturnProperties (conn, - client->priv->props->len, - (SmProp **)client->priv->props->pdata); + priv->props->len, + (SmProp **)priv->props->pdata); } static char * @@ -404,30 +425,33 @@ do_save_yourself (GsmXSMPClient *client, int save_type, gboolean allow_interact) { - g_assert (client->priv->conn != NULL); + GsmXSMPClientPrivate *priv; - if (client->priv->next_save_yourself != -1) { + priv = gsm_xsmp_client_get_instance_private (client); + g_assert (priv->conn != NULL); + + if (priv->next_save_yourself != -1) { /* Either we're currently doing a shutdown and there's a checkpoint * queued after it, or vice versa. Either way, the new SaveYourself * is redundant. */ g_debug ("GsmXSMPClient: skipping redundant SaveYourself for '%s'", - client->priv->description); - } else if (client->priv->current_save_yourself != -1) { + priv->description); + } else if (priv->current_save_yourself != -1) { g_debug ("GsmXSMPClient: queuing new SaveYourself for '%s'", - client->priv->description); - client->priv->next_save_yourself = save_type; - client->priv->next_save_yourself_allow_interact = allow_interact; + priv->description); + priv->next_save_yourself = save_type; + priv->next_save_yourself_allow_interact = allow_interact; } else { - client->priv->current_save_yourself = save_type; + priv->current_save_yourself = save_type; /* make sure we don't have anything queued */ - client->priv->next_save_yourself = -1; - client->priv->next_save_yourself_allow_interact = FALSE; + priv->next_save_yourself = -1; + priv->next_save_yourself_allow_interact = FALSE; switch (save_type) { case SmSaveLocal: /* Save state */ - SmsSaveYourself (client->priv->conn, + SmsSaveYourself (priv->conn, SmSaveLocal, FALSE, SmInteractStyleNone, @@ -437,13 +461,13 @@ do_save_yourself (GsmXSMPClient *client, default: /* Logout */ if (!allow_interact) { - SmsSaveYourself (client->priv->conn, + SmsSaveYourself (priv->conn, save_type, /* save type */ TRUE, /* shutdown */ SmInteractStyleNone, /* interact style */ TRUE); /* fast */ } else { - SmsSaveYourself (client->priv->conn, + SmsSaveYourself (priv->conn, save_type, /* save type */ TRUE, /* shutdown */ SmInteractStyleAny, /* interact style */ @@ -457,32 +481,38 @@ do_save_yourself (GsmXSMPClient *client, static void xsmp_save_yourself_phase2 (GsmClient *client) { - GsmXSMPClient *xsmp = (GsmXSMPClient *) client; + GsmXSMPClientPrivate *priv; + + priv = gsm_xsmp_client_get_instance_private (GSM_XSMP_CLIENT(client)); - g_debug ("GsmXSMPClient: xsmp_save_yourself_phase2 ('%s')", xsmp->priv->description); + g_debug ("GsmXSMPClient: xsmp_save_yourself_phase2 ('%s')", priv->description); - SmsSaveYourselfPhase2 (xsmp->priv->conn); + SmsSaveYourselfPhase2 (priv->conn); } static void xsmp_interact (GsmClient *client) { - GsmXSMPClient *xsmp = (GsmXSMPClient *) client; + GsmXSMPClientPrivate *priv; + + priv = gsm_xsmp_client_get_instance_private (GSM_XSMP_CLIENT(client)); - g_debug ("GsmXSMPClient: xsmp_interact ('%s')", xsmp->priv->description); + g_debug ("GsmXSMPClient: xsmp_interact ('%s')", priv->description); - SmsInteract (xsmp->priv->conn); + SmsInteract (priv->conn); } static gboolean xsmp_cancel_end_session (GsmClient *client, GError **error) { - GsmXSMPClient *xsmp = (GsmXSMPClient *) client; + GsmXSMPClientPrivate *priv; - g_debug ("GsmXSMPClient: xsmp_cancel_end_session ('%s')", xsmp->priv->description); + priv = gsm_xsmp_client_get_instance_private (GSM_XSMP_CLIENT(client)); - if (xsmp->priv->conn == NULL) { + g_debug ("GsmXSMPClient: xsmp_cancel_end_session ('%s')", priv->description); + + if (priv->conn == NULL) { g_set_error (error, GSM_CLIENT_ERROR, GSM_CLIENT_ERROR_NOT_REGISTERED, @@ -490,12 +520,12 @@ xsmp_cancel_end_session (GsmClient *client, return FALSE; } - SmsShutdownCancelled (xsmp->priv->conn); + SmsShutdownCancelled (priv->conn); /* reset the state */ - xsmp->priv->current_save_yourself = -1; - xsmp->priv->next_save_yourself = -1; - xsmp->priv->next_save_yourself_allow_interact = FALSE; + priv->current_save_yourself = -1; + priv->next_save_yourself = -1; + priv->next_save_yourself_allow_interact = FALSE; return TRUE; } @@ -523,9 +553,9 @@ get_desktop_file_path (GsmXSMPClient *client) * try to find the desktop file from its program name */ prop = find_property (client, SmProgram, NULL); - if (!prop) { - goto out; - } + if (!prop) { + goto out; + } program_name = prop->vals[0].value; @@ -563,7 +593,7 @@ set_desktop_file_keys_from_client (GsmClient *client, * properties. But it could still be that SmProgram is not set. */ name = _("Remembered Application"); - } + } comment = g_strdup_printf ("Client %s which was automatically saved", gsm_client_peek_startup_id (client)); @@ -700,11 +730,13 @@ static gboolean xsmp_stop (GsmClient *client, GError **error) { - GsmXSMPClient *xsmp = (GsmXSMPClient *) client; + GsmXSMPClientPrivate *priv; + + priv = gsm_xsmp_client_get_instance_private (GSM_XSMP_CLIENT(client)); - g_debug ("GsmXSMPClient: xsmp_stop ('%s')", xsmp->priv->description); + g_debug ("GsmXSMPClient: xsmp_stop ('%s')", priv->description); - if (xsmp->priv->conn == NULL) { + if (priv->conn == NULL) { g_set_error (error, GSM_CLIENT_ERROR, GSM_CLIENT_ERROR_NOT_REGISTERED, @@ -712,7 +744,7 @@ xsmp_stop (GsmClient *client, return FALSE; } - SmsDie (xsmp->priv->conn); + SmsDie (priv->conn); return TRUE; } @@ -724,8 +756,11 @@ xsmp_query_end_session (GsmClient *client, { gboolean allow_interact; int save_type; + GsmXSMPClientPrivate *priv; - if (GSM_XSMP_CLIENT (client)->priv->conn == NULL) { + priv = gsm_xsmp_client_get_instance_private (GSM_XSMP_CLIENT(client)); + + if (priv->conn == NULL) { g_set_error (error, GSM_CLIENT_ERROR, GSM_CLIENT_ERROR_NOT_REGISTERED, @@ -752,8 +787,11 @@ xsmp_end_session (GsmClient *client, GError **error) { gboolean phase2; + GsmXSMPClientPrivate *priv; + + priv = gsm_xsmp_client_get_instance_private (GSM_XSMP_CLIENT(client)); - if (GSM_XSMP_CLIENT (client)->priv->conn == NULL) { + if (priv->conn == NULL) { g_set_error (error, GSM_CLIENT_ERROR, GSM_CLIENT_ERROR_NOT_REGISTERED, @@ -794,7 +832,7 @@ xsmp_get_app_name (GsmClient *client) prop = find_property (GSM_XSMP_CLIENT (client), SmProgram, NULL); if (prop) { - name = prop_to_command (prop); + name = prop_to_command (prop); } return name; @@ -804,7 +842,10 @@ static void gsm_client_set_ice_connection (GsmXSMPClient *client, gpointer conn) { - client->priv->ice_connection = conn; + GsmXSMPClientPrivate *priv; + + priv = gsm_xsmp_client_get_instance_private (client); + priv->ice_connection = conn; } static void @@ -833,13 +874,13 @@ gsm_xsmp_client_get_property (GObject *object, GValue *value, GParamSpec *pspec) { - GsmXSMPClient *self; + GsmXSMPClientPrivate *priv; - self = GSM_XSMP_CLIENT (object); + priv = gsm_xsmp_client_get_instance_private (GSM_XSMP_CLIENT(object)); switch (prop_id) { case PROP_ICE_CONNECTION: - g_value_set_pointer (value, self->priv->ice_connection); + g_value_set_pointer (value, priv->ice_connection); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -850,31 +891,39 @@ gsm_xsmp_client_get_property (GObject *object, static void gsm_xsmp_client_disconnect (GsmXSMPClient *client) { - if (client->priv->watch_id > 0) { - g_source_remove (client->priv->watch_id); + GsmXSMPClientPrivate *priv; + + priv = gsm_xsmp_client_get_instance_private (client); + if (priv->watch_id > 0) { + g_source_remove (priv->watch_id); } - if (client->priv->conn != NULL) { - SmsCleanUp (client->priv->conn); + if (priv->conn != NULL) { + SmsCleanUp (priv->conn); } - if (client->priv->ice_connection != NULL) { - IceSetShutdownNegotiation (client->priv->ice_connection, FALSE); - IceCloseConnection (client->priv->ice_connection); + if (priv->ice_connection != NULL) { + IceSetShutdownNegotiation (priv->ice_connection, FALSE); + IceCloseConnection (priv->ice_connection); } } static void gsm_xsmp_client_finalize (GObject *object) { - GsmXSMPClient *client = (GsmXSMPClient *) object; + GsmXSMPClientPrivate *priv; + GsmXSMPClient *client; + + client = GSM_XSMP_CLIENT(object); + + priv = gsm_xsmp_client_get_instance_private (client); - g_debug ("GsmXSMPClient: xsmp_finalize (%s)", client->priv->description); + g_debug ("GsmXSMPClient: xsmp_finalize (%s)", priv->description); gsm_xsmp_client_disconnect (client); - g_free (client->priv->description); - g_ptr_array_foreach (client->priv->props, (GFunc)SmFreeProperty, NULL); - g_ptr_array_free (client->priv->props, TRUE); + g_free (priv->description); + g_ptr_array_foreach (priv->props, (GFunc)SmFreeProperty, NULL); + g_ptr_array_free (priv->props, TRUE); G_OBJECT_CLASS (gsm_xsmp_client_parent_class)->finalize (object); } @@ -1026,8 +1075,6 @@ gsm_xsmp_client_class_init (GsmXSMPClientClass *klass) "ice-connection", "ice-connection", G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); - - g_type_class_add_private (klass, sizeof (GsmXSMPClientPrivate)); } GsmClient * @@ -1047,12 +1094,15 @@ register_client_callback (SmsConn conn, SmPointer manager_data, char *previous_id) { - GsmXSMPClient *client = manager_data; gboolean handled; char *id; + GsmXSMPClientPrivate *priv; + + GsmXSMPClient *client = manager_data; + priv = gsm_xsmp_client_get_instance_private (client); g_debug ("GsmXSMPClient: Client '%s' received RegisterClient(%s)", - client->priv->description, + priv->description, previous_id ? previous_id : "NULL"); @@ -1083,7 +1133,7 @@ register_client_callback (SmsConn conn, set_description (client); - g_debug ("GsmXSMPClient: Sending RegisterClientReply to '%s'", client->priv->description); + g_debug ("GsmXSMPClient: Sending RegisterClientReply to '%s'", priv->description); SmsRegisterClientReply (conn, id); @@ -1091,7 +1141,7 @@ register_client_callback (SmsConn conn, /* Send the initial SaveYourself. */ g_debug ("GsmXSMPClient: Sending initial SaveYourself"); SmsSaveYourself (conn, SmSaveLocal, False, SmInteractStyleNone, False); - client->priv->current_save_yourself = SmSaveLocal; + priv->current_save_yourself = SmSaveLocal; } gsm_client_set_status (GSM_CLIENT (client), GSM_CLIENT_REGISTERED); @@ -1112,10 +1162,13 @@ save_yourself_request_callback (SmsConn conn, Bool fast, Bool global) { + GsmXSMPClientPrivate *priv; GsmXSMPClient *client = manager_data; + priv = gsm_xsmp_client_get_instance_private (client); + g_debug ("GsmXSMPClient: Client '%s' received SaveYourselfRequest(%s, %s, %s, %s, %s)", - client->priv->description, + priv->description, save_type == SmSaveLocal ? "SmSaveLocal" : save_type == SmSaveGlobal ? "SmSaveGlobal" : "SmSaveBoth", shutdown ? "Shutdown" : "!Shutdown", @@ -1169,12 +1222,15 @@ static void save_yourself_phase2_request_callback (SmsConn conn, SmPointer manager_data) { + GsmXSMPClientPrivate *priv; GsmXSMPClient *client = manager_data; + priv = gsm_xsmp_client_get_instance_private (client); + g_debug ("GsmXSMPClient: Client '%s' received SaveYourselfPhase2Request", - client->priv->description); + priv->description); - client->priv->current_save_yourself = -1; + priv->current_save_yourself = -1; /* this is a valid response to SaveYourself and therefore may be a response to a QES or ES */ @@ -1188,14 +1244,17 @@ interact_request_callback (SmsConn conn, SmPointer manager_data, int dialog_type) { + GsmXSMPClientPrivate *priv; GsmXSMPClient *client = manager_data; + + priv = gsm_xsmp_client_get_instance_private (client); #if 0 gboolean res; GError *error; #endif g_debug ("GsmXSMPClient: Client '%s' received InteractRequest(%s)", - client->priv->description, + priv->description, dialog_type == SmDialogNormal ? "Dialog" : "Errors"); gsm_client_end_session_response (GSM_CLIENT (client), @@ -1223,10 +1282,13 @@ interact_done_callback (SmsConn conn, SmPointer manager_data, Bool cancel_shutdown) { + GsmXSMPClientPrivate *priv; GsmXSMPClient *client = manager_data; + priv = gsm_xsmp_client_get_instance_private (client); + g_debug ("GsmXSMPClient: Client '%s' received InteractDone(cancel_shutdown = %s)", - client->priv->description, + priv->description, cancel_shutdown ? "True" : "False"); gsm_client_end_session_response (GSM_CLIENT (client), @@ -1239,16 +1301,19 @@ save_yourself_done_callback (SmsConn conn, SmPointer manager_data, Bool success) { + GsmXSMPClientPrivate *priv; GsmXSMPClient *client = manager_data; + priv = gsm_xsmp_client_get_instance_private (client); + g_debug ("GsmXSMPClient: Client '%s' received SaveYourselfDone(success = %s)", - client->priv->description, + priv->description, success ? "True" : "False"); - if (client->priv->current_save_yourself != -1) { - SmsSaveComplete (client->priv->conn); - client->priv->current_save_yourself = -1; - } + if (priv->current_save_yourself != -1) { + SmsSaveComplete (priv->conn); + priv->current_save_yourself = -1; + } /* If success is false then the application couldn't save data. Nothing * the session manager can do about, though. FIXME: we could display a @@ -1257,12 +1322,12 @@ save_yourself_done_callback (SmsConn conn, TRUE, FALSE, FALSE, NULL); - if (client->priv->next_save_yourself) { - int save_type = client->priv->next_save_yourself; - gboolean allow_interact = client->priv->next_save_yourself_allow_interact; + if (priv->next_save_yourself) { + int save_type = priv->next_save_yourself; + gboolean allow_interact = priv->next_save_yourself_allow_interact; - client->priv->next_save_yourself = -1; - client->priv->next_save_yourself_allow_interact = -1; + priv->next_save_yourself = -1; + priv->next_save_yourself_allow_interact = -1; do_save_yourself (client, save_type, allow_interact); } } @@ -1273,10 +1338,13 @@ close_connection_callback (SmsConn conn, int count, char **reason_msgs) { - GsmXSMPClient *client = manager_data; int i; + GsmXSMPClientPrivate *priv; + GsmXSMPClient *client = manager_data; - g_debug ("GsmXSMPClient: Client '%s' received CloseConnection", client->priv->description); + priv = gsm_xsmp_client_get_instance_private (client); + + g_debug ("GsmXSMPClient: Client '%s' received CloseConnection", priv->description); for (i = 0; i < count; i++) { g_debug ("GsmXSMPClient: close reason: '%s'", reason_msgs[i]); } @@ -1292,9 +1360,12 @@ gsm_xsmp_client_connect (GsmXSMPClient *client, unsigned long *mask_ret, SmsCallbacks *callbacks_ret) { - client->priv->conn = conn; + GsmXSMPClientPrivate *priv; + + priv = gsm_xsmp_client_get_instance_private (client); + priv->conn = conn; - g_debug ("GsmXSMPClient: Initializing client %s", client->priv->description); + g_debug ("GsmXSMPClient: Initializing client %s", priv->description); *mask_ret = 0; diff --git a/mate-session/gsm-xsmp-client.h b/mate-session/gsm-xsmp-client.h index f14ab61..0078d64 100644 --- a/mate-session/gsm-xsmp-client.h +++ b/mate-session/gsm-xsmp-client.h @@ -25,27 +25,10 @@ #include <X11/SM/SMlib.h> -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS -#define GSM_TYPE_XSMP_CLIENT (gsm_xsmp_client_get_type ()) -#define GSM_XSMP_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSM_TYPE_XSMP_CLIENT, GsmXSMPClient)) -#define GSM_XSMP_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSM_TYPE_XSMP_CLIENT, GsmXSMPClientClass)) -#define GSM_IS_XSMP_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSM_TYPE_XSMP_CLIENT)) -#define GSM_IS_XSMP_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSM_TYPE_XSMP_CLIENT)) -#define GSM_XSMP_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSM_TYPE_XSMP_CLIENT, GsmXSMPClientClass)) - -typedef struct _GsmXSMPClient GsmXSMPClient; -typedef struct _GsmXSMPClientClass GsmXSMPClientClass; - -typedef struct GsmXSMPClientPrivate GsmXSMPClientPrivate; - -struct _GsmXSMPClient -{ - GsmClient parent; - GsmXSMPClientPrivate *priv; -}; +#define GSM_TYPE_XSMP_CLIENT (gsm_xsmp_client_get_type ()) +G_DECLARE_DERIVABLE_TYPE (GsmXSMPClient, gsm_xsmp_client, GSM, XSMP_CLIENT, GsmClient) struct _GsmXSMPClientClass { @@ -86,8 +69,6 @@ void gsm_xsmp_client_save_yourself_phase2 (GsmXSMPClient *client); void gsm_xsmp_client_interact (GsmXSMPClient *client); void gsm_xsmp_client_shutdown_cancelled (GsmXSMPClient *client); -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_XSMP_CLIENT_H__ */ diff --git a/mate-session/gsm-xsmp-server.c b/mate-session/gsm-xsmp-server.c index 83ec21f..293ed7a 100644 --- a/mate-session/gsm-xsmp-server.c +++ b/mate-session/gsm-xsmp-server.c @@ -61,10 +61,9 @@ #define GSM_ICE_MAGIC_COOKIE_AUTH_NAME "MIT-MAGIC-COOKIE-1" #define GSM_ICE_MAGIC_COOKIE_LEN 16 -#define GSM_XSMP_SERVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_XSMP_SERVER, GsmXsmpServerPrivate)) - -struct GsmXsmpServerPrivate +struct _GsmXsmpServer { + GObject parent; GsmStore *client_store; IceListenObj *xsmp_sockets; @@ -229,14 +228,14 @@ gsm_xsmp_server_start (GsmXsmpServer *server) GIOChannel *channel; int i; - for (i = 0; i < server->priv->num_local_xsmp_sockets; i++) { + for (i = 0; i < server->num_local_xsmp_sockets; i++) { GsmIceConnectionData *data; data = g_new0 (GsmIceConnectionData, 1); data->server = server; - data->listener = server->priv->xsmp_sockets[i]; + data->listener = server->xsmp_sockets[i]; - channel = g_io_channel_unix_new (IceGetListenConnectionNumber (server->priv->xsmp_sockets[i])); + channel = g_io_channel_unix_new (IceGetListenConnectionNumber (server->xsmp_sockets[i])); g_io_add_watch_full (channel, G_PRIORITY_DEFAULT, G_IO_IN | G_IO_HUP | G_IO_ERR, @@ -257,11 +256,11 @@ gsm_xsmp_server_set_client_store (GsmXsmpServer *xsmp_server, g_object_ref (store); } - if (xsmp_server->priv->client_store != NULL) { - g_object_unref (xsmp_server->priv->client_store); + if (xsmp_server->client_store != NULL) { + g_object_unref (xsmp_server->client_store); } - xsmp_server->priv->client_store = store; + xsmp_server->client_store = store; } static void @@ -296,7 +295,7 @@ gsm_xsmp_server_get_property (GObject *object, switch (prop_id) { case PROP_CLIENT_STORE: - g_value_set_object (value, self->priv->client_store); + g_value_set_object (value, self->client_store); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -319,7 +318,7 @@ accept_xsmp_connection (SmsConn sms_conn, GsmIceConnectionWatch *data; /* FIXME: what about during shutdown but before gsm_xsmp_shutdown? */ - if (server->priv->xsmp_sockets == NULL) { + if (server->xsmp_sockets == NULL) { g_debug ("GsmXsmpServer: In shutdown, rejecting new client"); *failure_reason_ret = strdup (_("Refusing new client connection because the session is currently being shut down\n")); @@ -334,7 +333,7 @@ accept_xsmp_connection (SmsConn sms_conn, client = gsm_xsmp_client_new (ice_conn); - gsm_store_add (server->priv->client_store, gsm_client_peek_id (client), G_OBJECT (client)); + gsm_store_add (server->client_store, gsm_client_peek_id (client), G_OBJECT (client)); /* the store will own the ref */ g_object_unref (client); @@ -448,9 +447,9 @@ update_iceauthority (GsmXsmpServer *server, return FALSE; } - our_network_ids = g_malloc (server->priv->num_local_xsmp_sockets * sizeof (char *)); - for (i = 0; i < server->priv->num_local_xsmp_sockets; i++) { - our_network_ids[i] = IceGetListenConnectionString (server->priv->xsmp_sockets[i]); + our_network_ids = g_malloc (server->num_local_xsmp_sockets * sizeof (char *)); + for (i = 0; i < server->num_local_xsmp_sockets; i++) { + our_network_ids[i] = IceGetListenConnectionString (server->xsmp_sockets[i]); } entries = NULL; @@ -469,13 +468,13 @@ update_iceauthority (GsmXsmpServer *server, continue; } - for (i = 0; i < server->priv->num_local_xsmp_sockets; i++) { + for (i = 0; i < server->num_local_xsmp_sockets; i++) { if (!strcmp (auth_entry->network_id, our_network_ids[i])) { IceFreeAuthFileEntry (auth_entry); break; } } - if (i != server->priv->num_local_xsmp_sockets) { + if (i != server->num_local_xsmp_sockets) { continue; } @@ -503,7 +502,7 @@ update_iceauthority (GsmXsmpServer *server, } if (adding) { - for (i = 0; i < server->priv->num_local_xsmp_sockets; i++) { + for (i = 0; i < server->num_local_xsmp_sockets; i++) { entries = g_slist_append (entries, auth_entry_new ("ICE", our_network_ids[i])); entries = g_slist_prepend (entries, @@ -523,7 +522,7 @@ update_iceauthority (GsmXsmpServer *server, cleanup: IceUnlockAuthFile (filename); - for (i = 0; i < server->priv->num_local_xsmp_sockets; i++) { + for (i = 0; i < server->num_local_xsmp_sockets; i++) { free (our_network_ids[i]); } g_free (our_network_ids); @@ -579,8 +578,8 @@ setup_listener (GsmXsmpServer *server) */ saved_umask = umask (0); umask (saved_umask); - res = IceListenForConnections (&server->priv->num_xsmp_sockets, - &server->priv->xsmp_sockets, + res = IceListenForConnections (&server->num_xsmp_sockets, + &server->xsmp_sockets, sizeof (error), error); if (! res) { @@ -592,28 +591,28 @@ setup_listener (GsmXsmpServer *server) /* Find the local sockets in the returned socket list and move them * to the start of the list. */ - for (i = server->priv->num_local_xsmp_sockets = 0; i < server->priv->num_xsmp_sockets; i++) { - char *id = IceGetListenConnectionString (server->priv->xsmp_sockets[i]); + for (i = server->num_local_xsmp_sockets = 0; i < server->num_xsmp_sockets; i++) { + char *id = IceGetListenConnectionString (server->xsmp_sockets[i]); if (!strncmp (id, "local/", sizeof ("local/") - 1) || !strncmp (id, "unix/", sizeof ("unix/") - 1)) { - if (i > server->priv->num_local_xsmp_sockets) { + if (i > server->num_local_xsmp_sockets) { IceListenObj tmp; - tmp = server->priv->xsmp_sockets[i]; - server->priv->xsmp_sockets[i] = server->priv->xsmp_sockets[server->priv->num_local_xsmp_sockets]; - server->priv->xsmp_sockets[server->priv->num_local_xsmp_sockets] = tmp; + tmp = server->xsmp_sockets[i]; + server->xsmp_sockets[i] = server->xsmp_sockets[server->num_local_xsmp_sockets]; + server->xsmp_sockets[server->num_local_xsmp_sockets] = tmp; } - server->priv->num_local_xsmp_sockets++; + server->num_local_xsmp_sockets++; } free (id); } - if (server->priv->num_local_xsmp_sockets == 0) { + if (server->num_local_xsmp_sockets == 0) { gsm_util_init_error (TRUE, "IceListenForConnections did not return a local listener!"); } #ifdef HAVE_XTRANS - if (server->priv->num_local_xsmp_sockets != server->priv->num_xsmp_sockets) { + if (server->num_local_xsmp_sockets != server->num_xsmp_sockets) { /* Xtrans was apparently compiled with support for some * non-local transport besides TCP (which we disabled above); we * won't create IO watches on those extra sockets, so @@ -624,10 +623,10 @@ setup_listener (GsmXsmpServer *server) * stop it, the fix is to add additional _IceTransNoListen() * calls above. */ - network_id_list = IceComposeNetworkIdList (server->priv->num_xsmp_sockets - server->priv->num_local_xsmp_sockets, - server->priv->xsmp_sockets + server->priv->num_local_xsmp_sockets); + network_id_list = IceComposeNetworkIdList (server->num_xsmp_sockets - server->num_local_xsmp_sockets, + server->xsmp_sockets + server->num_local_xsmp_sockets); g_warning ("IceListenForConnections returned %d non-local listeners: %s", - server->priv->num_xsmp_sockets - server->priv->num_local_xsmp_sockets, + server->num_xsmp_sockets - server->num_local_xsmp_sockets, network_id_list); free (network_id_list); } @@ -641,8 +640,8 @@ setup_listener (GsmXsmpServer *server) IceAuthFileName ()); } - network_id_list = IceComposeNetworkIdList (server->priv->num_local_xsmp_sockets, - server->priv->xsmp_sockets); + network_id_list = IceComposeNetworkIdList (server->num_local_xsmp_sockets, + server->xsmp_sockets); gsm_util_setenv ("SESSION_MANAGER", network_id_list); g_debug ("GsmXsmpServer: SESSION_MANAGER=%s\n", network_id_list); @@ -681,15 +680,11 @@ gsm_xsmp_server_class_init (GsmXsmpServerClass *klass) NULL, GSM_TYPE_STORE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - g_type_class_add_private (klass, sizeof (GsmXsmpServerPrivate)); } static void gsm_xsmp_server_init (GsmXsmpServer *xsmp_server) { - xsmp_server->priv = GSM_XSMP_SERVER_GET_PRIVATE (xsmp_server); - } static void @@ -702,13 +697,11 @@ gsm_xsmp_server_finalize (GObject *object) xsmp_server = GSM_XSMP_SERVER (object); - g_return_if_fail (xsmp_server->priv != NULL); - - IceFreeListenObjs (xsmp_server->priv->num_xsmp_sockets, - xsmp_server->priv->xsmp_sockets); + IceFreeListenObjs (xsmp_server->num_xsmp_sockets, + xsmp_server->xsmp_sockets); - if (xsmp_server->priv->client_store != NULL) { - g_object_unref (xsmp_server->priv->client_store); + if (xsmp_server->client_store != NULL) { + g_object_unref (xsmp_server->client_store); } G_OBJECT_CLASS (gsm_xsmp_server_parent_class)->finalize (object); diff --git a/mate-session/gsm-xsmp-server.h b/mate-session/gsm-xsmp-server.h index 3c4998a..29f72db 100644 --- a/mate-session/gsm-xsmp-server.h +++ b/mate-session/gsm-xsmp-server.h @@ -26,37 +26,14 @@ #include "gsm-store.h" -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS #define GSM_TYPE_XSMP_SERVER (gsm_xsmp_server_get_type ()) -#define GSM_XSMP_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GSM_TYPE_XSMP_SERVER, GsmXsmpServer)) -#define GSM_XSMP_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSM_TYPE_XSMP_SERVER, GsmXsmpServerClass)) -#define GSM_IS_XSMP_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GSM_TYPE_XSMP_SERVER)) -#define GSM_IS_XSMP_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GSM_TYPE_XSMP_SERVER)) -#define GSM_XSMP_SERVER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GSM_TYPE_XSMP_SERVER, GsmXsmpServerClass)) - -typedef struct GsmXsmpServerPrivate GsmXsmpServerPrivate; - -typedef struct -{ - GObject parent; - GsmXsmpServerPrivate *priv; -} GsmXsmpServer; - -typedef struct -{ - GObjectClass parent_class; -} GsmXsmpServerClass; - -GType gsm_xsmp_server_get_type (void); +G_DECLARE_FINAL_TYPE (GsmXsmpServer, gsm_xsmp_server, GSM, XSMP_SERVER, GObject) GsmXsmpServer * gsm_xsmp_server_new (GsmStore *client_store); void gsm_xsmp_server_start (GsmXsmpServer *server); -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __GSM_XSMP_SERVER_H */ |