mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-16 06:07:06 +02:00
Fix drag starting item.
This commit is contained in:
parent
013c8ebeb4
commit
26e84dbab2
1 changed files with 12 additions and 16 deletions
|
@ -1733,16 +1733,16 @@ std::unique_ptr<QMimeData> HistoryInner::prepareDrag() {
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
const auto mouseActionView = viewByItem(_mouseActionItem);
|
||||
const auto pressedView = viewByItem(_mouseActionItem);
|
||||
bool uponSelected = false;
|
||||
if (mouseActionView) {
|
||||
if (pressedView) {
|
||||
if (!_selected.empty() && _selected.cbegin()->second == FullSelection) {
|
||||
uponSelected = _dragStateItem
|
||||
&& (_selected.find(_dragStateItem) != _selected.cend());
|
||||
uponSelected = _mouseActionItem
|
||||
&& (_selected.find(_mouseActionItem) != _selected.cend());
|
||||
} else {
|
||||
StateRequest request;
|
||||
request.flags |= Ui::Text::StateRequest::Flag::LookupSymbol;
|
||||
auto dragState = mouseActionView->textState(_dragStartPosition, request);
|
||||
auto dragState = pressedView->textState(_dragStartPosition, request);
|
||||
uponSelected = (dragState.cursor == CursorState::Text);
|
||||
if (uponSelected) {
|
||||
if (_selected.empty()
|
||||
|
@ -1783,19 +1783,15 @@ std::unique_ptr<QMimeData> HistoryInner::prepareDrag() {
|
|||
}
|
||||
}
|
||||
return mimeData;
|
||||
} else if (_dragStateItem) {
|
||||
const auto view = viewByItem(_dragStateItem);
|
||||
if (!view) {
|
||||
return nullptr;
|
||||
}
|
||||
} else if (pressedView) {
|
||||
auto forwardIds = MessageIdsList();
|
||||
if (_mouseCursorState == CursorState::Date) {
|
||||
forwardIds = session().data().itemOrItsGroup(_dragStateItem);
|
||||
} else if (view->isHiddenByGroup() && pressedHandler) {
|
||||
forwardIds = MessageIdsList(1, _dragStateItem->fullId());
|
||||
} else if (const auto media = view->media()) {
|
||||
forwardIds = session().data().itemOrItsGroup(_mouseActionItem);
|
||||
} else if (pressedView->isHiddenByGroup() && pressedHandler) {
|
||||
forwardIds = MessageIdsList(1, _mouseActionItem->fullId());
|
||||
} else if (const auto media = pressedView->media()) {
|
||||
if (media->dragItemByHandler(pressedHandler)) {
|
||||
forwardIds = MessageIdsList(1, _dragStateItem->fullId());
|
||||
forwardIds = MessageIdsList(1, _mouseActionItem->fullId());
|
||||
}
|
||||
}
|
||||
if (forwardIds.empty()) {
|
||||
|
@ -1804,7 +1800,7 @@ std::unique_ptr<QMimeData> HistoryInner::prepareDrag() {
|
|||
session().data().setMimeForwardIds(std::move(forwardIds));
|
||||
auto result = std::make_unique<QMimeData>();
|
||||
result->setData(u"application/x-td-forward"_q, "1");
|
||||
if (const auto media = view->media()) {
|
||||
if (const auto media = pressedView->media()) {
|
||||
if (const auto document = media->getDocument()) {
|
||||
const auto filepath = document->filepath(true);
|
||||
if (!filepath.isEmpty()) {
|
||||
|
|
Loading…
Add table
Reference in a new issue