]> git.eshelyaron.com Git - emacs.git/commitdiff
* xterm.h (struct x_display_info): Add Xatom_net_wm_state_sticky
authorJan Djärv <jan.h.d@swipnet.se>
Wed, 1 Jul 2009 16:58:05 +0000 (16:58 +0000)
committerJan Djärv <jan.h.d@swipnet.se>
Wed, 1 Jul 2009 16:58:05 +0000 (16:58 +0000)
* xterm.c (x_handle_net_wm_state): Also look for sticky.
(x_term_init): Initialize Xatom_net_wm_state_sticky.

* frame.h: Declare Qsticky.

src/ChangeLog
src/frame.h
src/xterm.c
src/xterm.h

index 53eb27addf52b49ada202c7973f640e1c5717ff1..e3ab9ac8868ff9433d9c30a7657ea1ac6a26ecb7 100644 (file)
@@ -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.
index 808859e6612e810b359ba7ad9abbdbd5d6e5c262..205141ec8300f7b94e2c3ac1b95764f96069a817 100644 (file)
@@ -1039,6 +1039,7 @@ extern Lisp_Object Qline_spacing;
 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;
 
index c56d82ee684a8e7360dc9e4a4b7080c354b871d8..168614069f5b3c92bc4a02e648148f40d43ccbb2 100644 (file)
@@ -8547,6 +8547,7 @@ x_handle_net_wm_state (f, event)
   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 @@ x_handle_net_wm_state (f, event)
         }
       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 @@ x_handle_net_wm_state (f, event)
     }
       
   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 @@ x_term_init (display_name, xrm_option, resource_name)
     = 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;
 
index 0d9d4804e5f62b36953f013f30c38dc46c30c39e..3c738861af47dd20d45a9d48149a9a1a944aca6a 100644 (file)
@@ -359,7 +359,8 @@ struct x_display_info
 
   /* 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