]> git.sur5r.net Git - i3/i3/commitdiff
save the last timestamp received by X11 in last_timestamp
authorMichael Stapelberg <michael@stapelberg.de>
Sun, 9 Oct 2011 19:18:38 +0000 (20:18 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Mon, 10 Oct 2011 14:54:17 +0000 (15:54 +0100)
We need it for startup notifications (to generate a unique id)

Conflicts:

include/i3.h
src/main.c

src/click.c
src/handlers.c

index c270bdecdef3affe71ea3eb28f211ff8333f6549..8ea182eb99647218f368ec8d1e34ca6f6b93bb1b 100644 (file)
@@ -259,6 +259,8 @@ int handle_button_press(xcb_button_press_event_t *event) {
     Con *con;
     DLOG("Button %d pressed on window 0x%08x\n", event->state, event->event);
 
+    last_timestamp = event->time;
+
     const uint32_t mod = config.floating_modifier;
     bool mod_pressed = (mod != 0 && (event->state & mod) == mod);
     DLOG("floating_mod = %d, detail = %d\n", mod_pressed, event->detail);
index b3cb1df7b703c28b26b48b46956ec04be96250d2..995622b9501c0b7f19ac9eb1145f29d7d15a2800 100644 (file)
@@ -80,6 +80,9 @@ bool event_is_ignored(const int sequence, const int response_type) {
  *
  */
 static int handle_key_press(xcb_key_press_event_t *event) {
+
+    last_timestamp = event->time;
+
     DLOG("Keypress %d, state raw = %d\n", event->detail, event->state);
 
     /* Remove the numlock bit, all other bits are modifiers we can bind to */
@@ -156,6 +159,8 @@ static void check_crossing_screen_boundary(uint32_t x, uint32_t y) {
 static int handle_enter_notify(xcb_enter_notify_event_t *event) {
     Con *con;
 
+    last_timestamp = event->time;
+
     DLOG("enter_notify for %08x, mode = %d, detail %d, serial %d\n",
          event->event, event->mode, event->detail, event->sequence);
     DLOG("coordinates %d, %d\n", event->event_x, event->event_y);
@@ -227,6 +232,9 @@ static int handle_enter_notify(xcb_enter_notify_event_t *event) {
  *
  */
 static int handle_motion_notify(xcb_motion_notify_event_t *event) {
+
+    last_timestamp = event->time;
+
     /* Skip events where the pointer was over a child window, we are only
      * interested in events on the root window. */
     if (event->child != 0)
@@ -1084,6 +1092,7 @@ void handle_event(int type, xcb_generic_event_t *event) {
         case XCB_PROPERTY_NOTIFY:
             DLOG("Property notify\n");
             xcb_property_notify_event_t *e = (xcb_property_notify_event_t*)event;
+            last_timestamp = e->time;
             property_notify(e->state, e->window, e->atom);
             break;