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 ();
Note that many default values are used. */
/* Normal video */
+#ifdef USE_FONT_BACKEND
+ if (enable_font_backend)
+ gc_values.font = FRAME_X_DISPLAY_INFO (f)->font->fid;
+ else
+#endif
gc_values.font = FRAME_FONT (f)->fid;
gc_values.foreground = FRAME_FOREGROUND_PIXEL (f);
gc_values.background = FRAME_BACKGROUND_PIXEL (f);
/* With FRAME_X_DISPLAY_INFO set up, this unwind-protect is safe. */
record_unwind_protect (unwind_create_frame, frame);
#if GLYPH_DEBUG
- image_cache_refcount = FRAME_X_IMAGE_CACHE (f)->refcount;
+ image_cache_refcount = FRAME_IMAGE_CACHE (f)->refcount;
dpyinfo_refcount = dpyinfo->reference_count;
#endif /* GLYPH_DEBUG */
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
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);
f->icon_name = Qnil;
FRAME_X_DISPLAY_INFO (f) = dpyinfo;
#if GLYPH_DEBUG
- image_cache_refcount = FRAME_X_IMAGE_CACHE (f)->refcount;
+ image_cache_refcount = FRAME_IMAGE_CACHE (f)->refcount;
dpyinfo_refcount = dpyinfo->reference_count;
#endif /* GLYPH_DEBUG */
f->output_data.x->parent_desc = FRAME_X_DISPLAY_INFO (f)->root_window;
GCPRO4 (string, parms, frame, timeout);
CHECK_STRING (string);
+ if (SCHARS (string) == 0)
+ string = make_unibyte_string (" ", 1);
+
f = check_x_frame (frame);
if (NILP (timeout))
timeout = make_number (5);