From 03f69c0dd5244c50e430b430ee3a2e952b5a00fe Mon Sep 17 00:00:00 2001 From: Lauri Kasanen Date: Mon, 18 May 2015 09:10:06 +0000 Subject: Add support for Fl::copy(..clipboard = 2..) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10731 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_cocoa.mm | 3 +++ src/Fl_win32.cxx | 2 ++ src/Fl_x.cxx | 7 +++++++ 3 files changed, 12 insertions(+) (limited to 'src') diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index a06111ffb..381c35172 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -3457,6 +3457,9 @@ static void resize_selection_buffer(int len, int clipboard) { */ void Fl::copy(const char *stuff, int len, int clipboard, const char *type) { if (!stuff || len<0) return; + if (clipboard >= 2) + clipboard = 1; // Only on X11 do multiple clipboards make sense. + resize_selection_buffer(len+1, clipboard); memcpy(fl_selection_buffer[clipboard], stuff, len); fl_selection_buffer[clipboard][len] = 0; // needed for direct paste diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index 830a6c81d..624de69d9 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -664,6 +664,8 @@ void fl_update_clipboard(void) { // call this when you create a selection: void Fl::copy(const char *stuff, int len, int clipboard, const char *type) { if (!stuff || len<0) return; + if (clipboard >= 2) + clipboard = 1; // Only on X11 do multiple clipboards make sense. // Convert \n -> \r\n (for old apps like Notepad, DOS) Lf2CrlfConvert buf(stuff, len); diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx index 9dee09514..094f271a5 100644 --- a/src/Fl_x.cxx +++ b/src/Fl_x.cxx @@ -994,6 +994,13 @@ static int get_xwinprop(Window wnd, Atom prop, long max_length, void Fl::copy(const char *stuff, int len, int clipboard, const char *type) { if (!stuff || len<0) return; + + if (clipboard >= 2) { + copy(stuff, len, 0, type); + copy(stuff, len, 1, type); + return; + } + if (len+1 > fl_selection_buffer_length[clipboard]) { delete[] fl_selection_buffer[clipboard]; fl_selection_buffer[clipboard] = new char[len+100]; -- cgit v1.2.3