From 0b951d973a250bef4d67a7514aa3ad0a97d020e2 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 28 Sep 2012 23:21:26 +0200 Subject: xcbviewfs: fix weird refresh issue - moving xcb_map_window seems to fix an issue where the screen was sometimes not fullscreen. - destroy window... just because it is possible. - enable all grabbing, drawing, fullscreen, cursor hiding. --- xcbviewfs.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/xcbviewfs.c b/xcbviewfs.c index 7f1bfe0..2b1a928 100644 --- a/xcbviewfs.c +++ b/xcbviewfs.c @@ -51,8 +51,9 @@ int main(int argc, char **argv) { int hide_cursor = 0; int grab_kbd = 0; int fullscreen = 0; - int draw_picture = 1; + int draw_picture = 0; //grab_kbd = !(fullscreen = grab_pointer = hide_cursor = 0 ); + draw_picture = grab_kbd = fullscreen = grab_pointer = hide_cursor = 1; xcb_keycode_t magic_keys[] = {40, 31, 26}; /* DIE */ if (argc < 2) { @@ -88,8 +89,6 @@ int main(int argc, char **argv) { XCB_WINDOW_CLASS_INPUT_OUTPUT, /* class */ screen->root_visual, mask, valwin); - xcb_map_window(c, win); - xcb_flush(c); if (grab_pointer) { xcb_grab_pointer_cookie_t cookie; @@ -182,6 +181,9 @@ int main(int argc, char **argv) { xcb_image_destroy(img); } + xcb_map_window(c, win); + xcb_flush(c); + int magic_level = 0; size_t magic_len = sizeof(magic_keys)/sizeof(*magic_keys); @@ -213,6 +215,8 @@ int main(int argc, char **argv) { free(e); } if (pmap) xcb_free_pixmap(c, pmap); + /* if closed normally */ + if (running) xcb_destroy_window(c, win); ungrab_kbd: xcb_ungrab_keyboard(c, XCB_CURRENT_TIME); ungrab_pointer: -- cgit v1.2.1