68 lines
2.3 KiB
Diff
68 lines
2.3 KiB
Diff
|
diff --git a/default.c b/default.c
|
||
|
index dc3fa58..5e21015 100644
|
||
|
--- a/default.c
|
||
|
+++ b/default.c
|
||
|
@@ -2091,6 +2091,7 @@ int force_g = 0;
|
||
|
unsigned char ggr_drv[MAX_STR_LEN] = "";
|
||
|
unsigned char ggr_mode[MAX_STR_LEN] = "";
|
||
|
unsigned char ggr_display[MAX_STR_LEN] = "";
|
||
|
+unsigned char embed[MAX_STR_LEN] = "";
|
||
|
|
||
|
int anonymous = 0;
|
||
|
|
||
|
@@ -2234,6 +2235,7 @@ static struct option links_options[] = {
|
||
|
{1, setstr_cmd, NULL, NULL, 0, MAX_STR_LEN, default_target, NULL, "target"},
|
||
|
{1, setstr_cmd, NULL, NULL, 0, MAX_STR_LEN, ggr_mode, NULL, "mode"},
|
||
|
{1, setstr_cmd, NULL, NULL, 0, MAX_STR_LEN, ggr_display, NULL, "display"},
|
||
|
+ {1, setstr_cmd, NULL, NULL, 0, MAX_STR_LEN, embed, NULL, "w"},
|
||
|
{1, gen_cmd, num_rd, NULL, 0, MAXINT, &base_session, NULL, "base-session"},
|
||
|
{1, set_cmd, NULL, NULL, 0, 0, &force_html, NULL, "force-html"},
|
||
|
{1, dump_cmd, NULL, NULL, D_SOURCE, 0, NULL, NULL, "source"},
|
||
|
diff --git a/links.h b/links.h
|
||
|
index f61466c..b8967de 100644
|
||
|
--- a/links.h
|
||
|
+++ b/links.h
|
||
|
@@ -4812,6 +4812,7 @@ extern int force_g;
|
||
|
extern unsigned char ggr_drv[MAX_STR_LEN];
|
||
|
extern unsigned char ggr_mode[MAX_STR_LEN];
|
||
|
extern unsigned char ggr_display[MAX_STR_LEN];
|
||
|
+extern unsigned char embed[MAX_STR_LEN];
|
||
|
|
||
|
extern unsigned char default_target[MAX_STR_LEN];
|
||
|
|
||
|
diff --git a/x.c b/x.c
|
||
|
index 5f3f33a..ab4c93c 100644
|
||
|
--- a/x.c
|
||
|
+++ b/x.c
|
||
|
@@ -1622,7 +1622,11 @@ static unsigned char *x_init_driver(unsigned char *param, unsigned char *display
|
||
|
x_screen = DefaultScreen(x_display);
|
||
|
x_display_height = DisplayHeight(x_display, x_screen);
|
||
|
x_display_width = DisplayWidth(x_display, x_screen);
|
||
|
- x_root_window = RootWindow(x_display, x_screen);
|
||
|
+ if (embed) {
|
||
|
+ x_root_window = strtol(embed, NULL, 0);
|
||
|
+ } else {
|
||
|
+ x_root_window = RootWindow(x_display, x_screen);
|
||
|
+ }
|
||
|
x_default_colormap = XDefaultColormap(x_display, x_screen);
|
||
|
|
||
|
x_default_window_width = x_display_width;
|
||
|
@@ -1813,6 +1817,7 @@ visual_found:
|
||
|
if (x_have_palette) win_attr.colormap = x_colormap;
|
||
|
else win_attr.colormap = x_default_colormap;
|
||
|
|
||
|
+ if (!embed) {
|
||
|
fake_window = XCreateWindow(
|
||
|
x_display,
|
||
|
x_root_window,
|
||
|
@@ -1829,6 +1834,9 @@ visual_found:
|
||
|
);
|
||
|
|
||
|
fake_window_initialized = 1;
|
||
|
+ } else {
|
||
|
+ fake_window = x_root_window;
|
||
|
+ }
|
||
|
|
||
|
x_normal_gc = XCreateGC(x_display, fake_window, GCFillStyle|GCBackground, &gcv);
|
||
|
if (!x_normal_gc) {
|