Closed Bug 1291856 Opened 8 years ago Closed 8 years ago

GTK 3.4.2 does not clip clearing of window background

Categories

(Core :: Widget: Gtk, defect)

Unspecified
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla51
Tracking Status
firefox51 --- fixed

People

(Reporter: lsalzman, Assigned: lsalzman)

Details

(Whiteboard: [gfx-noted])

Attachments

(1 file)

The version of GTK 3 we use on try does not properly clip a window widget before it clears the background. This causes it to draw outside the dirty rect and fill those pixels with junk.
Attachment #8777518 - Flags: review?(andrew)
Comment on attachment 8777518 [details] [diff] [review]
push clip before drawing GTK3 widgets

Review of attachment 8777518 [details] [diff] [review]:
-----------------------------------------------------------------

::: widget/gtk/nsNativeThemeGTK.cpp
@@ +868,5 @@
>  
>    cairo_matrix_t mat;
>    GfxMatrixToCairoMatrix(transform, mat);
>  
> +  IntSize clipSize = IntSize::Ceil(Size(aDrawSize) / aScaleFactor);

This is fine, but it might be nicer to stick to integer division, i.e. 

IntSize((aDrawSize.width + aScaleFactor - 1) / aScaleFactor, (aDrawSize.height + aScaleFactor - 1) / aScaleFactor)

I'm assuming the widget overflow is included by layout in aDirtyRect.
Attachment #8777518 - Flags: review?(andrew) → review+
Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/d2fb36bd0bcf
push clip before drawing GTK3 widgets. r=acomminos
https://hg.mozilla.org/mozilla-central/rev/d2fb36bd0bcf
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla51
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: