X11: Fix flickering when resizing with transparency enabled (#546)

* X11: Fix flickering when resizing with transparency enabled

* X11: Fix with_override_redirect
This commit is contained in:
Francesca Frangipane 2018-06-03 13:11:54 -04:00 committed by GitHub
parent bf413ecb83
commit 19dd961752
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 9 deletions

View file

@ -3,8 +3,10 @@
- On X11, the `Moved` event is no longer sent when the window is resized without changing position.
- `MouseCursor` and `CursorState` now implement `Default`.
- `WindowBuilder::with_resizable` implemented for Windows.
- On X11, if width or height is reported as 0, the DPI is now 1.0 instead of +inf.
- On X11, if the monitor's width or height in millimeters is reported as 0, the DPI is now 1.0 instead of +inf.
- On X11, the environment variable `WINIT_HIDPI_FACTOR` has been added for overriding DPI factor.
- On X11, enabling transparency no longer causes the window contents to flicker when resizing.
- On X11, `with_override_redirect` now actually enables override redirect.
# Version 0.15.0 (2018-05-22)

View file

@ -102,19 +102,12 @@ impl UnownedWindow {
| ffi::ButtonReleaseMask
| ffi::PointerMotionMask;
swa.border_pixel = 0;
if window_attrs.transparent {
swa.background_pixel = 0;
}
swa.override_redirect = 0;
swa.override_redirect = pl_attribs.override_redirect as c_int;
swa
};
let mut window_attributes = ffi::CWBorderPixel | ffi::CWColormap | ffi::CWEventMask;
if window_attrs.transparent {
window_attributes |= ffi::CWBackPixel;
}
if pl_attribs.override_redirect {
window_attributes |= ffi::CWOverrideRedirect;
}