Changeset View
Changeset View
Standalone View
Standalone View
effects/desktopgrid/desktopgrid.cpp
Show First 20 Lines • Show All 519 Lines • ▼ Show 20 Line(s) | 519 | if (wasWindowMove) { | |||
---|---|---|---|---|---|
520 | if (!effects->waylandDisplay() || (me->modifiers() & Qt::ControlModifier)) { | 520 | if (!effects->waylandDisplay() || (me->modifiers() & Qt::ControlModifier)) { | ||
521 | wasWindowCopy = true; | 521 | wasWindowCopy = true; | ||
522 | effects->defineCursor(Qt::DragCopyCursor); | 522 | effects->defineCursor(Qt::DragCopyCursor); | ||
523 | } else { | 523 | } else { | ||
524 | wasWindowCopy = false; | 524 | wasWindowCopy = false; | ||
525 | effects->defineCursor(Qt::ClosedHandCursor); | 525 | effects->defineCursor(Qt::ClosedHandCursor); | ||
526 | } | 526 | } | ||
527 | if (d != highlightedDesktop) { | 527 | if (d != highlightedDesktop) { | ||
528 | effects->windowToDesktop(windowMove, d); // Not true all desktop move | 528 | auto desktops = windowMove->desktops(); | ||
529 | if (!desktops.contains(d)) { | ||||
530 | desktops.append(d); | ||||
531 | } | ||||
529 | if (highlightedDesktop != sourceDesktop || !wasWindowCopy) { | 532 | if (highlightedDesktop != sourceDesktop || !wasWindowCopy) { | ||
530 | effects->removeWindowFromDesktop(windowMove, highlightedDesktop); | 533 | desktops.removeOne(highlightedDesktop); | ||
531 | } | 534 | } | ||
535 | effects->windowToDesktops(windowMove, desktops); | ||||
532 | const int screen = effects->screenNumber(me->pos()); | 536 | const int screen = effects->screenNumber(me->pos()); | ||
533 | if (screen != windowMove->screen()) | 537 | if (screen != windowMove->screen()) | ||
534 | effects->windowToScreen(windowMove, screen); | 538 | effects->windowToScreen(windowMove, screen); | ||
535 | } | 539 | } | ||
536 | effects->addRepaintFull(); | 540 | effects->addRepaintFull(); | ||
537 | } | 541 | } | ||
538 | } else if ((me->buttons() & Qt::LeftButton) && !wasDesktopMove && | 542 | } else if ((me->buttons() & Qt::LeftButton) && !wasDesktopMove && | ||
539 | (me->pos() - dragStartPos).manhattanLength() > QApplication::startDragDistance()) { | 543 | (me->pos() - dragStartPos).manhattanLength() > QApplication::startDragDistance()) { | ||
Show All 16 Lines | 551 | for (EffectWindowList::const_iterator it = windows.constBegin(), | |||
556 | if (w->isOnDesktop(m_originalMovingDesktop)) | 560 | if (w->isOnDesktop(m_originalMovingDesktop)) | ||
557 | stack[2] << w; | 561 | stack[2] << w; | ||
558 | } | 562 | } | ||
559 | const int desks[4] = {highlightedDesktop, d, m_originalMovingDesktop, highlightedDesktop}; | 563 | const int desks[4] = {highlightedDesktop, d, m_originalMovingDesktop, highlightedDesktop}; | ||
560 | for (int i = 0; i < 3; ++i ) { | 564 | for (int i = 0; i < 3; ++i ) { | ||
561 | if (desks[i] == desks[i+1]) | 565 | if (desks[i] == desks[i+1]) | ||
562 | continue; | 566 | continue; | ||
563 | foreach (EffectWindow *w, stack[i]) { | 567 | foreach (EffectWindow *w, stack[i]) { | ||
564 | effects->windowToDesktop(w, desks[i+1]); | 568 | auto desktops = w->desktops(); | ||
565 | effects->removeWindowFromDesktop(w, desks[i]); | 569 | desktops.removeOne(desks[i]); | ||
570 | desktops.append(desks[i+1]); | ||||
571 | effects->windowToDesktops(w, desktops); | ||||
566 | 572 | | |||
567 | if (isUsingPresentWindows()) { | 573 | if (isUsingPresentWindows()) { | ||
568 | m_managers[(desks[i]-1)*(effects->numScreens()) + w->screen()].unmanage(w); | 574 | m_managers[(desks[i]-1)*(effects->numScreens()) + w->screen()].unmanage(w); | ||
569 | m_managers[(desks[i+1]-1)*(effects->numScreens()) + w->screen()].manage(w); | 575 | m_managers[(desks[i+1]-1)*(effects->numScreens()) + w->screen()].manage(w); | ||
570 | } | 576 | } | ||
571 | } | 577 | } | ||
572 | } | 578 | } | ||
573 | if (isUsingPresentWindows()) { | 579 | if (isUsingPresentWindows()) { | ||
▲ Show 20 Lines • Show All 935 Lines • Show Last 20 Lines |