R6.12, R6.13: the LOK worker has no Dock icon; Show turns slides
R6.12: on macOS the worker sets LibreOffice's own NSApplication to the accessory policy before the kit starts, so it never shows in the Dock. R6.13: when the whole slide fits, the wheel and Up/Down (nothing selected, no text editing) turn slides in the ElyShow editor. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
bb943fb84b
commit
fdb8317d24
14 files changed
+312
-19
No files matched your search
@@ -9,10 +9,11 @@ use ely_gpui_component::{
|
||||
};
|
||||
use ely_office::prelude::*;
|
||||
use gpui::{
|
||||
Action, App, Context, Div, InteractiveElement as _, IntoElement, Menu, MenuItem,
|
||||
Action, App, Context, Div, Entity, InteractiveElement as _, IntoElement, Menu, MenuItem,
|
||||
ParentElement as _, Render, RenderImage, Role, StatefulInteractiveElement as _, Styled as _,
|
||||
WeakEntity, Window, actions, div, img, prelude::FluentBuilder as _, px,
|
||||
};
|
||||
use ely_lok::LokView;
|
||||
use image::{Frame, ImageBuffer, Rgba};
|
||||
|
||||
use crate::deck::Deck;
|
||||
@@ -98,6 +99,19 @@ impl Deck {
|
||||
self.run_active(id, &[], cx);
|
||||
}
|
||||
|
||||
/// Shows the slide `step` away, as the strip would.
|
||||
pub(crate) fn turn(&mut self, id: u64, view: &Entity<LokView>, step: i32, cx: &mut Context<Self>) {
|
||||
let Some(count) = self.tab(id).map(|tab| tab.extra.slides.list.len()).filter(|count| *count > 0) else {
|
||||
return;
|
||||
};
|
||||
// From the part asked last, so quick turns add up.
|
||||
let shown = view.read(cx).part();
|
||||
let part = (shown as i64 + i64::from(step)).clamp(0, count as i64 - 1) as usize;
|
||||
if part != shown {
|
||||
view.update(cx, |view, _| view.show_part(part));
|
||||
}
|
||||
}
|
||||
|
||||
/// Paints the next missing or stale slide picture.
|
||||
pub fn paint_next(&mut self, id: u64, cx: &mut Context<Self>) {
|
||||
let Some(tab) = self.tab(id) else {
|
||||
|
||||
Reference in new issue
Block a user