fix active modifier border color not sticking on unhover (#405)
This commit is contained in:
@@ -163,7 +163,8 @@ pub(super) fn create_keyboard_panel(
|
|||||||
button_state: key.button_state,
|
button_state: key.button_state,
|
||||||
color: rect.params.color,
|
color: rect.params.color,
|
||||||
color2: rect.params.color2,
|
color2: rect.params.color2,
|
||||||
border_color: rect.params.border_color,
|
base_border_color: rect.params.border_color,
|
||||||
|
cur_border_color: rect.params.border_color.into(),
|
||||||
border: rect.params.border,
|
border: rect.params.border,
|
||||||
drawn_state: false.into(),
|
drawn_state: false.into(),
|
||||||
})
|
})
|
||||||
@@ -351,10 +352,11 @@ fn set_anim_color(
|
|||||||
rect.params.color2.b = key_state.color2.b.lerp(accent_color.b, pos);
|
rect.params.color2.b = key_state.color2.b.lerp(accent_color.b, pos);
|
||||||
|
|
||||||
// fade to white
|
// fade to white
|
||||||
rect.params.border_color.r = key_state.border_color.r.lerp(1.0, pos);
|
let cur_border_color = key_state.cur_border_color.get();
|
||||||
rect.params.border_color.g = key_state.border_color.g.lerp(1.0, pos);
|
rect.params.border_color.r = cur_border_color.r.lerp(1.0, pos);
|
||||||
rect.params.border_color.b = key_state.border_color.b.lerp(1.0, pos);
|
rect.params.border_color.g = cur_border_color.g.lerp(1.0, pos);
|
||||||
rect.params.border_color.a = key_state.border_color.a.lerp(1.0, pos);
|
rect.params.border_color.b = cur_border_color.b.lerp(1.0, pos);
|
||||||
|
rect.params.border_color.a = cur_border_color.a.lerp(1.0, pos);
|
||||||
|
|
||||||
rect.params.border = key_state.border.lerp(key_state.border * 1.5, pos);
|
rect.params.border = key_state.border.lerp(key_state.border * 1.5, pos);
|
||||||
}
|
}
|
||||||
@@ -412,7 +414,10 @@ fn on_press_anim(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let rect = data.obj.get_as_mut::<WidgetRectangle>().unwrap();
|
let rect = data.obj.get_as_mut::<WidgetRectangle>().unwrap();
|
||||||
rect.params.border_color = Color::new(1.0, 1.0, 1.0, 1.0);
|
key_state
|
||||||
|
.cur_border_color
|
||||||
|
.set(Color::new(1.0, 1.0, 1.0, 1.0));
|
||||||
|
rect.params.border_color = key_state.cur_border_color.get();
|
||||||
common.alterables.mark_redraw();
|
common.alterables.mark_redraw();
|
||||||
key_state.drawn_state.set(true);
|
key_state.drawn_state.set(true);
|
||||||
}
|
}
|
||||||
@@ -426,7 +431,8 @@ fn on_release_anim(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let rect = data.obj.get_as_mut::<WidgetRectangle>().unwrap();
|
let rect = data.obj.get_as_mut::<WidgetRectangle>().unwrap();
|
||||||
rect.params.border_color = key_state.border_color;
|
key_state.cur_border_color.set(key_state.base_border_color);
|
||||||
|
rect.params.border_color = key_state.cur_border_color.get();
|
||||||
common.alterables.mark_redraw();
|
common.alterables.mark_redraw();
|
||||||
key_state.drawn_state.set(false);
|
key_state.drawn_state.set(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -356,7 +356,8 @@ struct KeyState {
|
|||||||
button_state: KeyButtonData,
|
button_state: KeyButtonData,
|
||||||
color: drawing::Color,
|
color: drawing::Color,
|
||||||
color2: drawing::Color,
|
color2: drawing::Color,
|
||||||
border_color: drawing::Color,
|
base_border_color: drawing::Color,
|
||||||
|
cur_border_color: Cell<drawing::Color>,
|
||||||
border: f32,
|
border: f32,
|
||||||
drawn_state: Cell<bool>,
|
drawn_state: Cell<bool>,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user