GNOME Bugzilla – Bug 733340
Inline composer sticks around when conversation archived or trashed
Last modified: 2014-09-01 03:46:42 UTC
To reproduce: * Start Geary * Select a conversation with one message in it * Click Reply * Click Archive or Trash The message will disappear but the composer will remain in view, albeit positioned with blank space above it where the original message was. The composer can be closed with the Close button. However, if Geary is closed at this moment, the warning message about discarding open composers pops up (i.e. bug #730606 and bug #731491). The difference between this bug and the former one is that when that one was reported the composer widget disappeared. For some reason it's not now.
I think this is essentially a variation on bug #730606. We need to intercept all routes that result in the current conversation being removed and check if there are inline composers open before proceeding.
Created attachment 284306 [details] [review] Check for inline composers before archive or trash As I understand it, the code will always flow through archive_or_delete_selection_async, so I put the check in there. Is there any worry with putting GUI stuff in an async method? It happens before any yield statement.
Review of attachment 284306 [details] [review]: No, all async code occurs in the foreground (GUI) thread. There's only a few limited places (notably the database layer) where an async call takes a delegate/lambda where *that* code is executed in a background thread, but that's in the engine, not the client.
Attachment 284306 [details] pushed as 9f37ef7 - Check for inline composers before archive or trash