aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am21
-rw-r--r--src/apt-watcher.h4
-rw-r--r--src/device-menu-mgr.c28
-rw-r--r--src/indicator-session.c11
-rw-r--r--src/session-service.c4
-rw-r--r--src/udev-mgr.h4
-rw-r--r--src/user-menu-mgr.c39
-rw-r--r--src/user-menu-mgr.h2
-rw-r--r--src/user-widget.c4
-rw-r--r--src/user-widget.h4
-rw-r--r--src/users-service-dbus.c10
-rw-r--r--src/users-service-dbus.h1
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;