summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Wu <lekensteyn@gmail.com>2012-09-28 23:21:26 +0200
committerPeter Wu <lekensteyn@gmail.com>2012-09-28 23:21:26 +0200
commit0b951d973a250bef4d67a7514aa3ad0a97d020e2 (patch)
treeecc68e152a36a70165750c0ec1908011eaf23a6b
parent6ba9b0deaed43304134c1b2f5c980ebbfff570e2 (diff)
downloadc-files-0b951d973a250bef4d67a7514aa3ad0a97d020e2.tar.gz
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.
-rw-r--r--xcbviewfs.c10
1 files 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: