Ticket #9498: fixborder.patch

File fixborder.patch, 2.2 KB (added by rehaby, 3 years ago)
  • src/add-ons/decorators/MacDecorator/MacDecorator.cpp

    diff --git a/src/add-ons/decorators/MacDecorator/MacDecorator.cpp b/src/add-ons/decorators/MacDecorator/MacDecorator.cpp
    index 9c2a7f4..3c4d5ae 100644
    a b MacDecorator::_DrawFrame(BRect invalid)  
    349349                fDrawingEngine->StrokeLine(offset, pt2, fFrameLowerColor);
    350350
    351351                // Draw the top side of the frame that is not in the tab
    352                 offset = r.RightTop();
    353                 pt2 = r.RightBottom();
    354 
    355                 fDrawingEngine->StrokeLine(topleftpt, toprightpt, fFrameLowerColor);
    356                 topleftpt.y--;
    357                 toprightpt.x++;
    358                 toprightpt.y--;
    359 
    360                 fDrawingEngine->StrokeLine(topleftpt, toprightpt, fFrameLowColor);
     352                if (fTopTab->look == B_MODAL_WINDOW_LOOK) {
     353                    offset = r.LeftTop();
     354                    pt2 = r.RightTop();
     355                   
     356                    fDrawingEngine->StrokeLine(offset, pt2, fFrameLowerColor);
     357                    offset.x++;
     358                    offset.y++;
     359                    pt2.x--;
     360                    pt2.y++;
     361
     362                    fDrawingEngine->StrokeLine(offset, pt2, fFrameHighColor);
     363                    offset.x++;
     364                    offset.y++;
     365                    pt2.x--;
     366                    pt2.y++;
     367                   
     368                    fDrawingEngine->StrokeLine(offset, pt2, fFrameMidColor);
     369                    offset.x++;
     370                    offset.y++;
     371                    pt2.x--;
     372                    pt2.y++;
     373                   
     374                    fDrawingEngine->StrokeLine(offset, pt2, fFrameMidColor);
     375                    offset.x++;
     376                    offset.y++;
     377                    pt2.x--;
     378                    pt2.y++;
     379                   
     380                    fDrawingEngine->StrokeLine(offset, pt2, fFrameLowColor);
     381                    offset.x++;
     382                    offset.y++;
     383                    pt2.x--;
     384                    pt2.y++;
     385                   
     386                    fDrawingEngine->StrokeLine(offset, pt2, fFrameLowerColor);
     387                } else {
     388                    // Some odd stuff here where the title bar is melded into the
     389                    // window border so that the sides are drawn into the title
     390                    // so we draw this bottom up
     391                    offset = topleftpt;
     392                    pt2 = toprightpt;
     393                   
     394                    fDrawingEngine->StrokeLine(offset, pt2, fFrameLowerColor);
     395                    offset.y--;
     396                    offset.x++;
     397                    pt2.y--;
     398                   
     399                    fDrawingEngine->StrokeLine(offset, pt2, fFrameLowColor);
     400                }
    361401
     402                // Draw the bottom side of the frame
    362403                offset = r.LeftBottom();
    363404                pt2 = r.RightBottom();
    364405
    365                 // Draw the bottom side of the frame
    366406                fDrawingEngine->StrokeLine(offset, pt2, fFrameLowerColor);
    367407                offset.x++;
    368408                offset.y--;