1731 |
char str[256]; |
char str[256]; |
1732 |
Status status; |
Status status; |
1733 |
int events = 0; |
int events = 0; |
1734 |
|
seamless_window *sw; |
1735 |
|
|
1736 |
while ((XPending(g_display) > 0) && events++ < 20) |
while ((XPending(g_display) > 0) && events++ < 20) |
1737 |
{ |
{ |
1894 |
} |
} |
1895 |
else |
else |
1896 |
{ |
{ |
|
seamless_window *sw; |
|
1897 |
sw = seamless_get_window_by_wnd(xevent.xexpose.window); |
sw = seamless_get_window_by_wnd(xevent.xexpose.window); |
1898 |
if (sw) |
if (sw) |
1899 |
XCopyArea(g_display, g_backstore, |
XCopyArea(g_display, g_backstore, |
2987 |
} |
} |
2988 |
|
|
2989 |
void |
void |
2990 |
ui_seamless_create_window(unsigned long id, unsigned long flags) |
ui_seamless_create_window(unsigned long id, unsigned long parent, unsigned long flags) |
2991 |
{ |
{ |
2992 |
Window wnd; |
Window wnd; |
2993 |
XSetWindowAttributes attribs; |
XSetWindowAttributes attribs; |
2994 |
XClassHint *classhints; |
XClassHint *classhints; |
2995 |
long input_mask; |
long input_mask; |
2996 |
seamless_window *sw; |
seamless_window *sw, *sw_parent; |
2997 |
|
|
2998 |
get_window_attribs(&attribs); |
get_window_attribs(&attribs); |
2999 |
|
|
3019 |
XFree(classhints); |
XFree(classhints); |
3020 |
} |
} |
3021 |
|
|
3022 |
|
/* Set WM_TRANSIENT_FOR, if necessary */ |
3023 |
|
sw_parent = seamless_get_window_by_id(parent); |
3024 |
|
if (sw_parent) |
3025 |
|
XSetTransientForHint(g_display, wnd, sw_parent->wnd); |
3026 |
|
else |
3027 |
|
warning("ui_seamless_create_window: No parent window 0x%lx\n", parent); |
3028 |
|
|
3029 |
/* FIXME: Support for Input Context:s */ |
/* FIXME: Support for Input Context:s */ |
3030 |
|
|
3031 |
get_input_mask(&input_mask); |
get_input_mask(&input_mask); |
3102 |
|
|
3103 |
|
|
3104 |
void |
void |
3105 |
ui_seamless_settitle(unsigned long id, const char *title) |
ui_seamless_settitle(unsigned long id, const char *title, unsigned long flags) |
3106 |
{ |
{ |
3107 |
seamless_window *sw; |
seamless_window *sw; |
3108 |
|
|