keep progress

This commit is contained in:
2025-11-10 23:20:12 +08:00
parent e77c986109
commit ce7a3f7757
12 changed files with 191 additions and 1 deletions

View File

@@ -2,15 +2,22 @@
#include <glib.h>
#include <glibconfig.h>
#include <signal.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <xcb/randr.h>
#include <xcb/xcb.h>
#include <xcb/xcb_aux.h>
#include <xcb/xfixes.h>
#include <xcb/xinerama.h>
#include <xcb/xproto.h>
#include "backtrace.h"
#include "buffer.h"
#include "client.h"
#include "monitor.h"
#include "types.h"
#include "utils.h"
@@ -82,6 +89,22 @@ static void check_other_wm(void) {
global_state.screen = screen;
}
static void check_xcb_extensions(void) {
xcb_prefetch_extension_data(global_state.xcb_conn, &xcb_xfixes_id);
xcb_prefetch_extension_data(global_state.xcb_conn, &xcb_xinerama_id);
xcb_prefetch_extension_data(global_state.xcb_conn, &xcb_randr_id);
const xcb_query_extension_reply_t *query;
query = xcb_get_extension_data(global_state.xcb_conn, &xcb_xfixes_id);
global_state.have_xfixes = query && query->present;
query = xcb_get_extension_data(global_state.xcb_conn, &xcb_xinerama_id);
global_state.have_xinerama = query && query->present;
query = xcb_get_extension_data(global_state.xcb_conn, &xcb_randr_id);
global_state.have_randr = query && query->present;
}
int main(int argc, char *argv[]) {
p_clear(&global_state, 1);
@@ -105,6 +128,10 @@ int main(int argc, char *argv[]) {
sigaction(SIGCHLD, &sa, 0);
check_other_wm();
check_xcb_extensions();
monitor_scan();
client_scan();
if (global_state.loop == NULL) {
global_state.loop = g_main_loop_new(NULL, FALSE);