Commit Graph

95 Commits

Author SHA1 Message Date
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
Timon
3f532e478c Separate branded assets from monorepo (#3406)
* remove branded files

* use branding repo

* include favicons

* nixpkg fixup

* win fix ico path

* fix fmt

* skip licensenses for dev builds

* review fixup

* test

* test

* ci test

* ci test

* ci test

* fix ci
2025-11-25 02:42:27 +00:00
Dennis Kobert
a932eaedcf Render artwork at correct resolution when using vello on wasm (#3416)
* Work on fixing rendering for wasm+vello

* Render vello canvas in wasm at the correct resolution

* Cleanup unused surface rendering code

* Remove vector to raster conversion

* Remove desktop changes

* Revert window.rs changes

* Don't round logical coordinates

* Fix desktop compilation + don't round logical coordinates for svg rendering

* Further cleanup

* Compute logical size from acutal physical sizes
2025-11-24 14:23:27 +00:00
Timon
548e0df1a1 Desktop: Mac menu workaround (#3398) 2025-11-19 17:13:35 +00:00
Dennis Kobert
57b0b9c7ed Restructure node crates (#3384)
* Restructure node-graph folder

* Fix wasm compilation

* Move node definitions out of *-types crates

* Cleanup

* Fix warnings

* Fix warnings

* Start adding migrations

* Add migrations and move memo nodes to gcore

* Move nodes/gsvg-render -> rendering

* Replace some hard coded identifiers and fix automatic conversion

* Fix Vec2Value node migration

* Fix formatting

* Add more migrations

* Cleanup features

* Fix core_types::raster import

* Update demo artwork (to make profile ci work)

* Move *-types to node-graph/libraries folder

* Add missing node migrations

* Migrate more nodes

* Remove impure memo node

* More fixes and remove warning

* Migrate context and add a few missing migrations

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-11-18 10:21:54 +00:00
Timon
e751979e5c Desktop: Mac fix keyboard input (#3371)
* add browser debug port env

* mac use option as alt

* fix cef texture double sRGB conversion by using cef-rs fork with fix

* fix keyboard input on mac

* add missing frontend messages

* fixup

* fix keyboard input mac

* dbg

* re implement keyboard mapping

Co-authored-by: csmoe <csmoe@msn.com>

* Fix double arrow keys

* try fix for non mac

* test

* Revert "test"

This reverts commit c7cde9c597.

* fix mac

* some cleanup

* fix zoom in shortcut on mac introduced in #3377

* disable menu shortcut display

* fixup
2025-11-17 11:51:59 +00:00
Timon
ebb434692a Desktop: Enable GPU nodes (#3364)
* desktop simple nix ci

* make workflow manual

* fixup

* fix nix shell

* nix fmt

* fix shell
2025-11-16 22:37:02 +00:00
Timon
9be207f4c5 Desktop: Update CEF to 141 (#3352)
update cef to 141
2025-11-08 11:59:02 +00:00
Timon
f02f834097 Desktop: Add support for UI scaling (#3310)
* desktop support ui scaling

* fix some warnings

* use browser zoom if needed

* fix infinite footprint size

* fix web canvas scale

* always set zoom

* use only zoom for scaling

* prevent user zoom

* remove mouse position scaling
2025-11-08 12:32:04 +01:00
Timon
0d76ffd66d Desktop: Mac remove menubar flicker (#3335)
* remove unnecessary folders from bundling for mac

* mac remove menu bar flicker

* clean up implementation
2025-11-04 09:26:08 +00:00
Timon
5be9b1fabc Desktop: Mac native menu bar (#3301)
* macos native menu bar

* fix nix build

* Add shortcut symbols to menu

* fix fmt

* fix vendoring

* cleanup intercept frontend message

* accept into editor message in queue function
2025-10-27 14:11:24 +00:00
Timon
52e98ea8a3 Desktop: Remove winit fork, fix nix package, and improve rendering (#3307)
* reduce triangle count

* switch to winit repo after changes where upstreamed

* fix nix pkg
2025-10-25 00:47:36 +00:00
Timon
c4f6a2c9c1 Desktop: Add window abstraction layer (#3302)
* add bundle for mac os and windows

* Fix bundle name

This name gets used as the display name of the app on mac os, shorter name looks better and is more consistent.

* preserve std out by running bin directly

* bundle placeholder on linux

* fix linux

* window abstraction

* fix linux

* fix windows

* fix fmt

* remove windows file that was left

* use self
2025-10-23 11:33:32 +00:00
Timon
7fbe440e73 Desktop: Bundle for Mac and Windows (#3297)
* add bundle for mac os and windows

* Fix bundle name

This name gets used as the display name of the app on mac os, shorter name looks better and is more consistent.

* preserve std out by running bin directly

* bundle placeholder on linux

* fix linux
2025-10-23 10:39:08 +00:00
Timon
39f4ccf8e0 Desktop: Fixup MacOS build (#3295)
desktop mac os fixup

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2025-10-20 13:31:36 +00:00
Timon
3509f0b035 Desktop: Persist document path (#3272)
* persist document path

* persist data cleanup
2025-10-15 10:30:47 +00:00
Timon
717defb2bb Desktop: Trackpad pinch to zoom (#3271)
* prototype pinch gesture

* pinch to zoom

* fix
2025-10-14 22:27:27 +00:00
Mateo
497758c273 Desktop: Add simple cli interface (#3059)
* Open document from cli and add some files to .gitignore

* Revert .gitignore

* Revert .gitignore

* Implement cli properly

* Add ui-accelerated-painting option

* Format code

* Revert changes in .vscode folder

* Don't use global variables for cli

* Apply suggested changes

* Make ready for merge

* Improve names

* remove comment

---------

Co-authored-by: Timon <me@timon.zip>
2025-10-13 21:09:40 +00:00
Timon
e366e4d64e Desktop: Update CEF to v140 (#3277)
* update cef to v140

* fix build

* update flake
2025-10-13 04:56:56 +00:00
Timon
48ac24da14 Desktop: Fix frontend message response dispatch (#3247)
* One annoying debugging session later

Discovered that the editor handles frontend messages differently from other messages.
It requires all frontend messages to be fully processed before dispatching any resulting messages.

In the web frontend, this behavior happened implicitly because message dispatch is queued at the current end of the JavaScript execution queue.
For the desktop frontend, I added a vector to collect all responses until the entire batch of frontend messages is handled, and then dispatch them afterwards.

* Fix double click travel
2025-10-06 20:04:24 +00:00
Timon
4bb1d05fc3 Desktop: Add taskbar icon on Windows (#3225)
* include icon as resource on windows

* load icon
2025-09-26 14:30:01 +02:00
Timon
d06c8164e1 Desktop: Forward multi-clicks (double/triple/etc.-clicks) to CEF correctly (#3224)
* fix multiclick

* Revert "fix multiclick"

This reverts commit c4130d12ee.

* try another way

* use copy

* Use struct initializer syntax fror click tracker (#3226)

---------

Co-authored-by: Dennis Kobert <dennis@kobert.dev>
2025-09-26 14:29:56 +02:00
Timon
ed22e6a63d Desktop: Add rudimentary support for custom WGPU adapter selection (#3201)
* rudimentary custom wgpu adapter selection

* WgpuContextBuilder

* wasm fix

* fix wasm warnings

* Clean up

* Review suggestions

* fix
2025-09-25 14:38:26 +00:00
Timon
d595089bb0 Desktop: Fix maximized window extending outside the screen on Windows (#3210)
Desktop: Fix window extending outside the screen on windows when maximized
2025-09-25 15:22:05 +02:00
Timon
04a2452333 Desktop: Support cursor icon change (#3223)
* browser console message forwarding

* replace target to make it easy to identify browser console messages

* use warn as per review comment

* cursor icon change

* fix win build
2025-09-25 11:23:19 +00:00
Timon
b4be616de0 Desktop: Browser console message forwarding (#3193)
* browser console message forwarding

* replace target to make it easy to identify browser console messages

* use warn as per review comment
2025-09-25 10:42:07 +00:00
Timon
d15f63f4fd Ensure the LoadPreferences message is dispatched with None when no preferences exist (#3198)
* preference load message on default load

* review fixup
2025-09-23 20:19:16 +00:00