[haiku-bugs] Re: [Haiku] #7639: Vertically resizing leaves redrawing artifacts

  • From: "x-ist" <trac@xxxxxxxxxxxx>
  • Date: Fri, 30 Nov 2012 07:27:33 -0000

#7639: Vertically resizing leaves redrawing artifacts
----------------------------------+-----------------------------
   Reporter:  humdinger           |      Owner:  axeld
       Type:  bug                 |     Status:  new
   Priority:  normal              |  Milestone:  R1
  Component:  Kits/Interface Kit  |    Version:  R1/Development
 Resolution:                      |   Keywords:  BColumnListView
 Blocked By:                      |   Blocking:
Has a Patch:  0                   |   Platform:  All
----------------------------------+-----------------------------

Comment (by x-ist):

 It seems there is an off-by-one error in the passed-in invalidBounds
 parameter of
 '''OutlineView::Draw(BRect invalidBounds)''' in ColumnListView.cpp.
 I still have to investigate where exactly the miscalculation happens
 though.

 If the method is changed like this:
 {{{
 void
 OutlineView::Draw(BRect invalidBounds)
 {
         invalidBounds.top -= 1;
         invalidBounds.left -= 1;

 #if SMART_REDRAW
         BRegion invalidRegion;
         GetClippingRegion(&invalidRegion);
 #endif

         ...
 }}}
 the glitches disappear, and not only the horizontal ones at the bottom!

 In line 3398 the focus row can then be drawn with the correct width
 {{{
         StrokeRect(BRect(0, line, invalidBounds.right, line + rowHeight));
 }}}
 instead of
 {{{
         StrokeRect(BRect(0, line, 10000.0, line + rowHeight));
 }}}
 which I suppose was done due to glitches upon resizing the window to the
 right.

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/7639#comment:4>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: