mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-07 10:16:03 -10:00
* fix(window): give a fullscreen project window group its own Space on macOS A grouped window went fullscreen through simple fullscreen: it covered the current desktop instead of opening a Space, kept its window frame and rounded corners, and the menu bar stayed over the tab bar. The selected member now enters native fullscreen as the group's host and the other members join its Space as borderless auxiliary windows over the host's frame, so switching projects still only shows one window and hides the others. A project opened over the group joins it hidden and appears in that Space, without the window-state plugin restoring a fullscreen state its label kept. Closing the host hands the Space to the next tab once the old one is gone, and a tab moved to a new window stays fullscreen in a Space of its own. * fix(window): keep a fullscreen group's frames unsynced on Windows and Linux fullscreen_host is always None off macOS, so dropping the selected window's own fullscreen check let a fullscreen group copy its frame to the hidden tabs there, taking fullscreen from the visible one.
111 lines
3.5 KiB
TOML
111 lines
3.5 KiB
TOML
[package]
|
|
name = "openidea"
|
|
description = "OpenIDEA desktop shell: an open-source IDE inspired by IntelliJ IDEA"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[lib]
|
|
name = "openidea_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2", features = [] }
|
|
dunce.workspace = true
|
|
|
|
[dependencies]
|
|
tauri = { version = "2", features = [] }
|
|
tauri-plugin-opener = "2"
|
|
tauri-plugin-dialog = { version = "2", default-features = false, features = ["xdg-portal"] }
|
|
tauri-plugin-mcp-bridge = "0.13"
|
|
tauri-plugin-window-state = "2"
|
|
tauri-plugin-single-instance = "2"
|
|
tauri-plugin-updater = "2"
|
|
tracing-appender = "0.2"
|
|
tauri-specta = { version = "=2.0.0-rc.25", features = ["derive", "typescript"] }
|
|
specta-typescript.workspace = true
|
|
specta.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
base64.workspace = true
|
|
percent-encoding = "2"
|
|
tokio.workspace = true
|
|
parking_lot.workspace = true
|
|
blake3.workspace = true
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
dirs.workspace = true
|
|
|
|
ide-core.workspace = true
|
|
dunce.workspace = true
|
|
ide-clipboard.workspace = true
|
|
ide-fonts.workspace = true
|
|
ide-text.workspace = true
|
|
ide-vfs.workspace = true
|
|
ide-workspace.workspace = true
|
|
ide-language.workspace = true
|
|
ide-index.workspace = true
|
|
ide-syntax.workspace = true
|
|
ide-search.workspace = true
|
|
ide-lsp.workspace = true
|
|
ide-dap.workspace = true
|
|
ide-vcs.workspace = true
|
|
ide-terminal.workspace = true
|
|
ide-run.workspace = true
|
|
ide-sdk.workspace = true
|
|
ide-build.workspace = true
|
|
ide-analysis.workspace = true
|
|
ide-coverage.workspace = true
|
|
ide-profiler.workspace = true
|
|
ide-http.workspace = true
|
|
ide-agent.workspace = true
|
|
ide-db.workspace = true
|
|
ide-web.workspace = true
|
|
ide-spell.workspace = true
|
|
ide-ssh.workspace = true
|
|
ide-remote.workspace = true
|
|
ide-host.workspace = true
|
|
ide-notebook.workspace = true
|
|
ide-jsonrpc.workspace = true
|
|
ide-tools = { path = "../crates/ide-tools" }
|
|
ide-plugin = { path = "../crates/ide-plugin" }
|
|
ide-extension = { path = "../crates/ide-extension" }
|
|
ide-docker = { path = "../crates/ide-docker" }
|
|
ide-android = { path = "../crates/ide-android" }
|
|
ide-github = { path = "../crates/ide-github" }
|
|
|
|
[dev-dependencies]
|
|
tempfile.workspace = true
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
block2 = "0.6"
|
|
# Plugin secrets in the login keychain.
|
|
security-framework = "3.7"
|
|
objc2 = "0.6"
|
|
objc2-app-kit = { version = "0.3", default-features = false, features = ["std", "NSApplication", "NSButton", "NSEvent", "NSGraphics", "NSResponder", "NSScreen", "NSToolbar", "NSView", "NSWindow", "NSWorkspace"] }
|
|
objc2-foundation = { version = "0.3", default-features = false, features = ["std", "block2", "NSNotification", "NSOperation", "NSString"] }
|
|
# Used only by the debug font-restriction override; Cargo dependency cfg cannot test debug_assertions.
|
|
objc2-web-kit = { version = "0.3", default-features = false, features = ["std", "WKWebViewConfiguration", "WKPreferences"] }
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
# Wayland detection and the client size without GTK's CSD shadow (linux_window_state.rs).
|
|
gtk = "0.18"
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows = { version = "0.62", features = [
|
|
"Win32_Foundation",
|
|
"Win32_Storage_EnhancedStorage",
|
|
"Win32_System_Com",
|
|
"Win32_System_Com_StructuredStorage",
|
|
"Win32_System_Variant",
|
|
"Win32_UI_Shell",
|
|
"Win32_UI_Shell_Common",
|
|
"Win32_UI_Shell_PropertiesSystem",
|
|
] }
|
|
windows-sys = { version = "0.61", features = [
|
|
"Win32_Foundation",
|
|
"Win32_Graphics_Gdi",
|
|
"Win32_UI_Shell",
|
|
"Win32_UI_WindowsAndMessaging",
|
|
] }
|