Bug 90350 - [GTK] [STABLE] Widget painting on systems without Alpha channel support broken
Summary: [GTK] [STABLE] Widget painting on systems without Alpha channel support broken
Status: RESOLVED CONFIGURATION CHANGED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-07-01 12:35 PDT by Beau Adkins
Modified: 2021-05-06 02:08 PDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Beau Adkins 2012-07-01 12:35:16 PDT
This bug was introduced here: http://trac.webkit.org/changeset/98827

The root cause is the removal of the line:

gc.setGdkExposeEvent(event); 

from webkitwebview.cpp

Without this line being set, it breaks the widget rendering in WidgetRenderingContext.cpp. The WidgetRenderingContext class can function in 2 ways:

If transparency is supported, a pixmap is created that is a little larger than needed to hold the rendered widget. The widget is then rendered onto the pixmap. The excess area of the pixmap is assumed to be transparent. The whole pixmap is then drawn onto the cairo surface.

If transparency is not supported, it is assumed that there is a reference to the window that is being drawn to. In this case, the widget is rendered right to the window.

With this change, there is no longer a reference to the window. The code in WidgetRenderingContext.cpp then flows through as if transparency were supported. The result is a large black border around all widgets.
Comment 1 Beau Adkins 2012-07-04 08:33:25 PDT
This bug is present in webkitgtk 1.7.90 and onwards.
Comment 2 Martin Robinson 2021-05-06 02:08:10 PDT
Closing this since the original change was for WebKit1.