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 703124 - [regression] Scrolling results in upper part of spreadsheet being obscured
[regression] Scrolling results in upper part of spreadsheet being obscured
Status: RESOLVED FIXED
Product: Gnumeric
Classification: Applications
Component: General
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Jody Goldberg
Jody Goldberg
: 704684 705894 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2013-06-26 13:43 UTC by David Ronis
Modified: 2013-08-20 13:37 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Screenshot showing the problem (127.10 KB, image/png)
2013-06-26 13:43 UTC, David Ronis
  Details
canvas: Look at cairo clip region rather than current expose event (3.54 KB, patch)
2013-08-20 11:17 UTC, Alexander Larsson
none Details | Review

Description David Ronis 2013-06-26 13:43:46 UTC
Created attachment 247826 [details]
Screenshot showing the problem

I'm running 1.12.3 of gnumeric, 0.10.3 of goffice, 0.37.3 of glib, and gtk+ 3.9.6.   When I start gnumeric,
 I get what is expected; however, on scrolling the upper part of the spreadsheet becomes obscured (I'll attach a screenshot).   Remapping the window fixes this until the next time I scroll.
Comment 1 Andreas J. Guelzow 2013-06-26 14:13:47 UTC
This looks like a gtk bug to me.
Comment 2 Andreas J. Guelzow 2013-06-27 00:40:51 UTC
David, can you replicate this with a release version of gtk+, i.e. 3.8.2? Otherwise you should really file this against gtk+.
Comment 3 Andreas J. Guelzow 2013-07-22 14:42:25 UTC
*** Bug 704684 has been marked as a duplicate of this bug. ***
Comment 4 Morten Welinder 2013-07-22 19:40:05 UTC
David, did you ever get to try this with a stable release of gtk+?
Comment 5 David Ronis 2013-07-22 20:12:13 UTC
Unfortunately not.  I'm trying to keep the garnome build system running, and build at the cutting edge.  If I revert gtk+ lots of stuff breaks.
Comment 6 Andreas J. Guelzow 2013-07-22 20:33:05 UTC
@Morten, Jean is using gtk 3.8.2 and is not seeing this problem. (Of course there may really be additional differences.)
Comment 7 Morten Welinder 2013-08-13 16:49:00 UTC
*** Bug 705894 has been marked as a duplicate of this bug. ***
Comment 8 Yanko Kaneti 2013-08-13 18:01:14 UTC
Some local bisecting on rawhide points to 
https://git.gnome.org/browse/gtk+/commit/?id=d22fd7223c75f4720ddb982c659efb0d8d7543c4
Thats between gtk+ 3.9.0 and gtk+ 3.9.2
Comment 9 Morten Welinder 2013-08-13 18:17:01 UTC
So we're missing expose events after a large expose-events related commit.
That's going to be unpleasant to debug, :-(
Comment 10 Morten Welinder 2013-08-13 18:18:38 UTC
Adding alexl@redhat.com for comments.

commit d22fd7223c75f4720ddb982c659efb0d8d7543c4
Author: Alexander Larsson <alexl@redhat.com>
Date:   Wed Apr 17 20:55:26 2013 +0200

    Only handle exposes on native window, propagate to children via draw()
Comment 11 Alexander Larsson 2013-08-20 11:02:03 UTC
The problem appears in GocCanvas during expose events. It does:

 GdkEventExpose *event = (GdkEventExpose *) gtk_get_current_event ();
 if (event && event->type == GDK_EXPOSE) {
   Look at event->area to minimize drawn area...

But, in the new world the current event is the expose event on the toplevel, rather than the one on the inner widget because we do all propagation recursively from the toplevel down on the same cairo_t.

The proper fix for GocCanvas is to use cairo_clip_extents() to find the extents of where to draw, but we should perhaps try to add fake GdkEvents to handle this..
Comment 12 Alexander Larsson 2013-08-20 11:17:24 UTC
Created attachment 252374 [details] [review]
canvas: Look at cairo clip region rather than current expose event

This fixes redraw issues with latest Gtk+ which only sends expose events
for the actual toplevel windows rather than each GdkWindow.
Comment 13 Morten Welinder 2013-08-20 12:49:16 UTC
Yanko: can you confirm that this patch resolves the issue in your setup?
Comment 14 Yanko Kaneti 2013-08-20 12:51:41 UTC
Yes it works for me.
rawhide, goffice 0.10.5 + patch, gnumeric 1.25.5
Comment 15 Yanko Kaneti 2013-08-20 12:52:27 UTC
sorry, meant gnumeric 1.12.5 not 1.25.5
Comment 16 Morten Welinder 2013-08-20 13:37:21 UTC
This problem has been fixed in our software repository. The fix will go into the next software release. Thank you for your bug report.