mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-11 13:46:43 +00:00
c9c6ed0b7f
* src/LyXAction.C (LyXAction::init): handle new LFUN_CLIPBOARD_PASTE * src/insets/insettabular.C (InsetTabular::doDispatch): ditto * src/insets/insetbox.C (InsetBox::doDispatch): ditto * src/insets/insetert.C (InsetERT::doDispatch): ditto (InsetERT::getStatus): ditto * src/insets/insetcharstyle.C (InsetCharStyle::doDispatch): ditto * src/BufferView_pimpl.C (BufferView::Pimpl::selectionRequest): stuff selection, not clipboard * src/mathed/math_nestinset.C (MathNestInset::lfunMousePress): get stuff selection, not clipboard (MathNestInset::lfunMouseRelease): clipboard -> selection in commented code * src/CutAndPaste.C (cutSelection): ditto * src/frontends/{qt3,gtk}/GuiImplementation.C (GuiImplementation::newWorkArea): create new selection, not clipboard, since the clipboard is now an object (GuiImplementation::destroyWorkArea): destroy selection, not clipboard * src/frontends/{qt4,qt3,gtk}/GuiSelection.h: new, copied from GuiClipboard.h * src/frontends/{qt4,qt3,gtk}/GuiSelection.C: new, copied from GuiClipboard.C * src/frontends/{qt3,gtk}/GuiImplementation.h (selection): new accessor for selection_ (selection_): new, the global selection object * src/frontends/{qt4,qt3,gtk}/Makefile.am: add GuiSelection.C and GuiSelection.h * src/frontends/{qt4,qt3,gtk}/GuiClipboard.C (GuiClipboard::get): return clipboard, not selection (GuiClipboard::put): stuff clipboard, not selection * src/frontends/{qt4,qt3,gtk}/GuiClipboard.h (haveSelection): remove (this is now in GuiSelection) * src/frontends/{qt3,gtk}/GuiClipboard.h (old_work_area_): remove, since it is not needed anymore * src/frontends/gtk/ghelpers.C (getGTKStockIcon): handle LFUN_CLIPBOARD_PASTE * src/frontends/Clipboard.h (haveSelection): remove (this is now in Selection) * src/frontends/qt4/GuiImplementation.[Ch] (GuiImplementation::selection): new accessor for selection_ * src/frontends/Gui.h (selection): New accessor for the global selection object * src/frontends/Selection.h; new, copied from Clipboard.h * src/frontends/Makefile.am: add Selection.h * src/text3.C (various): s/clipboard().haveSelection/selection().haveSelection/ (LyXText::dispatch): handle LFUN_CLIPBOARD_PASTE (LyXText::getStatus): ditto * src/lfuns.h: new lfun LFUN_CLIPBOARD_PASTE * lib/ui/stdmenus.ui: add new lfun LFUN_CLIPBOARD_PASTE git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14408 a592a061-630c-0410-9148-cb99ea01b6c8
61 lines
1.5 KiB
C
61 lines
1.5 KiB
C
// -*- C++ -*-
|
|
/**
|
|
* \file gtk/GuiSelection.C
|
|
* This file is part of LyX, the document processor.
|
|
* Licence details can be found in the file COPYING.
|
|
*
|
|
* \author Huang Ying
|
|
* \author Abdelrazak Younes
|
|
*
|
|
* Full author contact details are available in file CREDITS.
|
|
*/
|
|
|
|
#include <config.h>
|
|
|
|
// Too hard to make concept checks work with this file
|
|
#ifdef _GLIBCXX_CONCEPT_CHECKS
|
|
#undef _GLIBCXX_CONCEPT_CHECKS
|
|
#endif
|
|
#ifdef _GLIBCPP_CONCEPT_CHECKS
|
|
#undef _GLIBCPP_CONCEPT_CHECKS
|
|
#endif
|
|
|
|
#include "GuiSelection.h"
|
|
#include "debug.h"
|
|
|
|
#include <gtkmm.h>
|
|
|
|
using std::endl;
|
|
using std::string;
|
|
|
|
namespace lyx {
|
|
namespace frontend {
|
|
|
|
// ENCODING: Gtk::Clipboard returns UTF-8, we assume that the backend
|
|
// wants ISO-8859-1 and convert it to that.
|
|
// FIXME: Wrong!
|
|
string const GuiSelection::get() const
|
|
{
|
|
Glib::RefPtr<Gtk::Clipboard> clipboard =
|
|
Gtk::Clipboard::get(GDK_SELECTION_PRIMARY);
|
|
string const str = Glib::convert_with_fallback(
|
|
clipboard->wait_for_text(), "ISO-8859-1", "UTF-8");
|
|
lyxerr[Debug::ACTION] << "GuiClipboard::get: " << str << endl;
|
|
return str;
|
|
}
|
|
|
|
|
|
// ENCODING: we assume that the backend passes us ISO-8859-1 and
|
|
// convert from that to UTF-8 before passing to GTK
|
|
// FIXME: Wrong!
|
|
void GuiSelection::put(string const & str)
|
|
{
|
|
lyxerr[Debug::ACTION] << "GuiClipboard::put: " << str << endl;
|
|
Glib::RefPtr<Gtk::Clipboard> clipboard =
|
|
Gtk::Clipboard::get(GDK_SELECTION_PRIMARY);
|
|
clipboard->set_text(Glib::convert(str, "UTF-8", "ISO-8859-1"));
|
|
}
|
|
|
|
} // namespace frontend
|
|
} // namespace lyx
|