diff options
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 2005-05-06 08:03:08 +0000 |
---|---|---|
committer | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 2005-05-06 08:03:08 +0000 |
commit | 956c0f10b5eb31886aaa0a2c69e209f02d4f249a (patch) | |
tree | ac61186ed35e1866f5e73b588eba22a9c2b41d24 /src | |
parent | 1c9a39ee4e3406c83f21998673cbb00366b6142a (diff) | |
download | emacs-956c0f10b5eb31886aaa0a2c69e209f02d4f249a.tar.gz |
(x_own_selection): Accept Lisp string as result of
selection converter function.
(x_clear_frame_selections): Don't call x-lost-selection-functions
if Emacs is not owner of the selection.
(Vmac_services_selection): Put variable and initialization in
#ifdef MAC_OSX.
(syms_of_macselect) [MAC_OSX]: Set default value of
Vmac_services_selection to PRIMARY.
Diffstat (limited to 'src')
-rw-r--r-- | src/macselect.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/macselect.c b/src/macselect.c index 49246f7eddc..a115c9b3229 100644 --- a/src/macselect.c +++ b/src/macselect.c @@ -98,8 +98,10 @@ static Lisp_Object Vselection_converter_alist; selection type with a scrap flavor type via `mac-ostype'. */ static Lisp_Object Qmac_scrap_name, Qmac_ostype; +#ifdef MAC_OSX /* Selection name for communication via Services menu. */ static Lisp_Object Vmac_services_selection; +#endif /* Get a reference to the scrap corresponding to the symbol SYM. The reference is set to *SCRAP, and it becomes NULL if there's no @@ -455,9 +457,11 @@ x_own_selection (selection_name, selection_value) value = call3 (handler_fn, selection_name, type, selection_value); - if (CONSP (value) - && EQ (XCAR (value), type) - && STRINGP (XCDR (value))) + if (STRINGP (value)) + err = put_scrap_string (scrap, type, value); + else if (CONSP (value) + && EQ (XCAR (value), type) + && STRINGP (XCDR (value))) err = put_scrap_string (scrap, type, XCDR (value)); } @@ -622,7 +626,8 @@ x_clear_frame_selections (f) hooks = Vx_lost_selection_functions; selection_symbol = Fcar (Fcar (Vselection_alist)); - if (!EQ (hooks, Qunbound)) + if (!EQ (hooks, Qunbound) + && !NILP (Fx_selection_owner_p (selection_symbol))) { for (; CONSP (hooks); hooks = Fcdr (hooks)) call1 (Fcar (hooks), selection_symbol); @@ -646,7 +651,8 @@ x_clear_frame_selections (f) hooks = Vx_lost_selection_functions; selection_symbol = Fcar (Fcar (XCDR (rest))); - if (!EQ (hooks, Qunbound)) + if (!EQ (hooks, Qunbound) + && !NILP (Fx_selection_owner_p (selection_symbol))) { for (; CONSP (hooks); hooks = Fcdr (hooks)) call1 (Fcar (hooks), selection_symbol); |