$OpenBSD: patch-panels_region_cc-region-panel_c,v 1.2 2014/02/04 14:49:53 ajacoutot Exp $

From c5268f8a4b4c9c3ebbaf68321bca7c37a8d66caa Mon Sep 17 00:00:00 2001
From: Antoine Jacoutot <ajacoutot@gnome.org>
Date: Tue, 04 Feb 2014 14:09:48 +0000
Subject: region-panel: do not show Login button if localed is not available

--- panels/region/cc-region-panel.c.orig	Tue Feb  4 14:52:47 2014
+++ panels/region/cc-region-panel.c	Tue Feb  4 14:58:44 2014
@@ -172,8 +172,9 @@ cc_region_panel_constructed (GObject *object)
 
         G_OBJECT_CLASS (cc_region_panel_parent_class)->constructed (object);
 
-        cc_shell_embed_widget_in_header (cc_panel_get_shell (CC_PANEL (object)),
-                                         priv->login_button);
+        if (priv->permission)
+                cc_shell_embed_widget_in_header (cc_panel_get_shell (CC_PANEL (object)),
+                                                 priv->login_button);
 }
 
 static const char *
@@ -1698,8 +1699,16 @@ setup_login_button (CcRegionPanel *self)
 	CcRegionPanelPrivate *priv = self->priv;
         GDBusConnection *bus;
         gboolean loaded;
+        GError *error = NULL;
 
-        priv->permission = polkit_permission_new_sync ("org.freedesktop.locale1.set-locale", NULL, NULL, NULL);
+        priv->permission = polkit_permission_new_sync ("org.freedesktop.locale1.set-locale", NULL, NULL, &error);
+        if (priv->permission == NULL) {
+                g_warning ("Could not get 'org.freedesktop.locale1.set-locale' permission: %s",
+                           error->message);
+                g_error_free (error);
+                return;
+        }
+
         bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
         g_dbus_proxy_new (bus,
                           G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES,
