aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan Djärv2007-07-18 10:46:38 +0000
committerJan Djärv2007-07-18 10:46:38 +0000
commitb7e33a4397a193b403c2977982c70f943d2f4fc7 (patch)
tree33b2b449b2c8097b9f9bc464745e36511990bedd /src
parent457a6b0a0736916991f4801d8065dcf5ac040486 (diff)
downloademacs-b7e33a4397a193b403c2977982c70f943d2f4fc7.tar.gz
emacs-b7e33a4397a193b403c2977982c70f943d2f4fc7.zip
(x_ewmh_activate_frame): New function.
(XTframe_raise_lower): Move code to x_ewmh_activate_frame.
Diffstat (limited to 'src')
-rw-r--r--src/xterm.c50
1 files changed, 24 insertions, 26 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 154465b7758..2e8fca79156 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -8853,38 +8853,36 @@ x_lower_frame (f)
8853 } 8853 }
8854} 8854}
8855 8855
8856/* Activate frame with Extended Window Manager Hints */
8857
8858void
8859x_ewmh_activate_frame (f)
8860 FRAME_PTR f;
8861{
8862 /* See Window Manager Specification/Extended Window Manager Hints at
8863 http://freedesktop.org/wiki/Standards_2fwm_2dspec */
8864
8865 const char *atom = "_NET_ACTIVE_WINDOW";
8866 if (f->async_visible && wm_supports (f, atom))
8867 {
8868 Lisp_Object frame;
8869 XSETFRAME (frame, f);
8870 Fx_send_client_event (frame, make_number (0), frame,
8871 make_unibyte_string (atom, strlen (atom)),
8872 make_number (32),
8873 Fcons (make_number (1),
8874 Fcons (make_number (last_user_time),
8875 Qnil)));
8876 }
8877}
8878
8856static void 8879static void
8857XTframe_raise_lower (f, raise_flag) 8880XTframe_raise_lower (f, raise_flag)
8858 FRAME_PTR f; 8881 FRAME_PTR f;
8859 int raise_flag; 8882 int raise_flag;
8860{ 8883{
8861 if (raise_flag) 8884 if (raise_flag)
8862 { 8885 x_raise_frame (f);
8863 /* The following code is needed for `raise-frame' to work on
8864 some versions of metacity; see Window Manager
8865 Specification/Extended Window Manager Hints at
8866 http://freedesktop.org/wiki/Standards_2fwm_2dspec */
8867
8868#if 0
8869 /* However, on other versions (metacity 2.17.2-1.fc7), it
8870 reportedly causes hangs when resizing frames. */
8871
8872 const char *atom = "_NET_ACTIVE_WINDOW";
8873 if (f->async_visible && wm_supports (f, atom))
8874 {
8875 Lisp_Object frame;
8876 XSETFRAME (frame, f);
8877 Fx_send_client_event (frame, make_number (0), frame,
8878 make_unibyte_string (atom, strlen (atom)),
8879 make_number (32),
8880 Fcons (make_number (1),
8881 Fcons (make_number (last_user_time),
8882 Qnil)));
8883 }
8884 else
8885#endif
8886 x_raise_frame (f);
8887 }
8888 else 8886 else
8889 x_lower_frame (f); 8887 x_lower_frame (f);
8890} 8888}