diff options
| author | Jan Djärv | 2010-11-12 10:31:44 +0100 |
|---|---|---|
| committer | Jan Djärv | 2010-11-12 10:31:44 +0100 |
| commit | 2d9074ba9a5abaa7956e905a02ea180984f0540f (patch) | |
| tree | 2c34e3b3af1b7d783d48146bb72db4eb99901a2f /src/xselect.c | |
| parent | c869cc377478d21689d00c1cdc7e690905d8891c (diff) | |
| download | emacs-2d9074ba9a5abaa7956e905a02ea180984f0540f.tar.gz emacs-2d9074ba9a5abaa7956e905a02ea180984f0540f.zip | |
Apply XAtom revork patches from Julien Danjou.
* xsettings.c (init_xsettings): Use already fetch atoms.
* xsmfns.c (create_client_leader_window): Use SM_CLIENT_ID atom
from dpyinfo.
* xselect.c (Fx_send_client_event): Split and create
x_send_client_event.
* lisp.h: Do not EXFUN Fx_send_client_event.
* xterm.c (x_set_frame_alpha): Use _NET_WM_WINDOW_OPACITY atom
from dpyinfo.
(wm_supports): Use atoms from dpyinfo.
(do_ewmh_fullscreen): Use atoms from dpyinfo.
(x_ewmh_activate_frame): Use atoms from dpyinfo.
(xembed_set_info): Use atoms from dpyinfo.
(x_term_init): Fetch _XEMBED_INFO, _NET_SUPPORTED,
_NET_SUPPORTING_WM_CHECK, _NET_WM_WINDOW_OPACITY and
_NET_ACTIVE_WINDOW, XSETTINGS atoms.
Get all atoms in one round-trip.
(set_wm_state): Use x_send_client_event rather than
Fx_send_client_event, using Atom directly.
(x_ewmh_activate_frame): Ditto.
(x_set_sticky): Pass atoms to set_wm_state.
(do_ewmh_fullscreen): Ditto.
* xterm.h (x_display_info): Add Xatom_net_supported,
Xatom_net_supporting_wm_check, Xatom_net_active_window,
Xatom_net_wm_window_opacity, Xatom_XEMBED_INFO, SM_CLIENT_ID.
* xfns.c (Fx_show_tip): Fix typo in docstring.
Diffstat (limited to 'src/xselect.c')
| -rw-r--r-- | src/xselect.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/xselect.c b/src/xselect.c index 7479f245a77..b566b90898f 100644 --- a/src/xselect.c +++ b/src/xselect.c | |||
| @@ -2527,6 +2527,18 @@ are ignored. */) | |||
| 2527 | (Lisp_Object display, Lisp_Object dest, Lisp_Object from, Lisp_Object message_type, Lisp_Object format, Lisp_Object values) | 2527 | (Lisp_Object display, Lisp_Object dest, Lisp_Object from, Lisp_Object message_type, Lisp_Object format, Lisp_Object values) |
| 2528 | { | 2528 | { |
| 2529 | struct x_display_info *dpyinfo = check_x_display_info (display); | 2529 | struct x_display_info *dpyinfo = check_x_display_info (display); |
| 2530 | |||
| 2531 | x_send_client_event(display, dest, from, | ||
| 2532 | XInternAtom (dpyinfo->display, SDATA (message_type), False), | ||
| 2533 | format, values); | ||
| 2534 | |||
| 2535 | return Qnil; | ||
| 2536 | } | ||
| 2537 | |||
| 2538 | void | ||
| 2539 | x_send_client_event (Lisp_Object display, Lisp_Object dest, Lisp_Object from, Atom message_type, Lisp_Object format, Lisp_Object values) | ||
| 2540 | { | ||
| 2541 | struct x_display_info *dpyinfo = check_x_display_info (display); | ||
| 2530 | Window wdest; | 2542 | Window wdest; |
| 2531 | XEvent event; | 2543 | XEvent event; |
| 2532 | Lisp_Object cons; | 2544 | Lisp_Object cons; |
| @@ -2584,8 +2596,7 @@ are ignored. */) | |||
| 2584 | 2596 | ||
| 2585 | BLOCK_INPUT; | 2597 | BLOCK_INPUT; |
| 2586 | 2598 | ||
| 2587 | event.xclient.message_type | 2599 | event.xclient.message_type = message_type; |
| 2588 | = XInternAtom (dpyinfo->display, SDATA (message_type), False); | ||
| 2589 | event.xclient.display = dpyinfo->display; | 2600 | event.xclient.display = dpyinfo->display; |
| 2590 | 2601 | ||
| 2591 | /* Some clients (metacity for example) expects sending window to be here | 2602 | /* Some clients (metacity for example) expects sending window to be here |
| @@ -2610,8 +2621,6 @@ are ignored. */) | |||
| 2610 | } | 2621 | } |
| 2611 | x_uncatch_errors (); | 2622 | x_uncatch_errors (); |
| 2612 | UNBLOCK_INPUT; | 2623 | UNBLOCK_INPUT; |
| 2613 | |||
| 2614 | return Qnil; | ||
| 2615 | } | 2624 | } |
| 2616 | 2625 | ||
| 2617 | 2626 | ||