mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-06 08:07:49 +00:00
On macOS, with tap to click and a third-party input method active, WebKit can deliver a tap's mousedown after the button is already up (WebKit bug 219670). Tauri's drag-region script starts the native drag on any mousedown, so AppKit ran its drag loop with no release left to end it and the window followed the pointer until the next click. On macOS the title bar now uses its own drag region: a drag starts only when the mousedown has the primary button down, and the new window_start_drag command checks NSEvent.pressedMouseButtons before start_dragging. Double-click zoom stays on mouseup and is cancelled by movement. The handlers are installed once per page. Windows and Linux keep data-tauri-drag-region. Refs #760 Co-authored-by: ntbang0901 <121003585+ntbang0901@users.noreply.github.com>
98 lines
3.2 KiB
TOML
98 lines
3.2 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-github = { path = "../crates/ide-github" }
|
|
|
|
[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", "NSResponder", "NSScreen", "NSView", "NSWindow"] }
|
|
objc2-core-foundation = { version = "0.3", default-features = false, features = ["std", "block2", "CFRunLoop"] }
|
|
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-sys = { version = "0.61", features = [
|
|
"Win32_Foundation",
|
|
"Win32_Graphics_Gdi",
|
|
"Win32_UI_Shell",
|
|
"Win32_UI_WindowsAndMessaging",
|
|
] }
|