commit 205187626c6893820c9a973cf4a723fd876b6be1
Author: Kristian Høgsberg <krh@bitplanet.net>
Date:   Sat Feb 18 10:21:40 2012 -0500

    input-refactor

diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index 156859a..153ebe6 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -570,8 +570,8 @@
 
   </interface>
 
-  <interface name="wl_input_device" version="1">
-    <description summary="input device group">
+  <interface name="wl_pointer" version="1">
+    <description summary="pointer input device">
       A group of keyboards and pointer devices (mice, for
       example). This object is published as a global during start up,
       or when such a device is hot plugged.  A input_device group
@@ -614,17 +614,7 @@
       <arg name="state" type="uint"/>
     </event>
 
-    <event name="key">
-      <description summary="key event">
-	A key was pressed or released.
-      </description>
-
-      <arg name="time" type="uint"/>
-      <arg name="key" type="uint"/>
-      <arg name="state" type="uint"/>
-    </event>
-
-    <event name="pointer_enter">
+    <event name="enter">
       <description summary="pointer enter event">
 	Notification that this input device's pointer is focused on
 	certain surface. When an input_device enters a surface, the
@@ -638,25 +628,43 @@
       <arg name="surface_y" type="int"/>
     </event>
 
-    <event name="pointer_leave">
+    <event name="leave">
       <description summary="pointer leave event">
       </description>
       <arg name="time" type="uint"/>
       <arg name="surface" type="object" interface="wl_surface"/>
     </event>
+  </interface>
+
+  <interface name="wl_keyboard" version="1">
+    <description summary="keyboard input device"/>
 
-    <event name="keyboard_enter">
+    <event name="key">
+      <description summary="key event">
+	A key was pressed or released.
+      </description>
+
+      <arg name="time" type="uint"/>
+      <arg name="key" type="uint"/>
+      <arg name="state" type="uint"/>
+    </event>
+
+    <event name="enter">
       <arg name="time" type="uint"/>
       <arg name="surface" type="object" interface="wl_surface"/>
       <arg name="keys" type="array"/>
     </event>
 
-    <event name="keyboard_leave">
+    <event name="leave">
       <arg name="time" type="uint"/>
       <arg name="surface" type="object" interface="wl_surface"/>
     </event>
+  </interface>
 
-    <event name="touch_down">
+  <interface name="wl_touch" version="1">
+    <description summary="touch input device"/>
+
+    <event name="down">
       <arg name="time" type="uint"/>
       <arg name="surface" type="object" interface="wl_surface"/>
       <arg name="id" type="int" />
@@ -664,25 +672,25 @@
       <arg name="y" type="int" />
     </event>
 
-    <event name="touch_up">
+    <event name="up">
       <arg name="time" type="uint"/>
       <arg name="id" type="int" />
     </event>
 
-    <event name="touch_motion">
+    <event name="motion">
       <arg name="time" type="uint"/>
       <arg name="id" type="int" />
       <arg name="x" type="int" />
       <arg name="y" type="int" />
     </event>
 
-    <event name="touch_frame">
+    <event name="frame">
       <description summary="end of touch frame event">
 	Indicates the end of a contact point list.
       </description>
     </event>
 
-    <event name="touch_cancel">
+    <event name="cancel">
       <description summary="touch session cancelled">
 	Sent if the compositor decides the touch stream is a global
 	gesture. No further events are sent to the clients from that
@@ -691,6 +699,19 @@
     </event>
   </interface>
 
+  <interface name="wl_seat" version="1">
+    <event name="pointer">
+      <arg name="id" type="new_id" interface="wl_pointer"/>
+    </event>
+
+    <event name="keyboard">
+      <arg name="id" type="new_id" interface="wl_keyboard"/>
+    </event>
+
+    <event name="touch">
+      <arg name="id" type="new_id" interface="wl_touch"/>
+    </event>
+  </interface>
 
   <interface name="wl_output" version="1">
     <description summary="compositor output region">
