The newer version of libpeas was released a couple of years ago already,
and at this point should probably be consdered the only maintained
version.
The changes are pretty minimal, and most should be pretty obvious from
the libpeas migration guide. The only annoying thing is that we can't
use `Peas.Engine.create_extension()` directly, since it's not exposed to
language bindings (even to Vala, which supports varargs, but alas).
Link: https://gnome.pages.gitlab.gnome.org/libpeas/libpeas-2/migrating-1to2.html
Fixes: https://gitlab.gnome.org/GNOME/geary/-/issues/1690
`GLib.TestSuite` is a special type of object, as it doesn't actually
have an associated copy function or a reference/unreference function.
In practice, that actually means there's no way to actually have 2
strong references to such an object, or to copy it somehow. Due to the
way GObject properties in Vala work, that means you can't really use
them either.
Ever since vala commit 5f0a146f65, this got reflected properly in the
internally maintained GLib VAPI (as people were experiencing double
frees otherwise), but it was added only conditionally for GLib 2.70 or
later. In practice, that means you only get vala compiler issues if you
(impliclty) set `--target-glib=2.70` (or a later version).
To fix this for vala-unit and our own Geary tests, this commit changes
the `ValaUnit.TestCase` class to only allow "stealing" the strong
reference to the `GLib.TestSuite`, rather than somehowing allowing
people to hold a weak reference, and by also making it a protected field
rather than a property.
Since this changes the API of ValaUnit, we also bump the version. In
general though, I hope people aren't using ValaUnit externally, since
these types of API/ABI breaks can happen with Vala libraries.
Link: 5f0a146f65
Currently, a lot of our build variables that are defined at
configuration time, are spread out across the code base, often declared
as `extern` which can break when moving around sections of the code
across files.
This commit introduces a "Config" namespace which basically maps to the
definitions in `config.h`, but allows us to properly access them too
from the Vala source code.
By doing so, it helps us to more explicitly see where we rely on a
build variable from this file (which should be obvious from the `Config'
namespace).
To make it ourselves a bit easier in Meson too, we can declare an
internal dependency, which helps ensure that we pull in the dependency
where needed.
CSS and WebKit expects font size in pixels, but not "actual device pixels".
This fixes incorrect font size when using font-scaling with WebKitGTK >= 2.48.
Under older WebKitGTK versions result will be the same.
Refs https://github.com/WebKit/WebKit/pull/40412#issuecomment-2690897270
40a2c1aec4 introduced a regression on composer detach.
On detach, widget is mapped again and composer content is cleared. Be sure
to remove handler on first map.
If an attachment name is way too long, the attachment name label forces
the composer widget to become too wide which breaks on smaller screens.
To fix this, ellipsize the label if needed. Since the user has probably
just chosen the attachment, they probably have an idea which attachment
it is anyway, so we can do this instead of wrapping. Since the file
extension can make a big difference, we ellipsize in the middle.
When a label is ellipsized, we also add the label as a tooltip in case a
user wants to double check the attachment name though.
Fixes: https://gitlab.gnome.org/GNOME/geary/-/issues/1577
- We are already showing an infobar for CONNECTION_FAILED with a 'Retry'
button that will requeue all outbox messages
- For UNRECOVERABLE_ERROR, just ignore them until next engine restart
Fix#1258#1482
Messages may have been marked as read while waiting in
open_remote_session_locked().
Unsure we handle the diff when remote session opened.
Fix#1023Fix#364
When folder session is claimed, that can lock for some ms.
It can be tricky to debug issues happening during this small random delay.
Use this build option to force the delay.
Marking a message with same command is legit in those scenarios:
- Previous mark command failed, we do not want Geary to be unable to
mark message again
- Multiple clients connected to same IMAP box:
- Geary marked message as read
- Another client marked it as unread
- Geary is unable to mark it as read again
When using virtual namespaces in Dovecot, a LIST command will return
mulitple entries for virtual folder. Always use flags from last entry.
```
a005 LIST "" "*"
* LIST (\HasChildren) "." virtual
* LIST (\HasNoChildren \UnMarked) "." Templates
* LIST (\HasNoChildren \UnMarked \Trash) "." Trash
* LIST (\HasNoChildren \UnMarked \Junk) "." Junk
* LIST (\HasNoChildren \UnMarked \Drafts) "." Drafts
* LIST (\HasNoChildren \UnMarked) "." Archive
* LIST (\HasNoChildren \UnMarked \Sent) "." Sent
* LIST (\HasNoChildren \Flagged) "." virtual.Favoris
* LIST (\Noselect \HasChildren) "." virtual
* LIST (\HasNoChildren \Flagged) "." virtual.Favoris
* LIST (\HasNoChildren) "." INBOX
```
Fix errors like: `Unable to get STATUS of virtual: a008 NO Mailbox doesn't exist: virtual`