log.c (5422B)
1 /* 2 * kbgwm, a sucklessy floating window manager 3 * Copyright (c) 2020-2021, Kebigon <git@kebigon.xyz> 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18 #include "log.h" 19 20 #if LOG_LEVEL < 4 21 22 void log_debug_globals() 23 { 24 } 25 26 void log_debug_event(__attribute__((unused)) xcb_generic_event_t *event) 27 { 28 } 29 30 #else 31 32 #include "client.h" 33 #include "kbgwm.h" 34 #include "list.h" 35 36 void log_debug_globals() 37 { 38 LOG_DEBUG_VA("current_workspace=%d", current_workspace); 39 40 struct item *item; 41 struct client *client; 42 43 for (uint_fast8_t workspace = 0; workspace != workspaces_length; workspace++) 44 { 45 if ((item = list_head(&workspaces[workspace])) != NULL) 46 { 47 do 48 { 49 client = item->data; 50 LOG_DEBUG_VA("%d\tid=%d x=%d y=%d width=%d height=%d min_width=%d min_height=%d " 51 "max_width=%d max_height=%d", 52 workspace, client->id, client->x, client->y, client->width, 53 client->height, client->min_width, client->min_height, 54 client->max_width, client->max_height); 55 } while ((item = item->next) != NULL); 56 } 57 else 58 LOG_DEBUG_VA("%d\tNULL", workspace); 59 } 60 } 61 62 void log_debug_event(xcb_generic_event_t *event) 63 { 64 switch (event->response_type & ~0x80) 65 { 66 case XCB_KEY_PRESS: { 67 xcb_key_press_event_t *event2 = (xcb_key_press_event_t *)event; 68 LOG_DEBUG("=======[ event: XCB_KEY_PRESS ]======="); 69 LOG_DEBUG_VA("keycode=%d modifiers=%d", event2->detail, event2->state); 70 log_debug_globals(); 71 break; 72 } 73 case XCB_BUTTON_PRESS: { 74 xcb_button_press_event_t *event2 = (xcb_button_press_event_t *)event; 75 LOG_DEBUG("=======[ event: XCB_BUTTON_PRESS ]======="); 76 LOG_DEBUG_VA("window=%d child=%d modifiers=%d button=%d", event2->event, event2->child, 77 event2->state, event2->detail); 78 log_debug_globals(); 79 break; 80 } 81 case XCB_BUTTON_RELEASE: { 82 LOG_DEBUG("=======[ event: XCB_BUTTON_RELEASE ]======="); 83 log_debug_globals(); 84 break; 85 } 86 case XCB_MOTION_NOTIFY: { 87 xcb_motion_notify_event_t *event2 = (xcb_motion_notify_event_t *)event; 88 LOG_DEBUG("=======[ event: XCB_MOTION_NOTIFY ]======="); 89 LOG_DEBUG_VA("root_x=%d root_y=%d event_x=%d event_y=%d", event2->root_x, event2->root_y, 90 event2->event_x, event2->event_y); 91 log_debug_globals(); 92 break; 93 } 94 case XCB_DESTROY_NOTIFY: { 95 xcb_destroy_notify_event_t *event2 = (xcb_destroy_notify_event_t *)event; 96 LOG_DEBUG("=======[ event: XCB_DESTROY_NOTIFY ]======="); 97 LOG_DEBUG_VA("window=%d", event2->window); 98 log_debug_globals(); 99 break; 100 } 101 case XCB_UNMAP_NOTIFY: { 102 xcb_unmap_notify_event_t *event2 = (xcb_unmap_notify_event_t *)event; 103 LOG_DEBUG("=======[ event: XCB_UNMAP_NOTIFY ]======="); 104 LOG_DEBUG_VA("window=%d event=%d from_configure=%d send_event=%d", event2->window, 105 event2->event, event2->from_configure, event->response_type & 0x80); 106 log_debug_globals(); 107 break; 108 } 109 case XCB_MAP_NOTIFY: { 110 xcb_map_notify_event_t *event2 = (xcb_map_notify_event_t *)event; 111 LOG_DEBUG("=======[ event: XCB_MAP_NOTIFY ]======="); 112 LOG_DEBUG_VA("window=%d", event2->window); 113 log_debug_globals(); 114 break; 115 } 116 case XCB_MAP_REQUEST: { 117 xcb_map_request_event_t *event2 = (xcb_map_request_event_t *)event; 118 LOG_DEBUG("=======[ event: XCB_MAP_REQUEST ]======="); 119 LOG_DEBUG_VA("parent %d window %d", event2->parent, event2->window); 120 log_debug_globals(); 121 break; 122 } 123 case XCB_CONFIGURE_REQUEST: { 124 xcb_configure_request_event_t *event2 = (xcb_configure_request_event_t *)event; 125 LOG_DEBUG("=======[ event: XCB_CONFIGURE_REQUEST ]======="); 126 LOG_DEBUG_VA("parent %d window %d", event2->parent, event2->window); 127 log_debug_globals(); 128 break; 129 } 130 case XCB_MAPPING_NOTIFY: { 131 xcb_mapping_notify_event_t *event2 = (xcb_mapping_notify_event_t *)event; 132 LOG_DEBUG("=======[ event: XCB_MAPPING_NOTIFY ]======="); 133 LOG_DEBUG_VA("sequence %d", event2->sequence); 134 LOG_DEBUG_VA("request %d", event2->request); 135 LOG_DEBUG_VA("first_keycode %d", event2->first_keycode); 136 LOG_DEBUG_VA("count %d", event2->count); 137 log_debug_globals(); 138 break; 139 } 140 default: { 141 LOG_DEBUG_VA("=======[ event: unlogged, response type %d ]=======", 142 event->response_type & ~0x80); 143 break; 144 } 145 } 146 } 147 148 #endif