# HG changeset patch # User Jan Dj¸«£rv # Date 1202393287 0 # Node ID e33a0659fabe1602b78a459066e064677a1edb46 # Parent 370f67c176eb01a561e77fa8447f31fc5a796914 (Fx_create_frame): Do not override the explicitly set parent window ID of a frame. (x_window): Reparent frame if embedded. (Fx_create_frame): Don't set border width if embedded. diff -r 370f67c176eb -r e33a0659fabe src/xfns.c --- a/src/xfns.c Thu Feb 07 14:07:55 2008 +0000 +++ b/src/xfns.c Thu Feb 07 14:08:07 2008 +0000 @@ -2720,6 +2720,10 @@ XtManageChild (pane_widget); XtRealizeWidget (shell_widget); + if (FRAME_X_EMBEDDED_P (f)) + XReparentWindow (FRAME_X_DISPLAY (f), XtWindow (shell_widget), + f->output_data.x->parent_desc, 0, 0); + FRAME_X_WINDOW (f) = XtWindow (frame_widget); validate_x_resource_name (); @@ -3459,8 +3463,10 @@ xlwmenu_default_font = FRAME_FONT (f); #endif - x_default_parameter (f, parms, Qborder_width, make_number (2), - "borderWidth", "BorderWidth", RES_TYPE_NUMBER); + /* Frame contents get displaced if an embedded X window has a border. */ + if (! FRAME_X_EMBEDDED_P (f)) + x_default_parameter (f, parms, Qborder_width, make_number (2), + "borderWidth", "BorderWidth", RES_TYPE_NUMBER); /* This defaults to 1 in order to match xterm. We recognize either internalBorderWidth or internalBorder (which is what xterm calls @@ -3531,8 +3537,6 @@ x_default_parameter (f, parms, Qfullscreen, Qnil, "fullscreen", "Fullscreen", RES_TYPE_SYMBOL); - f->output_data.x->parent_desc = FRAME_X_DISPLAY_INFO (f)->root_window; - /* Compute the size of the X window. */ window_prompting = x_figure_window_size (f, parms, 1);