]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Merge with trunk
authorRobert Ancell <robert.ancell@canonical.com>
Thu, 9 Feb 2012 05:34:49 +0000 (16:34 +1100)
committerRobert Ancell <robert.ancell@canonical.com>
Thu, 9 Feb 2012 05:34:49 +0000 (16:34 +1100)
90 files changed:
NEWS
liblightdm-gobject/layout.c
liblightdm-gobject/user.c
po/ar.po
po/ast.po
po/be.po
po/bg.po
po/bn.po
po/bo.po
po/br.po
po/bs.po
po/ca.po
po/ca@valencia.po
po/cs.po
po/da.po
po/de.po
po/el.po
po/en_AU.po
po/en_CA.po
po/en_GB.po
po/eo.po
po/es.po
po/et.po
po/eu.po
po/fi.po
po/fo.po
po/fr.po
po/fy.po
po/gd.po
po/gl.po
po/he.po
po/hi.po
po/hr.po
po/hu.po
po/ia.po
po/id.po
po/it.po
po/ja.po
po/kk.po
po/km.po
po/ko.po
po/ku.po
po/lb.po
po/lt.po
po/lv.po
po/mhr.po
po/ml.po
po/ms.po
po/nb.po
po/nl.po
po/nn.po
po/oc.po
po/pl.po
po/pt.po
po/pt_BR.po
po/ro.po
po/ru.po
po/sd.po
po/shn.po
po/si.po
po/sk.po
po/sl.po
po/sq.po
po/sr.po
po/sv.po
po/ta.po
po/te.po
po/th.po
po/tr.po
po/ug.po
po/uk.po
po/uz.po
po/vi.po
po/wae.po
po/zh_CN.po
po/zh_HK.po
po/zh_TW.po
tests/Makefile.am
tests/scripts/default-keyboard-layout.conf [new file with mode: 0644]
tests/scripts/keyboard-layout.conf
tests/scripts/keyboard-variants.conf [new file with mode: 0644]
tests/scripts/no-keyboard-layout.conf
tests/src/Makefile.am
tests/src/X.c
tests/src/test-gobject-greeter.c
tests/src/test-runner.c
tests/src/x-server.c
tests/src/x-server.h
tests/test-default-keyboard-layout [new file with mode: 0755]
tests/test-keyboard-variants [new file with mode: 0755]

diff --git a/NEWS b/NEWS
index 023e07dee4e3bb2e547c39d3201eb31346bf3395..9dd88b83d7196dccbe3dc95bc1f5b3b035e5e63d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
 Overview of changes in lightdm 1.1.3
 
+    * Actually return the system default keyboard layout, not just 'us'
+    * Add keyboard layout variants to list of keyboard layouts
+    * Check accountsservice as well as .dmrc for users' layouts
     * Add Lock D-Bus method that locks the seat and provides a hint to the
       greeter to be in lock mode.
 
index 6e5442f7a0d8292e23491918bf24ee173fb725d4..d079210193095c646f6660769178eee0be4f1513 100644 (file)
@@ -1,4 +1,5 @@
-/*
+/* -*- Mode: C; indent-tabs-mode:nil; tab-width:4 -*-
+ *
  * Copyright (C) 2010 Robert Ancell.
  * Author: Robert Ancell <robert.ancell@canonical.com>
  * 
@@ -36,6 +37,55 @@ static Display *display = NULL;
 static XklEngine *xkl_engine = NULL;
 static XklConfigRec *xkl_config = NULL;
 static GList *layouts = NULL;
+static LightDMLayout *default_layout = NULL;
+
+static gchar *
+make_layout_string (const gchar *layout, const gchar *variant)
+{
+    if (!layout || layout[0] == 0)
+        return NULL;
+    else if (!variant || variant[0] == 0)
+        return g_strdup (layout);
+    else
+        return g_strdup_printf ("%s\t%s", layout, variant);
+}
+
+static void
+parse_layout_string (const gchar *name, gchar **layout, gchar **variant)
+{
+    gchar **split;
+
+    *layout = NULL;
+    *variant = NULL;
+
+    if (!name)
+        return;
+
+    split = g_strsplit (name, "\t", 2);
+    if (split[0])
+    {
+        *layout = g_strdup (split[0]);
+        if (split[1])
+            *variant = g_strdup (split[1]);
+    }
+    g_strfreev (split);
+}
+
+static void
+variant_cb (XklConfigRegistry *config,
+           const XklConfigItem *item,
+           gpointer data)
+{
+    LightDMLayout *layout;
+    gchar *full_name;
+
+    full_name = make_layout_string (data, item->name);
+
+    layout = g_object_new (LIGHTDM_TYPE_LAYOUT, "name", full_name, "short-description", item->short_description, "description", item->description, NULL);
+    layouts = g_list_append (layouts, layout);
+
+    g_free (full_name);
+}
 
 static void
 layout_cb (XklConfigRegistry *config,
@@ -46,6 +96,8 @@ layout_cb (XklConfigRegistry *config,
 
     layout = g_object_new (LIGHTDM_TYPE_LAYOUT, "name", item->name, "short-description", item->short_description, "description", item->description, NULL);
     layouts = g_list_append (layouts, layout);
+
+    xkl_config_registry_foreach_layout_variant (config, item->name, variant_cb, (gpointer) item->name);
 }
 
 /**
@@ -86,19 +138,25 @@ lightdm_get_layouts (void)
  * Set the layout for this session.
  **/
 void
-lightdm_set_layout (LightDMLayout *layout)
+lightdm_set_layout (LightDMLayout *dmlayout)
 {
     XklConfigRec *config;
+    gchar *layout, *variant;
 
-    g_return_if_fail (layout != NULL);
+    g_return_if_fail (dmlayout != NULL);
 
-    g_debug ("Setting keyboard layout to %s", lightdm_layout_get_name (layout));
+    g_debug ("Setting keyboard layout to '%s'", lightdm_layout_get_name (dmlayout));
+
+    parse_layout_string (lightdm_layout_get_name (dmlayout), &layout, &variant);
 
     config = xkl_config_rec_new ();
     config->layouts = g_malloc (sizeof (gchar *) * 2);
+    config->variants = g_malloc (sizeof (gchar *) * 2);
     config->model = g_strdup (xkl_config->model);
-    config->layouts[0] = g_strdup (lightdm_layout_get_name (layout));
+    config->layouts[0] = layout;
     config->layouts[1] = NULL;
+    config->variants[0] = variant;
+    config->variants[1] = NULL;
     if (!xkl_config_rec_activate (config, xkl_engine))
         g_warning ("Failed to activate XKL config");
     g_object_unref (config);
@@ -115,10 +173,29 @@ LightDMLayout *
 lightdm_get_layout (void)
 {
     lightdm_get_layouts ();
-    if (layouts)
-        return (LightDMLayout *) g_list_first (layouts)->data;
-    else
-        return NULL;
+
+    if (layouts && xkl_config && !default_layout)
+    {
+        gchar *full_name;
+        GList *item;
+
+        full_name = make_layout_string (xkl_config->layouts ? xkl_config->layouts[0] : NULL,
+                                        xkl_config->variants ? xkl_config->variants[0] : NULL);
+
+        for (item = layouts; item; item = item->next)
+        {
+            LightDMLayout *iter_layout = (LightDMLayout *) item->data;
+            if (g_strcmp0 (lightdm_layout_get_name (iter_layout), full_name) == 0)
+            {
+                default_layout = iter_layout;
+                break;
+            }
+        }
+
+        g_free (full_name);
+    }
+
+    return default_layout;
 }
 
 /**
index b905dd2b430888310322050a9ca750efd59f8d04..cc195b0cc0e1686680d243a85904072f3008f050 100644 (file)
@@ -1,4 +1,5 @@
-/*
+/* -*- Mode: C; indent-tabs-mode:nil; tab-width:4 -*-
+ *
  * Copyright (C) 2010 Robert Ancell.
  * Author: Robert Ancell <robert.ancell@canonical.com>
  * 
@@ -1196,6 +1197,7 @@ load_accounts_service (LightDMUser *user)
     LightDMUserListPrivate *list_priv = GET_LIST_PRIVATE (priv->user_list);
     UserAccountObject *account = NULL;
     GList *iter;
+    gchar *value;
 
     /* First, find AccountObject proxy */
     for (iter = list_priv->user_account_objects; iter; iter = iter->next)
@@ -1218,6 +1220,13 @@ load_accounts_service (LightDMUser *user)
         g_free (priv->session);
     priv->session = get_string_property (account->proxy, "XSession");
 
+    value = get_string_property (account->proxy, "XKeyboardLayout");
+    if (value)
+    {
+        g_free (priv->layout);
+        priv->layout = value;
+    }
+
     return TRUE;
 }
 
index 5754249ab92713b2c85cbe988fd08462bd73d139..bceb01c90430e3a53eb557ef5bdbe498b54d6fb4 100644 (file)
--- a/po/ar.po
+++ b/po/ar.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index c0f1cfad7e161ede7eb570316b4be7284c7df5bc..564e16a5f48eb4d71da9229a7dc73f63c3a42a1b 100644 (file)
--- a/po/ast.po
+++ b/po/ast.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 26851411fec7f5e90316f36efd1be6e322b9903d..32d4118c185b303b54aa88cd46136bfd3228ec3d 100644 (file)
--- a/po/be.po
+++ b/po/be.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index d53687aed51550019068bdda9cf582d451734821..ee82fcaa1681974e7935f6af1f8f0684ec323834 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 908787d4bee66f17dc78719a14d72c6188902489..986a4e9820a5fd786ee86aeb107214de8c70e3bd 100644 (file)
--- a/po/bn.po
+++ b/po/bn.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 8b14999a811edcc2537153f040f5942b82cb9feb..e705ffdaef53207f18e9b1188db0b34d9f1263db 100644 (file)
--- a/po/bo.po
+++ b/po/bo.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 8ea91f8bdde500295d8c897ea57152f1e0566214..9ae07162ef2546a6582c567fe52775e8283ae820 100644 (file)
--- a/po/br.po
+++ b/po/br.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 9c21f57c859d50329c4db7e8bc3a73fd0ab76331..cb7a9ee00b5dc29173da8be5b770cb868b6f9f86 100644 (file)
--- a/po/bs.po
+++ b/po/bs.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index d715fe00a1a96d95134d0b79d1a1e000a22a2058..2900693a1741ff043718ad7a9c1f922f56dfe0eb 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 73aa0169d4cfbf24aacc16a69d48209fa6ee73a0..3d78be6393a8690a67ccebc67b3669c5f9ee01f4 100644 (file)
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 462019da492079a66d8713329abff2129a6057ea..19aee89268edd906aa07245d6effd77c6fd13510 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 5c47d2ec1195942cebe2a482659e3928b728e5b4..a068d2f547ebf1fc5c33fb1d9e643ffade55ec10 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -15,8 +15,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 28047d8ae5d47303f08ac36079107bdd0fdc44a7..b70adcfe2d8955f09eeeef2593936555c8439ce3 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 2db28375f201c8ec7522ed441e1a11b9ad38aef7..9de94aebbbb548d248374e45f4915b8d2cf1d104 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index adbb63c05dd3ec6e59f4235da82e1e0eeee5e6a7..212d4849eb163780fbb46871cc432c871e786b89 100644 (file)
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index e5766833d7b1c64b3eb76753418fae28db854320..dcac83d0ddae0d0f083d4ef7c86c1b7cf22100df 100644 (file)
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index ac9ff72205901e0d40089a40121bb428e2bef68f..bc3dbc875f7a18ebe65227e082ed5f7464deae21 100644 (file)
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index c6e507bfaa22ea5f1d5b11fb0cebf95728ed16b4..c809835ca1396bebcfbe3aee6d8196168dc50fc5 100644 (file)
--- a/po/eo.po
+++ b/po/eo.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index ef06ef7f9b8c4dc4a874e1190ae4edfbdf261546..135a30906281ffdba0859024a3643949f023a583 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 882a901395850400cee0a6994e95f337adbdfc84..e08d79b4bfcf0059749aa30c7619431aff8efb2a 100644 (file)
--- a/po/et.po
+++ b/po/et.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index a9f8a55afe913ece45df8990369a1920055bc137..4dbacf3a00d017329f1a50c86e7db5d8d1065842 100644 (file)
--- a/po/eu.po
+++ b/po/eu.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 57453ef29aa8b413fbcfa3215b805f7722a06c4f..2588959a203425a342d122a3df962e047fe67f23 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 6601824103fa7cfeed2f7649c3c9db866ca02557..995494ceb1d9c1d1af209ba5c86a1185539705ba 100644 (file)
--- a/po/fo.po
+++ b/po/fo.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 8a91a2ffb407eff86435f10598d35a4f39e097d2..37d8042e0a168f1eb9be5e89beb3de3f40314932 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index ee40c41ce50a8a3ad5ae27a81787b71112737d1b..cdc22d9c8172cf2ef2df07851826ced4f7129937 100644 (file)
--- a/po/fy.po
+++ b/po/fy.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 7350e6357cdac0216639d354049e4b2793f3b2c4..a01ed08adbc35bda993e2ca57cc02ec274e0f4a9 100644 (file)
--- a/po/gd.po
+++ b/po/gd.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index b2289ab13d26a4cba6446ca6b6709ecdc790d779..371cda5e1810eb6c4daaaa8dd11b2d5110cd0c22 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 43136e5db84f7323af27b44aab783e8a178951ae..cd5ed9aa4cda157d4b75d2c6bb2d0ff6e04a7f39 100644 (file)
--- a/po/he.po
+++ b/po/he.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index d93dfebd9883f885f6ddd73336c060898458d75b..eec4a5729d6748ba01fc814ef14e97cbde4f654d 100644 (file)
--- a/po/hi.po
+++ b/po/hi.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index f86a4d64fa769f810eadee5c3b9fccbf206efd0b..7fea5173869d1cbc4834d9392d549607a34283ca 100644 (file)
--- a/po/hr.po
+++ b/po/hr.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index e573b8622ada49b7881f00cb42b1d6a656b2cd0c..e7037685713c101ab7045ed92b0f49bca1e38855 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index b945833ebf6ba4b05e4b245893f032c6d402ca85..f70ba40921b70a46da35ffc4e440dfd89820f225 100644 (file)
--- a/po/ia.po
+++ b/po/ia.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index c64db83549fc1f5625bbb4291c2cf623206c19d4..117d35998b700fe21729a3ca171e0f3c2470045d 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 627029323d89ebf5568d9fc9599cf081f2463d4b..ab10fae4a2e9ff69ffab68ff628ddda6167f4b62 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 119cc11c5541d5b39996f1db489aac522d337fc6..f884eff21ce28ca01e96916dd4071e268e658e82 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index ab87dadf2bc4b3b0ccc449fe4b78bb857d815d50..270340abb3f246483cefad91d30e5f361d7653b0 100644 (file)
--- a/po/kk.po
+++ b/po/kk.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index afa846a4eedd500c1d34ed90bda4ea1f536abf01..fac11eca640ce34578589fe50577076d02c965cd 100644 (file)
--- a/po/km.po
+++ b/po/km.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 8ddba1444ce8ca8e2a748dd56156339ff0d3b830..4d2d7b2240e01e96a4870bf43fc5b01d5623830a 100644 (file)
--- a/po/ko.po
+++ b/po/ko.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 1ad38044ad44d02acac3a7468b469e075dd8a53d..b971c2e40d877160ff1df1639934623997e5148b 100644 (file)
--- a/po/ku.po
+++ b/po/ku.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 794eb4bd3d350dadf27edc8cd2918147eed85db8..46fd5904d712373780a2ad24924a5b3789853494 100644 (file)
--- a/po/lb.po
+++ b/po/lb.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 2cc336e0d5f0f0f9b8e3611703d0bb06d06dee40..c80e60a2849f5286b8daef7bbe8189094b7e0c41 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 670ced95c8a2a9c36833c845aa2ee3add9a03932..b36c327805a2d1919a9f1159d688c463b5409315 100644 (file)
--- a/po/lv.po
+++ b/po/lv.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 77b8e063de942349f6d5ab8d9029f838e5740271..ce9d4db1c7095d69ace729861b7ada9021c1a866 100644 (file)
--- a/po/mhr.po
+++ b/po/mhr.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 99b7e4149208789545c68ce436b681c02bac2e06..d9027e3c72d62feaff8b62ba3820bc67aa9c9fb4 100644 (file)
--- a/po/ml.po
+++ b/po/ml.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 94f4272816faa3848153528db9e8a69900d69f4b..c1f4077fb17f89747ec015f107d1e756f30387fd 100644 (file)
--- a/po/ms.po
+++ b/po/ms.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 2fccabd17ad49eca0312ba93b0385f027b3868f4..507d7808293e519e4166bd361af78aedc80e94e0 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index d1c91c75b24d464e1004c28ec9d35f9f7efa6bf9..392cfcfa13f56429f266ac5d7757a59bcb76f468 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index e349e8259cf5e17521e199ee79aef7138bcbfd8f..adf4a02cb0a09d84876171b71c4db0fb4c854ca5 100644 (file)
--- a/po/nn.po
+++ b/po/nn.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index b9993836ceb48089848a8717143e932c7858af93..656ca5b490663b059c78cacef084df79b0a23250 100644 (file)
--- a/po/oc.po
+++ b/po/oc.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 0e0b08d8ba507468d51a6fa1604495ba014ab859..64c67e233ad88f56e64b746baf959b2abd3d85c0 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 84e80a2d8290e71a031eb1b820d2ce61e362a574..560ad1a40adcec49278dbc0dee2b6e273bacdf25 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 5e6e75a9eeec9f729e658a2e5ef27434cdb73ef3..22498e788c7dd56d9315f3f985162ef168741455 100644 (file)
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 976e338f4a6e0c0da167d0ef634aae918aa2ce21..d72aeafca76c644afe03cd8e9fa6e7b3d5499a9b 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 91bbfbd068a38418252150c533daa0a24a3dab07..116583ff152f57af456abfdbc20b4d69b5b6f1a6 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 9697db9d32dc30eb7527c70091b42237c9742609..f3ce9c178363fbaff22023ec062ebfb05ae6ed19 100644 (file)
--- a/po/sd.po
+++ b/po/sd.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 299963f37bac4683e5d079bc1a1b24ef5aa46c0e..2baefb6d39737b202d6b838ff0db3d8704ab0018 100644 (file)
--- a/po/shn.po
+++ b/po/shn.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index bbb4054bccdb2d13d8735a9e9375415516f2d0b8..79f16cf8abb0b642471228634031c202a2c350b3 100644 (file)
--- a/po/si.po
+++ b/po/si.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 7603b4232b7789e4ff8bc2f1565e420406e2f898..e625b6ae7b8be74e15a6bf832925d09b7e8cac53 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 949d1d6a54f5f1daf7934f8856d5375027510601..3647085431276834e571efdded3e9430a81485ad 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 2862d98c4d7040489399a1e04a91b27407c908d5..cea4b03a351fa647aa4d9489a17658395f7ca45d 100644 (file)
--- a/po/sq.po
+++ b/po/sq.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 89f7cdc9c97cc5e43ab976fc3179a45c8b30bd46..dc8d022654c435a8bc9ae0063ae623dd2e9dcbad 100644 (file)
--- a/po/sr.po
+++ b/po/sr.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 "Language: sr\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
index 9f8fb8dbef956eacc4f700b57cf3635adbb40326..55ff6fa3a167d950f929696d347e096d16d5b92b 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index a66c1173cae625dbb2cca1b06215808e163e91ac..95288d2bc3da3c98826df299940f2dfe95491dfb 100644 (file)
--- a/po/ta.po
+++ b/po/ta.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index fcb409de2f2f7e51b6b8c251b9c50f325c8b055c..7ec3740a3573fe7857dd2f1aac1dac82713d31ab 100644 (file)
--- a/po/te.po
+++ b/po/te.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index b16c1061cd33edb6daf724e6c46357062af18adb..4f2ff13968d52fb72779ddabcf0bdd7d9f9fb672 100644 (file)
--- a/po/th.po
+++ b/po/th.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 2a7d55f4372135d851e3764293ecaf7ca97b64b8..da903e9f91bf967d99152e83a2bd14e9230da25a 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 4ecb395ce6fb3f2e46a745db596d26692cbd841c..bb85f946c4806d0964265db0152755ecc0729fb7 100644 (file)
--- a/po/ug.po
+++ b/po/ug.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 9b58288b8053788f10dd5ecccfb44f865658a3bb..02f1dd765ccff9282e221c5ddf1a71d542e4475c 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 1e5fa060d73424c39922d923b0d96b26e9469dea..ecc1297b7c5c5e0dfb49c793e2fc2aee02f6821c 100644 (file)
--- a/po/uz.po
+++ b/po/uz.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index b12590a7edf9ffb5dd7e7ccf492459bb85f20901..21c42415a26b5ba48ff1822b0b2dfa1643007468 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 49117e0666d3e36cc12579f2e705cfd07fdaf255..ca32ed54105351064de98944c8110ba982ab511e 100644 (file)
--- a/po/wae.po
+++ b/po/wae.po
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 61c233234123d804480bc62e39c5449d01208794..162ed9cba493a77ec9cf5920b77ac71bb697ab23 100644 (file)
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 821c34a86a20c0c1dc36b80889e71109250860fa..d61994d1520cb90abd13b6c174d390eab78f62a1 100644 (file)
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index de4060a2887da9d3d3a67679fc5a4015e15b87ea..4d2eac7c21fe1e466dd074f0ca81e3943145f302 100644 (file)
@@ -14,8 +14,8 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-30 04:59+0000\n"
-"X-Generator: Launchpad (build 14727)\n"
+"X-Launchpad-Export-Date: 2012-02-07 05:00+0000\n"
+"X-Generator: Launchpad (build 14747)\n"
 
 #: ../greeters/gtk/lightdm-gtk-greeter.c:409
 msgid "Are you sure you want to close all programs and restart the computer?"
index 8f63d2dbee1cc55b8a51e1447f9df3b460978209..bec3958eb158a553739d6a640f3c5a10a7b76d12 100644 (file)
@@ -19,6 +19,8 @@ TESTS = \
        test-autologin-guest-logout \
        test-keyboard-layout \
        test-no-keyboard-layout \
+       test-default-keyboard-layout \
+       test-keyboard-variants \
        test-language \
        test-no-language \
        test-language-no-accounts-service \
diff --git a/tests/scripts/default-keyboard-layout.conf b/tests/scripts/default-keyboard-layout.conf
new file mode 100644 (file)
index 0000000..5e6e348
--- /dev/null
@@ -0,0 +1,38 @@
+#
+# Check returns correct layout for a user
+#
+
+[LightDM]
+minimum-display-number=50
+
+[test-xserver-config]
+keyboard-layout=ara
+keyboard-variant=azerty
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER :50 START
+#?XSERVER :50 INDICATE-READY
+
+# LightDM connects to X server
+#?XSERVER :50 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER :50 START
+#?XSERVER :50 ACCEPT-CONNECT
+#?GREETER :50 CONNECT-XSERVER
+#?GREETER :50 CONNECT-TO-DAEMON
+#?GREETER :50 CONNECTED-TO-DAEMON
+
+# Correct layout is found
+#?*GREETER :50 LOG-LAYOUT USERNAME=%DEFAULT%
+#?XSERVER :50 ACCEPT-CONNECT
+#?GREETER :50 LOG-LAYOUT USERNAME=%DEFAULT% LAYOUT='ara        azerty'
+
+# Cleanup
+#?*STOP-DAEMON
+# Don't know what order they will terminate
+#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?RUNNER DAEMON-EXIT STATUS=0
index 4a8b2abac32cd9b257ac8ad8f7d6cacaa5cdcaa4..ba67fc03754e55e4e309a7dadd37b5710b991c96 100644 (file)
@@ -23,7 +23,9 @@ minimum-display-number=50
 
 # Correct layout is found
 #?*GREETER :50 LOG-LAYOUT USERNAME=bob
-#?GREETER :50 LOG-LAYOUT USERNAME=bob LAYOUT=us
+#?GREETER :50 LOG-LAYOUT USERNAME=bob LAYOUT='us'
+#?*GREETER :50 LOG-LAYOUT USERNAME=carol
+#?GREETER :50 LOG-LAYOUT USERNAME=carol LAYOUT='fr     oss'
 
 # Cleanup
 #?*STOP-DAEMON
diff --git a/tests/scripts/keyboard-variants.conf b/tests/scripts/keyboard-variants.conf
new file mode 100644 (file)
index 0000000..46f4fb2
--- /dev/null
@@ -0,0 +1,50 @@
+#
+# Check returns variants as well as normal layouts
+#
+
+[LightDM]
+minimum-display-number=50
+
+#?RUNNER DAEMON-START
+
+# X server starts
+#?XSERVER :50 START
+#?XSERVER :50 INDICATE-READY
+
+# LightDM connects to X server
+#?XSERVER :50 ACCEPT-CONNECT
+
+# Greeter starts
+#?GREETER :50 START
+#?XSERVER :50 ACCEPT-CONNECT
+#?GREETER :50 CONNECT-XSERVER
+#?GREETER :50 CONNECT-TO-DAEMON
+#?GREETER :50 CONNECTED-TO-DAEMON
+
+# Correct layouts are found
+#?*GREETER :50 LOG-VARIANTS LAYOUT=fr
+#?XSERVER :50 ACCEPT-CONNECT
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  nodeadkeys'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  sundeadkeys'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  oss'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  oss_latin9'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  oss_nodeadkeys'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  oss_sundeadkeys'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  latin9'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  latin9_nodeadkeys'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  latin9_sundeadkeys'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  bepo'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  bepo_latin9'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  dvorak'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  mac'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  bre'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  oci'
+#?GREETER :50 LOG-VARIANTS LAYOUT='fr  geo'
+
+# Cleanup
+#?*STOP-DAEMON
+# Don't know what order they will terminate
+#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?(GREETER :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?RUNNER DAEMON-EXIT STATUS=0
index 274ebcdc577f13ed749c177325e1148a00e6bede..609c3f6f4b981d19813a9f7fadfdae6ec5978575 100644 (file)
@@ -23,7 +23,7 @@ minimum-display-number=50
 
 # Correct layout is found
 #?*GREETER :50 LOG-LAYOUT USERNAME=alice
-#?GREETER :50 LOG-LAYOUT USERNAME=alice LAYOUT=
+#?GREETER :50 LOG-LAYOUT USERNAME=alice LAYOUT=''
 
 # Cleanup
 #?*STOP-DAEMON
index af277a4b43972de0bc6370f6902458ccb80c3c39..4c27a1f0dfc9598f1d826e0494b9af653d685f40 100644 (file)
@@ -4,7 +4,7 @@ noinst_LTLIBRARIES = libsystem.la
 
 libsystem_la_SOURCES = libsystem.c
 libsystem_la_CFLAGS = $(GLIB_CFLAGS)
-libsystem_la_LIBADD = -ldl
+libsystem_la_LIBADD = -ldl $(GLIB_LIBS)
 
 # This is required to have autotools generate a library that is not installed
 # but produces a shared library (instead of just a static library)
index ff7b4b8ba86bd7dead113cd36e8bf3c5b2647bdc..b11ea977a3e534da58e07fabbf9941bc86705d4c 100644 (file)
@@ -339,6 +339,9 @@ main (int argc, char **argv)
     x_server_set_listen_unix (xserver, listen_unix);
     x_server_set_listen_tcp (xserver, listen_tcp);
 
+    /* Add fake screen so that libx11 calls don't freak out when they can't find a screen */
+    x_server_add_screen (xserver, 0xffffff, 0x000000, 0, 1024, 768, 1000, 1000);
+
     status_notify ("XSERVER :%d START", display_number);
 
     config = g_key_file_new ();
index 7e4c4f1f341e65778aeb0303ca433b56a8fb6cd3..873c6d31246abd5b17b7a06c4b8ba93b4278fec1 100644 (file)
@@ -1,3 +1,5 @@
+/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 4 -*- */
+
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -96,10 +98,39 @@ request_cb (const gchar *request)
         const gchar *username, *layout;
 
         username = request + strlen (r);
-        user = lightdm_user_list_get_user_by_name (lightdm_user_list_get_instance (), username);
-        layout = lightdm_user_get_layout (user);
 
-        status_notify ("GREETER %s LOG-LAYOUT USERNAME=%s LAYOUT=%s", getenv ("DISPLAY"), username, layout ? layout : "");
+        if (g_strcmp0 (username, "%DEFAULT%") == 0) /* Grab system default layout */
+            layout = lightdm_layout_get_name (lightdm_get_layout ());
+        else
+        {
+            user = lightdm_user_list_get_user_by_name (lightdm_user_list_get_instance (), username);
+            layout = lightdm_user_get_layout (user);
+        }
+
+        status_notify ("GREETER %s LOG-LAYOUT USERNAME=%s LAYOUT='%s'", getenv ("DISPLAY"), username, layout ? layout : "");
+    }
+    g_free (r);
+
+    r = g_strdup_printf ("GREETER %s LOG-VARIANTS LAYOUT=", getenv ("DISPLAY"));
+    if (g_str_has_prefix (request, r))
+    {
+        GList *layouts, *iter;
+        gchar *layout_prefix;
+
+        layout_prefix = request + strlen (r);
+        layouts = lightdm_get_layouts ();
+
+        for (iter = layouts; iter; iter = iter->next)
+        {
+            LightDMLayout *layout;
+            const gchar *name;
+
+            layout = (LightDMLayout *) iter->data;
+            name = lightdm_layout_get_name (layout);
+
+            if (g_str_has_prefix (name, layout_prefix))
+                status_notify ("GREETER %s LOG-VARIANTS LAYOUT='%s'", getenv ("DISPLAY"), name);
+        }
     }
     g_free (r);
 
index 62f36d243c92cf169c87b00f3b7decf97d509b30..f5f550ebed4a58226a3afd79a86f38b310f462c9 100644 (file)
@@ -4,6 +4,7 @@
 #include <ctype.h>
 #include <errno.h>
 #include <glib.h>
+#include <glib/gstdio.h>
 #include <glib-unix.h>
 #include <gio/gio.h>
 #include <gio/gunixsocketaddress.h>
@@ -48,6 +49,7 @@ typedef struct
     guint id;
     gchar *language;
     gchar *xsession;
+    gchar *layout;
 } AccountsUser;
 static GList *accounts_users = NULL;
 static void handle_user_call (GDBusConnection       *connection,
@@ -786,6 +788,7 @@ load_passwd_file ()
                     *c = '\0';
             }
             user->xsession = g_key_file_get_string (dmrc_file, "Desktop", "Session", NULL);
+            user->layout = g_key_file_get_string (dmrc_file, "X-Accounts", "Layout", NULL);
             user->path = g_strdup_printf ("/org/freedesktop/Accounts/User%d", uid);
             user->id = g_dbus_connection_register_object (accounts_connection,
                                                           user->path,
@@ -910,6 +913,8 @@ handle_user_get_property (GDBusConnection       *connection,
         return g_variant_new_string (user->language ? user->language : "");
     else if (strcmp (property_name, "XSession") == 0)
         return g_variant_new_string (user->xsession ? user->xsession : "");
+    else if (strcmp (property_name, "XKeyboardLayout") == 0)
+        return g_variant_new_string (user->layout ? user->layout : "");
 
     return NULL;
 }
@@ -947,6 +952,7 @@ accounts_name_acquired_cb (GDBusConnection *connection,
         "    <property name='BackgroundFile' type='s' access='read'/>"
         "    <property name='Language' type='s' access='read'/>"
         "    <property name='XSession' type='s' access='read'/>"
+        "    <property name='XKeyboardLayout' type='s' access='read'/>"
         "  </interface>"
         "</node>";
     GError *error = NULL;
@@ -1158,12 +1164,13 @@ main (int argc, char **argv)
     g_source_attach (status_source, NULL);
 
     /* Run from a temporary directory */
-    temp_dir = g_build_filename (cwd, "lightdm-test-XXXXXX", NULL);
+    temp_dir = g_build_filename (g_get_tmp_dir (), "lightdm-test-XXXXXX", NULL);
     if (!mkdtemp (temp_dir))
     {
         g_warning ("Error creating temporary directory: %s", strerror (errno));
         quit (EXIT_FAILURE);
     }
+    g_chmod (temp_dir, 0755);
 
     /* Set up a skeleton file system */
     g_mkdir_with_parents (g_strdup_printf ("%s/etc", temp_dir), 0755);
@@ -1197,18 +1204,19 @@ main (int argc, char **argv)
         gboolean have_home_dir;
         gchar *real_name;
         gchar *xsession;
-        gchar *layout;
+        gchar *dmrc_layout;
+        gchar *dbus_layout;
         gchar *language;
         gint uid;
     } users[] =
     {
-        {"root",    "",         TRUE,  "root",       NULL,          NULL, NULL,             0},
-        {"lightdm", "",         TRUE,  "",           NULL,          NULL, NULL,           100},
-        {"alice",   "password", TRUE,  "Alice User", NULL,          NULL, NULL,          1000},
-        {"bob",     "",         TRUE,  "Bob User",   NULL,          "us", "en_AU.utf8",  1001},
-        {"carol",   "",         TRUE,  "Carol User", "alternative", "fr", "fr_FR.UTF-8", 1002},
-        {"dave",    "",         FALSE, "Dave User",  NULL,          NULL, NULL,          1003},
-        {NULL,      NULL,       FALSE, NULL,         NULL,          NULL, NULL,             0}
+        {"root",    "",         TRUE,  "root",       NULL,          NULL, NULL,      NULL,             0},
+        {"lightdm", "",         TRUE,  "",           NULL,          NULL, NULL,      NULL,           100},
+        {"alice",   "password", TRUE,  "Alice User", NULL,          NULL, NULL,      NULL,          1000},
+        {"bob",     "",         TRUE,  "Bob User",   NULL,          "us", NULL,      "en_AU.utf8",  1001},
+        {"carol",   "",         TRUE,  "Carol User", "alternative", "ru", "fr\toss", "fr_FR.UTF-8", 1002},
+        {"dave",    "",         FALSE, "Dave User",  NULL,          NULL, NULL,      NULL,          1003},
+        {NULL,      NULL,       FALSE, NULL,         NULL,          NULL, NULL,      NULL,             0}
     };
     passwd_data = g_string_new ("");
     int i;
@@ -1221,6 +1229,8 @@ main (int argc, char **argv)
         {
             path = g_build_filename (home_dir, users[i].user_name, NULL);
             g_mkdir_with_parents (path, 0755);
+            if (chown (path, users[i].uid, users[i].uid) < 0)
+              g_debug ("chown (%s) failed: %s", path, strerror (errno));
             g_free (path);
         }
 
@@ -1230,9 +1240,14 @@ main (int argc, char **argv)
             g_key_file_set_string (dmrc_file, "Desktop", "Session", users[i].xsession);
             save_dmrc = TRUE;
         }
-        if (users[i].layout)
+        if (users[i].dmrc_layout)
         {
-            g_key_file_set_string (dmrc_file, "Desktop", "Layout", users[i].layout);
+            g_key_file_set_string (dmrc_file, "Desktop", "Layout", users[i].dmrc_layout);
+            save_dmrc = TRUE;
+        }
+        if (users[i].dbus_layout)
+        {
+            g_key_file_set_string (dmrc_file, "X-Accounts", "Layout", users[i].dbus_layout);
             save_dmrc = TRUE;
         }
         if (users[i].language)
index dd700502966533b8c4070b900b94d23cfca312f0..335f7c8c9fac364913fed0e9450a3746c3c23911 100644 (file)
@@ -1,9 +1,12 @@
+/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 4 -*- */
+
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>
 #include <sys/types.h>
 #include <sys/socket.h>
+#include <glib.h>
 #include <gio/gio.h>
 #include <gio/gunixsocketaddress.h>
 
@@ -26,9 +29,24 @@ enum
 
 enum
 {
+    Error = 0,
     Reply = 1,
 };
 
+enum
+{
+    InternAtom = 16,
+    GetProperty = 20,
+    QueryExtension = 98,
+    kbUseExtension = 200
+};
+
+enum
+{
+    BadAtom = 5,
+    BadImplementation = 17
+};
+
 enum {
     X_SERVER_CLIENT_CONNECTED,
     X_SERVER_CLIENT_DISCONNECTED,
@@ -78,6 +96,7 @@ struct XClientPrivate
     guint8 byte_order;
     gboolean connected;
     guint16 sequence_number;
+    GHashTable *atoms;
 };
 
 struct XScreenPrivate
@@ -271,6 +290,23 @@ x_client_send_success (XClient *client)
     send (g_io_channel_unix_get_fd (client->priv->channel), buffer, n_written, 0);
 }
 
+void
+x_client_send_error (XClient *client, int type, int major, int minor)
+{
+    guint8 buffer[MAXIMUM_REQUEST_LENGTH];
+    gsize n_written = 0;
+
+    write_card8 (buffer, MAXIMUM_REQUEST_LENGTH, Error, &n_written);
+    write_card8 (buffer, MAXIMUM_REQUEST_LENGTH, type, &n_written);
+    write_card16 (buffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, client->priv->sequence_number, &n_written);
+    write_card32 (buffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, 0, &n_written); /* resourceID */
+    write_card16 (buffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, minor, &n_written);
+    write_card8 (buffer, MAXIMUM_REQUEST_LENGTH, major, &n_written);
+    write_padding (buffer, MAXIMUM_REQUEST_LENGTH, 21, &n_written);
+
+    send (g_io_channel_unix_get_fd (client->priv->channel), buffer, n_written, 0);
+}
+
 void
 x_client_disconnect (XClient *client)
 {
@@ -282,11 +318,16 @@ x_client_init (XClient *client)
 {
     client->priv = G_TYPE_INSTANCE_GET_PRIVATE (client, x_client_get_type (), XClientPrivate);
     client->priv->sequence_number = 1;
+    client->priv->atoms = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_free);
 }
 
 static void
 x_client_finalize (GObject *object)
 {
+    XClient *client = (XClient *) object;
+
+    g_hash_table_unref (client->priv->atoms);
+    client->priv->atoms = NULL;
 }
 
 static void
@@ -424,6 +465,214 @@ decode_connection_request (XClient *client, const guint8 *buffer, gssize buffer_
     g_free (message);
 }
 
+static void
+process_intern_atom (XClient *client, const guint8 *buffer, gssize buffer_length)
+{
+    /* Decode */
+
+    gsize offset = 0;
+    guint8 onlyIfExists;
+    guint16 n;
+    gchar *name;
+    int atom;
+
+    read_padding (1, &offset); /* reqType */
+    onlyIfExists = read_card8 (buffer, buffer_length, &offset);
+    read_padding (2, &offset); /* length */
+    n = read_card16 (buffer, buffer_length, client->priv->byte_order, &offset);
+    read_padding (2, &offset);
+    name = read_padded_string (buffer, buffer_length, n, &offset);
+
+    /* Process */
+
+    atom = g_str_hash (name);
+
+    if (onlyIfExists)
+    {
+        g_free (name);
+        if (!g_hash_table_contains (client->priv->atoms, GINT_TO_POINTER (atom)))
+        {
+            x_client_send_error (client, BadAtom, InternAtom, 0);
+            return;
+        }
+    }
+    else
+        g_hash_table_insert (client->priv->atoms, GINT_TO_POINTER (atom), name);
+
+    /* Reply */
+
+    guint8 outBuffer[MAXIMUM_REQUEST_LENGTH];
+    gsize n_written = 0;
+
+    write_card8 (outBuffer, MAXIMUM_REQUEST_LENGTH, Reply, &n_written);
+    write_padding (outBuffer, MAXIMUM_REQUEST_LENGTH, 1, &n_written);
+    write_card16 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, client->priv->sequence_number, &n_written);
+    write_card32 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, 0, &n_written); /* length */
+    write_card32 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, atom, &n_written);
+    write_padding (outBuffer, MAXIMUM_REQUEST_LENGTH, 20, &n_written);
+
+    send (g_io_channel_unix_get_fd (client->priv->channel), outBuffer, n_written, 0);
+}
+
+static void
+process_get_property (XClient *client, const guint8 *buffer, gssize buffer_length)
+{
+    /* Decode */
+
+    gsize offset = 0;
+    guint8 delete;
+    guint32 property;
+    guint32 type;
+
+    read_padding (1, &offset); /* reqType */
+    delete = read_card8 (buffer, buffer_length, &offset);
+    read_padding (2, &offset); /* length */
+    read_padding (4, &offset); /* window */
+    property = read_card32 (buffer, buffer_length, client->priv->byte_order, &offset);
+    type = read_card32 (buffer, buffer_length, client->priv->byte_order, &offset);
+    read_padding (4, &offset); /* longOffset */
+    read_padding (4, &offset); /* longLength */
+
+    /* Process */
+
+    gchar *name = g_hash_table_lookup (client->priv->atoms, GINT_TO_POINTER (property));
+    GString *reply = NULL;
+    guint8 format = 8;
+
+    if (g_strcmp0 (name, "_XKB_RULES_NAMES") == 0)
+    {
+        GKeyFile *config;
+
+        config = g_key_file_new ();
+        if (g_getenv ("LIGHTDM_TEST_CONFIG"))
+            g_key_file_load_from_file (config, g_getenv ("LIGHTDM_TEST_CONFIG"), G_KEY_FILE_NONE, NULL);
+
+        reply = g_string_new ("");
+
+        g_string_append (reply, "evdev"); /* rules file */
+        g_string_append_c (reply, 0); /* embedded null byte */
+
+        g_string_append (reply, "pc105"); /* model name */
+        g_string_append_c (reply, 0); /* embedded null byte */
+
+        if (g_key_file_has_key (config, "test-xserver-config", "keyboard-layout", NULL))
+            g_string_append (reply, g_key_file_get_string (config, "test-xserver-config", "keyboard-layout", NULL));
+        else
+            g_string_append (reply, "us");
+        g_string_append_c (reply, 0); /* embedded null byte */
+
+        if (g_key_file_has_key (config, "test-xserver-config", "keyboard-variant", NULL))
+            g_string_append (reply, g_key_file_get_string (config, "test-xserver-config", "keyboard-variant", NULL));
+        g_string_append_c (reply, 0); /* embedded null byte */
+
+        /* no xkb options */
+        g_string_append_c (reply, 0); /* embedded null byte */
+
+        g_key_file_free (config);
+    }
+
+    if (name && delete)
+        g_hash_table_remove (client->priv->atoms, GINT_TO_POINTER (property));
+
+    /* Reply */
+
+    if (!reply)
+    {
+        x_client_send_error (client, BadImplementation, GetProperty, 0);
+        return;
+    }
+
+    guint8 outBuffer[MAXIMUM_REQUEST_LENGTH];
+    gsize n_written = 0, length_offset, packet_start;
+
+    write_card8 (outBuffer, MAXIMUM_REQUEST_LENGTH, Reply, &n_written);
+    write_card8 (outBuffer, MAXIMUM_REQUEST_LENGTH, format, &n_written);
+    write_card16 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, client->priv->sequence_number, &n_written);
+    length_offset = n_written;
+    write_card32 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, 0, &n_written); /* length */
+    write_card32 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, type, &n_written);
+    write_card32 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, 0, &n_written); /* bytesAfter */
+    write_card32 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, reply->len, &n_written);
+    write_padding (outBuffer, MAXIMUM_REQUEST_LENGTH, 12, &n_written);
+    packet_start = n_written;
+
+    write_string8 (outBuffer, MAXIMUM_REQUEST_LENGTH, (guint8 *) reply->str, reply->len, &n_written);
+    write_padding (outBuffer, MAXIMUM_REQUEST_LENGTH, pad (reply->len), &n_written);
+
+    write_card32 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, (n_written - packet_start) / 4, &length_offset);
+
+    send (g_io_channel_unix_get_fd (client->priv->channel), outBuffer, n_written, 0);
+
+    /* Cleanup */
+
+    g_string_free (reply, TRUE);
+}
+
+static void
+process_query_extension (XClient *client, const guint8 *buffer, gssize buffer_length)
+{
+    /* Decode */
+
+    gsize offset = 0;
+    guint8 n;
+    gchar *name;
+
+    read_padding (1, &offset); /* reqType */
+    read_padding (1, &offset); /* pad */
+    read_padding (2, &offset); /* length */
+    n = read_card16 (buffer, buffer_length, client->priv->byte_order, &offset);
+    read_padding (2, &offset); /* pad */
+    name = read_padded_string (buffer, buffer_length, n, &offset);
+
+    /* Process */
+
+    guint8 present = 0;
+    if (g_strcmp0 (name, "XKEYBOARD") == 0)
+        present = 1;
+
+    /* Reply */
+
+    guint8 outBuffer[MAXIMUM_REQUEST_LENGTH];
+    gsize n_written = 0;
+
+    write_card8 (outBuffer, MAXIMUM_REQUEST_LENGTH, Reply, &n_written);
+    write_padding (outBuffer, MAXIMUM_REQUEST_LENGTH, 1, &n_written);
+    write_card16 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, client->priv->sequence_number, &n_written);
+    write_card32 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, 0, &n_written); /* length */
+    write_card8 (outBuffer, MAXIMUM_REQUEST_LENGTH, present, &n_written);
+    write_card8 (outBuffer, MAXIMUM_REQUEST_LENGTH, kbUseExtension, &n_written); /* major_opcode */
+    write_card8 (outBuffer, MAXIMUM_REQUEST_LENGTH, 0, &n_written); /* first_event */
+    write_card8 (outBuffer, MAXIMUM_REQUEST_LENGTH, 0, &n_written); /* first_error */
+    write_padding (outBuffer, MAXIMUM_REQUEST_LENGTH, 20, &n_written);
+
+    send (g_io_channel_unix_get_fd (client->priv->channel), outBuffer, n_written, 0);
+
+    /* Cleanup */
+
+    g_free (name);
+}
+
+static void
+process_kb_use_extension (XClient *client, const guint8 *buffer, gssize buffer_length)
+{
+    /* Nothing to decode, we don't care about parameters */
+
+    /* Reply */
+
+    guint8 outBuffer[MAXIMUM_REQUEST_LENGTH];
+    gsize n_written = 0;
+
+    write_card8 (outBuffer, MAXIMUM_REQUEST_LENGTH, Reply, &n_written);
+    write_card8 (outBuffer, MAXIMUM_REQUEST_LENGTH, 1, &n_written); /* supported */
+    write_card16 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, client->priv->sequence_number, &n_written);
+    write_card32 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, 0, &n_written); /* length */
+    write_card16 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, 1, &n_written); /* serverMajor */
+    write_card16 (outBuffer, MAXIMUM_REQUEST_LENGTH, client->priv->byte_order, 0, &n_written); /* serverMinor */
+    write_padding (outBuffer, MAXIMUM_REQUEST_LENGTH, 20, &n_written);
+
+    send (g_io_channel_unix_get_fd (client->priv->channel), outBuffer, n_written, 0);
+}
+
 static void
 decode_request (XClient *client, const guint8 *buffer, gssize buffer_length)
 {
@@ -436,13 +685,34 @@ decode_request (XClient *client, const guint8 *buffer, gssize buffer_length)
         guint16 length;
 
         start_offset = offset;
-        client->priv->sequence_number++;
         opcode = read_card8 (buffer, buffer_length, &offset);
         read_card8 (buffer, buffer_length, &offset);
         length = read_card16 (buffer, buffer_length, client->priv->byte_order, &offset) * 4;
 
         g_debug ("Got opcode=%d length=%d", opcode, length);
         offset = start_offset + length;
+
+        switch (opcode)
+        {
+        case InternAtom:
+            process_intern_atom (client, buffer + start_offset, length);
+            break;
+        case GetProperty:
+            process_get_property (client, buffer + start_offset, length);
+            break;
+        case QueryExtension:
+            process_query_extension (client, buffer + start_offset, length);
+            break;
+        case kbUseExtension:
+            process_kb_use_extension (client, buffer + start_offset, length);
+            break;
+        default:
+            /* Send an error because we don't understand the opcode yet */
+            x_client_send_error (client, BadImplementation, opcode, 0);
+            break;
+        }
+
+        client->priv->sequence_number++;
     }
 }
 
index 387aed4689b177ceb6a2f3e715db743d9a714e45..0ede3e7b2a8921c073b87cfd9179e8252dcefc9f 100644 (file)
@@ -106,6 +106,8 @@ void x_client_send_failed (XClient *client, const gchar *reason);
 
 void x_client_send_success (XClient *client);
 
+void x_client_send_error (XClient *client, int type, int major, int minor);
+
 void x_client_disconnect (XClient *client);
 
 G_END_DECLS
diff --git a/tests/test-default-keyboard-layout b/tests/test-default-keyboard-layout
new file mode 100755 (executable)
index 0000000..705b48a
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner default-keyboard-layout test-gobject-greeter
diff --git a/tests/test-keyboard-variants b/tests/test-keyboard-variants
new file mode 100755 (executable)
index 0000000..7d9742e
--- /dev/null
@@ -0,0 +1,2 @@
+#!/bin/sh
+./src/dbus-env ./src/test-runner keyboard-variants test-gobject-greeter