mirror of
https://github.com/alacritty/alacritty.git
synced 2024-11-18 13:55:23 -05:00
Fix icon decoding on X11
Glutin is waiting for an RGBA buffer with 8-bit depth, but our icon is 16-bit depth. So we need to normalize the color data when decoding the icon.
This commit is contained in:
parent
f4ce3ffd20
commit
668eeaaea8
1 changed files with 4 additions and 2 deletions
|
@ -326,11 +326,13 @@ impl Window {
|
||||||
pub fn get_platform_window(identity: &Identity, window_config: &WindowConfig) -> WindowBuilder {
|
pub fn get_platform_window(identity: &Identity, window_config: &WindowConfig) -> WindowBuilder {
|
||||||
#[cfg(feature = "x11")]
|
#[cfg(feature = "x11")]
|
||||||
let icon = {
|
let icon = {
|
||||||
let decoder = Decoder::new(Cursor::new(WINDOW_ICON));
|
let mut decoder = Decoder::new(Cursor::new(WINDOW_ICON));
|
||||||
|
decoder.set_transformations(png::Transformations::normalize_to_color8());
|
||||||
let mut reader = decoder.read_info().expect("invalid embedded icon");
|
let mut reader = decoder.read_info().expect("invalid embedded icon");
|
||||||
let mut buf = vec![0; reader.output_buffer_size()];
|
let mut buf = vec![0; reader.output_buffer_size()];
|
||||||
let _ = reader.next_frame(&mut buf);
|
let _ = reader.next_frame(&mut buf);
|
||||||
Icon::from_rgba(buf, reader.info().width, reader.info().height)
|
Icon::from_rgba(buf, reader.info().width, reader.info().height)
|
||||||
|
.expect("invalid embedded icon format")
|
||||||
};
|
};
|
||||||
|
|
||||||
let builder = WindowBuilder::new()
|
let builder = WindowBuilder::new()
|
||||||
|
@ -343,7 +345,7 @@ impl Window {
|
||||||
.with_fullscreen(window_config.fullscreen());
|
.with_fullscreen(window_config.fullscreen());
|
||||||
|
|
||||||
#[cfg(feature = "x11")]
|
#[cfg(feature = "x11")]
|
||||||
let builder = builder.with_window_icon(icon.ok());
|
let builder = builder.with_window_icon(Some(icon));
|
||||||
|
|
||||||
#[cfg(feature = "x11")]
|
#[cfg(feature = "x11")]
|
||||||
let builder = match window_config.decorations_theme_variant() {
|
let builder = match window_config.decorations_theme_variant() {
|
||||||
|
|
Loading…
Reference in a new issue