Skip to content

Commit

Permalink
X11: Fix flickering when resizing with transparency enabled (#546)
Browse files Browse the repository at this point in the history
* X11: Fix flickering when resizing with transparency enabled

* X11: Fix with_override_redirect
  • Loading branch information
francesca64 authored Jun 3, 2018
1 parent bf413ec commit 19dd961
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 9 deletions.
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
9 changes: 1 addition & 8 deletions src/platform/linux/x11/window.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down

0 comments on commit 19dd961

Please sign in to comment.