From 283524e074d09bd626a049fe9f8e7ea02d002dbc Mon Sep 17 00:00:00 2001 From: Johannes Hofmann Date: Wed, 27 May 2009 17:52:45 +0200 Subject: more xembed work * Create Xembed windows directly as child windows instead of reparenting them to avoid races with reparenting WMs. * Set _XEMBED_INFO property as required by XEMBED. * Send XEMBED_REQUEST_FOCUS to get focus when user clicks on the dillo window. --- src/uicmd.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/uicmd.cc') diff --git a/src/uicmd.cc b/src/uicmd.cc index 22827d7a..e3465e92 100644 --- a/src/uicmd.cc +++ b/src/uicmd.cc @@ -393,7 +393,7 @@ BrowserWindow *a_UIcmd_browser_window_new(int ww, int wh, uint32_t xid, const vo { BrowserWindow *old_bw = (BrowserWindow*)vbw; BrowserWindow *new_bw = NULL; - Xembed *win; + Window *win; if (ww <= 0 || wh <= 0) { // Set default geometry from dillorc. @@ -401,7 +401,10 @@ BrowserWindow *a_UIcmd_browser_window_new(int ww, int wh, uint32_t xid, const vo wh = prefs.height; } - win = new Xembed(ww, wh); + if (xid) + win = new Xembed(xid, ww, wh); + else + win = new Window(ww, wh); win->shortcut(0); // Ignore Escape if (prefs.buffered_drawing != 2) @@ -421,8 +424,6 @@ BrowserWindow *a_UIcmd_browser_window_new(int ww, int wh, uint32_t xid, const vo DilloTabs->add(new_ui); DilloTabs->resizable(new_ui); DilloTabs->window()->resizable(new_ui); - if (xid) - win->embed(xid); DilloTabs->window()->show(); if (old_bw == NULL && prefs.xpos >= 0 && prefs.ypos >= 0) { -- cgit v1.2.3