diff --git a/legacy/evas/src/modules/engines/software_xcb/evas_outbuf.c b/legacy/evas/src/modules/engines/software_xcb/evas_outbuf.c index 4d25395bc9..5fcebcf20d 100644 --- a/legacy/evas/src/modules/engines/software_xcb/evas_outbuf.c +++ b/legacy/evas/src/modules/engines/software_xcb/evas_outbuf.c @@ -89,7 +89,7 @@ evas_software_xcb_outbuf_setup_x(int w, #ifdef WORDS_BIGENDIAN if (evas_software_xcb_x_output_buffer_byte_order(xcbob) == XCBImageOrderLSBFirst) buf->priv.x.swap = 1; - if (evas_software_xcb_x_output_buffer_bit_order(xcbob) == XCBImageOrderLSBFirst) + if (evas_software_xcb_x_output_buffer_bit_order(xcbob) == XCBImageOrderMSBFirst) buf->priv.x.bit_swap = 1; #else if (evas_software_xcb_x_output_buffer_byte_order(xcbob) == XCBImageOrderMSBFirst) @@ -1013,8 +1013,8 @@ evas_software_xcb_outbuf_perf_x(XCBConnection *conn, perf = evas_software_xcb_outbuf_perf_new_x(conn, draw, vis, cmap, x_depth); - mask = XCBCWBackPixmap | XCBCWBorderPixel | - XCBCWBitGravity | XCBCWBackingStore | + mask = XCBCWBackPixmap | XCBCWBorderPixel | + XCBCWBitGravity | XCBCWBackingStore | XCBCWOverrideRedirect | XCBCWEventMask | XCBCWColormap; value[0] = XCBBackPixmapNone; value[1] = 0; @@ -1038,7 +1038,7 @@ evas_software_xcb_outbuf_perf_x(XCBConnection *conn, mask = XCBConfigWindowStackMode; value[0] = XCBStackModeAbove; XCBConfigureWindow (conn, win.window, mask, value2); -/* XCBMapWindow (conn, win.window); */ + XCBMapWindow (conn, win.window); do_shm = evas_software_xcb_x_can_do_shm(conn); diff --git a/legacy/evas/src/modules/engines/software_xcb/evas_xcb_buffer.c b/legacy/evas/src/modules/engines/software_xcb/evas_xcb_buffer.c index 275971e80d..b4f6a37b5a 100644 --- a/legacy/evas/src/modules/engines/software_xcb/evas_xcb_buffer.c +++ b/legacy/evas/src/modules/engines/software_xcb/evas_xcb_buffer.c @@ -121,53 +121,53 @@ evas_software_xcb_x_output_buffer_new(XCBConnection *c, if (try_shm > 0) { - xcbob->shm_info = malloc(sizeof(XCBShmSegmentInfo)); - if (xcbob->shm_info) - { - xcbob->shm_info->shmseg = XCBShmSEGNew(c); - xcbob->image = XCBImageSHMCreate(c, depth, XCBImageFormatZPixmap, NULL, w, h); - if (xcbob->image) - { - xcbob->shm_info->shmid = shmget(IPC_PRIVATE, - xcbob->image->bytes_per_line * - xcbob->image->height, - IPC_CREAT | 0777); - if (xcbob->shm_info->shmid >= 0) - { - xcbob->shm_info->shmaddr = xcbob->image->data = - shmat(xcbob->shm_info->shmid, 0, 0); - if (xcbob->shm_info->shmaddr != NULL) + xcbob->shm_info = malloc(sizeof(XCBShmSegmentInfo)); + if (xcbob->shm_info) + { + xcbob->shm_info->shmseg = XCBShmSEGNew(c); + xcbob->image = XCBImageSHMCreate(c, depth, XCBImageFormatZPixmap, NULL, w, h); + if (xcbob->image) + { + xcbob->shm_info->shmid = shmget(IPC_PRIVATE, + xcbob->image->bytes_per_line * + xcbob->image->height, + IPC_CREAT | 0777); + if (xcbob->shm_info->shmid >= 0) + { + xcbob->shm_info->shmaddr = xcbob->image->data = + shmat(xcbob->shm_info->shmid, 0, 0); + if (xcbob->shm_info->shmaddr != NULL) + { + /* + * FIXME: no error mechanism + */ + + /* XErrorHandler ph; */ + /* EventHandlers eh; */ + +/* XCBSync(c, 0); */ + _xcb_err = 0; + /* ph = XSetErrorHandler((XErrorHandler) */ + /* x_output_tmp_x_err); */ + XCBShmAttach(c, + xcbob->shm_info->shmseg, + xcbob->shm_info->shmid, 0); +/* XCBSync(c, 0); */ + /* XSetErrorHandler((XErrorHandler)ph); */ + if (!_xcb_err) { - /* - * FIXME: no error mechanism - */ - - /* XErrorHandler ph; */ - /* EventHandlers eh; */ - - XCBSync(c, 0); - _xcb_err = 0; - /* ph = XSetErrorHandler((XErrorHandler) */ - /* x_output_tmp_x_err); */ - XCBShmAttach(c, - xcbob->shm_info->shmseg, - xcbob->shm_info->shmid, 0); - XCBSync(c, 0); - /* XSetErrorHandler((XErrorHandler)ph); */ - if (!_xcb_err) - { - return xcbob; - } + return xcbob; } - shmdt(xcbob->shm_info->shmaddr); - shmctl(xcbob->shm_info->shmid, IPC_RMID, 0); - } - if (xcbob->image) XCBImageSHMDestroy(xcbob->image); - xcbob->image = NULL; - } - if (xcbob->shm_info) free(xcbob->shm_info); - xcbob->shm_info = NULL; - } + } + shmdt(xcbob->shm_info->shmaddr); + shmctl(xcbob->shm_info->shmid, IPC_RMID, 0); + } + if (xcbob->image) XCBImageSHMDestroy(xcbob->image); + xcbob->image = NULL; + } + if (xcbob->shm_info) free(xcbob->shm_info); + xcbob->shm_info = NULL; + } } if (try_shm > 1) return NULL;