keep progress
This commit is contained in:
27
src/main.c
27
src/main.c
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user