summaryrefslogtreecommitdiffstats
path: root/compton.h
diff options
context:
space:
mode:
Diffstat (limited to 'compton.h')
-rw-r--r--compton.h35
1 files changed, 21 insertions, 14 deletions
diff --git a/compton.h b/compton.h
index 51f59eb98..ed3250065 100644
--- a/compton.h
+++ b/compton.h
@@ -149,7 +149,13 @@ typedef enum {
} winmode;
typedef struct {
- unsigned char *data;
+ // All pointers have the same length, right?
+ // I wanted to use anonymous union but it's a GNU extension...
+ union {
+ unsigned char *p8;
+ short *p16;
+ long *p32;
+ } data;
unsigned long nitems;
} winprop_t;
@@ -397,7 +403,7 @@ typedef struct {
/// Currently used refresh rate.
short refresh_rate;
/// Interval between refresh in nanoseconds.
- unsigned long refresh_intv;
+ long refresh_intv;
/// Nanosecond offset of the first painting.
long paint_tm_offset;
@@ -844,13 +850,13 @@ timeval_subtract(struct timeval *result,
struct timeval *y) {
/* Perform the carry for the later subtraction by updating y. */
if (x->tv_usec < y->tv_usec) {
- int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1;
+ long nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1;
y->tv_usec -= 1000000 * nsec;
y->tv_sec += nsec;
}
if (x->tv_usec - y->tv_usec > 1000000) {
- int nsec = (x->tv_usec - y->tv_usec) / 1000000;
+ long nsec = (x->tv_usec - y->tv_usec) / 1000000;
y->tv_usec += 1000000 * nsec;
y->tv_sec -= nsec;
}
@@ -879,13 +885,13 @@ timespec_subtract(struct timespec *result,
struct timespec *y) {
/* Perform the carry for the later subtraction by updating y. */
if (x->tv_nsec < y->tv_nsec) {
- int nsec = (y->tv_nsec - x->tv_nsec) / NS_PER_SEC + 1;
+ long nsec = (y->tv_nsec - x->tv_nsec) / NS_PER_SEC + 1;
y->tv_nsec -= NS_PER_SEC * nsec;
y->tv_sec += nsec;
}
if (x->tv_nsec - y->tv_nsec > NS_PER_SEC) {
- int nsec = (x->tv_nsec - y->tv_nsec) / NS_PER_SEC;
+ long nsec = (x->tv_nsec - y->tv_nsec) / NS_PER_SEC;
y->tv_nsec += NS_PER_SEC * nsec;
y->tv_sec -= nsec;
}
@@ -1036,7 +1042,8 @@ get_time_ms(void) {
gettimeofday(&tv, NULL);
- return tv.tv_sec * 1000 + tv.tv_usec / 1000;
+ return (unsigned long) tv.tv_sec * 1000
+ + (unsigned long) tv.tv_usec / 1000;
}
static int
@@ -1144,7 +1151,7 @@ wid_get_prop(const session_t *ps, Window w, Atom atom, long length,
rtype, &type, &format, &nitems, &after, &data)) {
if (type == rtype && format == rformat) {
return (winprop_t) {
- .data = data,
+ .data.p8 = data,
.nitems = nitems
};
}
@@ -1153,7 +1160,7 @@ wid_get_prop(const session_t *ps, Window w, Atom atom, long length,
XFree(data);
return (winprop_t) {
- .data = NULL,
+ .data.p8 = NULL,
.nitems = 0
};
}
@@ -1166,9 +1173,9 @@ wid_get_prop(const session_t *ps, Window w, Atom atom, long length,
static inline void
free_winprop(winprop_t *pprop) {
// Empty the whole structure to avoid possible issues
- if (pprop->data) {
- XFree(pprop->data);
- pprop->data = NULL;
+ if (pprop->data.p8) {
+ XFree(pprop->data.p8);
+ pprop->data.p8 = NULL;
}
pprop->nitems = 0;
}
@@ -1327,7 +1334,7 @@ static wintype_t
wid_get_prop_wintype(session_t *ps, Window w);
static void
-map_win(session_t *ps, Window id, bool override_redirect);
+map_win(session_t *ps, Window id);
static void
finish_map_win(session_t *ps, win *w);
@@ -1391,7 +1398,7 @@ static void
mark_client_win(session_t *ps, win *w, Window client);
static void
-add_win(session_t *ps, Window id, Window prev, bool override_redirect);
+add_win(session_t *ps, Window id, Window prev);
static void
restack_win(session_t *ps, win *w, Window new_above);