Since the draft manager will now block until a remote for the draft
folder has been obtained, it now must be ensured that all calls to
opening the manager are backgrounded so that the UI isn't blocked
when offline.
When working offline, the draft manager is more or less useless and will
just consume memory as drafts pile up. Also, when opening a composer
immediately after application launch,
`FolderProperties.create_never_returns_id` may not have been updated
yet, and hence will prevent drafts from being saved, even if supported.
So after opening the drafts folder, block waiting for the remote to
open so we get an accurate idea of if the folder is usable.
Fixes drafts issue mentioned in #955
Using `whitespace: pre-wrap` to format plain text email sometimes
causes additional width to be allocated by the plain text blocks that
then does not get used due to the constraints on the HTML element.
The allocated space remains however and hence an un-needed horizontal
scrollbar appears.
Using `break-spaces` instead seems to help since it allows breaks after
a space character, leading to the additional space not otherwise being
allocated.
Sometimes when loading an email body, the viewport for the web view
will be set to 0 (when the web view is hidden or not yet laid out in
the widget hierarchy?). When this happens, since the width of the body
is specified as 100vw, the content width is reduced to the absolute
minimum and hence the content height is stretched right out. Then, when
the web view is displayed, the viewport width increases but the extra
whitespace is never reclaimed (scrollHeight never goes down), so the
height of the web view remains way too large, causing large amounts of
whitespace at the end of the email message (i.e. #283).
To work around this, set a min width for the HTML element so the initial
height of the email body isn't too badly wrong.
Use some more obvious CSS to ensure we can get an accurate idea of the
content height for sizing the web view and that the body fits the
web view's width.
Rather than guessing when the height might change by using a number
of different event listeners, use a ResizeObserver to get direct
notifications of any changes to the HTML element's size.
Build libstemmer as a shared library. Use current mainline since that
at least supports build system args.
Shared lib patch courtesy of Stefano Rivera <stefanor@debian.org>,
updated to current head.
Append the build profile to Geary's data directories when not running
a release build (or under Flatpak) so that e.g. development builds use
different config, cache and data directories.
This allows us to perform things like database schema updates with
relative abandon, since if we ask people to test development builds
with schema updates, they can always safely go back to their release
builds again.
If the current config directory is empty, go looking for config data
in other well known locations and if found, copy it all across from
the most recently modified directory.
This supports migrating config from non-Flatpak to Flatpak locations,
and release config to devel profile locations.
Fixes#326