summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2008-10-27 00:10:57 +0100
committerMikael Magnusson <mikachu@gmail.com>2008-10-27 00:27:57 +0100
commitf34b2571b99f40885548fc3ea7c8c5b45ba64335 (patch)
tree403d37cddf7f6c10d739dc39baaeeb0d6fde8ef9 /openbox
parent4a9b25ad58d9098bf55d04ca907f2f3865dea7e0 (diff)
Correct a 64-bit bug in event_time_after
The code assumed the timestamps had the same domain as the type Xlib uses for them, which is almost never the case with Xlib. Change all involved variables to guint32.
Diffstat (limited to 'openbox')
-rw-r--r--openbox/event.c8
-rw-r--r--openbox/event.h2
2 files changed, 6 insertions, 4 deletions
diff --git a/openbox/event.c b/openbox/event.c
index 3abaa675..5f1ae255 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -1999,7 +1999,7 @@ void event_cancel_all_key_grabs(void)
XSync(ob_display, FALSE);
}
-gboolean event_time_after(Time t1, Time t2)
+gboolean event_time_after(guint32 t1, guint32 t2)
{
g_assert(t1 != CurrentTime);
g_assert(t2 != CurrentTime);
@@ -2012,8 +2012,10 @@ gboolean event_time_after(Time t1, Time t2)
- http://tronche.com/gui/x/xlib/input/pointer-grabbing.html
*/
- /* TIME_HALF is half of the number space of a Time type variable */
-#define TIME_HALF (Time)(1 << (sizeof(Time)*8-1))
+ /* TIME_HALF is not half of the number space of a Time type variable.
+ * Rather, it is half the number space of a timestamp value, which is
+ * always 32 bits. */
+#define TIME_HALF (guint32)(1 << 31)
if (t2 >= TIME_HALF)
/* t2 is in the second half so t1 might wrap around and be smaller than
diff --git a/openbox/event.h b/openbox/event.h
index 93af6b4c..a4bd8865 100644
--- a/openbox/event.h
+++ b/openbox/event.h
@@ -65,7 +65,7 @@ void event_halt_focus_delay();
/*! Compare t1 and t2, taking into account wraparound. True if t1
comes at the same time or later than t2. */
-gboolean event_time_after(Time t1, Time t2);
+gboolean event_time_after(guint32 t1, guint32 t2);
Time event_get_server_time();