GemTalk / Sparkle

MIT License
11 stars 5 forks source link

"Break" button on panes #19

Open martinmcclure opened 3 years ago

martinmcclure commented 3 years ago

When a user requests an operation on a pane which might require going to the server (for example "accept" in an evaluator of an inspector pane), the pane's first action is to disable all of its widgets. Once the answer from the service is announced and the pane has made any necessary changes to what is displayed, it re-enables its widgets. This prevents any mouse or keyboard events from affecting the state of the pane during this period, preventing many possible race conditions.

However, there should be one widget in the pane that is active while waiting for an answer from the server, a "break" button that can interrupt a long-running server action and open a debugger on it.

A pane's break button should probably be disabled when the rest of the widgets are enabled, since there is no server action to break at that time.