aboutsummaryrefslogtreecommitdiffstats
path: root/x11/gdm
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2009-12-07 07:03:54 +0800
committermarcus <marcus@FreeBSD.org>2009-12-07 07:03:54 +0800
commit68db65fca3bc93f32631a7955700d86882e2c988 (patch)
tree33841c79380b40c88eb75d195769a97b2113fe8d /x11/gdm
parent458d27eb576d599777d0254b6ca7aa3168b31ba3 (diff)
downloadfreebsd-ports-gnome-68db65fca3bc93f32631a7955700d86882e2c988.tar.gz
freebsd-ports-gnome-68db65fca3bc93f32631a7955700d86882e2c988.tar.zst
freebsd-ports-gnome-68db65fca3bc93f32631a7955700d86882e2c988.zip
Add keyboard invariant support to GDM.
PR: 141143 Submitted by: Andreas Wetzel <mickey242@gmx.net>
Diffstat (limited to 'x11/gdm')
-rw-r--r--x11/gdm/Makefile2
-rw-r--r--x11/gdm/files/patch-daemon_gdm-session-direct.c41
2 files changed, 42 insertions, 1 deletions
diff --git a/x11/gdm/Makefile b/x11/gdm/Makefile
index 61e666cd0f02..a7b212ae9724 100644
--- a/x11/gdm/Makefile
+++ b/x11/gdm/Makefile
@@ -8,7 +8,7 @@
PORTNAME= gdm
PORTVERSION= 2.28.1
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= x11 gnome
MASTER_SITES= GNOME
DIST_SUBDIR= gnome2
diff --git a/x11/gdm/files/patch-daemon_gdm-session-direct.c b/x11/gdm/files/patch-daemon_gdm-session-direct.c
new file mode 100644
index 000000000000..6f6c9df8bceb
--- /dev/null
+++ b/x11/gdm/files/patch-daemon_gdm-session-direct.c
@@ -0,0 +1,41 @@
+
+--- daemon/gdm-session-direct.c.orig 2009-12-02 15:15:33.000000000 +0100
++++ daemon/gdm-session-direct.c 2009-12-02 15:15:41.000000000 +0100
+@@ -608,6 +608,7 @@
+ char **devices;
+ int n_devices;
+ char *layout;
++ char *variant;
+ char *result;
+
+ result = NULL;
+@@ -635,8 +636,26 @@
+ "input.xkb.layout",
+ NULL);
+ }
+- result = g_strdup (layout);
++
++ variant = libhal_device_get_property_string (ctx,
++ devices[0],
++ "input.x11_options.XkbVariant",
++ NULL);
++
++ if (!variant) {
++ variant = libhal_device_get_property_string (ctx,
++ devices[0],
++ "input.xkb.variant",
++ NULL);
++ }
++
++ if(layout && variant)
++ result = g_strdup_printf("%s\t%s", layout, variant);
++ else
++ result = g_strdup (layout);
++
+ libhal_free_string (layout);
++ libhal_free_string (variant);
+ }
+
+ libhal_free_string_array (devices);
+
+