Ticket #6415: draw_picture.patch

File draw_picture.patch, 1.6 KB (added by laplace, 14 years ago)

Patch for review

  • src/servers/app/ServerPicture.cpp

     
    515515    ServerPicture* picture
    516516        = view->Window()->ServerWindow()->App()->GetPicture(token);
    517517    if (picture != NULL) {
    518         BPoint origin = view->DrawingOrigin();
    519         view->ConvertToScreenForDrawing(&where);
     518        view->PushState();
    520519        view->SetDrawingOrigin(where);
     520
    521521        view->PushState();
    522522        picture->Play(view);
    523523        view->PopState();
    524         view->SetDrawingOrigin(origin);
     524
     525        view->PopState();
     526
    525527        picture->ReleaseReference();
    526528    }
    527529}
  • src/servers/app/ServerWindow.cpp

     
    27822782            if (link.Read<BPoint>(&where) == B_OK) {
    27832783                ServerPicture* picture = App()->GetPicture(token);
    27842784                if (picture != NULL) {
    2785                     // Setting the drawing origin outside of the
    2786                     // state makes sure that everything the picture
    2787                     // does is relative to the global picture offset.
    2788                     BPoint origin = fCurrentView->DrawingOrigin();
    2789                     fCurrentView->ConvertToScreenForDrawing(&where);
     2785                    fCurrentView->PushState();
    27902786                    fCurrentView->SetDrawingOrigin(where);
    27912787
    27922788                    fCurrentView->PushState();
    27932789                    picture->Play(fCurrentView);
    27942790                    fCurrentView->PopState();
    27952791
    2796                     fCurrentView->SetDrawingOrigin(origin);
     2792                    fCurrentView->PopState();
    27972793
    27982794                    picture->ReleaseReference();
    27992795                }