#define SWM_DEBUG
#ifdef SWM_DEBUG
-#define DPRINTF(x...) do { if (swm_debug) fprintf(stderr, x); } while (0)
-#define DNPRINTF(n,x...) do { if (swm_debug & n) fprintf(stderr, x); } while (0)
+#define DPRINTF(x...) do { \
+ if (swm_debug) \
+ fprintf(stderr, x); \
+} while (0)
+#define DNPRINTF(n,x...) do { \
+ if (swm_debug & n) { \
+ fprintf(stderr, "%ld ", (long)(time(NULL) - time_started)); \
+ fprintf(stderr, x); \
+ } \
+} while (0)
#define SWM_D_MISC 0x0001
#define SWM_D_EVENT 0x0002
#define SWM_D_WS 0x0004
volatile sig_atomic_t running = 1;
volatile sig_atomic_t restart_wm = 0;
int outputs = 0;
-int last_focus_event = FocusOut;
+/*int last_focus_event = FocusOut;*/
int (*xerrorxlib)(Display *, XErrorEvent *);
int other_wm;
int ss_enabled = 0;
int disable_border = 0;
int border_width = 1;
int verbose_layout = 0;
+time_t time_started;
pid_t bar_pid;
XFontSet bar_fs;
XFontSetExtents *bar_fs_extents;
unfocus_win(cfw);
else {
/* use larger hammer since the window was killed somehow */
- TAILQ_FOREACH(cfw, &win->ws->winlist, entry)
+ /* TAILQ_FOREACH(cfw, &win->ws->winlist, entry)
if (cfw->ws && cfw->ws->r && cfw->ws->r->s)
xcb_change_window_attributes(conn, cfw->id,
XCB_CW_BORDER_PIXEL,
- &cfw->ws->r->s->c[SWM_S_COLOR_UNFOCUS].color);
+ &cfw->ws->r->s->c[SWM_S_COLOR_UNFOCUS].color);*/
}
win->ws->focus = win;
void
resize(struct ws_win *win, union arg *args)
{
- xcb_timestamp_t time = 0;
+ xcb_timestamp_t timestamp = 0;
struct swm_region *r = NULL;
int resize_step = 0;
struct swm_geometry g;
return;
}
+ xcb_flush(conn);
buttonrelease = 0;
while ((evt = xcb_poll_for_event(conn)) && buttonrelease != 1) {
/*
constrain_window(win, r, 1);
/* not free, don't sync more than 120 times / second */
- if ((mne->time - time) > (1000 / 120) ) {
- time = mne->time;
+ if ((mne->time - timestamp) > (1000 / 120) ) {
+ timestamp = mne->time;
do_sync();
update_window(win);
}
}
free(evt);
}
- if (time) {
+ if (timestamp) {
do_sync();
update_window(win);
}
void
move(struct ws_win *win, union arg *args)
{
- xcb_timestamp_t time = 0;
+ xcb_timestamp_t timestamp = 0;
int move_step = 0, buttonrelease;
struct swm_region *r = NULL;
xcb_font_t cursor_font;
return;
}
+ xcb_flush(conn);
buttonrelease = 0;
while ((evt = xcb_poll_for_event(conn)) && buttonrelease != 1) {
/*
constrain_window(win, r, 0);
/* not free, don't sync more than 120 times / second */
- if ((mne->time - time) > (1000 / 120) ) {
- time = mne->time;
+ if ((mne->time - timestamp) > (1000 / 120) ) {
+ timestamp = mne->time;
do_sync();
update_window(win);
}
}
free(evt);
}
- if (time) {
+ if (timestamp) {
do_sync();
update_window(win);
}
if (win == NULL)
return;
- /* needed for restart wm */
- set_win_state(win, XCB_ICCCM_WM_STATE_WITHDRAWN);
-
TAILQ_REMOVE(&win->ws->unmanagedlist, win, entry);
if (win->wa)
void
event_error(xcb_generic_error_t *e)
{
- DNPRINTF(SWM_D_EVENT, "event_error: %s: response_type:%u error_code:%u "
- "sequence:%u resource_id:%u minor_code:%u major_code:%u\n",
- xcb_event_get_error_label(e->error_code), e->response_type,
- e->error_code, e->sequence, e->resource_id, e->minor_code,
- e->major_code
- );
+ DNPRINTF(SWM_D_EVENT, "event_error: %s(%u) from %s(%u), sequence: %u, "
+ "resource_id: %u, minor_code: %u\n",
+ xcb_event_get_error_label(e->error_code), e->error_code,
+ xcb_event_get_request_label(e->major_code), e->major_code,
+ e->sequence, e->resource_id, e->minor_code);
}
void
EVENT(0, event_error);
EVENT(XCB_BUTTON_PRESS, buttonpress);
/*EVENT(XCB_BUTTON_RELEASE, buttonpress);*/
+ /*EVENT(XCB_CIRCULATE_NOTIFY, );*/
+ /*EVENT(XCB_CIRCULATE_REQUEST, );*/
EVENT(XCB_CLIENT_MESSAGE, clientmessage);
+ /*EVENT(XCB_COLORMAP_NOTIFY, );*/
EVENT(XCB_CONFIGURE_NOTIFY, configurenotify);
EVENT(XCB_CONFIGURE_REQUEST, configurerequest);
+ /*EVENT(XCB_CREATE_NOTIFY, );*/
EVENT(XCB_DESTROY_NOTIFY, destroynotify);
EVENT(XCB_ENTER_NOTIFY, enternotify);
EVENT(XCB_EXPOSE, expose);
+ /*EVENT(XCB_FOCUS_IN, );*/
+ /*EVENT(XCB_FOCUS_OUT, );*/
+ /*EVENT(XCB_GRAPHICS_EXPOSURE, );*/
+ /*EVENT(XCB_GRAVITY_NOTIFY, );*/
EVENT(XCB_KEY_PRESS, keypress);
/*EVENT(XCB_KEY_RELEASE, keypress);*/
+ /*EVENT(XCB_KEYMAP_NOTIFY, );*/
+ /*EVENT(XCB_LEAVE_NOTIFY, );*/
EVENT(XCB_MAP_NOTIFY, mapnotify);
EVENT(XCB_MAP_REQUEST, maprequest);
EVENT(XCB_MAPPING_NOTIFY, mappingnotify);
+ /*EVENT(XCB_MOTION_NOTIFY, );*/
+ /*EVENT(XCB_NO_EXPOSURE, );*/
EVENT(XCB_PROPERTY_NOTIFY, propertynotify);
+ /*EVENT(XCB_REPARENT_NOTIFY, );*/
+ /*EVENT(XCB_RESIZE_REQUEST, );*/
+ /*EVENT(XCB_SELECTION_CLEAR, );*/
+ /*EVENT(XCB_SELECTION_NOTIFY, );*/
+ /*EVENT(XCB_SELECTION_REQUEST, );*/
EVENT(XCB_UNMAP_NOTIFY, unmapnotify);
EVENT(XCB_VISIBILITY_NOTIFY, visibilitynotify);
#undef EVENT
struct sigaction sact;
xcb_generic_event_t *evt;
+ time_started = time(NULL);
+
start_argv = argv;
warnx("Welcome to spectrwm V%s Build: %s", SPECTRWM_VERSION, buildstr);
if (!setlocale(LC_CTYPE, "") || !setlocale(LC_TIME, "") ||
while (running) {
while ((evt = xcb_poll_for_event(conn))) {
- DNPRINTF(SWM_D_EVENT, "XCB Event: %s (%d)\n",
+ DNPRINTF(SWM_D_EVENT, "XCB Event: %s(%d)\n",
xcb_event_get_label(XCB_EVENT_RESPONSE_TYPE(evt)),
XCB_EVENT_RESPONSE_TYPE(evt));
if (running == 0)