* BufferView:
- selectionRequested(): renamed to requestSelection() and cleaned up.
- selectionLost(): renamed to clearSelection()
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15024
a592a061-630c-0410-9148-
cb99ea01b6c8
}
-void BufferView::selectionRequested()
+docstring const BufferView::requestSelection()
{
- static docstring sel;
-
if (!buffer_)
- return;
+ return docstring();
LCursor & cur = cursor_;
if (!cur.selection()) {
xsel_cache_.set = false;
- return;
+ return docstring();
}
if (!xsel_cache_.set ||
xsel_cache_.cursor = cur.top();
xsel_cache_.anchor = cur.anchor_.top();
xsel_cache_.set = cur.selection();
- sel = cur.selectionAsString(false);
- if (!sel.empty())
- owner_->gui().selection().put(sel);
+ return cur.selectionAsString(false);
}
+ return docstring();
}
-void BufferView::selectionLost()
+void BufferView::clearSelection()
{
if (buffer_) {
cursor_.clearSelection();
bool dispatch(FuncRequest const & argument);
///
- void selectionRequested();
+ lyx::docstring const requestSelection();
///
- void selectionLost();
+ void clearSelection();
///
void workAreaResize(int width, int height);
void GWorkArea::onClipboardGet(Gtk::SelectionData & /*selection_data*/,
guint /*info*/)
{
- view_.view()->selectionRequested();
+ lyx::docstring const sel = view_.view()->requestSelection();
+ if (!sel.empty())
+ view_.gui().selection().put(sel);
}
void GWorkArea::onClipboardClear()
{
-// selectionLost();
+// clearSelection();
}
switch (xev->type) {
case SelectionRequest:
lyxerr[Debug::GUI] << "X requested selection." << endl;
- if (wa_ptr)
- wa_ptr->view().view()->selectionRequested();
+ if (wa_ptr) {
+ lyx::docstring const sel = wa_ptr->view().requestSelection();
+ if (!sel.empty())
+ wa_ptr->view().gui().selection().put(sel);
+ }
break;
case SelectionClear:
lyxerr[Debug::GUI] << "Lost selection." << endl;
if (wa_ptr)
- wa_ptr->view().view()->selectionLost();
+ wa_ptr->view().view()->clearSelection();
break;
}
return false;
switch (xev->type) {
case SelectionRequest:
lyxerr[Debug::GUI] << "X requested selection." << endl;
- if (buffer_view_)
- buffer_view_->selectionRequested();
+ if (buffer_view_) {
+ lyx::docstring const sel = buffer_view_->requestSelection();
+ if (!sel.empty())
+ gui_.selection().put(sel);
+ }
break;
case SelectionClear:
lyxerr[Debug::GUI] << "Lost selection." << endl;
if (buffer_view_)
- buffer_view_->selectionLost();
+ buffer_view_->clearSelection();
break;
}
return false;