* fixed the dirty canvas when Icon-O-Matic is started in Haiku

(and also improved performance of rendering icons, the background
  was cleared for no reason on each Draw() call) However there
  must be a bug still in the app_server which causes GetClippingRegion()
  to return an out-of-date clipping region (R5 has the very same bug
  though)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19413 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus 2006-12-02 11:12:12 +00:00
parent ab12785c61
commit 64dd737cf3
2 changed files with 12 additions and 7 deletions

View File

@ -38,10 +38,6 @@ CanvasView::CanvasView(BRect frame)
fOffsreenBitmap(NULL),
fOffsreenView(NULL)
{
#if __HAIKU__
SetFlags(Flags() | B_SUBPIXEL_PRECISE);
#endif // __HAIKU__
_MakeBackground();
fRenderer->SetBackground(fBackground);
}
@ -114,7 +110,6 @@ CanvasView::Draw(BRect updateRect)
BRegion clipping;
GetClippingRegion(&clipping);
fOffsreenView->ConstrainClippingRegion(&clipping);
fOffsreenView->FillRect(updateRect, B_SOLID_LOW);
_DrawInto(fOffsreenView, updateRect);

View File

@ -305,12 +305,22 @@ class StrokePathIterator : public VectorPath::Iterator {
void
PathManipulator::Draw(BView* into, BRect updateRect)
{
// draw the Bezier curve, but only if editing
// if not "editing", the path is actually on top all other modifiers
// draw the Bezier curve, but only if not "editing",
// the path is actually on top all other modifiers
// TODO: make this customizable in the GUI
#if __HAIKU__
uint32 flags = into->Flags();
into->SetFlags(flags | B_SUBPIXEL_PRECISE);
#endif // __HAIKU__
StrokePathIterator iterator(fCanvasView, into);
fPath->Iterate(&iterator, fCanvasView->ZoomLevel());
#if __HAIKU__
into->SetFlags(flags);
#endif // __HAIKU__
into->SetLowColor(0, 0, 0, 255);
BPoint point;
BPoint pointIn;