changeset 103676:fbdd52a2e830

* xterm.h (struct x_display_info): Add Xatom_net_wm_state_sticky * xterm.c (x_handle_net_wm_state): Also look for sticky. (x_term_init): Initialize Xatom_net_wm_state_sticky. * frame.h: Declare Qsticky.
author Jan Djärv <jan.h.d@swipnet.se>
date Wed, 01 Jul 2009 16:58:05 +0000
parents f1e5b911b357
children e793f1eceded
files src/ChangeLog src/frame.h src/xterm.c src/xterm.h
diffstat 4 files changed, 17 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Wed Jul 01 16:57:01 2009 +0000
+++ b/src/ChangeLog	Wed Jul 01 16:58:05 2009 +0000
@@ -1,5 +1,12 @@
 2009-07-01  Jan Djärv  <jan.h.d@swipnet.se>
 
+	* xterm.h (struct x_display_info): Add Xatom_net_wm_state_sticky
+
+	* xterm.c (x_handle_net_wm_state): Also look for sticky.
+	(x_term_init): Initialize Xatom_net_wm_state_sticky.
+
+	* frame.h: Declare Qsticky.
+
 	* w32fns.c (w32_frame_parm_handlers): Set 0 for sticky.
 
 	* nsfns.m (ns_frame_parm_handlers): Ditto.
--- a/src/frame.h	Wed Jul 01 16:57:01 2009 +0000
+++ b/src/frame.h	Wed Jul 01 16:58:05 2009 +0000
@@ -1039,6 +1039,7 @@
 extern Lisp_Object Qwait_for_wm;
 extern Lisp_Object Qfullscreen;
 extern Lisp_Object Qfullwidth, Qfullheight, Qfullboth, Qmaximized;
+extern Lisp_Object Qsticky;
 extern Lisp_Object Qfont_backend;
 extern Lisp_Object Qalpha;
 
--- a/src/xterm.c	Wed Jul 01 16:57:01 2009 +0000
+++ b/src/xterm.c	Wed Jul 01 16:58:05 2009 +0000
@@ -8547,6 +8547,7 @@
   unsigned char *tmp_data = NULL;
   Atom target_type = XA_ATOM;
   Lisp_Object lval;
+  int sticky = 0;
 
   BLOCK_INPUT;
   x_catch_errors (dpy);
@@ -8584,6 +8585,8 @@
         }
       else if (a == dpyinfo->Xatom_net_wm_state_fullscreen_atom)
         value = FULLSCREEN_BOTH;
+      else if (a == dpyinfo->Xatom_net_wm_state_sticky)
+        sticky = 1;
     }
 
   lval = Qnil;
@@ -8604,7 +8607,8 @@
     }
       
   store_frame_param (f, Qfullscreen, lval);
-  
+  store_frame_param (f, Qsticky, sticky ? Qt : Qnil);
+
   if (tmp_data) XFree (tmp_data);
   UNBLOCK_INPUT;
 }
@@ -10295,6 +10299,8 @@
     = XInternAtom (dpyinfo->display, "_NET_WM_STATE_MAXIMIZED_HORZ", False);
   dpyinfo->Xatom_net_wm_state_maximized_vert
     = XInternAtom (dpyinfo->display, "_NET_WM_STATE_MAXIMIZED_VERT", False);
+  dpyinfo->Xatom_net_wm_state_sticky
+    = XInternAtom (dpyinfo->display, "_NET_WM_STATE_STICKY", False);
 
   dpyinfo->cut_buffers_initialized = 0;
 
--- a/src/xterm.h	Wed Jul 01 16:57:01 2009 +0000
+++ b/src/xterm.h	Wed Jul 01 16:58:05 2009 +0000
@@ -359,7 +359,8 @@
 
   /* Atoms dealing with maximization and fullscreen */
   Atom Xatom_net_wm_state, Xatom_net_wm_state_fullscreen_atom,
-    Xatom_net_wm_state_maximized_horz, Xatom_net_wm_state_maximized_vert;
+    Xatom_net_wm_state_maximized_horz, Xatom_net_wm_state_maximized_vert,
+    Xatom_net_wm_state_sticky;
 };
 
 #ifdef HAVE_X_I18N