Commit Graph

121 Commits

Author SHA1 Message Date
Timon 5d22292072
Replace `npm` build script with new `cargo run` tool (#3832)
* move nix flake to root

* cargo run tool

* use thiserror in third-party-licenses tool

* prefere panic over exit

* Add automatic dependency check to cargo run tool

* Skip dependecies that are not needed for the current task

* Fixup

* Fixup

* fix windows

* Fixup

* improve usage text

* Fix linux bundle

* add graphen-cli

* fix build profile

* fix

* release profile should not include debug infos

* Review

* remove profiling profile

was redundent with release

* rename to cargo-run tool

* improve consistency

* rename deps to requirements

* fix

* return success when showing usage
2026-03-07 13:26:19 +00:00
Keavon Chambers 8a1dfb9d8f
Refactor messages.ts by removing class-transformer and JS classes (#3858)
* Fix gamma correction with HTML-based editable Text tool text

* Migrate simple, undecorated classes to types

* Remove TupleToVec2 transformation

* Remove @Transform from tooltips

* Cleanup: replace value.toString() with String(value) everywhere

* Convert documentId from string to bigint

* Migrate the rest of the easy @Transform/@Type decorations

* Migrate FillChoice

* Migrate WidgetDiffUpdate

* Migrate WidgetInstance

* Migrate away from classes that extend WidgetProps

* Remove class-transformer and all classes in messages.ts

* Migrate UI layout passing

* Remove dead code

* Remove unnecessary export and readonly prefixes

* Remove HSVA type

* Break out Color, Gradient, and FillChoice functions into a utility-functions file

* Move widget helper functions from messages.ts into a new utility-functions file; restructure type imports

* Reduce internal type defs

* Rename JsMessage to FrontendMessage

* Code review fixes

* Fix other usages

* Tidying up
2026-03-05 01:43:21 -08:00
Timon da7437c023
Reimplement notice file generation for third-party licenses through Rust, now with CEF credits (#3808) 2026-02-26 11:12:28 +00:00
Timon a2d3b3f410
Desktop: Make shutdown more robust and fix panic caused by invalid viewport scale (#3783)
* Fix panic caused by invalid viewport scale

* Make shutdown more robust
2026-02-22 17:28:35 +00:00
Timon 3f999bf231
Desktop: Add "Disable UI Acceleration" to preferences (#3774)
* Deskltop: Add Disable UI Accelaration preference

* Fixup

* Fix typo

* Code review and update strings

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-02-19 01:54:01 +00:00
Timon 8b67840f0c Desktop: Fix Eyedropper tool (#3764) 2026-02-14 16:44:52 +00:00
Timon d2eaa03498
Desktop: Disable more CEF optional features (#3747) 2026-02-11 23:36:34 +00:00
Timon acab171bc5
Desktop: Build and Sign Mac and Windows Bundles in CI (#3728)
* Desktop: Build and Sign Mac and Windows Bundles in CI

* Desktop: Remove unnecessary CEF files from Windows Bundle

* Desktop: Use a temp file for license generation on Windows to avoid PowerShell modifying stdout
2026-02-06 13:37:07 +00:00
Dennis Kobert f36d455d03
Desktop: Only rerender the UI if it has changed (#3688)
* Only rerender ui if it has changed

* Don't immedeatly request new frame at the end of the event loop

* Request redraw after ui update

* Always request redraw after timeout

* Fix setting control flow in all cases

* Remove comment

---------

Co-authored-by: Timon <me@timon.zip>
2026-02-03 13:04:44 +00:00
Vishnu Tejas 2e297777a0
Desktop: Support triple-click inputs (#3671)
* Fix triple-click text to select paragraph on desktop

* fixup

---------

Co-authored-by: Timon <me@timon.zip>
2026-02-03 12:15:08 +00:00
Timon 5ace2c9660
Desktop: Use tokio async runtime (#3704)
Use tokio because hyper needs it
2026-02-02 12:49:15 +01:00
Timon 5fd1a24f16
Desktop: Add Eyedropper tool support with native Vello (#3684)
* mostly done

* fix

* kinda works but tilt and flip broken

* fix footprint

Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>

* Code review

* fix cursor hiding

* Remove console.log

---------

Co-authored-by: James Lindsay <78500760+0HyperCube@users.noreply.github.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-01-27 01:24:09 +00:00
Timon 5e61d59e50
Desktop: Restart without UI acceleration when it fails on Linux (#3668)
* Desktop: Restart without UI Acceleration when it fails on Linux

* fix spelling
2026-01-26 14:33:09 +00:00
Timon b4e9d7b9eb
Desktop: Fix bitmap file export not preserving alpha (#3673)
Fix Export not preserving alpha
2026-01-26 13:51:48 +00:00
Mohammed Afreed baig c07124332b
Fix GPU out-of-memory crash by reusing overlay textures (#3614)
* Refactor TargetTexture into proper abstraction with ensure_size() method

* Remove redundant overlays_texture field, use view() directly

* Use if-let syntax in render_vello_scene_to_target_texture to avoid explicit unwrap

* Implement TargetTexture::new() constructor to avoid dummy textures

* fix compile error

* cleanup

* Avoid cloning texture view

---------

Co-authored-by: Timon <me@timon.zip>
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2026-01-26 12:44:41 +00:00
Timon 2be7790d4d
Improve UX of importing vs. opening files (#3661)
* wip

* fix drag and drop

* fix

* fix tests

* fix tests

* fix warning

* Partial code review

* add dialog

* fix web

* fix web

* push back release candidate expiry

* Code review

* Reduce code duplication for pasting files in frontend

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-01-22 01:37:49 -08:00
Timon 95d3556204
Replace globals with editor environment (#3656)
Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-01-19 17:06:02 +00:00
Timon 07fbcd489c
Desktop: Add fullscreen window mode (#3625) 2026-01-19 16:32:03 +00:00
Timon 73682b482b
Desktop: Implement pointer lock for NumberInput (#3638)
* Desktop: Implement pointer lock for NumberInput

* add shift and ctrl modifiers

* fixup
2026-01-15 11:27:31 +00:00
Keavon Chambers bd847034f3 Bump year references to 2026 2026-01-06 15:12:55 -08:00
Timon a42cad8bfb Desktop: Pin the muda crate to commit that includes a necessary dependency update 2026-01-06 04:25:29 +01:00
Timon Schelling 2a59bd50bd Desktop: Capitalize the app directory name on Mac and Windows 2026-01-06 00:46:35 +00:00
Timon cf85ec736f
Desktop: Bundle for Linux with Nix (#3569)
bundle for linux with nix
2026-01-06 00:32:55 +00:00
Timon bd1f7eefdb
Desktop: Fix resize helper window Z-order and attach to parent console on Windows (#3572)
* Desktop: Fix helper window zorder on Windows

* Attach to parent console if launched from a terminal

* Workaround for a Windows-specific exception that occurs when `app` is dropped
2026-01-05 23:02:41 +00:00
Timon 8f25eb6ca4
Desktop: Fix crash during shutdown caused by clipboard being dropped after the window (#3578)
Desktop: Fix crash during shutdown that was caused by clipboard
2026-01-05 15:38:52 +00:00
Timon ee2e61f38f
Provide shaders via artifact repo (#3250)
* raster_nodes_shaders_entrypoint.wgsl upload
2026-01-02 17:17:56 +00:00
Timon 11e2882cb2
Desktop: Fix Windows build (#3522)
* fix win build

* fix mac

* Change window button colors to match Windows colors

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-12-22 14:48:13 -08:00
Timon f705d0080d
Desktop: Switch to immediate frame present mode on Mac (#3495)
* mac immediate render mode

* fix key modifier flags on mac
2025-12-21 20:14:47 -08:00
Timon 6f087eb981
Desktop: Fix minimize/restore animations on Windows (#3492)
fix minimize animation on win
2025-12-18 15:53:36 +00:00
Timon 14b8cdf4cb
Desktop: Fix missing taskbar icon on Windows (#3490)
* fix missing taskbar icon

* focus window after init
2025-12-18 12:51:01 +00:00
Timon 820865389c
Desktop: UI scale preference (#3475)
* ui scale preference

* cleanup

* add update ui scale message to SIDE_EFFECT_FREE_MESSAGES

* fix mac title bar height

* hide UI preference section on web

* set % as unit of ui scale
2025-12-15 14:11:43 +00:00
Timon e44f993095
Desktop: Forward and Backward mouse button support (#3472)
forward and backward mouse button support
2025-12-15 11:45:26 +00:00
Timon 7532bd7260
Desktop: Hide menu bar in fullscreen mode on Mac (#3464)
hide menu bar in fullscreen mode on mac
2025-12-12 13:09:31 +00:00
Timon 6d852f11af
Desktop: Text clipboard support (#3461)
* gray background for viewport texture

* cust copy paste support

* connect clipboard read on web

* fix eyedropper bounds

* cleanup

* add missing char events for some named keys like enter
2025-12-12 00:16:35 +00:00
Timon 68a9bbced0
Desktop: Update metadata for compiled application binaries (#3453)
* change bin names

* set win product name

* Update Windows metadata

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-12-08 01:57:55 +00:00
Adam Gerhant 9fc98cf03f
Desktop: Remove web_sys text measuring to fix node graph layer widths (#3455)
* Remove web_sys text measuring

* Improve export

* Fix top of layer stack
2025-12-07 12:11:42 +00:00
Keavon Chambers fb0fab0622 Update links from graphite.rs to graphite.art 2025-12-06 18:10:27 -08:00
Timon a5cf62a90b
Desktop: Custom cursor support (#3452)
custom cursors with caching
2025-12-06 16:16:14 -08:00
Timon 2e4481880e
Desktop: Fix missing resize events causing all-gray window on Mac after launch (#3445)
* okayish solution

should be improved at some point but for now it works well enough.

* do leftover renames

* better solution

* less weird resize frames

* move surface reconfiguration

* fix recent desktop mac breakages

* better looking resize on mac

* fix background color

* Fix blank screen on window initialization

* cleanup

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-12-06 23:11:47 +00:00
Keavon Chambers 783ea0b437
Unwrap the Layout enum to replace it with the WidgetLayout struct now called Layout (#3448) 2025-12-04 15:24:40 -08:00
Keavon Chambers 3c4ad8b720 Refactor the WidgetLayout struct to remove SubLayout and avoid sending LayoutTarget to frontend 2025-12-04 02:44:54 -08:00
Keavon Chambers 810ce40e9b
Restyle and refactor shortcut labels to send hints bar and welcome screen layouts from Rust (#3447)
* Restyle UserInputLabel and refactor its usages to have all input its data sent from Rust

* Replace the welcome screen quick buttons with ones sent by backend

* Add the ShortcutLabel widget to the backend

* Replace hints bar with a backend-controlled layout; show mouse icons in place of mouse labels
2025-12-04 01:04:14 -08:00
Timon 39b5229df7
Desktop: Limit application to a single instance (#3441)
* only allow single instance

* more reliable CEF cache cleanup

* some cleanup

* fix lock file location

* add simple signal handling

* fix skew handles on desktop

* mac remove unused helpers
2025-12-03 19:13:15 +01:00
Keavon Chambers 600fb5c28f
Refactor the old menu bar plumbing to use standard TextButtons (#3444)
* Refactor the old menu bar plumbing to use standard TextButtons

* WIP: Fix Mac native menu bar

* WIP: fix desktop menu bar mac

* Refactor menu bar definitions to use the builder pattern

* WIP: fixup desktop

* cleanup

* fix linux

* Remove dead code that was failing to lint

---------

Co-authored-by: Timon Schelling <me@timon.zip>
2025-12-03 12:41:54 +00:00
Timon 3fd0460d03
Desktop: Update CEF to 142 (#3431)
* update CEF to 142

* fix win

* fixup

* post merge fix

* use getter instead
2025-11-30 23:23:31 +00:00
Timon 94e5c8fc05
Desktop: Prevent CEF context menu to fix crashing by right-clicking a text field (#3429)
* add dummy context menu handler to prevent some crashes

* some cleanup

correcting cef handler impl names
using std::ffi::c_int
2025-11-29 00:08:43 +00:00
Timon bb4516e377
Desktop: Add app menu for Mac (#3428)
* add mac app menu

* review fixup

* Remove "About Graphite" ellipsis, add "Show All", make it say "Quit Graphite"

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-11-28 23:42:14 +00:00
Timon f4608a6e40
Desktop: Resize issue mitigation, scroll speed adjustment and duplicate pointer move event filtering (#3424)
* mitigate resizing issue on mac and windows

* adjust scroll speed for mac and win

* fixup

* filter out duplicate mouse move events
2025-11-27 16:18:52 +00:00
Timon 5ff399d3f2
Desktop: Display taskbar icon on Windows (#3376)
* task bar icon

* limit cef render processes to 1

* disable more chrome features
2025-11-25 14:16:59 +00:00
Timon 96c5e3ec18
Desktop: Add Icon for Mac (#3401)
Add icon
2025-11-25 11:02:21 +00:00