event: use log levels, not ifdefs
And some general clean up. Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
parent
17c96eb9ba
commit
e414fee91f
71
src/event.c
71
src/event.c
|
@ -4,6 +4,7 @@
|
||||||
#include <X11/Xlibint.h>
|
#include <X11/Xlibint.h>
|
||||||
#include <X11/extensions/sync.h>
|
#include <X11/extensions/sync.h>
|
||||||
|
|
||||||
|
#include "compiler.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "compton.h"
|
#include "compton.h"
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
|
@ -40,30 +41,32 @@
|
||||||
/**
|
/**
|
||||||
* Get a window's name from window ID.
|
* Get a window's name from window ID.
|
||||||
*/
|
*/
|
||||||
static inline void attr_unused ev_window_name(session_t *ps, xcb_window_t wid, char **name) {
|
static inline const char *ev_window_name(session_t *ps, xcb_window_t wid) {
|
||||||
*name = "";
|
char *name = "";
|
||||||
if (wid) {
|
if (wid) {
|
||||||
*name = "(Failed to get title)";
|
name = "(Failed to get title)";
|
||||||
if (ps->root == wid)
|
if (ps->root == wid) {
|
||||||
*name = "(Root window)";
|
name = "(Root window)";
|
||||||
else if (ps->overlay == wid)
|
} else if (ps->overlay == wid) {
|
||||||
*name = "(Overlay)";
|
name = "(Overlay)";
|
||||||
else {
|
} else {
|
||||||
win *w = find_win(ps, wid);
|
win *w = find_win(ps, wid);
|
||||||
if (!w)
|
if (!w) {
|
||||||
w = find_toplevel(ps, wid);
|
w = find_toplevel(ps, wid);
|
||||||
|
}
|
||||||
|
|
||||||
if (w)
|
if (w) {
|
||||||
win_get_name(ps, w);
|
win_get_name(ps, w);
|
||||||
if (w && w->name)
|
if (w->name) {
|
||||||
*name = w->name;
|
name = w->name;
|
||||||
else
|
}
|
||||||
*name = "unknown";
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline xcb_window_t attr_unused ev_window(session_t *ps, xcb_generic_event_t *ev) {
|
static inline xcb_window_t attr_pure ev_window(session_t *ps, xcb_generic_event_t *ev) {
|
||||||
switch (ev->response_type) {
|
switch (ev->response_type) {
|
||||||
case FocusIn:
|
case FocusIn:
|
||||||
case FocusOut: return ((xcb_focus_in_event_t *)ev)->event;
|
case FocusOut: return ((xcb_focus_in_event_t *)ev)->event;
|
||||||
|
@ -90,11 +93,7 @@ static inline xcb_window_t attr_unused ev_window(session_t *ps, xcb_generic_even
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int attr_unused ev_serial(xcb_generic_event_t *ev) {
|
static inline const char * ev_name(session_t *ps, xcb_generic_event_t *ev) {
|
||||||
return ev->full_sequence;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline const char *attr_unused ev_name(session_t *ps, xcb_generic_event_t *ev) {
|
|
||||||
static char buf[128];
|
static char buf[128];
|
||||||
switch (ev->response_type & 0x7f) {
|
switch (ev->response_type & 0x7f) {
|
||||||
CASESTRRET(FocusIn);
|
CASESTRRET(FocusIn);
|
||||||
|
@ -130,7 +129,7 @@ static inline const char *attr_unused ev_name(session_t *ps, xcb_generic_event_t
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline const char *ev_focus_mode_name(xcb_focus_in_event_t *ev) {
|
static inline const char *attr_pure ev_focus_mode_name(xcb_focus_in_event_t *ev) {
|
||||||
switch (ev->mode) {
|
switch (ev->mode) {
|
||||||
CASESTRRET(NotifyNormal);
|
CASESTRRET(NotifyNormal);
|
||||||
CASESTRRET(NotifyWhileGrabbed);
|
CASESTRRET(NotifyWhileGrabbed);
|
||||||
|
@ -141,7 +140,7 @@ static inline const char *ev_focus_mode_name(xcb_focus_in_event_t *ev) {
|
||||||
return "Unknown";
|
return "Unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline const char *ev_focus_detail_name(xcb_focus_in_event_t *ev) {
|
static inline const char *attr_pure ev_focus_detail_name(xcb_focus_in_event_t *ev) {
|
||||||
switch (ev->detail) {
|
switch (ev->detail) {
|
||||||
CASESTRRET(NotifyAncestor);
|
CASESTRRET(NotifyAncestor);
|
||||||
CASESTRRET(NotifyVirtual);
|
CASESTRRET(NotifyVirtual);
|
||||||
|
@ -156,24 +155,15 @@ static inline const char *ev_focus_detail_name(xcb_focus_in_event_t *ev) {
|
||||||
return "Unknown";
|
return "Unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void attr_unused ev_focus_report(xcb_focus_in_event_t *ev) {
|
static inline void ev_focus_in(session_t *ps, xcb_focus_in_event_t *ev) {
|
||||||
log_trace("{ mode: %s, detail: %s }\n", ev_focus_mode_name(ev),
|
log_trace("{ mode: %s, detail: %s }\n", ev_focus_mode_name(ev),
|
||||||
ev_focus_detail_name(ev));
|
ev_focus_detail_name(ev));
|
||||||
}
|
|
||||||
|
|
||||||
static inline void ev_focus_in(session_t *ps, xcb_focus_in_event_t *ev) {
|
|
||||||
#ifdef DEBUG_EVENTS
|
|
||||||
ev_focus_report(ev);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
recheck_focus(ps);
|
recheck_focus(ps);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void ev_focus_out(session_t *ps, xcb_focus_out_event_t *ev) {
|
static inline void ev_focus_out(session_t *ps, xcb_focus_out_event_t *ev) {
|
||||||
#ifdef DEBUG_EVENTS
|
log_trace("{ mode: %s, detail: %s }\n", ev_focus_mode_name(ev),
|
||||||
ev_focus_report(ev);
|
ev_focus_detail_name(ev));
|
||||||
#endif
|
|
||||||
|
|
||||||
recheck_focus(ps);
|
recheck_focus(ps);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -299,8 +289,7 @@ static inline void ev_expose(session_t *ps, xcb_expose_event_t *ev) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void ev_property_notify(session_t *ps, xcb_property_notify_event_t *ev) {
|
static inline void ev_property_notify(session_t *ps, xcb_property_notify_event_t *ev) {
|
||||||
#ifdef DEBUG_EVENTS
|
if (unlikely(log_get_level_tls() <= LOG_LEVEL_TRACE)) {
|
||||||
{
|
|
||||||
// Print out changed atom
|
// Print out changed atom
|
||||||
xcb_get_atom_name_reply_t *reply =
|
xcb_get_atom_name_reply_t *reply =
|
||||||
xcb_get_atom_name_reply(ps->c, xcb_get_atom_name(ps->c, ev->atom), NULL);
|
xcb_get_atom_name_reply(ps->c, xcb_get_atom_name(ps->c, ev->atom), NULL);
|
||||||
|
@ -314,7 +303,6 @@ static inline void ev_property_notify(session_t *ps, xcb_property_notify_event_t
|
||||||
log_trace("{ atom = %.*s }", name_len, name);
|
log_trace("{ atom = %.*s }", name_len, name);
|
||||||
free(reply);
|
free(reply);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
if (ps->root == ev->window) {
|
if (ps->root == ev->window) {
|
||||||
if (ps->o.track_focus && ps->o.use_ewmh_active_win &&
|
if (ps->o.track_focus && ps->o.use_ewmh_active_win &&
|
||||||
|
@ -549,16 +537,11 @@ void ev_handle(session_t *ps, xcb_generic_event_t *ev) {
|
||||||
discard_ignore(ps, ev->full_sequence);
|
discard_ignore(ps, ev->full_sequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG_EVENTS
|
|
||||||
if (ev->response_type != ps->damage_event + XCB_DAMAGE_NOTIFY) {
|
if (ev->response_type != ps->damage_event + XCB_DAMAGE_NOTIFY) {
|
||||||
xcb_window_t wid = ev_window(ps, ev);
|
xcb_window_t wid = ev_window(ps, ev);
|
||||||
char *window_name = NULL;
|
log_trace("event %10.10s serial %#010x window %#010x \"%s\"",
|
||||||
ev_window_name(ps, wid, &window_name);
|
ev_name(ps, ev), ev->full_sequence, wid, ev_window_name(ps, wid));
|
||||||
|
|
||||||
log_trace("event %10.10s serial %#010x window %#010lx \"%s\"",
|
|
||||||
ev_name(ps, ev), ev_serial(ev), wid, window_name);
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// Check if a custom XEvent constructor was registered in xlib for this event
|
// Check if a custom XEvent constructor was registered in xlib for this event
|
||||||
// type, and call it discarding the constructed XEvent if any. XESetWireToEvent
|
// type, and call it discarding the constructed XEvent if any. XESetWireToEvent
|
||||||
|
|
Loading…
Reference in New Issue