]> git.lizzy.rs Git - bspwm.git/blobdiff - events.c
Loop example: fix indentation
[bspwm.git] / events.c
index 055b30d2bef66eb06f16fff712deb1d55c7cacc1..8c474c8ba843e972b1de27ae3f741a586d5e8070 100644 (file)
--- a/events.c
+++ b/events.c
@@ -63,6 +63,9 @@ void handle_event(xcb_generic_event_t *evt)
                case XCB_FOCUS_IN:
                        focus_in(evt);
                        break;
+               case 0:
+                       process_error(evt);
+                       break;
                default:
                        if (randr && resp_type == randr_base + XCB_RANDR_SCREEN_CHANGE_NOTIFY)
                                update_monitors();
@@ -347,15 +350,18 @@ void motion_notify(xcb_generic_event_t *evt)
        xcb_point_t pt = {e->root_x, e->root_y};
        query_pointer(&win, NULL);
 
-       bool backup = pointer_follows_monitor;
+       bool pfm_backup = pointer_follows_monitor;
+       bool pff_backup = pointer_follows_focus;
        auto_raise = false;
        pointer_follows_monitor = false;
+       pointer_follows_focus = false;
        if (!window_focus(win)) {
                monitor_t *m = monitor_from_point(pt);
                if (m != NULL && m != mon)
                        focus_node(m, m->desk, m->desk->focus);
        }
-       pointer_follows_monitor = backup;
+       pointer_follows_monitor = pfm_backup;
+       pointer_follows_focus = pff_backup;
        auto_raise = true;
 }
 
@@ -385,3 +391,9 @@ void handle_state(monitor_t *m, desktop_t *d, node_t *n, xcb_atom_t state, unsig
                        set_urgency(m, d, n, !n->client->urgent);
        }
 }
+
+void process_error(xcb_generic_event_t *evt)
+{
+       xcb_request_error_t *e = (xcb_request_error_t *) evt;
+       warn("Failed request: %s, %s: %d.\n", xcb_event_get_request_label(e->major_opcode), xcb_event_get_error_label(e->error_code), e->bad_value);
+}