A simple Evolution run and move between all views means creation of
more than 100 GSettings objects, with only a bit more than 10 schemas.
Reusing the objects should have a positive impact on a performance too.
The previous shortcut clashes with File->New->Appointment. The icon
was removed due to a lack of a better descriptive image and to not
have three almost identical icons beside each other in the menu.
This is related to bug 698275, which did not cover all cases.
The problem here is that the dconf can in certain situation claim
that everything changed (path "/" changed), which GSettingsBinding
propagates to a GObject property unconditionally and GObject's
property setter (g_object_set_property()) also notifies about
the property change unconditionally, despite the real descendant
property setter properly checks for the value change. After all
these false notifications a callback on "notify" signal is called
and possibly an expensive operation is run.
Checking whether the value really changed helps in performance, for
which were added new e-util functions:
e_signal_connect_notify()
e_signal_connect_notify_after()
e_signal_connect_notify_swapped()
e_signal_connect_notify_object()
which have the same prototype as their GLib counterparts, but they allow
only "notify::..." signals and they test whether the value really changed
before they call the registered callback.
Otherwise invalid source ID is used in the call of g_source_remove()
when is tried to remove "pending" auto-mark-as-seen timeout callback.
It can show a runtime warning on a console too.
Replaces the 'oklabel' argument when creating a new dialog, and can be
changed after the dialog is created.
This makes EMFolderSelector a little more "subclassable".
Replaces the 'text' argument when creating a new dialog, and can be
changed after the dialog is created.
This makes EMFolderSelector a little more "subclassable".
Replaces the EM_FOLDER_SELECTOR_CAN_CREATE flag, and can also be set
after the selector dialog is instantiated.
This makes EMFolderSelector a little more "subclassable".
a) ETableColumnSpecification: the 'title' property is always overwritten
during the spec file loading, thus no need to allocate it here
b) the 'uids' are leaked on message move, because the GPtrArray is
supposed to be always unreffed
Win32 headers have a #define for 'interface', which breaks the build
when this word is used in the code, thus replace it to 'iface',
the same way as GLib or GTK+ code use to have it. (See bug #722068.)
The zoom in shortcut (Ctrl+) can be confusing for some users because on
keyboards with a [+ =] key the '+' requires holding Shift. To mitigate
the confusion, also accept (Ctrl=) for zoom in.
And while we're add it, also support Ctrl+ and Ctrl- on keypads, as well
as keyboards with dedicated Zoom In / Zoom Out keys.
Missed a case when an EMailReader is an EMailBrowser, which is not
an EMailView, which produced a runtime warning on a console when
a message was shown in a separate window (like after double-clicking it).
This makes the code free of Coverity scan issues.
It is sometimes quite pedantic and expects/suggests some
coding habits, thus certain changes may look weird, but for a good
thing, I hope. The code is also tagged with Coverity scan
suppressions, to keep the code as is and hide the warning too.
Also note that Coverity treats g_return_if_fail(), g_assert() and
similar macros as unreliable, and it's true these can be disabled
during the compile time, thus it brings in other set of 'weird'
changes.
There's now enough hooks in EWebView that it can take over image saving
from EMailDisplay / EMailReader, with the added perk that a "Save Image"
pop-up menu item now appears for images in ALL preview panes.
The returned UID array now has a built-in "free" function for its
elements and should be released by callers with g_ptr_array_unref()
rather than em_utils_uids_free() or some equivalent.