diff --git a/Cargo.lock b/Cargo.lock index 44ba40a..6cf6008 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -182,7 +182,7 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "comicviewer" -version = "0.2.20" +version = "0.2.19" dependencies = [ "anyhow", "chrono", diff --git a/Cargo.toml b/Cargo.toml index 3b72bf0..4f974a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "comicviewer" -version = "0.2.20" +version = "0.2.19" 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_12"] } +gtk = { package = "gtk4", version = "0.10", features = ["v4_10"] } 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 1949cfa..2afcad9 100644 --- a/data/io.github.comicviewer.Comicviewer.metainfo.xml +++ b/data/io.github.comicviewer.Comicviewer.metainfo.xml @@ -26,7 +26,6 @@ - diff --git a/docs/INSTALL.ko.md b/docs/INSTALL.ko.md index 4c2b483..63f7d66 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` 4.12 이상, `dav1d`: 화면 표시와 이미지 디코딩 +- `gtk4`, `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 b124f8f..a1e85bc 100644 --- a/docs/RELEASING.ko.md +++ b/docs/RELEASING.ko.md @@ -55,7 +55,7 @@ AppImage 빌드가 끝나면 다음 스크립트로 체크섬과 통합 `tar.gz` 스크립트는 `Cargo.toml`에서 버전을 읽고 다음 파일을 생성합니다. -- `dist/Comicviewer-0.2.20-x86_64.AppImage.sha256` +- `dist/Comicviewer-0.2.19-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.20" -git tag -a v0.2.20 -m "Comicviewer v0.2.20" +git commit -m "Release v0.2.19" +git tag -a v0.2.19 -m "Comicviewer v0.2.19" git push origin main -git push origin v0.2.20 +git push origin v0.2.19 ``` 이미 원격에 공개한 태그는 이동하거나 덮어쓰지 않습니다. 수정이 필요하면 새 diff --git a/src/viewer.rs b/src/viewer.rs index eb0ee7c..f7af34b 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.width().max(1), - self.single_scrolled.height().max(1), + self.single_scrolled.allocated_width().max(1), + self.single_scrolled.allocated_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.width().max(1), + self.stack.allocated_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.width().max(1) - 8) / count; - let viewport_height = self.spread_scrolled.height().max(1); + let viewport_width = (self.spread_scrolled.allocated_width().max(1) - 8) / count; + let viewport_height = self.spread_scrolled.allocated_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.width()) + continuous_content_width(self.stack.allocated_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.width().max(1), - self.image_scrolled.height().max(1), + self.image_scrolled.allocated_width().max(1), + self.image_scrolled.allocated_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.width().max(1), + self.stack.allocated_width().max(1), texture_width, texture_height, ) { diff --git a/src/window.rs b/src/window.rs index f4830f5..838b684 100644 --- a/src/window.rs +++ b/src/window.rs @@ -848,11 +848,8 @@ impl BrowserController { drop(state); if let Some(index) = found { - self.list_view.scroll_to( - index as u32, - gtk::ListScrollFlags::FOCUS | gtk::ListScrollFlags::SELECT, - None, - ); + self.list_selection.set_selected(index as u32); + let _ = self.list_view.grab_focus(); self.status_label.set_text(&format!( "'{query}'로 이동: {}", found_name.unwrap_or_default()