mirror opacity

This commit is contained in:
galister
2024-02-21 02:05:33 +01:00
parent e8f44bd4b0
commit 39cc22474b
2 changed files with 15 additions and 7 deletions

View File

@@ -80,11 +80,13 @@ where
canvas.font_size = font_size; canvas.font_size = font_size;
canvas.fg_color = color_parse(&fg_color).unwrap_or(FALLBACK_COLOR); canvas.fg_color = color_parse(&fg_color).unwrap_or(FALLBACK_COLOR);
let tz: Option<Tz> = timezone.map(|tz| tz.parse().unwrap_or_else(|_| { let tz: Option<Tz> = timezone.map(|tz| {
tz.parse().unwrap_or_else(|_| {
log::error!("Failed to parse timezone '{}'", &tz); log::error!("Failed to parse timezone '{}'", &tz);
canvas.fg_color = FALLBACK_COLOR; canvas.fg_color = FALLBACK_COLOR;
Tz::UTC Tz::UTC
})); })
});
let label = canvas.label(x, y, w, h, empty_str.clone()); let label = canvas.label(x, y, w, h, empty_str.clone());
label.state = Some(ElemState::Clock { label.state = Some(ElemState::Clock {
@@ -283,6 +285,7 @@ where
let button = canvas.button(x, y, w, h, text.clone()); let button = canvas.button(x, y, w, h, text.clone());
button.state = Some(ElemState::Mirror { name, show_hide }); button.state = Some(ElemState::Mirror { name, show_hide });
button.on_press = Some(btn_mirror_dn::<O>); button.on_press = Some(btn_mirror_dn::<O>);
button.on_scroll = Some(overlay_button_scroll);
} }
} }
} }
@@ -639,14 +642,18 @@ fn overlay_button_scroll(
delta: f32, delta: f32,
) { ) {
// want panic // want panic
let ElemState::OverlayButton { overlay, .. } = control.state.as_mut().unwrap() else { let overlay = match &mut control.state.as_mut().unwrap() {
ElemState::OverlayButton { overlay, .. } => overlay.clone(),
ElemState::Mirror { name, .. } => OverlaySelector::Name(name.clone()),
_ => {
log::error!("OverlayButton state not found"); log::error!("OverlayButton state not found");
return; return;
}
}; };
if delta > 0. { if delta > 0. {
app.tasks.enqueue(TaskType::Overlay( app.tasks.enqueue(TaskType::Overlay(
overlay.clone(), overlay,
Box::new(|_, o| { Box::new(|_, o| {
o.alpha = (o.alpha + 0.025).min(1.); o.alpha = (o.alpha + 0.025).min(1.);
o.dirty = true; o.dirty = true;
@@ -655,7 +662,7 @@ fn overlay_button_scroll(
)); ));
} else { } else {
app.tasks.enqueue(TaskType::Overlay( app.tasks.enqueue(TaskType::Overlay(
overlay.clone(), overlay,
Box::new(|_, o| { Box::new(|_, o| {
o.alpha = (o.alpha - 0.025).max(0.1); o.alpha = (o.alpha - 0.025).max(0.1);
o.dirty = true; o.dirty = true;

View File

@@ -140,6 +140,7 @@ watch_elements:
# - Blue Click: Show/hide. Shows pipewire prompt on first show. # - Blue Click: Show/hide. Shows pipewire prompt on first show.
# - Orange Click: Toggle lock in place # - Orange Click: Toggle lock in place
# - Purple Click: Stop capture. After doing this, you may Blue-click again to select a different source. # - Purple Click: Stop capture. After doing this, you may Blue-click again to select a different source.
# - Scroll: Adjust opacity
# Warning: # Warning:
# - Window shares may stop updating if the window goes off-screen or is on an inactive workspace # - Window shares may stop updating if the window goes off-screen or is on an inactive workspace
# - Resizing, minimizing, maximizing windows may break stuff. Complain to your xdg-desktop-portal implementation. # - Resizing, minimizing, maximizing windows may break stuff. Complain to your xdg-desktop-portal implementation.