From f5a9af6a6c6645dbe4edabfaf6b954d9822f9b80 Mon Sep 17 00:00:00 2001 From: Amar Takhar Date: Thu, 20 Aug 2009 02:31:33 +0000 Subject: [PATCH] Call wxTheClipboard->UsePrimarySelection(true) when using wxClipboard, without getting into detail clipboard work very differently on X11. Without calling this copying to the clipboard won't work. I've just put it after every use of ->Open, this is safe as in every case Close() is called right after. This will fix clipboard copying on all unices. Originally committed to SVN as r3431. --- aegisub/src/dialog_colorpicker.cpp | 1 + aegisub/src/dialog_style_manager.cpp | 1 + aegisub/src/frame_main_events.cpp | 1 + aegisub/src/subs_grid.cpp | 1 + aegisub/src/timeedit_ctrl.cpp | 1 + aegisub/src/video_display.cpp | 1 + 6 files changed, 6 insertions(+) diff --git a/aegisub/src/dialog_colorpicker.cpp b/aegisub/src/dialog_colorpicker.cpp index 0eecd890f..0c06579ee 100644 --- a/aegisub/src/dialog_colorpicker.cpp +++ b/aegisub/src/dialog_colorpicker.cpp @@ -1483,6 +1483,7 @@ void DialogColorPicker::OnRGBAdjust(wxCommandEvent &evt) wxString data = wxString(_T("rgbadjust(")) + PrettyFloatD(r) + _T(",") + PrettyFloatD(g) + _T(",") + PrettyFloatD(b) + _T(")"); if (wxTheClipboard->Open()) { + wxTheClipboard->UsePrimarySelection(true); wxTheClipboard->SetData(new wxTextDataObject(data)); wxTheClipboard->Close(); } diff --git a/aegisub/src/dialog_style_manager.cpp b/aegisub/src/dialog_style_manager.cpp index 42b21150d..41fd49825 100644 --- a/aegisub/src/dialog_style_manager.cpp +++ b/aegisub/src/dialog_style_manager.cpp @@ -723,6 +723,7 @@ void DialogStyleManager::CopyToClipboard (wxListBox *list, std::vectorOpen()) { + wxTheClipboard->UsePrimarySelection(true); wxTheClipboard->SetData(new wxTextDataObject(data)); wxTheClipboard->Close(); } diff --git a/aegisub/src/frame_main_events.cpp b/aegisub/src/frame_main_events.cpp index 349d5fac5..e813505bb 100644 --- a/aegisub/src/frame_main_events.cpp +++ b/aegisub/src/frame_main_events.cpp @@ -438,6 +438,7 @@ void FrameMain::OnMenuOpen (wxMenuEvent &event) { bool can_paste = true; if (wxTheClipboard->Open()) { + wxTheClipboard->UsePrimarySelection(true); can_paste = wxTheClipboard->IsSupported(wxDF_TEXT); wxTheClipboard->Close(); } diff --git a/aegisub/src/subs_grid.cpp b/aegisub/src/subs_grid.cpp index 7e89b8697..efd1c36ed 100644 --- a/aegisub/src/subs_grid.cpp +++ b/aegisub/src/subs_grid.cpp @@ -976,6 +976,7 @@ void SubtitlesGrid::CopyLines(wxArrayInt target) { // Send to clipboard if (wxTheClipboard->Open()) { + wxTheClipboard->UsePrimarySelection(true); wxTheClipboard->SetData(new wxTextDataObject(data)); wxTheClipboard->Close(); } diff --git a/aegisub/src/timeedit_ctrl.cpp b/aegisub/src/timeedit_ctrl.cpp index cafc319b8..b8c568646 100644 --- a/aegisub/src/timeedit_ctrl.cpp +++ b/aegisub/src/timeedit_ctrl.cpp @@ -388,6 +388,7 @@ void TimeEdit::CopyTime() { // Time if (wxTheClipboard->Open()) { + wxTheClipboard->UsePrimarySelection(true); wxTheClipboard->SetData(new wxTextDataObject(GetStringSelection())); wxTheClipboard->Close(); } diff --git a/aegisub/src/video_display.cpp b/aegisub/src/video_display.cpp index 81dc906c9..89850dcc5 100644 --- a/aegisub/src/video_display.cpp +++ b/aegisub/src/video_display.cpp @@ -682,6 +682,7 @@ void VideoDisplay::UpdateSubsRelativeTime() { /// void VideoDisplay::OnCopyToClipboard(wxCommandEvent &event) { if (wxTheClipboard->Open()) { + wxTheClipboard->UsePrimarySelection(true); wxTheClipboard->SetData(new wxBitmapDataObject(wxBitmap(VideoContext::Get()->GetFrame(-1).GetImage(),24))); wxTheClipboard->Close(); }