From acd51077eaa3cd8f0dd4183af7aa8abae01f8cee Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Dj=C3=A4rv?= Date: Wed, 1 Jul 2009 16:58:05 +0000 Subject: [PATCH] * 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. --- src/ChangeLog | 7 +++++++ src/frame.h | 1 + src/xterm.c | 8 +++++++- src/xterm.h | 3 ++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 53eb27addf5..e3ab9ac8868 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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 --git a/src/frame.h b/src/frame.h index 808859e6612..205141ec830 100644 --- a/src/frame.h +++ b/src/frame.h @@ -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; diff --git a/src/xterm.c b/src/xterm.c index c56d82ee684..168614069f5 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -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; diff --git a/src/xterm.h b/src/xterm.h index 0d9d4804e5f..3c738861af4 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -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 -- 2.39.2