From 8c2dd4db877092815908396b1ce9043260de776f Mon Sep 17 00:00:00 2001
From: =?utf8?q?Jan=20Dj=C3=A4rv?= <jan.h.d@swipnet.se>
Date: Wed, 10 Sep 2014 19:02:42 +0200
Subject: [PATCH] Detect iconified under Compiz/Unity

* xterm.c (handle_one_xevent): Detect iconified by looking at
_NET_WM_STATE_HIDDEN.
---
 src/ChangeLog | 5 +++++
 src/xterm.c   | 8 ++++++++
 2 files changed, 13 insertions(+)

diff --git a/src/ChangeLog b/src/ChangeLog
index ed9c3e71a55..b87498a9d9b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2014-09-10  Jan Djärv  <jan.h.d@swipnet.se>
+
+	* xterm.c (handle_one_xevent): Detect iconified by looking at
+	_NET_WM_STATE_HIDDEN.
+
 2014-09-10  Paul Eggert  <eggert@cs.ucla.edu>
 
 	* lisp.h (DEFINE_GDB_SYMBOL_ENUM): Remove.
diff --git a/src/xterm.c b/src/xterm.c
index 6ff33785a38..b9988e53cba 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -6860,6 +6860,14 @@ handle_one_xevent (struct x_display_info *dpyinfo,
             inev.ie.kind = DEICONIFY_EVENT;
             XSETFRAME (inev.ie.frame_or_window, f);
           }
+        else if (! FRAME_ICONIFIED_P (f)
+                 && f->output_data.x->net_wm_state_hidden_seen)
+          {
+            SET_FRAME_VISIBLE (f, 0);
+            SET_FRAME_ICONIFIED (f, 1);
+            inev.ie.kind = ICONIFY_EVENT;
+            XSETFRAME (inev.ie.frame_or_window, f);
+          }
 
       x_handle_property_notify (&event->xproperty);
       xft_settings_event (dpyinfo, event);
-- 
2.39.5