mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 05:00:51 -08:00
Fix reporting of iconic state on old window managers
* src/xterm.c (x_handle_wm_state): Handle IconicState if the window manager does not support _NET_WM_STATE_HIDDEN.
This commit is contained in:
parent
8deb797897
commit
af46d8a7ec
1 changed files with 18 additions and 2 deletions
20
src/xterm.c
20
src/xterm.c
|
|
@ -17868,6 +17868,7 @@ x_coords_from_dnd_message (struct x_display_info *dpyinfo,
|
|||
static void
|
||||
x_handle_wm_state (struct frame *f, struct input_event *ie)
|
||||
{
|
||||
struct x_display_info *dpyinfo;
|
||||
Atom type;
|
||||
int format;
|
||||
unsigned long nitems, bytes_after;
|
||||
|
|
@ -17875,10 +17876,11 @@ x_handle_wm_state (struct frame *f, struct input_event *ie)
|
|||
unsigned long *state;
|
||||
|
||||
data = NULL;
|
||||
dpyinfo = FRAME_DISPLAY_INFO (f);
|
||||
|
||||
if (XGetWindowProperty (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f),
|
||||
FRAME_DISPLAY_INFO (f)->Xatom_wm_state, 0, 2,
|
||||
False, AnyPropertyType, &type, &format, &nitems,
|
||||
dpyinfo->Xatom_wm_state, 0, 2, False,
|
||||
AnyPropertyType, &type, &format, &nitems,
|
||||
&bytes_after, &data) != Success)
|
||||
return;
|
||||
|
||||
|
|
@ -17903,6 +17905,20 @@ x_handle_wm_state (struct frame *f, struct input_event *ie)
|
|||
ie->kind = DEICONIFY_EVENT;
|
||||
XSETFRAME (ie->frame_or_window, f);
|
||||
}
|
||||
else if (state[0] == IconicState
|
||||
/* _NET_WM_STATE_HIDDEN should be used if the window
|
||||
manager supports that. */
|
||||
&& !x_wm_supports (f, dpyinfo->Xatom_net_wm_state_hidden))
|
||||
{
|
||||
/* The frame is actually iconified right now. Mark it as
|
||||
such. */
|
||||
|
||||
SET_FRAME_VISIBLE (f, 0);
|
||||
SET_FRAME_ICONIFIED (f, true);
|
||||
|
||||
ie->kind = ICONIFY_EVENT;
|
||||
XSETFRAME (ie->frame_or_window, f);
|
||||
}
|
||||
|
||||
/* state[0] can also be WithdrawnState, meaning that the window has
|
||||
been withdrawn and is no longer iconified. However, Emacs sets
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue