소스 검색

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 년 전
부모
커밋
0fe375a209
1개의 변경된 파일14개의 추가작업 그리고 0개의 파일을 삭제
  1. 14
    0
      unix/x0vncserver/XDesktop.cxx

+ 14
- 0
unix/x0vncserver/XDesktop.cxx 파일 보기

@@ -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;

Loading…
취소
저장