ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/screen.C
(Generate patch)

Comparing rxvt-unicode/src/screen.C (file contents):
Revision 1.373 by sf-exg, Sat Feb 12 00:30:01 2011 UTC vs.
Revision 1.377 by root, Mon Mar 21 13:46:17 2011 UTC

1/*---------------------------------------------------------------------------* 1/*---------------------------------------------------------------------------*
2 * File: screen.C 2 * File: screen.C
3 *---------------------------------------------------------------------------* 3 *---------------------------------------------------------------------------*
4 * 4 *
5 * Copyright (c) 1997-2001 Geoff Wing <gcw@pobox.com> 5 * Copyright (c) 1997-2001 Geoff Wing <gcw@pobox.com>
6 * Copyright (c) 2003-2007 Marc Lehmann <pcg@goof.com> 6 * Copyright (c) 2003-2007 Marc Lehmann <schmorp@schmorp.de>
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by 9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or 10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version. 11 * (at your option) any later version.
2740 * > CUT_BUFFER0 2740 * > CUT_BUFFER0
2741 * (+) if ownership is claimed but property is empty, rxvt_selection_paste () 2741 * (+) if ownership is claimed but property is empty, rxvt_selection_paste ()
2742 * will auto fallback to CUT_BUFFER0 2742 * will auto fallback to CUT_BUFFER0
2743 * EXT: button 2 release 2743 * EXT: button 2 release
2744 */ 2744 */
2745
2746static void
2747selection_cb (char *data, unsigned int len, rxvt_selection *rs, void *ptr)
2748{
2749 rxvt_term *term = (rxvt_term *)ptr;
2750
2751 if (data)
2752 term->paste (data, len);
2753 delete rs;
2754 term->selection_req = 0;
2755}
2756
2757void 2745void
2758rxvt_term::selection_request (Time tm, int selnum) NOTHROW 2746rxvt_term::selection_request (Time tm, int selnum) NOTHROW
2759{ 2747{
2760 if (selection.text && selnum == Sel_Primary) 2748 if (selection.text && selnum == Sel_Primary)
2761 { 2749 {
2762 /* internal selection */ 2750 /* internal selection */
2763 char *str = rxvt_wcstombs (selection.text, selection.len); 2751 char *str = rxvt_wcstombs (selection.text, selection.len);
2764 paste (str, strlen (str)); 2752 paste (str, strlen (str));
2765 free (str); 2753 free (str);
2766 return;
2767 } 2754 }
2768 else if (!selection_req) 2755 else if (!selection_req)
2769 { 2756 {
2770 selection_req = new rxvt_selection (display, selnum, tm, vt, xa[XA_VT_SELECTION], selection_cb, this); 2757 selection_req = new rxvt_selection (display, selnum, tm, vt, xa[XA_VT_SELECTION], this);
2771 selection_req->run (); 2758 selection_req->run ();
2772 } 2759 }
2773} 2760}
2774 2761
2775/* ------------------------------------------------------------------------- */ 2762/* ------------------------------------------------------------------------- */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines