Ver código fonte

Respect geometry setting in screen layout

We might only be using part of the X server's screen, so make sure
the layout we calculate is contained within this part.
tags/v1.9.90
Pierre Ossman 5 anos atrás
pai
commit
0fe375a209
1 arquivos alterados com 14 adições e 0 exclusões
  1. 14
    0
      unix/x0vncserver/XDesktop.cxx

+ 14
- 0
unix/x0vncserver/XDesktop.cxx Ver arquivo

@@ -381,6 +381,20 @@ ScreenSet XDesktop::computeScreenLayout()

layout = ::computeScreenLayout(&outputIdMap);
XRRFreeScreenResources(res);

// Adjust the layout relative to the geometry
ScreenSet::iterator iter, iter_next;
Point offset(-geometry->offsetLeft(), -geometry->offsetTop());
for (iter = layout.begin();iter != layout.end();iter = iter_next) {
iter_next = iter; ++iter_next;
iter->dimensions = iter->dimensions.translate(offset);
if (iter->dimensions.enclosed_by(geometry->getRect()))
continue;
iter->dimensions = iter->dimensions.intersect(geometry->getRect());
if (iter->dimensions.is_empty()) {
layout.remove_screen(iter->id);
}
}
#endif

return layout;

Carregando…
Cancelar
Salvar