After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 760942 - gitg drawing code broken
gitg drawing code broken
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: .General
3.19.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2016-01-21 15:21 UTC by Ignacio Casal Quinteiro (nacho)
Modified: 2016-01-22 04:43 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Ignacio Casal Quinteiro (nacho) 2016-01-21 15:21:43 UTC
There seems to be a regression on gitg from this commit:

commit 580ea227a6bb19ad6c6d4766b3a36dbad24583f3
Author: Benjamin Otte <otte@redhat.com>
Date:   Tue Jan 19 02:42:58 2016 +0100

    widget: Redo drawing code
    
    Previously, we had a special cae to draw subwindows of widgets.
    
    This is not necessary as conformant widgets should be able to properly
    render themselves when all windows need to be painted.
    From now on assume that is the case.
    
    We therefore paint nonnative GDK windows "inline" by just returning TRUE
    for gtk_cairo_should_draw_window() for those windows.
    
    This speeds up hilighting different rows in the listbox gtk-demo example
    tremendously (by a factor of 10 or more) as the previous code was
    O(<number of non-window subwidgets> *
    <number of subwindows>) which in the listbox example were ~15,000 and
    ~2,000 respectively.

Open gitg, check the diff view, you will see a couple of lines crossing the text view instead of being on the gutter.
Comment 1 Ignacio Casal Quinteiro (nacho) 2016-01-21 15:26:51 UTC
This is the specific code we use for this:

https://git.gnome.org/browse/gitg/tree/libgitg/gitg-diff-view-file-renderer-text.vala#n447

We are pretty much open to change it if you think we are doing something stupid that can be improved.