fix right edge positioning

--do not load primary screen when the specific
edge is occupied in the primary screen
v0.6
Michail Vourlakos 8 years ago
parent 94504032c7
commit 9ea9407eb1

@ -209,12 +209,15 @@ QRegion DockCorona::availableScreenRegion(int id) const
QRect DockCorona::availableScreenRect(int id) const
{
const auto screens = qGuiApp->screens();
const QScreen *screen = nullptr;
const QScreen *screen{qGuiApp->primaryScreen()};
QString scrName = m_screenPool->connector(id);
if (id >= 0 && id < screens.count())
screen = screens[id];
else
screen = qGuiApp->primaryScreen();
foreach(auto scr, screens){
if (scr->name() == scrName){
screen = scr;
break;
}
}
if (!screen)
return {};
@ -313,7 +316,7 @@ void DockCorona::syncDockViews()
bool onPrimary = cont->config().readEntry("onPrimary", true);
Plasma::Types::Location location = (Plasma::Types::Location)((int)cont->config().readEntry("location", (int)Plasma::Types::BottomEdge));
if (( (onPrimary && freeEdges(qGuiApp->primaryScreen()).contains(location)) || (m_screenPool->connector(id) == scr->name()))
if (( (onPrimary && freeEdges(qGuiApp->primaryScreen()).contains(location)) || (!onPrimary &&(m_screenPool->connector(id) == scr->name())))
&& (!m_dockViews.contains(cont))) {
qDebug() << "screen Count signal: view must be added... for:" << scr->name();
addDock(cont);

Loading…
Cancel
Save