On Fedora KDE 44 (up-to-date), if I use this display setup
I run into an assert in juce_Displays.cpp:393 (All the nodes should have a parent). The effect afterwards is that no mouse input works on my big external display.
The reason is that for this specific setup, the physical coordinates are:
Built-In: {0, 839, 3840, 2400} scale 2
and external Dell main: {3841, 0, 5760, 3240} scale 2
These coordinates are not very physical and don´t match my setup, but I guess that a different topic.
I think somehow due to rounding, there is a 1px gap between the displays and JUCE then fails to figure out the layout/hierarchy correctly in processDisplay(). Due to the gap the condition to set node.parent is never met and once it stays null, everything breaks.
I realize the 1 px gap could be considered a bug in the display manager, but on the other hand I think JUCE shouldn´t just give up assigning a parent for such a config. I don´t think there is any rule multiple displays always need to touch in all OSes. Can´t there just be a fallback or a more forgiving logic to still get a parent? Especially in the 2 display case, that could be rather easy.
The problem is gone if I set the built-in display to 200%, but I think it shows a more general problem in this display layout detection algorithm.


