summaryrefslogtreecommitdiff
path: root/src/macselect.c
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2005-05-06 08:03:08 +0000
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2005-05-06 08:03:08 +0000
commit956c0f10b5eb31886aaa0a2c69e209f02d4f249a (patch)
treeac61186ed35e1866f5e73b588eba22a9c2b41d24 /src/macselect.c
parent1c9a39ee4e3406c83f21998673cbb00366b6142a (diff)
downloademacs-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/macselect.c')
-rw-r--r--src/macselect.c16
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);