Changeset View
Changeset View
Standalone View
Standalone View
plugins/platforms/virtual/screens_virtual.cpp
Show First 20 Lines • Show All 46 Lines • ▼ Show 20 Line(s) | 40 | connect(m_backend, &VirtualBackend::virtualOutputsSet, this, | |||
---|---|---|---|---|---|
47 | } | 47 | } | ||
48 | ); | 48 | ); | ||
49 | 49 | | |||
50 | emit changed(); | 50 | emit changed(); | ||
51 | } | 51 | } | ||
52 | 52 | | |||
53 | QRect VirtualScreens::geometry(int screen) const | 53 | QRect VirtualScreens::geometry(int screen) const | ||
54 | { | 54 | { | ||
55 | const auto outputs = m_backend->outputs(); | 55 | const auto outputs = m_backend->virtualOutputs(); | ||
56 | if (screen >= outputs.size()) { | 56 | if (screen >= outputs.size()) { | ||
57 | return QRect(); | 57 | return QRect(); | ||
58 | } | 58 | } | ||
59 | return outputs.at(screen)->geometry(); | 59 | return outputs.at(screen)->geometry(); | ||
60 | } | 60 | } | ||
61 | 61 | | |||
62 | QSize VirtualScreens::size(int screen) const | 62 | QSize VirtualScreens::size(int screen) const | ||
63 | { | 63 | { | ||
64 | return geometry(screen).size(); | 64 | return geometry(screen).size(); | ||
65 | } | 65 | } | ||
66 | 66 | | |||
67 | void VirtualScreens::updateCount() | 67 | void VirtualScreens::updateCount() | ||
68 | { | 68 | { | ||
69 | setCount(m_backend->outputCount()); | 69 | setCount(m_backend->outputCount()); | ||
70 | } | 70 | } | ||
71 | 71 | | |||
72 | int VirtualScreens::number(const QPoint &pos) const | 72 | int VirtualScreens::number(const QPoint &pos) const | ||
73 | { | 73 | { | ||
74 | int bestScreen = 0; | 74 | int bestScreen = 0; | ||
75 | int minDistance = INT_MAX; | 75 | int minDistance = INT_MAX; | ||
76 | const auto outputs = m_backend->outputs(); | 76 | const auto outputs = m_backend->virtualOutputs(); | ||
77 | for (int i = 0; i < outputs.size(); ++i) { | 77 | for (int i = 0; i < outputs.size(); ++i) { | ||
78 | const QRect &geo = outputs.at(i)->geometry(); | 78 | const QRect &geo = outputs.at(i)->geometry(); | ||
79 | if (geo.contains(pos)) { | 79 | if (geo.contains(pos)) { | ||
80 | return i; | 80 | return i; | ||
81 | } | 81 | } | ||
82 | int distance = QPoint(geo.topLeft() - pos).manhattanLength(); | 82 | int distance = QPoint(geo.topLeft() - pos).manhattanLength(); | ||
83 | distance = qMin(distance, QPoint(geo.topRight() - pos).manhattanLength()); | 83 | distance = qMin(distance, QPoint(geo.topRight() - pos).manhattanLength()); | ||
84 | distance = qMin(distance, QPoint(geo.bottomRight() - pos).manhattanLength()); | 84 | distance = qMin(distance, QPoint(geo.bottomRight() - pos).manhattanLength()); | ||
Show All 10 Lines |