* Don't invalidate anything in offscreen windows. NetPositive is doing

slightly strange redrawing, including scrolling the offscreen view
  that it uses in "flicker free" mode (which is the default). Invalidation
  does not work in offscreen windows, since the client thread is not running
  and certainly won't redraw anything. But that will leave a non-drawable
  region on the app_server side of things. Simply don't invalidate in
  this case. From what I have seen, redrawing in NetPositive seems to
  work fine now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28538 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus 2008-11-06 19:19:54 +00:00
parent e98ee1410a
commit f7c8477593

View File

@ -414,7 +414,7 @@ Window::ScrollViewBy(View* view, int32 dx, int32 dy)
//fDrawingEngine->FillRegion(dirty, rgb_color{ 255, 0, 255, 255 });
//snooze(2000);
if (IsVisible() && view->IsVisible()) {
if (!IsOffscreenWindow() && IsVisible() && view->IsVisible()) {
dirty->IntersectWith(&VisibleContentRegion());
_TriggerContentRedraw(*dirty);
}
@ -669,7 +669,7 @@ Window::MarkContentDirty(BRegion& regionOnScreen)
// since this won't affect other windows, read locking
// is sufficient. If there was no dirty region before,
// an update message is triggered
if (fHidden)
if (fHidden || IsOffscreenWindow())
return;
regionOnScreen.IntersectWith(&VisibleContentRegion());
@ -682,7 +682,7 @@ void
Window::MarkContentDirtyAsync(BRegion& regionOnScreen)
{
// NOTE: see comments in ProcessDirtyRegion()
if (fHidden)
if (fHidden || IsOffscreenWindow())
return;
regionOnScreen.IntersectWith(&VisibleContentRegion());