diff options
Diffstat (limited to 'src/xterm.c')
-rw-r--r-- | src/xterm.c | 56 |
1 files changed, 27 insertions, 29 deletions
diff --git a/src/xterm.c b/src/xterm.c index 3deb518bad5..bc70bb05ac4 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -8357,7 +8357,7 @@ wm_supports (f, atomname) prop_atom, 0, max_len, False, target_type, &actual_type, &actual_format, &actual_size, &bytes_remaining, &tmp_data); - + if (rc != Success || actual_type != XA_WINDOW || x_had_errors_p (dpy)) { if (tmp_data) XFree (tmp_data); @@ -8412,7 +8412,7 @@ wm_supports (f, atomname) rc = 0; want_atom = XInternAtom (dpy, atomname, False); - for (i = 0; rc == 0 && i < dpyinfo->nr_net_supported_atoms; ++i) + for (i = 0; rc == 0 && i < dpyinfo->nr_net_supported_atoms; ++i) rc = dpyinfo->net_supported_atoms[i] == want_atom; x_uncatch_errors (); @@ -8853,38 +8853,36 @@ x_lower_frame (f) } } +/* Activate frame with Extended Window Manager Hints */ + +void +x_ewmh_activate_frame (f) + FRAME_PTR f; +{ + /* See Window Manager Specification/Extended Window Manager Hints at + http://freedesktop.org/wiki/Standards_2fwm_2dspec */ + + const char *atom = "_NET_ACTIVE_WINDOW"; + if (f->async_visible && wm_supports (f, atom)) + { + Lisp_Object frame; + XSETFRAME (frame, f); + Fx_send_client_event (frame, make_number (0), frame, + make_unibyte_string (atom, strlen (atom)), + make_number (32), + Fcons (make_number (1), + Fcons (make_number (last_user_time), + Qnil))); + } +} + static void XTframe_raise_lower (f, raise_flag) FRAME_PTR f; int raise_flag; { if (raise_flag) - { - /* The following code is needed for `raise-frame' to work on - some versions of metacity; see Window Manager - Specification/Extended Window Manager Hints at - http://freedesktop.org/wiki/Standards_2fwm_2dspec */ - -#if 0 - /* However, on other versions (metacity 2.17.2-1.fc7), it - reportedly causes hangs when resizing frames. */ - - const char *atom = "_NET_ACTIVE_WINDOW"; - if (f->async_visible && wm_supports (f, atom)) - { - Lisp_Object frame; - XSETFRAME (frame, f); - Fx_send_client_event (frame, make_number (0), frame, - make_unibyte_string (atom, strlen (atom)), - make_number (32), - Fcons (make_number (1), - Fcons (make_number (last_user_time), - Qnil))); - } - else -#endif - x_raise_frame (f); - } + x_raise_frame (f); else x_lower_frame (f); } @@ -10649,7 +10647,7 @@ x_term_init (display_name, xrm_option, resource_name) UNBLOCK_INPUT; dpyinfo->kboard->Vsystem_key_alist = call1 (Qvendor_specific_keysyms, - build_string (vendor ? vendor : "")); + vendor ? build_string (vendor) : empty_unibyte_string); BLOCK_INPUT; } |