Commit Graph
198 Commits
Author SHA1 Message Date
Antonio Scandurra 74aa9c1320 Capture mouse events when rendering disconnected overlay
We do so by replacing `EventHandler::capture` with a new `::capture_all` method.
After switching to mouse regions as part of zed-industries/zed#1081, overriding
`dispatch_event` on `EventHandler` wasn't enough anymore because mouse interactions
take place on a privileged code path that runs *before* dispatching any event.

With this change, `EventHandler` will now push a mouse region that intercepts all
mouse interactions, as well as pushing a cursor region that resets the cursor style
to `Arrow`.

One interesting change as part of this is that we've removed the ability to see which
event we are capturing: we were not using this capability anyway and `capture_all` provides
a simpler interface, so I went with that. In the future, we can opt into capturing specific
events or mouse interactions if there's a code path that needs that.
2022-06-04 10:41:29 +02:00
Max Brunsfeld 41b7fd4a27 Rename a public/private to online/offline in a few more places 2022-06-03 17:08:44 -07:00
Max Brunsfeld e18bc24989 Rename project's 'public'/'private' flag to 'online'/'offline' 2022-06-03 14:39:06 -07:00
Max BrunsfeldandAntonio Scandurra afdd386057 Move persistence and restoration logic from workspace into project
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-03 11:52:14 -07:00
Max BrunsfeldandAntonio Scandurra 6a3a3a1124 Add tooltip to the toggle public button in the contacts panel
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-03 10:36:29 -07:00
Max Brunsfeld f7e7a7c6a7 Use rocksdb to store project paths' public/private state 2022-06-02 17:38:33 -07:00
Max Brunsfeld 3ea061a11e Allow making projects private 2022-06-02 17:32:42 -07:00
Max Brunsfeld 7ef9de32b1 Show private projects in the contacts panel
Introduce a ProjectStore that lets you iterate through all open projects.
Allow projects to be made public by clicking the lock.
2022-06-02 17:29:11 -07:00
Max Brunsfeld a60fef52c4 Start work on private projects 2022-06-02 17:29:11 -07:00
Antonio Scandurra 20e1044d49 Merge branch 'main' into project-panel-with-new-mouse-events 2022-05-30 18:29:46 +02:00
Max Brunsfeld a88b4eb3c5 Populate the window title whenever worktrees or active path change
* Refactor the way the project's active entry is assigned. Assign it
  together with the window title, as opposed to on every notification
  from a pane.
* Emit the ActiveItem event from panes consistently, even when adding
  the first item to an empty pane.
2022-05-27 10:51:14 -07:00
Antonio Scandurra 5b2d6e41f3 Introduce keyboard navigation in context menus 2022-05-26 16:36:30 +02:00
Antonio Scandurra 991eb742b0 Start adding project panel context menu actions 2022-05-26 15:23:40 +02:00
Nathan Sobo b110fd5fb7 Render a context menu when right-clicking in project panel
It doesn't currently do anything, but I managed to get it rendering in an absolutely positioned way.
2022-05-26 09:59:25 +02:00
Max BrunsfeldandNathan Sobo 0becbe482a Distinguish between singleton and non-singleton workspace items
* Prompt to save singleton items before non-singleton ones
* Don't prompt to save multi-buffers if they contain excerpts to items that are open elsewhere and not being closed.

Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-05-23 16:03:00 -07:00
Max Brunsfeld fbd589b589 Start work on handling multibuffers properly when closing unsaved buffers 2022-05-22 16:48:33 -07:00
Max Brunsfeld 21206800bc Add "Close Window" command 2022-05-20 16:53:03 -07:00
Max Brunsfeld b08cad9ef5 Add "Save As" command 2022-05-20 16:24:42 -07:00
Max Brunsfeld 8ed33cadeb Add "Add Folder to Project" command to application menu 2022-05-20 16:19:43 -07:00
Max Brunsfeld e72f5cea22 Add "New Window" command 2022-05-20 11:01:20 -07:00
Max Brunsfeld c4554c1720 Replace build_workspace fn with an initialize function that takes a workspace
This makes it clearer that the function is not providing necessary
dependencies to a workspace, but rather configuring it with all of
the panels and widgets which are defined in downstream crates.
2022-05-19 16:50:22 -07:00
Max Brunsfeld ef0b584532 Remove AppState from workspace actions
This allows those actions to be bound to keystrokes in the keymap.
Also, remove the WorkspaceParams struct, simplify how Workspaces are
constructed.
2022-05-19 14:37:26 -07:00
Max BrunsfeldandNathan Sobo 9b29245590 Avoid duplicate notifications
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-05-17 11:19:22 -07:00
Nathan Sobo d821e7a4c1 Cancel join requests when the requester closes the window 2022-05-16 20:29:36 -06:00
Nathan Sobo 7c3eebf93e Refine messages on waiting to join screen and include host avatar 2022-05-16 16:52:31 -06:00
Antonio ScandurraandNathan Sobo ed6ed99d8f Show the reason why a join request was declined
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-05-16 19:57:50 +02:00
Antonio Scandurra aa90c06012 Display a temporary window while remote project is loading 2022-05-16 17:45:50 +02:00
Max BrunsfeldandNathan Sobo be51a58311 Start work on requesting to join projects
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-05-12 17:53:11 -07:00
Antonio Scandurra c7802af88b Use cmd-9 and cmd-shift-9 to toggle contacts panel focus/visibility 2022-05-12 12:11:27 +02:00
Max BrunsfeldandNathan Sobo 0ba656aa0e Improve layout and styling of contact notifications
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-05-11 14:20:05 -07:00
Antonio ScandurraandNathan Sobo 933a1f2cd6 Show badge when there are pending contact requests
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-05-11 17:39:03 +02:00
Nathan Sobo fe89de8b11 Dismiss contact request notification if request is cancelled 2022-05-10 18:50:18 -06:00
Nathan Sobo 3bca1c29e2 Present a blank notification upon receipt of a contact request 2022-05-10 18:33:39 -06:00
Nathan Sobo bd2ae304fa Start on workspace notifications 2022-05-10 17:46:46 -06:00
Nathan Sobo 9c68c3e8a9 Put context parameter last in toggle_modal callback
This is more consistent with our treatment of context params everywhere else.
2022-05-10 16:46:53 -06:00
Nathan SoboandAntonio Scandurra b721f0064a Start on contact finder modal
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-05-10 07:24:14 -06:00
Antonio ScandurraandNathan Sobo 954fabec42 Don't hide sidebar when hitting cmd-1
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-05-05 15:34:36 +02:00
Antonio ScandurraandNathan Sobo 2e6cf2011d When opening items via project panel, only focus them on double-click
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-05-05 15:27:27 +02:00
Antonio Scandurra 61346f734d WIP 2022-05-05 15:15:58 +02:00
Antonio Scandurra 3ee4d90c19 Parameterize avatar_margin and assign it a default of 8 2022-05-03 18:04:53 +02:00
Antonio Scandurra 5d0c3c43e8 Add right padding to titlebar instead of margins on elements
This fixes a visual glitch causing the avatar to be shown too close to
the right edge of the window when the share icon was not present.
2022-05-02 09:27:37 +02:00
Max Brunsfeld 8481834847 Give hover state to picker items, keystrokes in command palette 2022-04-28 15:17:56 -07:00
Max Brunsfeld 6578ae5393 Use Interactive helper to theme titlebar buttons 2022-04-28 12:08:15 -07:00
Max Brunsfeld 0291f2d54a Move sidebar toggle buttons to the status bar 2022-04-27 14:25:39 -07:00
Nathan Sobo 78afbb3599 Remove async-std and surf from client
Switch to isahc library. It's not as fancy, but it works and has a smaller footprint.
2022-04-26 21:19:15 -06:00
Antonio Scandurra c955645bc0 Update share icon and swap its posiiton 2022-04-26 14:35:13 +02:00
Antonio Scandurra 9d6a7a83a0 Show worktree root names in titlebar and align them left 2022-04-26 13:21:58 +02:00
Nathan SoboandAntonio Scandurra 92f040df00 Apply cursor styles during paint
This makes the editor's cursor an IBeam and properly deals with nested cursor styles.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-22 10:54:18 -06:00
Antonio Scandurra 3def7a6803 Avoid flicker when toggling project browser on workspace open 2022-04-22 11:53:45 +02:00
Antonio Scandurra 9730213ed7 Move project browser toggling logic in workspace::open_paths 2022-04-22 11:25:23 +02:00