Commit Graph

20 Commits

Author SHA1 Message Date
Evan Simkowitz
ec4f6c01de
Create workspace will always create a saved workspace (#1509)
Also moves icon and color definitions to the backend and makes it so the
new workspaces get created with a different icon color for each index.

If an ephemeral window has more than one tab, always create a new window
when switching workspaces

Also fixes workspace accelerators on macOS
2024-12-12 17:21:09 -08:00
Evan Simkowitz
c34f2da0c0
Fix SwitchWorkspace when no workspaces are saved (#1508)
Also cleans up a workspace created with "Create new workspace" if you
hit cancel when switching to it.
2024-12-12 15:16:34 -08:00
Mike Sawka
f1a590f51b
minor v10 cleanup (waveReadyPromise, focusedWaveWindow) (#1456) 2024-12-10 10:58:50 -08:00
Evan Simkowitz
c4fce5acc5
Make workspace switcher icons fixed width, add confirm on delete (#1455)
Also makes the confirmation dialogs shorter and fixes the logic for
showing them
2024-12-10 10:15:33 -08:00
Evan Simkowitz
b706d4524b
Queue workspace switching on emain (#1440) 2024-12-09 15:47:56 -08:00
Evan Simkowitz
f858d3ba0f
Pass workspace id to contextmenu-show (#1429)
Sometimes, the context menu click handlers don't seem to get passed any
window object. Here, I'm sending over the workspace id with the
`contextmenu-show` event so that we can resolve our cached copy of the
object in case the value from the click handler is empty.
2024-12-06 19:10:34 -08:00
Evan Simkowitz
e0ede0ff60
Add workspace switch accelerators, skip prompt if workspace is already open (#1427) 2024-12-06 16:35:01 -08:00
Mike Sawka
9f6cdfdbf6
closetab / tab destroy fixes (#1424) 2024-12-06 15:42:29 -08:00
Evan Simkowitz
72ea58267d
Workspace app menu (#1423)
Adds a new app menu for creating a new workspace or switching to an
existing one. This required adding a new WPS event any time a workspace
gets updated, since the Electron app menus are static.

This also fixes a bug where closing a workspace could delete it if it
didn't have both a pinned and an unpinned tab.
2024-12-06 15:33:00 -08:00
Mike Sawka
925389fc70
force createTab to go through the queue as well (#1420) 2024-12-06 12:00:24 -08:00
Mike Sawka
3b03a7ab3d
tab race condition fixes (#1407) 2024-12-06 00:10:17 -08:00
Evan Simkowitz
0fe05a725a
Refuse setActiveTab if tab is already set (#1405) 2024-12-05 20:50:55 -08:00
Mike Sawka
5744f4b06f
closeTab fix (#1403)
fixes bug with closeTab when the tab didn't exist in the waveWindow cache.  also adds Cmd-Shift-W to close a tab (doesn't work for pinned tabs).  and restores Cmd-W for killing blocks on pinned tabs
2024-12-05 18:26:20 -08:00
Evan Simkowitz
7a61f25331
Auditing async usage in frontend code (#1402)
I found a lot of places where asyncs weren't being properly wrapped or
awaited
2024-12-05 18:09:54 -08:00
Evan Simkowitz
1e804f4d15
Use window destroy instead of forceClose (#1400)
`destroy` bypasses the `close` event and forces the window to close.
This means that we can use it instead of `forceClose` and we don't need
to call it in the `closed` event.
2024-12-05 16:18:42 -08:00
Evan Simkowitz
aa77b2c259
Pinned tabs (#1375)
![image](https://github.com/user-attachments/assets/a4072368-b204-4eed-bb65-8e3884687f9a)

This functions very similarly to VSCode's pinned tab feature. To pin a
tab, you can right-click on it and select "Pin tab" from the context
menu. Once pinned, a tab will be fixed to the left-most edge of the tab
bar, in order of pinning. Pinned tabs can be dragged around like any
others. If you drag an unpinned tab into the pinned tabs section (any
index less than the highest-index pinned tab), it will be pinned. If you
drag a pinned tab out of the pinned tab section, it will be unpinned.
Pinned tabs' close button is replaced with a persistent pin button,
which can be clicked to unpin them. This adds an extra barrier to
accidentally closing a pinned tab. They can still be closed from the
context menu.
2024-12-04 13:34:22 -08:00
Evan Simkowitz
f606a74339
Remove child views before switching workspaces (#1371)
This was causing a crash on Windows because we were destroying a TabView
that was still parented to the window. Not sure why I couldn't repro
this on Mac...
2024-12-02 16:53:25 -08:00
Evan Simkowitz
0ec60f5a7b
Fix switch workspace (#1370) 2024-12-02 14:52:34 -08:00
Evan Simkowitz
f368a61c70
Fix close active tab behavior (#1367)
This fixes a bug where closing the active tab would clean up the closed
tab view before switching to an un-closed tab view, putting the window
into an unrecoverable state. This also moves around some of the CloseTab
logic so that it's more standardized and reduces unnecessary
frontend-backend comms and DB writes
2024-12-02 12:59:03 -08:00
Evan Simkowitz
82f53dc1fb
Workspaces are back! (#1282) 2024-12-02 10:56:56 -08:00