diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 21 | ||||
-rw-r--r-- | src/apt-watcher.h | 4 | ||||
-rw-r--r-- | src/device-menu-mgr.c | 28 | ||||
-rw-r--r-- | src/indicator-session.c | 11 | ||||
-rw-r--r-- | src/session-service.c | 4 | ||||
-rw-r--r-- | src/udev-mgr.h | 4 | ||||
-rw-r--r-- | src/user-menu-mgr.c | 39 | ||||
-rw-r--r-- | src/user-menu-mgr.h | 2 | ||||
-rw-r--r-- | src/user-widget.c | 4 | ||||
-rw-r--r-- | src/user-widget.h | 4 | ||||
-rw-r--r-- | src/users-service-dbus.c | 10 | ||||
-rw-r--r-- | src/users-service-dbus.h | 1 |
12 files changed, 58 insertions, 74 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index dba0a9e..afee66c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,11 @@ libexec_PROGRAMS = \ - indicator-session-service \ + indicator-session-service + +if BUILD_GTKLOGOUTHELPER +libexec_PROGRAMS += \ gtk-logout-helper +endif ################### # Indicator Stuff @@ -103,13 +107,18 @@ indicator_session_service_SOURCES = \ user-menu-mgr.c \ device-menu-mgr.h \ device-menu-mgr.c \ - apt-watcher.h \ - apt-watcher.c \ - apt-transaction.h \ - apt-transaction.c \ udev-mgr.h \ udev-mgr.c \ sane-rules.h + +if BUILD_APT +indicator_session_service_SOURCES += \ + apt-watcher.h \ + apt-watcher.c \ + apt-transaction.h \ + apt-transaction.c +endif + indicator_session_service_CFLAGS = \ $(SESSIONSERVICE_CFLAGS) \ $(GCONF_CFLAGS) \ @@ -124,6 +133,7 @@ indicator_session_service_LDADD = \ # GTK Logout Stuff ################# +if BUILD_GTKLOGOUTHELPER gtk_logout_helper_SOURCES = \ gtk-logout-helper.c \ settings-helper.c \ @@ -142,6 +152,7 @@ gtk_logout_helper_LDADD = \ $(SESSIONSERVICE_LIBS) \ $(GTKLOGOUTHELPER_LIBS) \ $(GCONF_LIBS) +endif ############### diff --git a/src/apt-watcher.h b/src/apt-watcher.h index 7b98a44..6b7d5e1 100644 --- a/src/apt-watcher.h +++ b/src/apt-watcher.h @@ -25,11 +25,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <libdbusmenu-glib/client.h> #include <gtk/gtk.h> -#if GTK_CHECK_VERSION(3, 0, 0) -#include <libdbusmenu-gtk3/menuitem.h> -#else #include <libdbusmenu-gtk/menuitem.h> -#endif #include "session-dbus.h" diff --git a/src/device-menu-mgr.c b/src/device-menu-mgr.c index 5a63be3..6ce5962 100644 --- a/src/device-menu-mgr.c +++ b/src/device-menu-mgr.c @@ -17,8 +17,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <config.h> #include <libdbusmenu-glib/client.h> -#include <libdbusmenu-gtk3/menuitem.h> #include "device-menu-mgr.h" #include "settings-helper.h" @@ -26,7 +26,11 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include "dbusmenu-shared.h" #include "lock-helper.h" #include "upower-client.h" + +#ifdef HAVE_APT #include "apt-watcher.h" +#endif /* HAVE_APT */ + #include "udev-mgr.h" #define UP_ADDRESS "org.freedesktop.UPower" @@ -40,7 +44,9 @@ struct _DeviceMenuMgr GObject parent_instance; DbusmenuMenuitem* root_item; SessionDbus* session_dbus_interface; +#ifdef HAVE_APT AptWatcher* apt_watcher; +#endif /* HAVE_APT */ UdevMgr* udev_mgr; }; @@ -50,7 +56,9 @@ static DbusmenuMenuitem *lock_menuitem = NULL; static DbusmenuMenuitem *system_settings_menuitem = NULL; static DbusmenuMenuitem *display_settings_menuitem = NULL; static DbusmenuMenuitem *login_settings_menuitem = NULL; +#ifdef HAVE_APT static DbusmenuMenuitem *software_updates_menuitem = NULL; +#endif /* HAVE_APT */ static DbusmenuMenuitem *printers_menuitem = NULL; static DbusmenuMenuitem *scanners_menuitem = NULL; static DbusmenuMenuitem *webcam_menuitem = NULL; @@ -102,7 +110,9 @@ G_DEFINE_TYPE (DeviceMenuMgr, device_menu_mgr, G_TYPE_OBJECT); static void device_menu_mgr_init (DeviceMenuMgr *self) { +#ifdef HAVE_APT self->apt_watcher = NULL; +#endif /* HAVE_APT */ self->root_item = dbusmenu_menuitem_new (); setup_up(self); g_idle_add(lock_screen_setup, NULL); @@ -410,7 +420,11 @@ static void show_dialog (DbusmenuMenuitem * mi, guint timestamp, gchar * type) { +#ifdef HAVE_GTKLOGOUTHELPER gchar * helper = g_build_filename(LIBEXECDIR, "gtk-logout-helper", NULL); +#else + gchar * helper = g_build_filename("gnome-session-quit", NULL); +#endif /* HAVE_GTKLOGOUTHELPER */ gchar * dialog_line = g_strdup_printf("%s --%s", helper, type); g_free(helper); @@ -480,12 +494,14 @@ static void device_menu_mgr_show_simple_scan (DbusmenuMenuitem * mi, { g_warning("Unable to launch simple-scan: %s", error->message); g_error_free(error); +#ifdef HAVE_APT if (!g_spawn_command_line_async("software-center simple-scan", &error)) { g_warning ("Unable to launch software-centre simple-scan: %s", error->message); g_error_free(error); } +#endif /* HAVE_APT */ } } @@ -498,12 +514,14 @@ static void device_menu_mgr_show_cheese (DbusmenuMenuitem * mi, { g_warning("Unable to launch cheese: %s", error->message); g_error_free(error); +#ifdef HAVE_APT if (!g_spawn_command_line_async("software-center cheese", &error)) { g_warning ("Unable to launch software-centre cheese: %s", error->message); g_error_free(error); } +#endif /* HAVE_APT */ } } @@ -542,6 +560,7 @@ device_menu_mgr_build_settings_items (DeviceMenuMgr* self) dbusmenu_menuitem_child_add_position(self->root_item, login_settings_menuitem, 2); +#ifdef HAVE_APT software_updates_menuitem = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (software_updates_menuitem, DBUSMENU_MENUITEM_PROP_LABEL, @@ -549,6 +568,7 @@ device_menu_mgr_build_settings_items (DeviceMenuMgr* self) dbusmenu_menuitem_child_add_position(self->root_item, software_updates_menuitem, 3); +#endif /* HAVE_APT */ DbusmenuMenuitem * separator1 = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (separator1, @@ -726,7 +746,11 @@ device_menu_mgr_build_static_items (DeviceMenuMgr* self, gboolean greeter_mode) dbusmenu_menuitem_child_append (self->root_item, shutdown_mi); g_signal_connect (G_OBJECT(shutdown_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, +#ifdef HAVE_GTKLOGOUTHELPER G_CALLBACK(show_dialog), "shutdown"); +#else + G_CALLBACK(show_dialog), "power-off"); +#endif /* HAVE_GTKLOGOUTHELPER */ RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi = g_new0 (RestartShutdownLogoutMenuItems, 1); restart_shutdown_logout_mi->logout_mi = logout_mi; @@ -778,9 +802,11 @@ DeviceMenuMgr* device_menu_mgr_new (SessionDbus* session_dbus, gboolean greeter_ DeviceMenuMgr* device_mgr = g_object_new (DEVICE_TYPE_MENU_MGR, NULL); device_mgr->session_dbus_interface = session_dbus; device_menu_mgr_build_static_items (device_mgr, greeter_mode); +#ifdef HAVE_APT if (software_updates_menuitem != NULL) { device_mgr->apt_watcher = apt_watcher_new (session_dbus, software_updates_menuitem); } +#endif /* HAVE_APT */ return device_mgr; } diff --git a/src/indicator-session.c b/src/indicator-session.c index 7c43935..e748825 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -31,11 +31,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <gtk/gtk.h> #include <gio/gio.h> -#if GTK_CHECK_VERSION(3, 0, 0) -#include <libdbusmenu-gtk3/menu.h> -#else #include <libdbusmenu-gtk/menu.h> -#endif #include <libindicator/indicator.h> #include <libindicator/indicator-object.h> @@ -118,8 +114,8 @@ indicator_session_class_init (IndicatorSessionClass *klass) object_class->finalize = indicator_session_finalize; IndicatorObjectClass * io_class = INDICATOR_OBJECT_CLASS(klass); - io_class->get_entries = indicator_session_get_entries; - io_class->get_location = indicator_session_get_location; + io_class->get_entries = indicator_session_get_entries; + io_class->get_location = indicator_session_get_location; return; } @@ -140,6 +136,7 @@ indicator_session_init (IndicatorSession *self) GtkWidget* avatar_icon = NULL; // users + self->users.name_hint = PACKAGE"-users"; self->users.menu = GTK_MENU (dbusmenu_gtkmenu_new (INDICATOR_USERS_DBUS_NAME, INDICATOR_USERS_DBUS_OBJECT)); // Set the image to the default avator image @@ -169,7 +166,9 @@ indicator_session_init (IndicatorSession *self) const gchar *greeter_var; greeter_var = g_getenv("INDICATOR_GREETER_MODE"); greeter_mode = g_strcmp0(greeter_var, "1") == 0; + // devices + self->devices.name_hint = PACKAGE"-devices"; self->devices.menu = GTK_MENU (dbusmenu_gtkmenu_new(INDICATOR_SESSION_DBUS_NAME, INDICATOR_SESSION_DBUS_OBJECT)); if (greeter_mode){ diff --git a/src/session-service.c b/src/session-service.c index 753e304..6ee18e9 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -39,11 +39,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <libdbusmenu-glib/client.h> #include <gtk/gtk.h> -#if GTK_CHECK_VERSION(3, 0, 0) -#include <libdbusmenu-gtk3/menuitem.h> -#else #include <libdbusmenu-gtk/menuitem.h> -#endif #include <libindicator/indicator-service.h> diff --git a/src/udev-mgr.h b/src/udev-mgr.h index 5119803..2e57cff 100644 --- a/src/udev-mgr.h +++ b/src/udev-mgr.h @@ -24,11 +24,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <libdbusmenu-glib/client.h> #include <gtk/gtk.h> -#if GTK_CHECK_VERSION(3, 0, 0) -#include <libdbusmenu-gtk3/menuitem.h> -#else #include <libdbusmenu-gtk/menuitem.h> -#endif G_BEGIN_DECLS diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index efb3f7d..3f4bdc4 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -48,9 +48,6 @@ static void activate_user_accounts (DbusmenuMenuitem *mi, gpointer user_data); static gint compare_users_by_username (const gchar *a, const gchar *b); -static void activate_online_accounts (DbusmenuMenuitem *mi, - guint timestamp, - gpointer user_data); static void activate_user_accounts (DbusmenuMenuitem *mi, guint timestamp, gpointer user_data); @@ -191,7 +188,7 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) - if (self->user_count > MINIMUM_USERS && self->user_count < MAXIMUM_USERS) { + if (self->user_count > MINIMUM_USERS) { users = g_list_sort (users, (GCompareFunc)compare_users_by_username); } @@ -206,7 +203,7 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) session_dbus_set_users_real_name (self->session_dbus_interface, user->real_name); } - if (self->user_count > MINIMUM_USERS && self->user_count < MAXIMUM_USERS) { + if (self->user_count > MINIMUM_USERS) { mi = dbusmenu_menuitem_new (); dbusmenu_menuitem_property_set (mi, DBUSMENU_MENUITEM_PROP_TYPE, @@ -255,26 +252,12 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) } g_list_free(users); } - // Add the online accounts and separator + // Add the user accounts and separator DbusmenuMenuitem * separator1 = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (separator1, DBUSMENU_MENUITEM_PROP_TYPE, DBUSMENU_CLIENT_TYPES_SEPARATOR); dbusmenu_menuitem_child_append (self->root_item, separator1); - DbusmenuMenuitem * online_accounts_item = dbusmenu_menuitem_new(); - dbusmenu_menuitem_property_set (online_accounts_item, - DBUSMENU_MENUITEM_PROP_TYPE, - DBUSMENU_CLIENT_TYPES_DEFAULT); - dbusmenu_menuitem_property_set (online_accounts_item, - DBUSMENU_MENUITEM_PROP_LABEL, - _("Online Accounts…")); - - g_signal_connect (G_OBJECT (online_accounts_item), - DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, - G_CALLBACK (activate_online_accounts), - NULL); - - dbusmenu_menuitem_child_append (self->root_item, online_accounts_item); DbusmenuMenuitem * user_accounts_item = dbusmenu_menuitem_new(); dbusmenu_menuitem_property_set (user_accounts_item, @@ -359,22 +342,6 @@ compare_users_by_username (const gchar *a, return retval; } -// TODO -// Wait until dialog is complete to find out name to pass -// to the control centre. -static void -activate_online_accounts (DbusmenuMenuitem *mi, - guint timestamp, - gpointer user_data) -{ - GError * error = NULL; - if (!g_spawn_command_line_async("gnome-control-center online-accounts", &error)) - { - g_warning("Unable to show control centre: %s", error->message); - g_error_free(error); - } -} - static void activate_user_accounts (DbusmenuMenuitem *mi, guint timestamp, diff --git a/src/user-menu-mgr.h b/src/user-menu-mgr.h index 01823e7..40f7b18 100644 --- a/src/user-menu-mgr.h +++ b/src/user-menu-mgr.h @@ -23,7 +23,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include <glib-object.h> -#include <libdbusmenu-gtk3/menuitem.h> +#include <libdbusmenu-gtk/menuitem.h> #include "session-dbus.h" diff --git a/src/user-widget.c b/src/user-widget.c index 937a9eb..88ac11c 100644 --- a/src/user-widget.c +++ b/src/user-widget.c @@ -136,7 +136,11 @@ user_widget_init (UserWidget *self) gtk_misc_set_padding (GTK_MISC(priv->user_image),0, 4.0); priv->user_name = gtk_label_new (""); +#if HAVE_GTK3 + priv->container = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); +#else priv->container = gtk_hbox_new (FALSE, 0); +#endif priv->tick_icon = gtk_image_new_from_icon_name ("account-logged-in", GTK_ICON_SIZE_MENU); gtk_misc_set_alignment(GTK_MISC(priv->tick_icon), 1.0, 0.5); diff --git a/src/user-widget.h b/src/user-widget.h index e1f6d1a..52a5e34 100644 --- a/src/user-widget.h +++ b/src/user-widget.h @@ -20,11 +20,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #define __USER_WIDGET_H__ #include <gtk/gtk.h> -#if GTK_CHECK_VERSION(3, 0, 0) -#include <libdbusmenu-gtk3/menuitem.h> -#else #include <libdbusmenu-gtk/menuitem.h> -#endif G_BEGIN_DECLS diff --git a/src/users-service-dbus.c b/src/users-service-dbus.c index 971b854..09f916d 100644 --- a/src/users-service-dbus.c +++ b/src/users-service-dbus.c @@ -303,7 +303,6 @@ create_accounts_service_proxy (UsersServiceDbus *self) priv->count = users->len; g_ptr_array_free (users, TRUE); - sync_users (self); } @@ -719,7 +718,7 @@ sync_users (UsersServiceDbus *self) g_return_if_fail(IS_USERS_SERVICE_DBUS(self)); UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self); - if (priv->count > MINIMUM_USERS && priv->count < MAXIMUM_USERS) + if (priv->count > MINIMUM_USERS) { GPtrArray *users = NULL; GError *error = NULL; @@ -823,12 +822,7 @@ user_added (DBusGProxy *proxy, UsersServiceDbus *service = (UsersServiceDbus *)user_data; UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (service); priv->count++; - - if (priv->count < MAXIMUM_USERS) - { - sync_users (service); - } - + sync_users (service); g_signal_emit (service, signals[USER_ADDED], 0, diff --git a/src/users-service-dbus.h b/src/users-service-dbus.h index 25942df..b7db690 100644 --- a/src/users-service-dbus.h +++ b/src/users-service-dbus.h @@ -58,7 +58,6 @@ struct _UserData * got some gdm issues worked out. */ #define MINIMUM_USERS 0 -#define MAXIMUM_USERS 7 struct _UsersServiceDbus { GObject parent; |