build(appimage): harden thin bundle workflow
Keep host multimedia libraries out of the AppImage, document the exact Ubuntu build inputs, and resolve Rust 1.97 release-gate warnings.
This commit is contained in:
+14
-14
@@ -5568,7 +5568,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
.size(11)
|
||||
.color(color_subtext),
|
||||
slider(0.0..=1.0, state.config.background_dim, AppMessage::SetBackgroundDim)
|
||||
.step(0.05),
|
||||
.step(0.05_f32),
|
||||
text("Set a picture from your computer as the app background. Auto-resized; a dimming overlay keeps text readable. Applies live.")
|
||||
.size(11)
|
||||
.color(color_subtext),
|
||||
@@ -5996,7 +5996,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
).width(iced::Length::Fill),
|
||||
text(format!("Input Volume (mic): {:.0}%", state.config.input_volume * 100.0)).size(11).color(color_subtext),
|
||||
slider(0.0..=2.0, state.config.input_volume, AppMessage::InputVolumeChanged)
|
||||
.step(0.05)
|
||||
.step(0.05_f32)
|
||||
.on_release(AppMessage::PersistConfig),
|
||||
].spacing(8).width(iced::Length::Fill),
|
||||
column![
|
||||
@@ -6008,7 +6008,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
).width(iced::Length::Fill),
|
||||
text(format!("Output Volume: {:.0}%", state.config.output_volume * 100.0)).size(11).color(color_subtext),
|
||||
slider(0.0..=2.0, state.config.output_volume, AppMessage::OutputVolumeChanged)
|
||||
.step(0.05)
|
||||
.step(0.05_f32)
|
||||
.on_release(AppMessage::PersistConfig),
|
||||
].spacing(8).width(iced::Length::Fill),
|
||||
].spacing(20).align_y(iced::alignment::Vertical::Top).width(iced::Length::Fill),
|
||||
@@ -6618,7 +6618,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
column![
|
||||
row![
|
||||
avatar_view(&state.config.avatar, &state.name, &state.self_id, 34.0),
|
||||
text(format!("{} (You)", &state.name)).size(16).color(color_text),
|
||||
text(format!("{} (You)", state.name)).size(16).color(color_text),
|
||||
horizontal_space(),
|
||||
if state.is_muted {
|
||||
text("[Muted]").size(14).color(color_red)
|
||||
@@ -6933,7 +6933,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
slider(0.0..=2.0, current_vol, move |v| {
|
||||
AppMessage::PeerVolumeChanged(peer_id_clone, v)
|
||||
})
|
||||
.step(0.01)
|
||||
.step(0.01_f32)
|
||||
.on_release(AppMessage::PersistConfig)
|
||||
]
|
||||
.spacing(8)
|
||||
@@ -6946,7 +6946,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
slider(-1.0..=1.0, current_pan, move |v| {
|
||||
AppMessage::PeerPanChanged(peer_id_clone, v)
|
||||
})
|
||||
.step(0.05)
|
||||
.step(0.05_f32)
|
||||
.on_release(AppMessage::PersistConfig),
|
||||
]
|
||||
.spacing(8)
|
||||
@@ -6961,7 +6961,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
slider(0.0..=METER_MAX, current_gate, move |v| {
|
||||
AppMessage::PeerGateChanged(peer_id_clone, v)
|
||||
})
|
||||
.step(0.001)
|
||||
.step(0.001_f32)
|
||||
.on_release(AppMessage::PersistConfig),
|
||||
]
|
||||
.spacing(8)
|
||||
@@ -6980,7 +6980,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
slider(EQ_GAIN_DB_MIN..=EQ_GAIN_DB_MAX, value, move |v| {
|
||||
AppMessage::PeerEqChanged(peer_id_clone, band, v)
|
||||
})
|
||||
.step(0.5)
|
||||
.step(0.5_f32)
|
||||
.on_release(AppMessage::PersistConfig),
|
||||
]
|
||||
.spacing(8)
|
||||
@@ -7215,7 +7215,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
clip_progress(music_status.position, music_status.total),
|
||||
AppMessage::MusicSeek,
|
||||
)
|
||||
.step(0.001),
|
||||
.step(0.001_f32),
|
||||
text(format!("{elapsed} / {duration}"))
|
||||
.size(11)
|
||||
.color(color_subtext),
|
||||
@@ -7225,7 +7225,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
state.config.music_volume,
|
||||
AppMessage::MusicSetVolume
|
||||
)
|
||||
.step(0.01),
|
||||
.step(0.01_f32),
|
||||
button(
|
||||
text("Browse")
|
||||
.size(12)
|
||||
@@ -7319,7 +7319,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
effective_music_volume(state),
|
||||
AppMessage::MusicSetSourceVolume
|
||||
)
|
||||
.step(0.01),
|
||||
.step(0.01_f32),
|
||||
]
|
||||
.spacing(8)
|
||||
.into()
|
||||
@@ -7815,7 +7815,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
},
|
||||
move |fraction| AppMessage::SeekAudio(att.id, fraction),
|
||||
)
|
||||
.step(0.001)
|
||||
.step(0.001_f32)
|
||||
.width(iced::Length::Fixed(180.0)),
|
||||
text(format!("{elapsed} / {duration}"))
|
||||
.size(11)
|
||||
@@ -7827,7 +7827,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
slider(0.0..=2.0, effective_clip_volume(state, att.id), move |v| {
|
||||
AppMessage::SetClipVolumeFor(att.id, v)
|
||||
},)
|
||||
.step(0.01)
|
||||
.step(0.01_f32)
|
||||
.width(iced::Length::Fixed(80.0)),
|
||||
]
|
||||
.spacing(8)
|
||||
@@ -7945,7 +7945,7 @@ fn view(state: &AppState) -> Element<'_, AppMessage> {
|
||||
state.config.clip_volume,
|
||||
AppMessage::SetClipVolume
|
||||
)
|
||||
.step(0.01)
|
||||
.step(0.01_f32)
|
||||
.width(iced::Length::Fixed(110.0)),
|
||||
]
|
||||
.spacing(10)
|
||||
|
||||
@@ -435,13 +435,10 @@ where
|
||||
|
||||
let was_hovered = self.hovered_link.is_some();
|
||||
self.hovered_link = local_position.and_then(|position| {
|
||||
state.paragraph.hit_span(position).and_then(|span| {
|
||||
if spans.get(span)?.link.is_some() {
|
||||
Some(span)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
state
|
||||
.paragraph
|
||||
.hit_span(position)
|
||||
.filter(|&span| spans.get(span).is_some_and(|span| span.link.is_some()))
|
||||
});
|
||||
|
||||
if was_hovered != self.hovered_link.is_some() {
|
||||
|
||||
Reference in New Issue
Block a user