open-src/xserver/xorg/hotkey.patch
author Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
Mon, 09 May 2011 14:58:28 -0700
changeset 1124 7bc7e624f965
parent 1088 1c99106ccbe0
child 1179 4ad971e180c3
permissions -rw-r--r--
7042476 Xorg 1.10 & associated module updates [PSARC/2011/214] PSARC/2011/213 X Synchronization Extension version 3.1 PSARC/2011/214 Xorg server 1.10
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1124
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
     1
diff --git a/Xi/exevents.c b/Xi/exevents.c
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
     2
index 327873e..717f275 100644
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
     3
--- a/Xi/exevents.c
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
     4
+++ b/Xi/exevents.c
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
     5
@@ -187,7 +187,16 @@ CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master)
1088
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
     6
 {
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 764
diff changeset
     7
     KeyClassPtr mk = master->key;
1088
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
     8
 
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
     9
+#ifdef SUNSOFT
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    10
+    DeviceIntPtr mdev = dixLookupPrivate(&master->devPrivates,
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    11
+	HotkeyMapDevicePrivateKey);
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    12
+#endif
1088
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    13
+
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    14
+#ifdef SUNSOFT
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 764
diff changeset
    15
+    if ((device == master) || (device == mdev))
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    16
+#else
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 764
diff changeset
    17
     if (device == master)
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    18
+#endif
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 764
diff changeset
    19
         return;
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    20
 
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 764
diff changeset
    21
     mk->sourceid = device->id;
1124
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
    22
diff --git a/Xi/extinit.c b/Xi/extinit.c
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
    23
index 82df7eb..6b99fae 100644
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
    24
--- a/Xi/extinit.c
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
    25
+++ b/Xi/extinit.c
1088
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    26
@@ -371,6 +371,10 @@ extern XExtensionVersion XIVersion;
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    27
 
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    28
 Mask PropagateMask[MAXDEVICES];
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    29
 
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    30
+#ifdef SUNSOFT
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    31
+DevPrivateKeyRec HotkeyMapDevicePrivateKeyRec;
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    32
+#endif
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    33
+
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    34
 /*****************************************************************
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    35
  *
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    36
  * Versioning support
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    37
@@ -1255,6 +1259,11 @@ XInputExtensionInit(void)
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    38
     if (!dixRegisterPrivateKey(&XIClientPrivateKeyRec, PRIVATE_CLIENT, sizeof(XIClientRec)))
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    39
         FatalError("Cannot request private for XI.\n");
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    40
 
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    41
+#ifdef SUNSOFT   
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    42
+    if (!dixRegisterPrivateKey(&HotkeyMapDevicePrivateKeyRec, PRIVATE_DEVICE, 0))
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    43
+        FatalError("Cannot request private for hotkey.\n");
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    44
+#endif
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    45
+
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    46
     if (!AddCallback(&ClientStateCallback, XIClientCallback, 0))
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    47
         FatalError("Failed to add callback to XI.\n");
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    48
 
1124
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
    49
diff --git a/config/hal.c b/config/hal.c
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
    50
index 297520a..44c1582 100644
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
    51
--- a/config/hal.c
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
    52
+++ b/config/hal.c
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
    53
@@ -123,6 +123,63 @@ get_prop_string_array(LibHalContext *hal_ctx, const char *udi, const char *prop)
1088
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    54
     return ret;
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    55
 }
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    56
 
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    57
+#ifdef SUNSOFT
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 764
diff changeset
    58
+static void
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    59
+add_extra_device(char *driver)
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    60
+{
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    61
+    DeviceIntPtr	dev;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    62
+    char		*config_info = NULL;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    63
+    InputOption 	*options = NULL, *tmpo = NULL;
1088
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    64
+    InputAttributes	attrs = {0};
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    65
+
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    66
+    options = xcalloc(sizeof(*options), 1);
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    67
+    if (!options){
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    68
+	LogMessage(X_ERROR, "config/hal: couldn't allocate space for input options!\n");
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    69
+        goto unwind;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    70
+    }
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    71
+
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    72
+    options->key = xstrdup("_source");
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    73
+    options->value = xstrdup("server/hal");
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    74
+    if (!options->key || !options->value) {
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    75
+	LogMessage(X_ERROR, "config/hal: couldn't allocate first key/value pair\n");
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    76
+	goto unwind;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    77
+    }
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    78
+
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    79
+    add_option(&options, "driver", driver);
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    80
+    add_option(&options, "name", driver);
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    81
+
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    82
+    config_info = xalloc(strlen(driver) + 5); /* "hal:" and NULL */
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    83
+    if (!config_info) {
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    84
+	LogMessage(X_ERROR, "config/hal: couldn't allocate name\n");
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    85
+	goto unwind;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    86
+    }
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    87
+    sprintf(config_info, "hal:%s", driver);
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    88
+
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    89
+    /* Check for duplicate devices */
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    90
+    if (device_is_duplicate(config_info))
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    91
+	goto unwind;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    92
+
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    93
+    LogMessage(X_INFO, "config/hal: Adding input device %s\n", driver);
1088
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
    94
+    if (NewInputDeviceRequest(options, &attrs, &dev) != Success) {
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    95
+	LogMessage(X_ERROR, "config/hal: NewInputDeviceRequest failed\n");
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    96
+	dev = NULL;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    97
+	goto unwind;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    98
+    }
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
    99
+
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   100
+    dev->config_info = xstrdup(config_info);
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   101
+
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   102
+unwind:
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   103
+    if (config_info)
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   104
+	xfree(config_info);
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   105
+    while (!dev && (tmpo = options)) {
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   106
+	options = tmpo->next;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   107
+	xfree(tmpo->key);
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   108
+	xfree(tmpo->value);
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   109
+	xfree(tmpo);
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   110
+    }
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   111
+}
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   112
+#endif
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   113
+
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 764
diff changeset
   114
 static void
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   115
 device_added(LibHalContext *hal_ctx, const char *udi)
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   116
 {
1124
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
   117
@@ -134,6 +191,9 @@ device_added(LibHalContext *hal_ctx, const char *udi)
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   118
     DBusError error;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   119
     struct xkb_options xkb_opts = {0};
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   120
     int rc;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   121
+#ifdef SUNSOFT
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   122
+    char *mdriver = NULL;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   123
+#endif
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   124
 
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   125
     LibHalPropertySet *set = NULL;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   126
 	LibHalPropertySetIterator set_iter;
1124
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
   127
@@ -377,6 +437,16 @@ device_added(LibHalContext *hal_ctx, const char *udi)
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   128
         add_option(&options, "xkb_options", xkb_opts.options);
1124
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
   129
     add_option(&options, "config_info", config_info);
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   130
 
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   131
+#ifdef SUNSOFT
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   132
+    for (tmpo = options; tmpo; tmpo = tmpo->next) {
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   133
+	if (!strcmp(tmpo->key, "mdriver") && (tmpo->value))
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   134
+	    mdriver = tmpo->value;
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   135
+    }
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   136
+ 
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   137
+    if (mdriver)
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   138
+	add_extra_device (mdriver);
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   139
+#endif
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   140
+   
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   141
     /* this isn't an error, but how else do you output something that the user can see? */
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   142
     LogMessage(X_INFO, "config/hal: Adding input device %s\n", name);
1088
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
   143
     if ((rc = NewInputDeviceRequest(options, &attrs, &dev)) != Success) {
1124
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
   144
diff --git a/config/x11-input.fdi b/config/x11-input.fdi
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
   145
index b263f36..425aec2 100644
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
   146
--- a/config/x11-input.fdi
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
   147
+++ b/config/x11-input.fdi
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
   148
@@ -71,6 +71,12 @@
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   149
       <!-- If we're using Linux, we use evdev by default (falling back to
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   150
            kbd otherwise). -->
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   151
       <merge key="input.x11_driver" type="string">kbd</merge>
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   152
+        <match key="/org/freedesktop/Hal/devices/computer:system.formfactor" string="laptop">
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   153
+          <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   154
+                string="SunOS">
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   155
+            <merge key="input.x11_options.mdriver" type="string">hotkey</merge>
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   156
+          </match>
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   157
+        </match>
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   158
       <merge key="input.x11_options.XkbModel" type="string">pc105</merge>
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   159
       <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   160
              string="Linux">
1124
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
   161
diff --git a/include/inputstr.h b/include/inputstr.h
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
   162
index b74ee04..808f36f 100644
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
   163
--- a/include/inputstr.h
7bc7e624f965 7042476 Xorg 1.10 & associated module updates [PSARC/2011/214]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1088
diff changeset
   164
+++ b/include/inputstr.h
1088
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
   165
@@ -57,6 +57,11 @@ SOFTWARE.
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 764
diff changeset
   166
 #include "geext.h"
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 764
diff changeset
   167
 #include "privates.h"
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   168
 
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   169
+#ifdef SUNSOFT
1088
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
   170
+extern _X_EXPORT DevPrivateKeyRec HotkeyMapDevicePrivateKeyRec;
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
   171
+#define HotkeyMapDevicePrivateKey (&HotkeyMapDevicePrivateKeyRec)
764
ab397169f258 6824603 ACPI hotkey X support
Henry Zhao <Henry.Zhao@Sun.COM>
parents:
diff changeset
   172
+#endif
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 764
diff changeset
   173
+
1088
1c99106ccbe0 6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 851
diff changeset
   174
 #define BitIsOn(ptr, bit) (!!(((BYTE *) (ptr))[(bit)>>3] & (1 << ((bit) & 7))))
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 764
diff changeset
   175
 #define SetBit(ptr, bit)  (((BYTE *) (ptr))[(bit)>>3] |= (1 << ((bit) & 7)))
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 764
diff changeset
   176
 #define ClearBit(ptr, bit) (((BYTE *)(ptr))[(bit)>>3] &= ~(1 << ((bit) & 7)))