Add key_state and button_state enums
authorDaniel Stone <daniel@fooishbar.org>
Wed, 30 May 2012 15:31:48 +0000 (16:31 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 31 May 2012 18:02:20 +0000 (14:02 -0400)
Rather than hardcoding 0 and 1 everywhere.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
protocol/wayland.xml
src/data-device.c
src/wayland-server.c

index eb09849..d9fb5c2 100644 (file)
       <arg name="surface_y" type="fixed"/>
     </event>
 
+    <enum name="button_state">
+      <description summary="physical button state">
+        Describes the physical state of a button which provoked the button
+       event.
+      </description>
+      <entry name="released" value="0" summary="button is not pressed"/>
+      <entry name="pressed" value="1" summary="button is pressed"/>
+    </enum>
+
     <event name="button">
       <description summary="pointer button event">
        Mouse button click and release notifications.  The location
       <arg name="surface" type="object" interface="wl_surface"/>
     </event>
 
+    <enum name="key_state">
+      <description summary="physical key state">
+        Describes the physical state of a key which provoked the key event.
+       When a key repeats, the sequence is down -> repeat -> repeat -> up.
+      </description>
+      <entry name="released" value="0" summary="key is not pressed"/>
+      <entry name="pressed" value="1" summary="key is pressed"/>
+      <entry name="repeat" value="2" summary="key is pressed and repeating"/>
+    </enum>
+
     <event name="key">
       <description summary="key event">
        A key was pressed or released.
index a6d465f..60e7578 100644 (file)
@@ -260,15 +260,18 @@ data_device_end_drag_grab(struct wl_seat *seat)
 
 static void
 drag_grab_button(struct wl_pointer_grab *grab,
-                uint32_t time, uint32_t button, uint32_t state)
+                uint32_t time, uint32_t button, uint32_t state_w)
 {
        struct wl_seat *seat = container_of(grab, struct wl_seat, drag_grab);
+       enum wl_pointer_button_state state = state_w;
 
        if (seat->drag_focus_resource &&
-           seat->pointer->grab_button == button && state == 0)
+           seat->pointer->grab_button == button &&
+           state == WL_POINTER_BUTTON_STATE_RELEASED)
                wl_data_device_send_drop(seat->drag_focus_resource);
 
-       if (seat->pointer->button_count == 0 && state == 0) {
+       if (seat->pointer->button_count == 0 &&
+           state == WL_POINTER_BUTTON_STATE_RELEASED) {
                data_device_end_drag_grab(seat);
                if (seat->drag_data_source)
                        wl_list_remove(&seat->drag_data_source_listener.link);
index 323d32d..ec0d0e8 100644 (file)
@@ -493,19 +493,21 @@ default_grab_motion(struct wl_pointer_grab *grab,
 
 static void
 default_grab_button(struct wl_pointer_grab *grab,
-                   uint32_t time, uint32_t button, uint32_t state)
+                   uint32_t time, uint32_t button, uint32_t state_w)
 {
        struct wl_pointer *pointer = grab->pointer;
        struct wl_resource *resource;
        uint32_t serial;
+       enum wl_pointer_button_state state = state_w;
 
        resource = pointer->focus_resource;
        if (resource) {
                serial = wl_display_next_serial(resource->client->display);
-               wl_pointer_send_button(resource, serial, time, button, state);
+               wl_pointer_send_button(resource, serial, time, button, state_w);
        }
 
-       if (pointer->button_count == 0 && state == 0)
+       if (pointer->button_count == 0 &&
+           state == WL_POINTER_BUTTON_STATE_RELEASED)
                wl_pointer_set_focus(pointer, pointer->current,
                                     pointer->current_x, pointer->current_y);
 }