diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2005-09-12 23:51:36 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2005-09-12 23:51:36 +0000 |
| commit | c526a7ad2f4b31a6342edb888c8a1925365821ce (patch) | |
| tree | d3bc3c55c5ba0790436048029bbaa07a0cd1289b | |
| parent | fe934da8b251a3845cfcbad22a4ab02ede5cfafe (diff) | |
Clipboard will persist if owner window is hidden (STR #1019)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4565 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
| -rw-r--r-- | CHANGES | 1 | ||||
| -rw-r--r-- | src/Fl.cxx | 10 |
2 files changed, 11 insertions, 0 deletions
@@ -3,6 +3,7 @@ CHANGES IN FLTK 1.1.7 - Documentation fixes (STR #571, STR #648, STR #692, STR #730, STR #744, STR #745, STR #931, STR #942, STR #960, STR #969) + - Clipboard will persist if owner window is hidden (STR #1019) - Fixed handling of Win32 Device Contexts (STR #1007) - Fixed C Plus Plus style comments in C files (STR #997) - Fixed signednes of scanf argument (STR #996) diff --git a/src/Fl.cxx b/src/Fl.cxx index 6245a50df..a41f344a5 100644 --- a/src/Fl.cxx +++ b/src/Fl.cxx @@ -849,6 +849,16 @@ void Fl_Window::hide() { handle(FL_HIDE); #ifdef WIN32 + // this little trick keeps the current clipboard alive, even if we are about + // to destroy the window that owns the selection. + if (GetClipboardOwner()==ip->xid) { + Fl_Window *w1 = Fl::first_window(); + if (w1 && OpenClipboard(fl_xid(w1))) { + EmptyClipboard(); + SetClipboardData(CF_TEXT, NULL); + CloseClipboard(); + } + } // Send a message to myself so that I'll get out of the event loop... PostMessage(ip->xid, WM_APP, 0, 0); if (ip->private_dc) fl_release_dc(ip->xid, ip->private_dc); |
