Skip to content

Feat/gtk4#341

Open
rmakestrash-jpg wants to merge 10 commits intotauri-apps:feat/gtk4from
rmakestrash-jpg:feat/gtk4
Open

Feat/gtk4#341
rmakestrash-jpg wants to merge 10 commits intotauri-apps:feat/gtk4from
rmakestrash-jpg:feat/gtk4

Conversation

@rmakestrash-jpg
Copy link
Copy Markdown

Gtk4

rmakestrash-jpg and others added 10 commits December 15, 2025 13:16
- implement PredefinedMenuItem handlers with GTK4 GActions
- add parent_menu tracking to GtkMenuChild for remove/update ops
- implement Menu::remove() and Submenu::remove() with position tracking
- implement set_text() and set_icon() with remove+reinsert pattern
- implement remove_for_gtk_window() cleanup
- fix typo: applicaiton -> application
- fix new_native_icon type (Submenu -> Icon)
- add duplicate action guards for Fullscreen/About

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add icon() getter method to MenuChild
- Populate icon bytes in IconMenuItem constructors for compat layer
- Extract PNG bytes before Icon is moved to MenuChild
- Add set_icon/set_native_icon methods to Submenu
- Store raw PNG bytes in PlatformIcon for Send+Sync safety

Part of GTK4 migration for Tauri Linux support.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add explicit lifetime annotations to Ref/RefMut returns
- Use #[cfg_attr(not(feature = "linux-ksni"), allow(dead_code))] for
  icon() and png_data() methods used only by linux-ksni feature
- Use #[cfg_attr(target_os = "linux", allow(dead_code))] for
  accelerator() which is only used on Windows/macOS
- Mark from_gtk_mnemonic() as #[cfg(test)] since it's only used in tests

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
… support

Rename GTK's `new_menu_item()` back to `new()` to match Windows/macOS backends.
The feat/gtk4 branch had an API mismatch where normal.rs called `new_menu_item()`
but only GTK defined it - Windows/macOS still used `new()`.

This fixes Windows build error E0599: "no function or associated item named
`new_menu_item` found for struct `MenuChild`"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Match native GNOME/WebKitGTK behavior by setting has_arrow=false
on PopoverMenu widgets used for context menus.

Reference: https://bugs.webkit.org/show_bug.cgi?id=211241

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@socket-security
Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedarc-swap@​1.7.110010093100100

View full report

@amrbashir
Copy link
Copy Markdown
Member

can you cleanup the PR so it only has changes related to gtk4 migration? mainly the sync workflow file, and compatibility files/structs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants