30 |
|
|
31 |
extern int g_width; |
extern int g_width; |
32 |
extern int g_height; |
extern int g_height; |
33 |
|
extern int g_xpos; |
34 |
|
extern int g_ypos; |
35 |
extern BOOL g_sendmotion; |
extern BOOL g_sendmotion; |
36 |
extern BOOL g_fullscreen; |
extern BOOL g_fullscreen; |
37 |
extern BOOL g_grab_keyboard; |
extern BOOL g_grab_keyboard; |
49 |
BOOL g_enable_compose = False; |
BOOL g_enable_compose = False; |
50 |
BOOL g_Unobscured; /* used for screenblt */ |
BOOL g_Unobscured; /* used for screenblt */ |
51 |
static GC g_gc = NULL; |
static GC g_gc = NULL; |
52 |
|
static GC g_create_bitmap_gc = NULL; |
53 |
|
static GC g_create_glyph_gc = NULL; |
54 |
static Visual *g_visual; |
static Visual *g_visual; |
55 |
static int g_depth; |
static int g_depth; |
56 |
static int g_bpp; |
static int g_bpp; |
948 |
ui_create_window(void) |
ui_create_window(void) |
949 |
{ |
{ |
950 |
uint8 null_pointer_mask[1] = { 0x80 }; |
uint8 null_pointer_mask[1] = { 0x80 }; |
951 |
uint8 null_pointer_data[4] = { 0x00, 0x00, 0x00, 0x00 }; |
uint8 null_pointer_data[24] = { 0x00 }; |
952 |
|
|
953 |
XSetWindowAttributes attribs; |
XSetWindowAttributes attribs; |
954 |
XClassHint *classhints; |
XClassHint *classhints; |
955 |
XSizeHints *sizehints; |
XSizeHints *sizehints; |
966 |
attribs.override_redirect = g_fullscreen; |
attribs.override_redirect = g_fullscreen; |
967 |
attribs.colormap = g_xcolmap; |
attribs.colormap = g_xcolmap; |
968 |
|
|
969 |
g_wnd = XCreateWindow(g_display, RootWindowOfScreen(g_screen), 0, 0, wndwidth, wndheight, |
g_wnd = XCreateWindow(g_display, RootWindowOfScreen(g_screen), g_xpos, g_ypos, wndwidth, |
970 |
0, g_depth, InputOutput, g_visual, |
wndheight, 0, g_depth, InputOutput, g_visual, |
971 |
CWBackPixel | CWBackingStore | CWOverrideRedirect | |
CWBackPixel | CWBackingStore | CWOverrideRedirect | CWColormap | |
972 |
CWColormap | CWBorderPixel, &attribs); |
CWBorderPixel, &attribs); |
973 |
|
|
974 |
if (g_gc == NULL) |
if (g_gc == NULL) |
975 |
g_gc = XCreateGC(g_display, g_wnd, 0, NULL); |
g_gc = XCreateGC(g_display, g_wnd, 0, NULL); |
976 |
|
|
977 |
|
if (g_create_bitmap_gc == NULL) |
978 |
|
g_create_bitmap_gc = XCreateGC(g_display, g_wnd, 0, NULL); |
979 |
|
|
980 |
if ((g_ownbackstore) && (g_backstore == 0)) |
if ((g_ownbackstore) && (g_backstore == 0)) |
981 |
{ |
{ |
982 |
g_backstore = XCreatePixmap(g_display, g_wnd, g_width, g_height, g_depth); |
g_backstore = XCreatePixmap(g_display, g_wnd, g_width, g_height, g_depth); |
1437 |
error("select: %s\n", strerror(errno)); |
error("select: %s\n", strerror(errno)); |
1438 |
|
|
1439 |
case 0: |
case 0: |
1440 |
/* TODO: if tv.tv_sec just times out |
/* Abort serial read calls */ |
1441 |
* we will segfault. |
if (s_timeout) |
1442 |
* FIXME: |
rdpdr_check_fds(&rfds, &wfds, (BOOL) True); |
|
*/ |
|
|
//s_timeout = True; |
|
|
//rdpdr_check_fds(&rfds, &wfds, (BOOL) True); |
|
1443 |
continue; |
continue; |
1444 |
} |
} |
1445 |
|
|
1486 |
image = XCreateImage(g_display, g_visual, g_depth, ZPixmap, 0, |
image = XCreateImage(g_display, g_visual, g_depth, ZPixmap, 0, |
1487 |
(char *) tdata, width, height, bitmap_pad, 0); |
(char *) tdata, width, height, bitmap_pad, 0); |
1488 |
|
|
1489 |
XPutImage(g_display, bitmap, g_gc, image, 0, 0, 0, 0, width, height); |
XPutImage(g_display, bitmap, g_create_bitmap_gc, image, 0, 0, 0, 0, width, height); |
1490 |
|
|
1491 |
XFree(image); |
XFree(image); |
1492 |
if (tdata != data) |
if (tdata != data) |
1544 |
XImage *image; |
XImage *image; |
1545 |
Pixmap bitmap; |
Pixmap bitmap; |
1546 |
int scanline; |
int scanline; |
|
GC gc; |
|
1547 |
|
|
1548 |
scanline = (width + 7) / 8; |
scanline = (width + 7) / 8; |
1549 |
|
|
1550 |
bitmap = XCreatePixmap(g_display, g_wnd, width, height, 1); |
bitmap = XCreatePixmap(g_display, g_wnd, width, height, 1); |
1551 |
gc = XCreateGC(g_display, bitmap, 0, NULL); |
if (g_create_glyph_gc == 0) |
1552 |
|
g_create_glyph_gc = XCreateGC(g_display, bitmap, 0, NULL); |
1553 |
|
|
1554 |
image = XCreateImage(g_display, g_visual, 1, ZPixmap, 0, (char *) data, |
image = XCreateImage(g_display, g_visual, 1, ZPixmap, 0, (char *) data, |
1555 |
width, height, 8, scanline); |
width, height, 8, scanline); |
1557 |
image->bitmap_bit_order = MSBFirst; |
image->bitmap_bit_order = MSBFirst; |
1558 |
XInitImage(image); |
XInitImage(image); |
1559 |
|
|
1560 |
XPutImage(g_display, bitmap, gc, image, 0, 0, 0, 0, width, height); |
XPutImage(g_display, bitmap, g_create_glyph_gc, image, 0, 0, 0, 0, width, height); |
1561 |
|
|
1562 |
XFree(image); |
XFree(image); |
|
XFreeGC(g_display, gc); |
|
1563 |
return (HGLYPH) bitmap; |
return (HGLYPH) bitmap; |
1564 |
} |
} |
1565 |
|
|