screenedge: allow creation between screens on wayland
Allow the creation of screen edges bordering two screens. This allows panels in auto-hide/dodge-windows mode to work when the panel is positioned between two edges. Don't change the X11 behavior since edge barrier is not supported on X11, without which it is virtually impossible to exactly position the cursor on the pixel to activate the edge. BUG: 351175
This commit is contained in:
parent
ad13765348
commit
2e5d3253d4
1 changed files with 4 additions and 4 deletions
|
@ -1345,7 +1345,7 @@ bool ScreenEdges::createEdgeForClient(Window *client, ElectricBorder border)
|
|||
const QRect screen = output->geometry();
|
||||
switch (border) {
|
||||
case ElectricTop:
|
||||
if (!isTopScreen(screen, fullArea)) {
|
||||
if (!waylandServer() && !isTopScreen(screen, fullArea)) {
|
||||
return false;
|
||||
}
|
||||
y = screen.y();
|
||||
|
@ -1354,7 +1354,7 @@ bool ScreenEdges::createEdgeForClient(Window *client, ElectricBorder border)
|
|||
width = geo.width();
|
||||
break;
|
||||
case ElectricBottom:
|
||||
if (!isBottomScreen(screen, fullArea)) {
|
||||
if (!waylandServer() && !isBottomScreen(screen, fullArea)) {
|
||||
return false;
|
||||
}
|
||||
y = screen.y() + screen.height() - 1;
|
||||
|
@ -1363,7 +1363,7 @@ bool ScreenEdges::createEdgeForClient(Window *client, ElectricBorder border)
|
|||
width = geo.width();
|
||||
break;
|
||||
case ElectricLeft:
|
||||
if (!isLeftScreen(screen, fullArea)) {
|
||||
if (!waylandServer() && !isLeftScreen(screen, fullArea)) {
|
||||
return false;
|
||||
}
|
||||
x = screen.x();
|
||||
|
@ -1372,7 +1372,7 @@ bool ScreenEdges::createEdgeForClient(Window *client, ElectricBorder border)
|
|||
height = geo.height();
|
||||
break;
|
||||
case ElectricRight:
|
||||
if (!isRightScreen(screen, fullArea)) {
|
||||
if (!waylandServer() && !isRightScreen(screen, fullArea)) {
|
||||
return false;
|
||||
}
|
||||
x = screen.x() + screen.width() - 1;
|
||||
|
|
Loading…
Reference in a new issue