diff --git a/src/servers/app/drawing/DrawingEngine.cpp b/src/servers/app/drawing/DrawingEngine.cpp index 25e30f474c..7f1c85e1c7 100644 --- a/src/servers/app/drawing/DrawingEngine.cpp +++ b/src/servers/app/drawing/DrawingEngine.cpp @@ -132,6 +132,13 @@ DrawingEngine::LockExclusiveAccess() } +bool +DrawingEngine::IsExclusiveAccessLocked() +{ + return fGraphicsCard->IsExclusiveAccessLocked(); +} + + void DrawingEngine::UnlockExclusiveAccess() { @@ -682,9 +689,15 @@ DrawingEngine::StrokeLine(const BPoint &start, const BPoint &end, AutoFloatingOverlaysHider _(fGraphicsCard, touched); if (!fPainter->StraightLine(start, end, color)) { + rgb_color previousColor = fPainter->HighColor(); + drawing_mode previousMode = fPainter->DrawingMode(); + fPainter->SetHighColor(color); fPainter->SetDrawingMode(B_OP_OVER); fPainter->StrokeLine(start, end); + + fPainter->SetDrawingMode(previousMode); + fPainter->SetHighColor(previousColor); } _CopyToFront(touched); diff --git a/src/servers/app/drawing/DrawingEngine.h b/src/servers/app/drawing/DrawingEngine.h index b6745522bf..d3a59c27ed 100644 --- a/src/servers/app/drawing/DrawingEngine.h +++ b/src/servers/app/drawing/DrawingEngine.h @@ -32,7 +32,6 @@ typedef struct { BPoint pt1; BPoint pt2; rgb_color color; - } LineArrayData; class DrawingEngine : public HWInterfaceListener {