Fix FONT_PITCH_AND_FAMILY, CreateBitmap, and linuxdeploy ELF wrapper
Windows (windows-rs 0.61): - FONT_PITCH_AND_FAMILY does not exist; ipitchandfamily is u32 - revert to (DEFAULT_PITCH.0 | FF_DONTCARE.0) as u32 - CreateBitmap returns HBITMAP directly (not Result<HBITMAP>); replace .map_err()? with explicit null pointer check on hbm_mask.0 Linux AppImage: - Shell script wrapper is destroyed by Tauri's `dd if=/dev/zero bs=1 count=3 seek=8` which zeroes the shebang at bytes 8-10 - Compile a tiny C ELF forwarder instead: ELF bytes 8-10 are EI_OSABI/EI_ABIVERSION padding (already zero), dd is a no-op - Use page-aligned squashfs offset search for more reliable extraction - Add set -e to Stage step and explicit gcc install Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -106,7 +106,7 @@ fn set_badge_count(count: u32, window: tauri::Window) -> Result<(), String> {
|
||||
ReleaseDC, SelectObject, SetBkMode, SetTextColor, BITMAPINFO,
|
||||
BITMAPINFOHEADER, BI_RGB, CLIP_DEFAULT_PRECIS, DEFAULT_CHARSET, DEFAULT_PITCH,
|
||||
DEFAULT_QUALITY, DT_CENTER, DT_SINGLELINE, DT_VCENTER, FF_DONTCARE,
|
||||
FONT_PITCH_AND_FAMILY, FW_BOLD, OUT_DEFAULT_PRECIS, PS_NULL, TRANSPARENT,
|
||||
FW_BOLD, OUT_DEFAULT_PRECIS, PS_NULL, TRANSPARENT,
|
||||
},
|
||||
UI::{
|
||||
Shell::{ITaskbarList3, TaskbarList},
|
||||
@@ -168,7 +168,7 @@ fn set_badge_count(count: u32, window: tauri::Window) -> Result<(), String> {
|
||||
OUT_DEFAULT_PRECIS,
|
||||
CLIP_DEFAULT_PRECIS,
|
||||
DEFAULT_QUALITY,
|
||||
FONT_PITCH_AND_FAMILY(DEFAULT_PITCH.0 | FF_DONTCARE.0),
|
||||
(DEFAULT_PITCH.0 | FF_DONTCARE.0) as u32,
|
||||
windows::core::w!("Segoe UI"),
|
||||
);
|
||||
let old_font = SelectObject(hdc, hfont.into());
|
||||
@@ -191,8 +191,11 @@ fn set_badge_count(count: u32, window: tauri::Window) -> Result<(), String> {
|
||||
let _ = DeleteObject(hpen.into());
|
||||
let _ = DeleteObject(hfont.into());
|
||||
|
||||
let hbm_mask = CreateBitmap(size, size, 1, 1, None)
|
||||
.map_err(|e| { let _ = DeleteObject(hbm_color.into()); e.to_string() })?;
|
||||
let hbm_mask = CreateBitmap(size, size, 1, 1, None);
|
||||
if hbm_mask.0 as usize == 0 {
|
||||
let _ = DeleteObject(hbm_color.into());
|
||||
return Err("CreateBitmap failed".to_string());
|
||||
}
|
||||
|
||||
let icon_info = ICONINFO {
|
||||
fIcon: BOOL(1),
|
||||
|
||||
Reference in New Issue
Block a user