From 10574773c61d41e6af0ed42104d1d333b02c72f5 Mon Sep 17 00:00:00 2001 From: burnintuna Date: Fri, 21 Aug 2026 23:35:49 +0900 Subject: [PATCH] Release v0.2.20 --- Cargo.lock | 2 +- Cargo.toml | 4 ++-- ...github.comicviewer.Comicviewer.metainfo.xml | 1 + docs/INSTALL.ko.md | 2 +- docs/RELEASING.ko.md | 8 ++++---- src/viewer.rs | 18 +++++++++--------- src/window.rs | 7 +++++-- 7 files changed, 23 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6cf6008..44ba40a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -182,7 +182,7 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "comicviewer" -version = "0.2.19" +version = "0.2.20" dependencies = [ "anyhow", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 4f974a9..3b72bf0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "comicviewer" -version = "0.2.19" +version = "0.2.20" edition = "2024" description = "A comic archive viewer for local and remote locations" license = "GPL-3.0-or-later" @@ -8,7 +8,7 @@ license = "GPL-3.0-or-later" [dependencies] anyhow = "1.0" chrono = { version = "0.4", default-features = false, features = ["clock"] } -gtk = { package = "gtk4", version = "0.10", features = ["v4_10"] } +gtk = { package = "gtk4", version = "0.10", features = ["v4_12"] } image = { version = "0.25", default-features = false, features = ["avif-native", "bmp", "gif", "jpeg", "png", "webp"] } filetime = "0.2" flate2 = "1.0" diff --git a/data/io.github.comicviewer.Comicviewer.metainfo.xml b/data/io.github.comicviewer.Comicviewer.metainfo.xml index 2afcad9..1949cfa 100644 --- a/data/io.github.comicviewer.Comicviewer.metainfo.xml +++ b/data/io.github.comicviewer.Comicviewer.metainfo.xml @@ -26,6 +26,7 @@ + diff --git a/docs/INSTALL.ko.md b/docs/INSTALL.ko.md index 63f7d66..4c2b483 100644 --- a/docs/INSTALL.ko.md +++ b/docs/INSTALL.ko.md @@ -14,7 +14,7 @@ sudo pacman -S fuse2 gtk4 dav1d gvfs gvfs-smb gstreamer curl \ ``` - `fuse2`: AppImage 마운트 및 실행 -- `gtk4`, `dav1d`: 화면 표시와 이미지 디코딩 +- `gtk4` 4.12 이상, `dav1d`: 화면 표시와 이미지 디코딩 - `gvfs`: FTP와 SFTP 접근 - `gvfs-smb`: SMB 공유 접근 - `gstreamer`, `gst-plugins-*`, `gst-libav`: MP4 등 동영상 재생 diff --git a/docs/RELEASING.ko.md b/docs/RELEASING.ko.md index a1e85bc..b124f8f 100644 --- a/docs/RELEASING.ko.md +++ b/docs/RELEASING.ko.md @@ -55,7 +55,7 @@ AppImage 빌드가 끝나면 다음 스크립트로 체크섬과 통합 `tar.gz` 스크립트는 `Cargo.toml`에서 버전을 읽고 다음 파일을 생성합니다. -- `dist/Comicviewer-0.2.19-x86_64.AppImage.sha256` +- `dist/Comicviewer-0.2.20-x86_64.AppImage.sha256` - `dist/Comicviewer-latest-x86_64.tar.gz` - `dist/Comicviewer-latest-x86_64.tar.gz.sha256` @@ -78,10 +78,10 @@ sha256sum -c Comicviewer-latest-x86_64.tar.gz.sha256 ```sh git add Cargo.toml Cargo.lock data packaging README.md docs -git commit -m "Release v0.2.19" -git tag -a v0.2.19 -m "Comicviewer v0.2.19" +git commit -m "Release v0.2.20" +git tag -a v0.2.20 -m "Comicviewer v0.2.20" git push origin main -git push origin v0.2.19 +git push origin v0.2.20 ``` 이미 원격에 공개한 태그는 이동하거나 덮어쓰지 않습니다. 수정이 필요하면 새 diff --git a/src/viewer.rs b/src/viewer.rs index f7af34b..eb0ee7c 100644 --- a/src/viewer.rs +++ b/src/viewer.rs @@ -1872,8 +1872,8 @@ impl ViewerController { if (zoom - 1.0).abs() >= f64::EPSILON { let (width, height) = zoomed_picture_request( self.view_mode(), - self.single_scrolled.allocated_width().max(1), - self.single_scrolled.allocated_height().max(1), + self.single_scrolled.width().max(1), + self.single_scrolled.height().max(1), texture_width, texture_height, zoom, @@ -1891,7 +1891,7 @@ impl ViewerController { self.single_picture.set_size_request(width, height); } else if let Some((width, height)) = single_picture_request( self.view_mode(), - self.stack.allocated_width().max(1), + self.stack.width().max(1), texture_width, texture_height, ) { @@ -1935,8 +1935,8 @@ impl ViewerController { }; drop(state); let count = visible.len().max(1) as i32; - let viewport_width = (self.spread_scrolled.allocated_width().max(1) - 8) / count; - let viewport_height = self.spread_scrolled.allocated_height().max(1); + let viewport_width = (self.spread_scrolled.width().max(1) - 8) / count; + let viewport_height = self.spread_scrolled.height().max(1); self.spread_box.set_homogeneous(false); self.spread_box.set_halign(gtk::Align::Center); self.spread_box.set_valign(gtk::Align::Center); @@ -2177,7 +2177,7 @@ impl ViewerController { } fn continuous_content_width(&self) -> i32 { - continuous_content_width(self.stack.allocated_width()) + continuous_content_width(self.stack.width()) } fn evict_cache(&self) { @@ -3071,8 +3071,8 @@ impl MediaViewerController { if (zoom - 1.0).abs() >= f64::EPSILON { let (width, height) = zoomed_picture_request( self.image_view_mode(), - self.image_scrolled.allocated_width().max(1), - self.image_scrolled.allocated_height().max(1), + self.image_scrolled.width().max(1), + self.image_scrolled.height().max(1), texture_width, texture_height, zoom, @@ -3090,7 +3090,7 @@ impl MediaViewerController { self.picture.set_size_request(width, height); } else if let Some((width, height)) = single_picture_request( self.image_view_mode(), - self.stack.allocated_width().max(1), + self.stack.width().max(1), texture_width, texture_height, ) { diff --git a/src/window.rs b/src/window.rs index 838b684..f4830f5 100644 --- a/src/window.rs +++ b/src/window.rs @@ -848,8 +848,11 @@ impl BrowserController { drop(state); if let Some(index) = found { - self.list_selection.set_selected(index as u32); - let _ = self.list_view.grab_focus(); + self.list_view.scroll_to( + index as u32, + gtk::ListScrollFlags::FOCUS | gtk::ListScrollFlags::SELECT, + None, + ); self.status_label.set_text(&format!( "'{query}'로 이동: {}", found_name.unwrap_or_default()