rpms/gdm/devel gdm-system-keyboard.patch, 1.1, 1.2 gdm.spec, 1.438, 1.439

Matthias Clasen mclasen at fedoraproject.org
Sat Feb 21 04:17:17 UTC 2009


Author: mclasen

Update of /cvs/pkgs/rpms/gdm/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv24019

Modified Files:
	gdm-system-keyboard.patch gdm.spec 
Log Message:
Improve handling of default keyboard layout


gdm-system-keyboard.patch:

Index: gdm-system-keyboard.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdm/devel/gdm-system-keyboard.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gdm-system-keyboard.patch	20 Oct 2008 16:16:24 -0000	1.1
+++ gdm-system-keyboard.patch	21 Feb 2009 04:17:16 -0000	1.2
@@ -1,29 +1,69 @@
---- gdm-2.24.0/daemon/gdm-session-direct.c	2008-08-21 00:31:47.000000000 -0400
-+++ hacked/daemon/gdm-session-direct.c	2008-10-20 00:20:05.000000000 -0400
-@@ -595,14 +595,41 @@
+diff -up gdm-2.25.2/configure.ac.system-keyboard gdm-2.25.2/configure.ac
+--- gdm-2.25.2/configure.ac.system-keyboard	2009-02-20 23:00:35.658319764 -0500
++++ gdm-2.25.2/configure.ac	2009-02-20 23:00:46.150086289 -0500
+@@ -69,6 +69,7 @@ AC_SUBST(COMMON_LIBS)
+ PKG_CHECK_MODULES(DAEMON,
+         dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
+         gobject-2.0 >= $GLIB_REQUIRED_VERSION
++	hal
+ )
+ AC_SUBST(DAEMON_CFLAGS)
+ AC_SUBST(DAEMON_LIBS)
+diff -up gdm-2.25.2/daemon/gdm-session-direct.c.system-keyboard gdm-2.25.2/daemon/gdm-session-direct.c
+--- gdm-2.25.2/daemon/gdm-session-direct.c.system-keyboard	2008-08-26 15:04:00.000000000 -0400
++++ gdm-2.25.2/daemon/gdm-session-direct.c	2009-02-20 23:01:17.830045657 -0500
+@@ -45,6 +45,8 @@
+ #include <dbus/dbus-glib.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+ 
++#include <libhal.h>
++
+ #include "gdm-session-direct.h"
+ #include "gdm-session.h"
+ #include "gdm-session-private.h"
+@@ -595,14 +597,60 @@ get_default_language_name (GdmSessionDir
      return setlocale (LC_MESSAGES, NULL);
  }
  
 +static char *
-+get_system_default_layout (void)
++get_system_default_layout (GdmSessionDirect *session)
 +{
-+    gchar *text, *p, *q;
-+    gsize *length;
++    DBusConnection *connection;
++    LibHalContext *ctx;
++    char **devices;
++    int n_devices;
++    char *layout;
 +    char *result;
 +
 +    result = NULL;
-+    if (g_file_get_contents ("/etc/sysconfig/keyboard", &text, &length, NULL)) {
-+        p = strstr (text, "KEYTABLE=\"");
-+        if (p) {
-+            p += strlen ("KEYTABLE=\"");
-+            q = strchr (p, '"');
-+            if (q) {
-+                result = g_strndup (p, q - p);
-+            }
-+        }
-+        g_free (text);
++
++    connection = dbus_g_connection_get_connection (session->priv->connection);
++    ctx = libhal_ctx_new ();
++    libhal_ctx_set_dbus_connection (ctx, connection);
++
++    if (!libhal_ctx_init (ctx, NULL)) {
++        goto out;
 +    }
 +
++    devices = libhal_find_device_by_capability (ctx,
++                                                "input.keyboard",
++                                                &n_devices,
++                                                NULL);
++    if (n_devices > 0) {
++        layout = libhal_device_get_property_string (ctx,
++                                                    devices[0],
++                                                    "input.xkb.layout",
++                                                    NULL);
++	result = g_strdup (layout);
++	libhal_free_string (layout);
++    }
++
++    libhal_free_string_array (devices);
++
++    libhal_ctx_shutdown (ctx, NULL);
++    libhal_ctx_free (ctx);
++
++out:
 +    if (!result) {
 +        result = g_strdup ("us");
 +    }
@@ -37,7 +77,7 @@
 -    if (session->priv->saved_layout != NULL) {
 -                return session->priv->saved_layout;
 +    if (!session->priv->saved_layout) {
-+        session->priv->saved_layout = get_system_default_layout ();
++        session->priv->saved_layout = get_system_default_layout (session);
      }
  
 -    return "us";
@@ -45,23 +85,24 @@
  }
  
  static char *
-@@ -1971,9 +1998,10 @@
+@@ -1971,9 +2019,10 @@ setup_session_environment (GdmSessionDir
                                                       "GDM_LANG",
                                                       get_language_name (session));
  
 -        gdm_session_direct_set_environment_variable (session,
 -                                                     "GDM_KEYBOARD_LAYOUT",
 -                                                     get_layout_name (session));
-+	if (g_strcmp0 (get_layout_name (session), get_system_default_layout ()) != 0)
++	if (g_strcmp0 (get_layout_name (session), get_system_default_layout (session)) != 0)
 +        	gdm_session_direct_set_environment_variable (session,
 +                                                     	     "GDM_KEYBOARD_LAYOUT",
 +                                                             get_layout_name (session));
  
          gdm_session_direct_set_environment_variable (session,
                                                       "DISPLAY",
---- gdm-2.24.0/daemon/gdm-session-settings.c	2008-07-10 11:07:42.000000000 -0400
-+++ hacked/daemon/gdm-session-settings.c	2008-10-19 23:55:02.000000000 -0400
-@@ -149,8 +149,7 @@
+diff -up gdm-2.25.2/daemon/gdm-session-settings.c.system-keyboard gdm-2.25.2/daemon/gdm-session-settings.c
+--- gdm-2.25.2/daemon/gdm-session-settings.c.system-keyboard	2008-08-26 15:04:00.000000000 -0400
++++ gdm-2.25.2/daemon/gdm-session-settings.c	2009-01-23 23:55:38.000000000 -0500
+@@ -149,8 +149,7 @@ gdm_session_settings_set_layout_name (Gd
  {
          g_return_if_fail (GDM_IS_SESSION_SETTINGS (settings));
  


Index: gdm.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdm/devel/gdm.spec,v
retrieving revision 1.438
retrieving revision 1.439
diff -u -r1.438 -r1.439
--- gdm.spec	20 Feb 2009 19:12:13 -0000	1.438
+++ gdm.spec	21 Feb 2009 04:17:16 -0000	1.439
@@ -16,7 +16,7 @@
 Summary: The GNOME Display Manager
 Name: gdm
 Version: 2.25.2
-Release: 4%{?dist}
+Release: 5%{?dist}
 Epoch: 1
 License: GPLv2+
 Group: User Interface/X
@@ -328,6 +328,10 @@
 %{_datadir}/gnome-2.0/ui/GNOME_FastUserSwitchApplet.xml
 
 %changelog
+* Fri Feb 20 2009 Matthias Clasen <mclasen at redhat.com> - 1:2.25.2-5
+- Get the default keyboard layout out of hal device properties
+  instead of /etc/sysconfig/keyboard
+
 * Fri Feb 20 2009 Ray Strode <rstrode at redhat.com> - 1:2.25.2-4
 - add Provides: service(graphical-login) to help anaconda
 




More information about the fedora-extras-commits mailing list