Bug 1475193 - Use nsWindow::IsComposited() where possible, r?jhorak
MozReview-Commit-ID: E28fUnRFWaY
--- a/widget/gtk/nsWindow.cpp
+++ b/widget/gtk/nsWindow.cpp
@@ -2129,20 +2129,17 @@ nsWindow::OnExposeEvent(cairo_t *cr)
// Our bounds may have changed after calling WillPaintWindow. Clip
// to the new bounds here. The region is relative to this
// window.
region.And(region, LayoutDeviceIntRect(0, 0, mBounds.width, mBounds.height));
bool shaped = false;
if (eTransparencyTransparent == GetTransparencyMode()) {
- GdkScreen *screen = gdk_window_get_screen(mGdkWindow);
- if (gdk_screen_is_composited(screen) &&
- gdk_window_get_visual(mGdkWindow) ==
- gdk_screen_get_rgba_visual(screen)) {
+ if (IsComposited()) {
// Remove possible shape mask from when window manger was not
// previously compositing.
static_cast<nsWindow*>(GetTopLevelWidget())->
ClearTransparencyBitmap();
} else {
shaped = true;
}
}
@@ -2233,22 +2230,19 @@ nsWindow::OnExposeEvent(cairo_t *cr)
#endif
#endif
#endif // MOZ_X11
bool painted = false;
{
if (GetLayerManager()->GetBackendType() == LayersBackend::LAYERS_BASIC) {
- GdkScreen *screen = gdk_window_get_screen(mGdkWindow);
if (GetTransparencyMode() == eTransparencyTransparent &&
layerBuffering == BufferMode::BUFFER_NONE &&
- gdk_screen_is_composited(screen) &&
- gdk_window_get_visual(mGdkWindow) ==
- gdk_screen_get_rgba_visual(screen)) {
+ IsComposited()) {
// If our draw target is unbuffered and we use an alpha channel,
// clear the image beforehand to ensure we don't get artifacts from a
// reused SHM image. See bug 1258086.
dt->ClearRect(Rect(boundsRect));
}
AutoLayerManagerSetup setupLayerManager(this, ctx, layerBuffering);
painted = listener->PaintWindow(this, region);
@@ -7212,17 +7206,17 @@ void nsWindow::GetCompositorWidgetInitDa
bool
nsWindow::IsComposited() const
{
if (!mGdkWindow) {
NS_WARNING("nsWindow::HasARGBVisual called before realization!");
return false;
}
- GdkScreen* gdkScreen = gdk_screen_get_default();
+ GdkScreen* gdkScreen = gdk_window_get_screen(mGdkWindow);
return gdk_screen_is_composited(gdkScreen) &&
(gdk_window_get_visual(mGdkWindow)
== gdk_screen_get_rgba_visual(gdkScreen));
}
#ifdef MOZ_WAYLAND
wl_display*
nsWindow::GetWaylandDisplay()