This covers two problems:
- middle-click on a button, or Shift+LeftClick, did not open a new
window with the corresponding view, because the action requires
the name of the view to be opened
- clicking on an older active (pushed) button deactivated it, while
it should do nothing, it should keep the button pushed down.
The accels should be ignored, especially those using a single key,
when the search entry is focused, otherwise that latter could not
be written into the entry. Use the generic function to determine
when the accel should be ignored and when not.
The Mail switcher button changes its icon to an "unread mail", when
a new mail is received and then back to a "mail", when any mail is read.
This did not work properly, because the switcher button's properties
were not updated when the action's property changed.
Cover also the label property, just in case.
This replaces a deprecated GtkUIManager with a new EUIManager, which
uses its own file format, similar to the .ui used by the gtk+, but
not the same. This brought in more structures like EUIAction and
EUIActionGroup.
To name the few most significant changes:
The overall window architecture had been changed internally too, the
EShellView is a widget now and contains everything except of the header
bar. This allows to create the window content once and not regenerate it
every switch between the views. It also moved the EUIManager from
the EShellWindow to the EShellView.
The EMailShellContent does not implement an EMailReader interface any more.
It allows to have cleaner EMailReader usage in the code. To get to
the EMailReader use:
EMailView *mail_view = NULL;
g_object_get (e_shell_view_get_shell_content (mail_shell_view), "mail-view", &mail_view, NULL);
if (mail_view) {
EMailReader *mail_reader = E_MAIL_READER (mail_view);
...
g_clear_object (&mail_view);
}
The plugins cannot have their UI definitions in the .eplug file,
these are added in the code, directly to the EUIManager. Modules
already did that.
Using menu item to close the window runs "prepare-for-quit" operation
as expected, but closing the window directly (with the `x` button), did
not do so, which could lead to no Trash empty on exit and other "on-exit"
operations being skipped.
The G_TYPE_INSTANCE_GET_PRIVATE() macro is deprecated, which generates
a compiler warning since `glib_encoded_version` variable had been
set to the 2.66 version in the main CMakeLists.txt file.
The description was too similar to the --quit option, making it hard to
distinguish them. The --force-shutdown also does more than the --quit,
it kills the evolution-data-server background processes, which is
a significant difference.
The event had been emitted within GApplication::startup function, which
was before the modules had been loaded, thus when some modules connect
to the "ready-to-start" signal then never received it.
Let the Evolution finally be a complete GtkAplication by using
the correct g_application_run(). This gets rid of:
(evolution:121456): GLib-GIO-WARNING **: 13:29:58.970: Your application
did not unregister from D-Bus before destruction. Consider using g_application_run().
runtime warning shown on quit of the application.
The 'connected' state is not reached when the data store is not available,
which means to wait for the whole set time. Use shorter times, also because
most of the backends support offline mode, thus the changes can be propagated
to the server later.
Related to https://gitlab.gnome.org/GNOME/evolution-data-server/-/issues/489
Use a different icon for a recurring event, which is a detached
instance from the series.
Also add some more symbolic icons used in the Calendar view.
Related to https://gitlab.gnome.org/GNOME/evolution/-/issues/1180