diff options
author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2009-05-27 17:52:45 +0200 |
---|---|---|
committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2009-05-27 17:52:45 +0200 |
commit | 283524e074d09bd626a049fe9f8e7ea02d002dbc (patch) | |
tree | 708c8e6c01a56c4e2f405f5e3e375cf139d001c1 /src/uicmd.cc | |
parent | 77d8a7bef39cc0ec3d20dad6d877cc2d7c67ae41 (diff) |
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.
Diffstat (limited to 'src/uicmd.cc')
-rw-r--r-- | src/uicmd.cc | 9 |
1 files changed, 5 insertions, 4 deletions
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) { |