# HG changeset patch # User Jan Dj¸«£rv # Date 1246467485 0 # Node ID fbdd52a2e8308f44ab873ea568a43cad6ca83fef # Parent f1e5b911b3572d87da32dec4200069617171d888 * 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. diff -r f1e5b911b357 -r fbdd52a2e830 src/ChangeLog --- 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 + * 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. diff -r f1e5b911b357 -r fbdd52a2e830 src/frame.h --- 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; diff -r f1e5b911b357 -r fbdd52a2e830 src/xterm.c --- 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; diff -r f1e5b911b357 -r fbdd52a2e830 src/xterm.h --- 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