Clarify version and event/request order

Change-Id: I7f41a76b716112f49eac766dde08e7c5c52fa64a
diff --git a/protocol/input-method.xml b/protocol/input-method.xml
index c4ae5c4..a5bb826 100644
--- a/protocol/input-method.xml
+++ b/protocol/input-method.xml
@@ -2,7 +2,7 @@
 <protocol name="input_method">
   <copyright>
     Copyright © 2012 Intel Corporation
-    Copyright © 2013-2019 LG Electronics, Inc.
+    Copyright © 2013-2020 LG Electronics, Inc.
 
     Permission to use, copy, modify, distribute, and sell this
     software and its documentation for any purpose is hereby granted
@@ -188,13 +188,6 @@
       <arg name="purpose" type="uint"/>
     </event>
 
-    <event name="enter_key_type">
-      <description summary="set type of enter key">
-        Sets the type of the enter key on an input panel (virtual keyboard).
-      </description>
-      <arg name="enter_key_type" type="uint"/>
-    </event>
-
     <event name="invoke_action">
       <description summary="invoke action">
         Invokes a button action on a given position.
@@ -225,6 +218,13 @@
       <arg name="text" type="string"/>
     </event>
 
+    <event name="enter_key_type">
+      <description summary="set type of enter key">
+        Sets the type of the enter key on an input panel (virtual keyboard).
+      </description>
+      <arg name="enter_key_type" type="uint"/>
+    </event>
+
   </interface>
 
   <interface name="input_method" version="2">
@@ -267,7 +267,7 @@
       <arg name="context" type="object" interface="input_method_context"/>
     </event>
 
-    <request name="set_display_id">
+    <request name="set_display_id" since="2">
       <description summary="set display id">
         Sets the id of the display corresponding.
       </description>
diff --git a/protocol/text.xml b/protocol/text.xml
index 980d61f..e4f1096 100644
--- a/protocol/text.xml
+++ b/protocol/text.xml
@@ -3,7 +3,7 @@
 
   <copyright>
     Copyright © 2012 Intel Corporation
-    Copyright © 2013-2019 LG Electronics, Inc.
+    Copyright © 2013-2020 LG Electronics, Inc.
 
     Permission to use, copy, modify, distribute, and sell this
     software and its documentation for any purpose is hereby granted
@@ -166,13 +166,6 @@
       <entry name="previous" value="7" summary="show a Previous button"/>
     </enum>
 
-    <request name="set_enter_key_type">
-      <description summary="set type of enter key">
-        Sets the type of the enter key on an input panel (virtual keyboard).
-      </description>
-      <arg name="enter_key_type" type="uint"/>
-    </request>
-
     <request name="invoke_action">
       <description summary="invoke action">
         Invokes a button action on a given position.
@@ -189,32 +182,6 @@
       </description>
     </request>
 
-    <request name="set_max_text_length">
-      <description summary="set max length of input field">
-        Sets the maximum length of an input field.
-      </description>
-      <arg name="length" type="uint"/>
-    </request>
-
-    <request name="set_platform_data">
-      <description summary="set platform specific data">
-        Sets the platform specific data (text).
-      </description>
-      <arg name="text" type="string"/>
-    </request>
-
-    <request name="show_input_panel">
-      <description summary="show input panels">
-        Requests input panels (virtual keyboard) to show.
-      </description>
-    </request>
-
-    <request name="hide_input_panel">
-      <description summary="hide input panels">
-        Requests input panels (virtual keyboard) to hide.
-      </description>
-    </request>
-
     <event name="commit_string">
       <description summary="text to commit">
         Notifies when text should be inserted into the editor widget. The text
@@ -355,6 +322,18 @@
       <arg name="state" type="uint"/>
     </event>
 
+    <request name="show_input_panel">
+      <description summary="show input panels">
+        Requests input panels (virtual keyboard) to show.
+      </description>
+    </request>
+
+    <request name="hide_input_panel">
+      <description summary="hide input panels">
+        Requests input panels (virtual keyboard) to hide.
+      </description>
+    </request>
+
     <event name="input_panel_rect">
       <description summary="rect of the input panel">
         Notifies when the geometry of the input panel changes in surface local
@@ -366,6 +345,27 @@
       <arg name="height" type="uint"/>
     </event>
 
+    <request name="set_max_text_length">
+      <description summary="set max length of input field">
+        Sets the maximum length of an input field.
+      </description>
+      <arg name="length" type="uint"/>
+    </request>
+
+    <request name="set_platform_data">
+      <description summary="set platform specific data">
+        Sets the platform specific data (text).
+      </description>
+      <arg name="text" type="string"/>
+    </request>
+
+    <request name="set_enter_key_type">
+      <description summary="set type of enter key">
+        Sets the type of the enter key on an input panel (virtual keyboard).
+      </description>
+      <arg name="enter_key_type" type="uint"/>
+    </request>
+
     <request name="set_input_panel_rect">
       <description summary="set rect of the input panel">
         Requests the geometry of the input panel to change. The geometry should
diff --git a/protocol/webos-input-manager.xml b/protocol/webos-input-manager.xml
index bea7f3c..4114d55 100644
--- a/protocol/webos-input-manager.xml
+++ b/protocol/webos-input-manager.xml
@@ -2,7 +2,7 @@
 <protocol name="webos_input_manager">
 
   <copyright>
-    Copyright (c) 2014-2019 LG Electronics, Inc.
+    Copyright (c) 2014-2020 LG Electronics, Inc.
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -25,6 +25,14 @@
       get_webos_seat(seat).
     </description>
 
+    <request name="get_webos_seat">
+      <description summary="get webos seat">
+        Returns a webos_seat associated with the seat.
+      </description>
+      <arg name="id" type="new_id" interface="wl_webos_seat"/>
+      <arg name="seat" type="object" interface="wl_seat"/>
+    </request>
+
     <event name="cursor_visibility">
       <description summary="current cursor visibility">
         If the current cursor visibility is chagned, notify it.
@@ -40,14 +48,6 @@
       <arg name="visibility" type="uint" summary="boolean for the cursor visibility"/>
     </request>
 
-    <request name="get_webos_seat">
-      <description summary="get webos seat">
-        Returns a webos_seat associated with the seat.
-      </description>
-      <arg name="id" type="new_id" interface="wl_webos_seat"/>
-      <arg name="seat" type="object" interface="wl_seat"/>
-    </request>
-
   </interface>
 
   <interface name="wl_webos_seat" version="1">
diff --git a/protocol/webos-shell.xml b/protocol/webos-shell.xml
index b93b057..b174cf4 100644
--- a/protocol/webos-shell.xml
+++ b/protocol/webos-shell.xml
@@ -2,7 +2,7 @@
 <protocol name="webos_shell">
 
   <copyright>
-    Copyright (c) 2013-2019 LG Electronics, Inc.
+    Copyright (c) 2013-2020 LG Electronics, Inc.
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -38,165 +38,165 @@
       </description>
       <arg name="id" type="new_id" interface="wl_webos_shell_surface"/>
       <arg name="surface" type="object" interface="wl_surface"/>
-      </request>
+    </request>
 
-    </interface>
+  </interface>
 
-    <interface name="wl_webos_shell_surface" version="1">
-      <description summary="interface to handle webos shell surfaces">
-        This allows the client to associate an normal surface with a
-        shell surface. The shell surface provides webOS specific functionality
-        to surfaces.
+  <interface name="wl_webos_shell_surface" version="1">
+    <description summary="interface to handle webos shell surfaces">
+      This allows the client to associate an normal surface with a
+      shell surface. The shell surface provides webOS specific functionality
+      to surfaces.
+    </description>
+
+    <request name="set_location_hint">
+      <description summary="sets the preferred location hint">
+        The location hint is a guideline to the compositor where
+        to place the surface. The compositor will do its best to
+        place it there, however this is not guaranteed. Currently
+        The location hint is only applied to _WEBOS_WINDOW_TYPE_POPUP
+        and _WEBOS_WINDOW_TYPE_SYSTEM_UI surfaces.
       </description>
+      <arg name="hint" type="uint"/>
+    </request>
 
-      <request name="set_location_hint">
-        <description summary="sets the preferred location hint">
-          The location hint is a guideline to the compositor where
-          to place the surface. The compositor will do its best to
-          place it there, however this is not guaranteed. Currently
-          The location hint is only applied to _WEBOS_WINDOW_TYPE_POPUP
-          and _WEBOS_WINDOW_TYPE_SYSTEM_UI surfaces.
-        </description>
-        <arg name="hint" type="uint"/>
-      </request>
+    <enum name="location_hint">
+      <description summary="location mask for the surface">
+        Using this mask the surface can be positioned onto
+        different locations on screen. By not using absolute
+        coordinates we can create greater flexibility in the
+        compositor and the clients.
+      </description>
+      <entry name="north" value="1"/>
+      <entry name="west" value="2"/>
+      <entry name="south" value="4"/>
+      <entry name="east" value="8"/>
+      <entry name="center" value="16"/>
+    </enum>
 
-      <enum name="location_hint">
-        <description summary="location mask for the surface">
-          Using this mask the surface can be positioned onto
-          different locations on screen. By not using absolute
-          coordinates we can create greater flexibility in the
-          compositor and the clients.
-        </description>
-        <entry name="north" value="1"/>
-        <entry name="west" value="2"/>
-        <entry name="south" value="4"/>
-        <entry name="east" value="8"/>
-        <entry name="center" value="16"/>
-      </enum>
+    <enum name="state">
+      <description summary="the state of the surface">
+        The state provides info to the client on how the compositor has placed
+        the surface.
 
-      <enum name="state">
-        <description summary="the state of the surface">
-          The state provides info to the client on how the compositor has placed
-          the surface.
+        The default state will indicate to the client that it is windowed. The
+        "position_changed" event will tell the position in screen coordinates
+        when the surface is in this state.
+      </description>
+      <entry name="default" value="0"/>
+      <entry name="minimized" value="1"/>
+      <entry name="maximized" value="2"/>
+      <entry name="fullscreen" value="3"/>
+    </enum>
 
-          The default state will indicate to the client that it is windowed. The
-          "position_changed" event will tell the position in screen coordinates
-          when the surface is in this state.
-        </description>
-        <entry name="default" value="0"/>
-        <entry name="minimized" value="1"/>
-        <entry name="maximized" value="2"/>
-        <entry name="fullscreen" value="3"/>
-      </enum>
+    <event name="state_changed">
+      <description summary="the surface state was changed">
+        The compositor or the user has taken action that has resulted in
+        this surface to change state.
+      </description>
+      <arg name="state" type="uint"/>
+    </event>
 
-      <request name="set_state">
-        <description summary="sets the surface state">
-          The client requests its surface state to the compositor.
-        </description>
-        <arg name="state" type="uint"/>
-      </request>
+    <event name="position_changed">
+      <description summary="the surface position on screen changed">
+        This event will only be sent the surfaces that are in their default
+        state. It will be not sent for fullscreen surfaces nor for surfaces
+        that are minimized.
+      </description>
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+    </event>
 
-      <request name="set_property">
-        <description summary="sets the surface property">
-          The client sets the surface property to the compositor. The property
-          is given by a string pair (name, value).
-        </description>
-        <arg name="name" type="string"/>
-        <arg name="value" type="string"/>
-      </request>
+    <event name="close">
+      <description summary="request closing of window">
+        The close event is sent when the compositor requests closing
+        of a window, e.g. through some gesture or other interaction,
+        without explicitly quitting or killing the client.
+      </description>
+    </event>
 
-      <enum name="webos_key">
-        <description summary="the key that the surface handles">
-          The client uses wl_webos_shell_surface.set_key_mask to notify server
-          that it will handle specific keys only.
-        </description>
-        <entry name="home" value="1"/>
-        <entry name="back" value="2"/>
-        <entry name="exit" value="4"/>
-        <entry name="navigation_left" value="8"/>
-        <entry name="navigation_right" value="16"/>
-        <entry name="navigation_up" value="32"/>
-        <entry name="navigation_down" value="64"/>
-        <entry name="navigation_ok" value="128"/>
-        <entry name="numeric_keys" value="256"/>
-        <entry name="remote_color_red" value="512"/>
-        <entry name="remote_color_green" value="1024"/>
-        <entry name="remote_color_yellow" value="2048"/>
-        <entry name="remote_color_blue" value="4096"/>
-        <entry name="remote_programme_group" value="8192"/>
-        <entry name="remote_playback_group" value="16384"/>
-        <entry name="remote_teletext_group" value="32768"/>
-        <entry name="local_left" value="65536"/>
-        <entry name="local_right" value="131072"/>
-        <entry name="local_up" value="262144"/>
-        <entry name="local_down" value="524288"/>
-        <entry name="local_ok" value="1048576"/>
-        <entry name="remote_magnifier_group" value="2097152"/>
-        <entry name="minimal_playback_group" value="4194304"/>
-        <entry name="guide" value="8388608"/>
-        <entry name="default" value="0xFFFFFFF8"/>
-      </enum>
+    <request name="set_state">
+      <description summary="sets the surface state">
+        The client requests its surface state to the compositor.
+      </description>
+      <arg name="state" type="uint"/>
+    </request>
 
-      <request name="set_key_mask">
-        <description summary="sets the key mask for this surface">
-          A value of '1' in the mask indicates that the respective key event (both press and release)
-          will be delivered to the client. Bitwise XOR operation against the default mask value and
-          a supported individual values will result in that key not being delivered to the client.
-          Notice that the default value omits certain keys.
+    <request name="set_property">
+      <description summary="sets the surface property">
+        The client sets the surface property to the compositor. The property
+        is given by a string pair (name, value).
+      </description>
+      <arg name="name" type="string"/>
+      <arg name="value" type="string"/>
+    </request>
 
-          The compositor is free to ignore certain keys even if set to '1' depending on the overall
-          system UI behaviour, most commonly this will mean the HOME key.
+    <event name="exposed">
+      <description summary="indicates what areas are exposed">
+        The array contains non-overlapping rectangles that define
+        areas that are visible in this surface. The array elements
+        are a series of ints arranged as follows x,y,w,h,x,y,w,h,-1.
+        The values will not contain negative numbers and the -1 is
+        treated as a terminating marker.
+      </description>
+      <arg name="rectangles" type="array"/>
+    </event>
 
-          NOTE: This protocol will eventually replace the string property based key filtering.
-        </description>
-        <arg name="webos_key" type="uint"/>
-      </request>
+    <event name="state_about_to_change">
+      <description summary="the surface state is about to change">
+        Be sure that the actual state should not be changed with this.
+        Client can only prepare that state will be changed.
+      </description>
+      <arg name="state" type="uint"/>
+    </event>
 
-      <event name="state_changed">
-        <description summary="the surface state was changed">
-          The compositor or the user has taken action that has resulted in
-          this surface to change state.
-        </description>
-        <arg name="state" type="uint"/>
-      </event>
+    <enum name="webos_key">
+      <description summary="the key that the surface handles">
+        The client uses wl_webos_shell_surface.set_key_mask to notify server
+        that it will handle specific keys only.
+      </description>
+      <entry name="home" value="1"/>
+      <entry name="back" value="2"/>
+      <entry name="exit" value="4"/>
+      <entry name="navigation_left" value="8"/>
+      <entry name="navigation_right" value="16"/>
+      <entry name="navigation_up" value="32"/>
+      <entry name="navigation_down" value="64"/>
+      <entry name="navigation_ok" value="128"/>
+      <entry name="numeric_keys" value="256"/>
+      <entry name="remote_color_red" value="512"/>
+      <entry name="remote_color_green" value="1024"/>
+      <entry name="remote_color_yellow" value="2048"/>
+      <entry name="remote_color_blue" value="4096"/>
+      <entry name="remote_programme_group" value="8192"/>
+      <entry name="remote_playback_group" value="16384"/>
+      <entry name="remote_teletext_group" value="32768"/>
+      <entry name="local_left" value="65536"/>
+      <entry name="local_right" value="131072"/>
+      <entry name="local_up" value="262144"/>
+      <entry name="local_down" value="524288"/>
+      <entry name="local_ok" value="1048576"/>
+      <entry name="remote_magnifier_group" value="2097152"/>
+      <entry name="minimal_playback_group" value="4194304"/>
+      <entry name="guide" value="8388608"/>
+      <entry name="default" value="0xFFFFFFF8"/>
+    </enum>
 
-      <event name="position_changed">
-        <description summary="the surface position on screen changed">
-          This event will only be sent the surfaces that are in their default
-          state. It will be not sent for fullscreen surfaces nor for surfaces
-          that are minimized.
-        </description>
-        <arg name="x" type="int"/>
-        <arg name="y" type="int"/>
-      </event>
+    <request name="set_key_mask">
+      <description summary="sets the key mask for this surface">
+        A value of '1' in the mask indicates that the respective key event (both press and release)
+        will be delivered to the client. Bitwise XOR operation against the default mask value and
+        a supported individual values will result in that key not being delivered to the client.
+        Notice that the default value omits certain keys.
 
-      <event name="close">
-        <description summary="request closing of window">
-          The close event is sent when the compositor requests closing
-          of a window, e.g. through some gesture or other interaction,
-          without explicitly quitting or killing the client.
-        </description>
-      </event>
+        The compositor is free to ignore certain keys even if set to '1' depending on the overall
+        system UI behaviour, most commonly this will mean the HOME key.
 
-      <event name="exposed">
-        <description summary="indicates what areas are exposed">
-          The array contains non-overlapping rectangles that define
-          areas that are visible in this surface. The array elements
-          are a series of ints arranged as follows x,y,w,h,x,y,w,h,-1.
-          The values will not contain negative numbers and the -1 is
-          treated as a terminating marker.
-        </description>
-        <arg name="rectangles" type="array"/>
-      </event>
+        NOTE: This protocol will eventually replace the string property based key filtering.
+      </description>
+      <arg name="webos_key" type="uint"/>
+    </request>
 
-      <event name="state_about_to_change">
-        <description summary="the surface state is about to change">
-          Be sure that the actual state should not be changed with this.
-          Client can only prepare that state will be changed.
-        </description>
-        <arg name="state" type="uint"/>
-      </event>
-
-    </interface>
+  </interface>
 
 </protocol>
diff --git a/protocol/webos-surface-group.xml b/protocol/webos-surface-group.xml
index 6f321f3..038bd27 100644
--- a/protocol/webos-surface-group.xml
+++ b/protocol/webos-surface-group.xml
@@ -2,7 +2,7 @@
 <protocol name="webos_surface_group">
 
   <copyright>
-    Copyright (c) 2014-2019 LG Electronics, Inc.
+    Copyright (c) 2014-2020 LG Electronics, Inc.
 
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
@@ -136,6 +136,23 @@
       <arg name="surface" type="object" interface="wl_surface"/>
     </request>
 
+    <event name="owner_destroyed">
+      <description summary="sent to clients attached to this group">
+        If the owner crashes or normally destroys this group the attached
+        client will receive this notification.
+
+        Since compositor does not know what to do with client surface still
+        attached to this group it will not show them. A well behaving client
+        will 'detach' from this group and release its assosicated resource
+      </description>
+    </event>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy object">
+        Destroys the surface group object.
+      </description>
+    </request>
+
     <request name="focus_owner">
       <description summary="transfers keyboard focus to group owner surface">
         Using "focus_owner" a surface-group-client or a surface-group-owner can transfer
@@ -151,23 +168,6 @@
       <arg name="layer" type="string"/>
     </request>
 
-    <request name="destroy" type="destructor">
-      <description summary="destroy object">
-        Destroys the surface group object.
-      </description>
-    </request>
-
-    <event name="owner_destroyed">
-      <description summary="sent to clients attached to this group">
-        If the owner crashes or normally destroys this group the attached
-        client will receive this notification.
-
-        Since compositor does not know what to do with client surface still
-        attached to this group it will not show them. A well behaving client
-        will 'detach' from this group and release its assosicated resource
-      </description>
-    </event>
-
   </interface>
 
   <interface name="wl_webos_surface_group_layer" version="1">