Bug 209336
| Summary: | Breaks scrolling in firefox | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Bill Nottingham <notting> | ||||||
| Component: | xorg-x11-server | Assignee: | X/OpenGL Maintenance List <xgl-maint> | ||||||
| Status: | CLOSED RAWHIDE | QA Contact: | |||||||
| Severity: | medium | Docs Contact: | |||||||
| Priority: | medium | ||||||||
| Version: | rawhide | CC: | rvokal | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | All | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2006-10-06 19:26:27 UTC | Type: | --- | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Attachments: |
|
||||||||
|
Description
Bill Nottingham
2006-10-04 17:59:51 UTC
Created attachment 137760 [details]
Example of the scrolling corruption
Created attachment 137776 [details]
Simple reproducer
This program reproduces the problem outside of mozilla. What it does:
- create a toplevel window
- create two children (siblings) of the toplevel
- one is the same size as the toplevel
- the other is smaller and on top of the first child
- Use XCopyArea() to scroll the big sibling
Under metacity a GraphicsExpose event is generated. Under compiz a NoExpose is
generated.
So this is a bug in the X server.
Just to be clear: sending GraphicsExpose is the correct behavior since the pixels under the second child are not available. This bug (missing GraphicsExpose) should be fixed in xorg-x11-server-1.1.1-47.fc6. However, if you turn off smooth scrolling you can produce similar symptoms by holding down the up arrow. This is a separate bug, where firefox somehow gets confused by getting keypresses faster than it can redraw. For me, this shows under compiz since repainting is slower there than under metacity, but it can also be reproduced under metacity by these steps: - run firefox, display one of the glib API pages scrolled down some - turn off smooth scrolling in about:config - log in from another computer and attach gdb to firefox - press 'up arrow' 16 times in the firefox window, while firefox is still stopped due to gdb - 'continue' in gdb This produces corruption even when there is no compositing going on. One thing that might cause this (and this is pure speculation) is using CopyArea to scroll a window, and then not translating expose events correctly. Eg. - X server generates an expose event for the rectangle R - client sends CopyArea that copies R somewhere else - client sees expose event for (old position of) R At this point the client needs translate the rectangle in the expose event to take into account the fact that the exposed area was moved _after_ the event was generated. I filed the second bug as https://bugzilla.mozilla.org/show_bug.cgi?id=355745 |