Fix bit rot in the XEmbed code
* src/xterm.c (x_term_init): Delete unused atom. (handle_one_xevent): (x_make_frame_visible): Handle embedded frame visibility correctly. * src/xterm.h (struct x_display_info): Delete unused atom.
This commit is contained in:
parent
fe98a67f34
commit
4cf885a41a
2 changed files with 15 additions and 5 deletions
18
src/xterm.c
18
src/xterm.c
|
@ -14060,7 +14060,9 @@ handle_one_xevent (struct x_display_info *dpyinfo,
|
|||
}
|
||||
|
||||
f = x_top_window_to_frame (dpyinfo, event->xproperty.window);
|
||||
if (f && event->xproperty.atom == dpyinfo->Xatom_net_wm_state)
|
||||
if (f && event->xproperty.atom == dpyinfo->Xatom_net_wm_state
|
||||
/* This should never happen with embedded windows. */
|
||||
&& !FRAME_X_EMBEDDED_P (f))
|
||||
{
|
||||
bool not_hidden = x_handle_net_wm_state (f, &event->xproperty);
|
||||
|
||||
|
@ -14417,7 +14419,9 @@ handle_one_xevent (struct x_display_info *dpyinfo,
|
|||
x_set_z_group (f, Qbelow, Qnil);
|
||||
}
|
||||
|
||||
if (not_hidden)
|
||||
/* Embedded frames might have NET_WM_STATE left over, but
|
||||
are always visible once mapped. */
|
||||
if (not_hidden || FRAME_X_EMBEDDED_P (f))
|
||||
{
|
||||
SET_FRAME_VISIBLE (f, 1);
|
||||
SET_FRAME_ICONIFIED (f, false);
|
||||
|
@ -14436,7 +14440,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
|
|||
|
||||
x_update_opaque_region (f, NULL);
|
||||
|
||||
if (not_hidden && iconified)
|
||||
if ((not_hidden || FRAME_X_EMBEDDED_P (f)) && iconified)
|
||||
{
|
||||
inev.ie.kind = DEICONIFY_EVENT;
|
||||
XSETFRAME (inev.ie.frame_or_window, f);
|
||||
|
@ -15543,6 +15547,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
|
|||
/* Even if the number of character rows and columns has
|
||||
not changed, the font size may have changed, so we need
|
||||
to check the pixel dimensions as well. */
|
||||
|
||||
if (width != FRAME_PIXEL_WIDTH (f)
|
||||
|| height != FRAME_PIXEL_HEIGHT (f)
|
||||
|| (f->new_size_p
|
||||
|
@ -21217,6 +21222,12 @@ x_make_frame_visible (struct frame *f)
|
|||
XMapRaised (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f));
|
||||
#endif /* not USE_GTK */
|
||||
#endif /* not USE_X_TOOLKIT */
|
||||
|
||||
if (FRAME_X_EMBEDDED_P (f))
|
||||
{
|
||||
SET_FRAME_VISIBLE (f, true);
|
||||
SET_FRAME_ICONIFIED (f, false);
|
||||
}
|
||||
}
|
||||
|
||||
XFlush (FRAME_X_DISPLAY (f));
|
||||
|
@ -22949,7 +22960,6 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name)
|
|||
ATOM_REFS_INIT ("ATOM", Xatom_ATOM)
|
||||
ATOM_REFS_INIT ("ATOM_PAIR", Xatom_ATOM_PAIR)
|
||||
ATOM_REFS_INIT ("CLIPBOARD_MANAGER", Xatom_CLIPBOARD_MANAGER)
|
||||
ATOM_REFS_INIT ("XATOM_COUNTER", Xatom_XEMBED_INFO)
|
||||
ATOM_REFS_INIT ("_XEMBED_INFO", Xatom_XEMBED_INFO)
|
||||
ATOM_REFS_INIT ("_MOTIF_WM_HINTS", Xatom_MOTIF_WM_HINTS)
|
||||
/* For properties of font. */
|
||||
|
|
|
@ -414,7 +414,7 @@ struct x_display_info
|
|||
Atom Xatom_CLIPBOARD, Xatom_TIMESTAMP, Xatom_TEXT, Xatom_DELETE,
|
||||
Xatom_COMPOUND_TEXT, Xatom_UTF8_STRING,
|
||||
Xatom_MULTIPLE, Xatom_INCR, Xatom_EMACS_TMP, Xatom_TARGETS, Xatom_NULL,
|
||||
Xatom_ATOM, Xatom_ATOM_PAIR, Xatom_CLIPBOARD_MANAGER, Xatom_COUNTER,
|
||||
Xatom_ATOM, Xatom_ATOM_PAIR, Xatom_CLIPBOARD_MANAGER,
|
||||
Xatom_EMACS_SERVER_TIME_PROP;
|
||||
|
||||
/* More atoms for font properties. The last three are private
|
||||
|
|
Loading…
Add table
Reference in a new issue