diff --git a/seamless.c b/seamless.c index 15e4292..48845d3 100644 --- a/seamless.c +++ b/seamless.c @@ -196,6 +196,29 @@ seamless_process_line(const char *line, void *data) { printf("SeamlessRDP:%s\n", line); } + else if (!strcmp("SYNCBEGIN", tok1)) + { + if (!tok2) + return False; + + flags = strtoul(tok2, &endptr, 0); + if (*endptr) + return False; + + ui_seamless_syncbegin(flags); + } + else if (!strcmp("SYNCEND", tok1)) + { + if (!tok2) + return False; + + flags = strtoul(tok2, &endptr, 0); + if (*endptr) + return False; + + /* do nothing, currently */ + } + xfree(l); return True; diff --git a/xwin.c b/xwin.c index e42e135..ecf68d0 100644 --- a/xwin.c +++ b/xwin.c @@ -3214,3 +3214,15 @@ ui_seamless_setstate(unsigned long id, unsigned int state, unsigned long flags) break; } } + + +void +ui_seamless_syncbegin(unsigned long flags) +{ + /* Destroy all seamless windows */ + while (g_seamless_windows) + { + XDestroyWindow(g_display, g_seamless_windows->wnd); + seamless_remove_window(g_seamless_windows); + } +}