diff options
-rw-r--r-- | lisp/term/x-win.el | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el index d991f3b76a8..2a09302e19b 100644 --- a/lisp/term/x-win.el +++ b/lisp/term/x-win.el @@ -590,15 +590,24 @@ This is in addition to the primary selection.") ;; Don't die if x-get-selection signals an error. (condition-case c - (setq text (x-get-selection 'PRIMARY)) + (setq text (x-get-selection 'PRIMARY 'COMPOUND_TEXT)) (error nil)) (if (string= text "") (setq text nil)) - - (if x-select-enable-clipboard - (condition-case c - (setq text (x-get-selection 'CLIPBOARD)) - (error nil))) + (condition-case c + (setq text (x-get-selection 'PRIMARY 'STRING)) + (error nil)) (if (string= text "") (setq text nil)) + + (when x-select-enable-clipboard + (condition-case c + (setq text (x-get-selection 'CLIPBOARD 'COMPOUND_TEXT)) + (error nil)) + (if (string= text "") (setq text nil)) + (condition-case c + (setq text (x-get-selection 'CLIPBOARD 'STRING)) + (error nil)) + (if (string= text "") (setq text nil))) + (or text (setq text (x-get-cut-buffer 0))) (if (string= text "") (setq text nil)) |