After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 733340 - Inline composer sticks around when conversation archived or trashed
Inline composer sticks around when conversation archived or trashed
Status: RESOLVED FIXED
Product: geary
Classification: Other
Component: composer
master
Other Linux
: Normal normal
: 0.8.0
Assigned To: Geary Maintainers
Geary Maintainers
review
Depends on:
Blocks:
 
 
Reported: 2014-07-17 21:59 UTC by Jim Nelson
Modified: 2014-09-01 03:46 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Check for inline composers before archive or trash (1.15 KB, patch)
2014-08-23 16:39 UTC, Robert Schroll
committed Details | Review

Description Jim Nelson 2014-07-17 21:59:56 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.
Comment 1 Robert Schroll 2014-07-18 17:25:34 UTC
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.
Comment 2 Robert Schroll 2014-08-23 16:39:14 UTC
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.
Comment 3 Jim Nelson 2014-08-29 23:09:41 UTC
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.
Comment 4 Robert Schroll 2014-09-01 03:46:39 UTC
Attachment 284306 [details] pushed as 9f37ef7 - Check for inline composers before archive or trash