[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r106547: * xterm.c (handle_one_xevent
From: |
Jan D. |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r106547: * xterm.c (handle_one_xevent): Only set async_visible and friends |
Date: |
Tue, 29 Nov 2011 19:08:53 +0100 |
User-agent: |
Bazaar (2.3.1) |
------------------------------------------------------------
revno: 106547
fixes bug(s): http://debbugs.gnu.org/10002
committer: Jan D. <address@hidden>
branch nick: trunk
timestamp: Tue 2011-11-29 19:08:53 +0100
message:
* xterm.c (handle_one_xevent): Only set async_visible and friends
if net_wm_state_hidden_seen is non-zero
(get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
_NET_WM_STATE_HIDDEN is in NET_WM_STATE.
* xterm.h (struct x_output): net_wm_state_hidden_seen is new.
modified:
src/ChangeLog
src/xterm.c
src/xterm.h
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2011-11-28 08:20:58 +0000
+++ b/src/ChangeLog 2011-11-29 18:08:53 +0000
@@ -1,3 +1,12 @@
+2011-11-29 Jan Djärv <address@hidden>
+
+ * xterm.h (struct x_output): net_wm_state_hidden_seen is new.
+
+ * xterm.c (handle_one_xevent): Only set async_visible and friends
+ if net_wm_state_hidden_seen is non-zero (Bug#10002)
+ (get_current_wm_state): Set net_wm_state_hidden_seen to 1 if
+ _NET_WM_STATE_HIDDEN is in NET_WM_STATE.
+
2011-11-28 Paul Eggert <address@hidden>
Remove GCPRO-related macros that exist only to avoid shadowing locals.
=== modified file 'src/xterm.c'
--- a/src/xterm.c 2011-11-21 18:01:04 +0000
+++ b/src/xterm.c 2011-11-29 18:08:53 +0000
@@ -6114,7 +6114,8 @@
last_user_time = event.xproperty.time;
f = x_top_window_to_frame (dpyinfo, event.xproperty.window);
if (f && event.xproperty.atom == dpyinfo->Xatom_net_wm_state)
- if (x_handle_net_wm_state (f, &event.xproperty) && f->iconified)
+ if (x_handle_net_wm_state (f, &event.xproperty) && f->iconified
+ && f->output_data.x->net_wm_state_hidden_seen)
{
/* Gnome shell does not iconify us when C-z is pressed. It hides
the frame. So if our state says we aren't hidden anymore,
@@ -6124,6 +6125,7 @@
f->async_visible = 1;
f->async_iconified = 0;
f->output_data.x->has_been_visible = 1;
+ f->output_data.x->net_wm_state_hidden_seen = 0;
inev.ie.kind = DEICONIFY_EVENT;
XSETFRAME (inev.ie.frame_or_window, f);
}
@@ -8480,7 +8482,10 @@
{
Atom a = ((Atom*)tmp_data)[i];
if (a == dpyinfo->Xatom_net_wm_state_hidden)
- is_hidden = 1;
+ {
+ is_hidden = 1;
+ f->output_data.x->net_wm_state_hidden_seen = 1;
+ }
else if (a == dpyinfo->Xatom_net_wm_state_maximized_horz)
{
if (*size_state == FULLSCREEN_HEIGHT)
=== modified file 'src/xterm.h'
--- a/src/xterm.h 2011-11-15 00:54:19 +0000
+++ b/src/xterm.h 2011-11-29 18:08:53 +0000
@@ -632,6 +632,9 @@
x_check_expected_move. */
int left_before_move;
int top_before_move;
+
+ /* Non-zero if _NET_WM_STATE_HIDDEN is set for this frame. */
+ int net_wm_state_hidden_seen;
};
#define No_Cursor (None)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r106547: * xterm.c (handle_one_xevent): Only set async_visible and friends,
Jan D. <=