]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fx_create_frame): Do not override the explicitly set parent
authorJan Djärv <jan.h.d@swipnet.se>
Thu, 7 Feb 2008 14:08:07 +0000 (14:08 +0000)
committerJan Djärv <jan.h.d@swipnet.se>
Thu, 7 Feb 2008 14:08:07 +0000 (14:08 +0000)
window ID of a frame.
(x_window): Reparent frame if embedded.
(Fx_create_frame): Don't set border width if embedded.

src/xfns.c

index e94641bcbe9812c5fcc313fd4a0b4ef0b68a733a..ae1dea5cccce0b6192f44dda79e5f1b43793c388 100644 (file)
@@ -2720,6 +2720,10 @@ x_window (f, window_prompting, minibuffer_only)
   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 @@ else
   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 @@ else
   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);