• Tomaž Vajngerl's avatar
    tdf#82009 TreeList move painting of drag target into Paint func. · 14abbc6e
    Tomaž Vajngerl yazdı
    When we drag a entry in TreeListBox, we execute a PaintDDCursor
    which paints a "cursor" of a possible drag target (for example
    to show where the entry will be moved to if we want to change the
    order). The problem with this fuction is that it paints a line
    directlly at that location, and that it uses invert raster
    operation to draw a line. So to hide the line it just needs to
    draw again. On MacOS this invertion causes a problem and draws
    the whole area black, which is the cause of this bug.
    
    So instead of inverting the drawing of the drag target cursor
    has now been moved into the main Paint method, where it redraws
    the whole entry, and if present, also the drag target cursor.
    This means that all we need to do is Invalidate the entry,
    which then just gets redrawn in a normal Paint pass.
    
    One exception is still MacOS, which doesn't invalidate the entry,
    but redraws the entry directly. DnD is MacOS is a bit different
    as it is not async (if I understand correctly) so the invalidate
    has no effect.
    
    Change-Id: I8542f47940a3b90114ea4bbbac57fd303ca3434b
    Reviewed-on: https://gerrit.libreoffice.org/70521
    Tested-by: Jenkins
    Reviewed-by: 's avatarTomaž Vajngerl <quikee@gmail.com>
    14abbc6e
svimpbox.hxx 15.9 KB