aboutsummaryrefslogtreecommitdiffstats
path: root/src/xselect.c
diff options
context:
space:
mode:
authorJan Djärv2010-11-12 10:31:44 +0100
committerJan Djärv2010-11-12 10:31:44 +0100
commit2d9074ba9a5abaa7956e905a02ea180984f0540f (patch)
tree2c34e3b3af1b7d783d48146bb72db4eb99901a2f /src/xselect.c
parentc869cc377478d21689d00c1cdc7e690905d8891c (diff)
downloademacs-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.c17
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
2538void
2539x_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