| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
EShellSettings predates GSettings and is no longer necessary.
GSettings allows binding GObject properties to GSettings keys,
with optional mapping functions. That fulfills the purpose of
EShellSettings.
|
|
|
|
| |
Use e_photo_cache_remove() instead of emu_remove_from_mail_cache_1().
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Evolution consists of entirely too many small utility libraries, which
increases linking and loading time, places a burden on higher layers of
the application (e.g. modules) which has to remember to link to all the
small in-tree utility libraries, and makes it difficult to generate API
documentation for these utility libraries in one Gtk-Doc module.
Merge the following utility libraries under the umbrella of libeutil,
and enforce a single-include policy on libeutil so we can reorganize
the files as desired without disrupting its pseudo-public API.
libemail-utils/libemail-utils.la
libevolution-utils/libevolution-utils.la
filter/libfilter.la
widgets/e-timezone-dialog/libetimezonedialog.la
widgets/menus/libmenus.la
widgets/misc/libemiscwidgets.la
widgets/table/libetable.la
widgets/text/libetext.la
This also merges libedataserverui from the Evolution-Data-Server module,
since Evolution is its only consumer nowadays, and I'd like to make some
improvements to those APIs without concern for backward-compatibility.
And finally, start a Gtk-Doc module for libeutil. It's going to be a
project just getting all the symbols _listed_ much less _documented_.
But the skeletal structure is in place and I'm off to a good start.
|
|
|
|
|
|
| |
Exposing data members in the public struct is unwise, especially when
EMailPartList is used from multiple threads. Instead keep the members
private and provide a set of thread-safe functions to manipulate them.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This was another MeeGo feature. MeeGo is dead, the code is starting to
bit rot and crashes on startup, the original author disappeared and the
remaining developers are not interested in maintaining it. So it's out.
|
|
|
|
|
|
| |
This is leftover from the WebKit port and it didn't work
properly. Most of the code was removed, some was moved
to a better place.
|
| |
|
| |
|
| |
|
|
|
|
| |
Shortens the Message menu a little for low screen resolutions.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
The new formatter was ignoring selected headers, always displaying
only From, To, Subject and Date (default headers).
Handling of the currently displayed headers has been moved to
EMailConfigFormatHTML extension, because it is related to
configuration of EMailFormatter, rather then EMailReader.
|
|
|
|
|
|
|
|
| |
All mail-parsing and formatting code has been moved to em-format.
Parsing is handeled by EMailParser class, formatting by EMailFormatter.
Both classes have registry which hold extensions - simple classes
that do actual parsing and formatting. Each supported mime-type
has it's own parser and formatter extension class.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
The callback does not own the GAsyncResult passed to it.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Replace 8-space indentation with tab characters, and various other
automated cleanups.
|
|
|
|
| |
Pass it in instead of digging it out of EShellSettings.
|
| |
|
|
|
|
|
| |
the daemon can now start the vfolder storage without bothering much with the
UI.
|
|
|
|
| |
libevolution-utils.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
These libraries are bound for E-D-S so they live at the lowest layer of
Evolution for now -- even libeutil can link to them (but please don't).
This is the first step toward moving mail handing to a D-Bus service.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
More mail API churn... reversing some previous API decisions.
I've made some key API changes to EMailSession on the account-mgmt
branch which should allow for this, and will hopefully also benefit
the "email-factory" branch.
EMailBackend barely needs to exist anymore, except as the owner of
EMailSession.
For several low-level functions, we replace its EMailBackend parameter
with EMailSession and EAlertSink parameters; the latter so it can still
pass user alerts up the chain.
|
| |
|
| |
|
|\
| |
| |
| |
| | |
Conflicts:
mail/e-mail-paned-view.c
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Means EMailBrowser no longer has to.
Also, EMailReader now provides a default implementation for
get_alert_sink() which just calls get_preview_pane() and casts.
|
| |
| |
| |
| |
| | |
Also give EMailReader::show-search-bar signal a default implementation,
since it can now dig up the search bar widget itself.
|
| |
| |
| |
| | |
Emitted when the CamelMimeMessage has been obtained.
|
| |
| |
| |
| | |
Replaces e_mail_reader_mark_as_read().
|
| | |
|
| | |
|
|\| |
|
| | |
|
| | |
|
| | |
|
|\| |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Drop EMFolderTreeModel's "session" property now that it has a "backend"
property and call em_folder_tree_model_set_backend() where we used to
call em_folder_tree_model_set_session().
The session can still be obtained through e_mail_backend_get_session().
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
There was never a bug filed for this, but some mailing list discussion:
http://mail.gnome.org/archives/evolution-list/2011-August/msg00084.html
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Also, minimize the EMFolderSelector API by removing frivolous wrapper
functions and unused functions.
|
| |
| |
| |
| |
| |
| |
| |
| | |
All this so EMFolderTree can submit EActivity instances for async ops.
You can obtain an EMailSession from an EMailBackend, but not vice versa.
Creates lots of pretty ripples in the mail code, but ultimately reduces
complexity. So it's a code cleanup of sorts.
|
| |
| |
| |
| |
| | |
Now that we're configuring EMailReader instances from an idle callback,
we can safely store the forward and reply styles in the private struct.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add an action group for Search Folders to EMailReader. The action
group's visibility is bound to the "mail-enable-search-folders" setting,
so that menu items related to Search Folders are hidden when Search
Folders are disabled in GConf.
Affected menu items are:
Edit -> Search Folders
Message -> Create Rule -> Search Folder from Subject...
Message -> Create Rule -> Search Folder from Sender...
Message -> Create Rule -> Search Folder from Recipients...
Message -> Create Rule -> Search Folder from Mailing List...
Search -> Create Search Folder From Search...
|
| |
| |
| |
| |
| |
| | |
Use an enum type to request different action groups. For now we just
have E_MAIL_READER_ACTION_GROUP_STANDARD. EMailReader implementations
should map the enum value to an appropriate GtkActionGroup.
|
| |
| |
| |
| | |
Use e_mail_folder_save_messages() instead.
|
| |
| |
| |
| | |
Use e_mail_folder_remove_attachments() instead.
|
| |
| |
| |
| | |
Now uses camel_folder_get_message().
|
| |
| |
| |
| | |
Now uses camel_folder_get_message().
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
No more fetching a message itself. Oh, and stop unreffing the message.
Those kinds of insane semantics are what lead to crashes.
|
| |
| |
| |
| |
| | |
Now fetches the message itself using camel_folder_get_message(),
then calls em_utils_redirect_message().
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Configuring and submitting an EActivity for every mail operation is
getting tedious. This function helps reduce boilerplate code by:
* Creating a new EActivity instance.
* Installing an EAlertSink using e_mail_reader_get_alert_sink().
* Installing a GCancellable (which is really a CamelOperation).
* Submitting the activity via e_shell_backend_add_activity().
I'm considering adding a similar function (or class method) for
EShellView. Not sure yet...
|
| | |
|
| |
| |
| |
| | |
Now uses e_mail_folder_get_multiple_messages().
|
| |
| |
| |
| |
| | |
Now uses e_mail_folder_build_attachment() and
e_mail_folder_get_multiple_messages().
|
| |
| |
| |
| | |
Now uses e_mail_folder_find_duplicate_messages().
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Instead call e_mail_reader_get_folder() and, if you really need to,
generate the folder URI with e_mail_folder_uri_from_folder().
|
| | |
|
| |
| |
| |
| |
| | |
Pass CamelFolder objects instead, which are already available at almost
every call site.
|
| |
| |
| |
| | |
Take a CamelFolder instead of a folder URI string.
|
| |
| |
| |
| |
| | |
Don't call em_utils_folder_is_drafts() or em_utils_folder_is_outbox() if
the CamelFolder is NULL.
|
| |
| |
| |
| | |
Mostly dead assignments.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Function is no longer used, or wanted.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This one's a little involved:
- EMailShellView now obtains a CamelFolder itself in response to
EMFolderTree::folder-selected signals. Uses EActivity to do so.
- Revise EMFolderTree::folder-selected signal arguments to be more
useful: emit a CamelStore object instead of a folder URI.
- Also revise EMFolderTree::folder-activiated signal arguments the
same way while we're at it.
- Remove the "folder_uri" argument from e_mail_reader_set_folder().
If you have a CamelFolder object you can obtain the URI string by
calling camel_folder_get_uri().
|
| |
| |
| |
| |
| | |
Switching between mail folders in offline mode produces lots of
annoying alerts for operations we shouldn't even be attempting.
|
| | |
|
| |
| |
| |
| | |
Prefer the newer GtkAction "set" functions over g_object_set().
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With lockdown settings available through GSettings, widgets can handle
lockdown integration themselves without having to use EShellSettings.
Also fixed a few places where printing or save-to-disk actions were
either not properly wired up or not responding to lockdown settings,
but much more work needs done. Attachments, for example, are not
honoring the disable-save-to-disk setting at all.
This too requires the recently-added gsettings-desktop-schemas
dependency.
|
| |
| |
| |
| |
| |
| |
| | |
Add e_alert_dialog_get_content_area(), which returns the GtkVBox
containing the primary and secondary labels. Use this instead of
gtk_dialog_get_content_area() to maintain the dialog's left margin
beneath the image.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Lockdown keys have moved to gsettings-desktop-schemas, so disable
lockdown integration until we're ready for GSettings.
|
| |
| |
| |
| | |
GCC learned how to find dead assignments.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Per request of bug #635414
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of mail_get_messagex(), call camel_folder_get_message() and
submit an EActivity to the shell backend. EMailReader now uses the
activity's GCancellable to cancel the previous retrieval operation
when the user selects a different message.
Eliminates the last call to mail_get_messagex().
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
There was never a bug filed for this, but some mailing list discussion:
http://mail.gnome.org/archives/evolution-list/2011-August/msg00084.html
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Also, minimize the EMFolderSelector API by removing frivolous wrapper
functions and unused functions.
|
| |
| |
| |
| |
| |
| |
| |
| | |
All this so EMFolderTree can submit EActivity instances for async ops.
You can obtain an EMailSession from an EMailBackend, but not vice versa.
Creates lots of pretty ripples in the mail code, but ultimately reduces
complexity. So it's a code cleanup of sorts.
|
| |
| |
| |
| |
| | |
Now that we're configuring EMailReader instances from an idle callback,
we can safely store the forward and reply styles in the private struct.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add an action group for Search Folders to EMailReader. The action
group's visibility is bound to the "mail-enable-search-folders" setting,
so that menu items related to Search Folders are hidden when Search
Folders are disabled in GConf.
Affected menu items are:
Edit -> Search Folders
Message -> Create Rule -> Search Folder from Subject...
Message -> Create Rule -> Search Folder from Sender...
Message -> Create Rule -> Search Folder from Recipients...
Message -> Create Rule -> Search Folder from Mailing List...
Search -> Create Search Folder From Search...
|
| |
| |
| |
| |
| |
| | |
Use an enum type to request different action groups. For now we just
have E_MAIL_READER_ACTION_GROUP_STANDARD. EMailReader implementations
should map the enum value to an appropriate GtkActionGroup.
|
| |
| |
| |
| | |
Use e_mail_folder_save_messages() instead.
|
| |
| |
| |
| | |
Use e_mail_folder_remove_attachments() instead.
|
| |
| |
| |
| | |
Now uses camel_folder_get_message().
|
| |
| |
| |
| | |
Now uses camel_folder_get_message().
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
No more fetching a message itself. Oh, and stop unreffing the message.
Those kinds of insane semantics are what lead to crashes.
|
| |
| |
| |
| |
| | |
Now fetches the message itself using camel_folder_get_message(),
then calls em_utils_redirect_message().
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Configuring and submitting an EActivity for every mail operation is
getting tedious. This function helps reduce boilerplate code by:
* Creating a new EActivity instance.
* Installing an EAlertSink using e_mail_reader_get_alert_sink().
* Installing a GCancellable (which is really a CamelOperation).
* Submitting the activity via e_shell_backend_add_activity().
I'm considering adding a similar function (or class method) for
EShellView. Not sure yet...
|
| | |
|
| |
| |
| |
| | |
Now uses e_mail_folder_get_multiple_messages().
|
| |
| |
| |
| |
| | |
Now uses e_mail_folder_build_attachment() and
e_mail_folder_get_multiple_messages().
|
| |
| |
| |
| | |
Now uses e_mail_folder_find_duplicate_messages().
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Instead call e_mail_reader_get_folder() and, if you really need to,
generate the folder URI with e_mail_folder_uri_from_folder().
|
| | |
|
| |
| |
| |
| |
| | |
Pass CamelFolder objects instead, which are already available at almost
every call site.
|
| |
| |
| |
| | |
Take a CamelFolder instead of a folder URI string.
|
| |
| |
| |
| |
| | |
Don't call em_utils_folder_is_drafts() or em_utils_folder_is_outbox() if
the CamelFolder is NULL.
|
| |
| |
| |
| | |
Mostly dead assignments.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Function is no longer used, or wanted.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This one's a little involved:
- EMailShellView now obtains a CamelFolder itself in response to
EMFolderTree::folder-selected signals. Uses EActivity to do so.
- Revise EMFolderTree::folder-selected signal arguments to be more
useful: emit a CamelStore object instead of a folder URI.
- Also revise EMFolderTree::folder-activiated signal arguments the
same way while we're at it.
- Remove the "folder_uri" argument from e_mail_reader_set_folder().
If you have a CamelFolder object you can obtain the URI string by
calling camel_folder_get_uri().
|
| |
| |
| |
| |
| | |
Switching between mail folders in offline mode produces lots of
annoying alerts for operations we shouldn't even be attempting.
|
| | |
|
| |
| |
| |
| | |
Prefer the newer GtkAction "set" functions over g_object_set().
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With lockdown settings available through GSettings, widgets can handle
lockdown integration themselves without having to use EShellSettings.
Also fixed a few places where printing or save-to-disk actions were
either not properly wired up or not responding to lockdown settings,
but much more work needs done. Attachments, for example, are not
honoring the disable-save-to-disk setting at all.
This too requires the recently-added gsettings-desktop-schemas
dependency.
|
| |
| |
| |
| |
| |
| |
| | |
Add e_alert_dialog_get_content_area(), which returns the GtkVBox
containing the primary and secondary labels. Use this instead of
gtk_dialog_get_content_area() to maintain the dialog's left margin
beneath the image.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Lockdown keys have moved to gsettings-desktop-schemas, so disable
lockdown integration until we're ready for GSettings.
|
| |
| |
| |
| | |
GCC learned how to find dead assignments.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Per request of bug #635414
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
| |
Instead of mail_get_messagex(), call camel_folder_get_message() and
submit an EActivity to the shell backend. EMailReader now uses the
activity's GCancellable to cancel the previous retrieval operation
when the user selects a different message.
Eliminates the last call to mail_get_messagex().
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To reduce GConf usage in em-composer-utils.c:
- Relevant functions in em-composer-utils.c now take arguments for
reply and forward styles.
- Redundant forwarding functions were removed:
em_utils_forward_attached()
em_utils_forward_inline()
em_utils_forward_quoted()
- EMailReader now has "forward-style" and "reply-style" properties,
which get bound to the appropriate EShellSettings properties in
modules/mail/e-mail-config-reader.c. These same EShellSettings
properties are bound to the combo boxes in Composer Preferences.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This marks the end of unintrusive error dialogs, which were too
unintrusive. We now show errors directly in the main window using
the EAlert / EAlertSink framework.
|
|
|
|
|
|
| |
GObject now does property bindings itself.
Requires GLib >= 2.26.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'Send' and 'Save Draft' are now asynchronous and run outside of
Evolution's MailMsg infrastructure.
Add an EActivityBar to the composer window so these asynchronous
operations can be tracked and cancelled even in the absense of a main
window. Also add an EAlertBar to the composer window so error messages
can be shown directly in the window.
Instead of calling e_alert_dialog_run_for_args(), call e_alert_submit()
and pass the EMsgComposer as the widget argument. The EMsgComposer will
decide whether to show an EAlertDialog or use the EAlertBar, depending
on the GtkMessageType of the alert.
|
|
|
|
|
|
|
|
|
|
|
| |
Global variables in shared libraries are a bad idea. EMailBackend now
owns the MailSession instance, which is actually now EMailSession.
Move the blocking utility functions in mail-tools.c to e-mail-session.c
and add asynchronous variants. Same approach as Camel.
Replace EMailReader.get_shell_backend() with EMailReader.get_backend(),
which returns an EMailBackend. Easier access to the EMailSession.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
In GTK+ 2.21.8, the keysym names were renamed from GDK_* to GDK_KEY_*.
I've added backward-compatibility macors to gtk-compat.h, which can be
dumped as soon as we require GTK+ >= 2.22.0.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
EMailShellContent implements the EMailReader interface but acts as a
proxy for EMailPanedView, from which it obtains MessageList and EWebView
widgets. The problem was both classes call e_mail_reader_init_private()
which connects to signals emitted from the MessageList and EWebView
widgets. But since EMailShellContent is a proxy for EMailPanedView,
the signals were being connected twice.
This commit does away with e_mail_reader_init_private(), instead adding
options to e_mail_reader_init() to control what parts of initialization
to run. It's an ugly and temporary hack.
I'm beginning to realize EMailReader is too bloated and needs rethought.
EMailReader should just manage actions. EMailView should own and manage
the widgets, and EMailReader should just have a get_mail_view() method
so it has access to those widgets. That way the EMailView subclasses
won't have to implement EMailReader themselves and wind up allocating
a bunch of duplicate, unused actions.
It's too close to a stable release to rip these interfaces apart and
reorganize them. I'll try to do that for 2.33 to help make the design
more intuitive.
|
|
|
|
|
|
|
| |
Prefer thread-safe G_DEFINE_TYPE and G_DEFINE_INTERFACE macros over
manual GType registration.
This is just a start... lots more to do.
|
| |
|
| |
|
|
|
|
| |
Reduce the composer's dependency on e_shell_get_default().
|
| |
|
|
|
|
|
|
| |
Control Up - Go to parent folder.
Control Shift Up/Down - prev/next tab
Control Shift w - close tab.
|
|
|
|
|
|
| |
This changes the behavior of the function: instead of redrawing
immediately it schedules the redraw from an idle callback. This
allows us to make multiple changes to EMFormat before redrawing.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Since e_mail_reader_get_formatter (the EMailNotebookView implementation) can
now return NULL we need to prevent that being passed into other functions.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=624867
|
| |
|
|
|
|
|
| |
David's solution is simpler: check if the HTML widget is mapped.
Avoids having to propagate the property to Srini's new classes.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
...with a dropdown menu like the Forward button, and configuration for
whether it tries to do 'Reply to List' by default.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
1: em_utils_reply_to_message() can be passed a newly-created message (from
a current selection. It needs to unref it. Which means that when we pass it
a message which *isn't* newly-created, we have to obtain a ref of our own.
It was that or add a boolean parameter to tell it whether to unref or not.
2: emf_finalize() wasn't unreferencing emf->message -- so when we clone
the EMFormat in em_utils_message_to_html() and immediately unreference the
clone, a refcount on the message got leaked. Fix emf_finalize() to unref
emf->message as presumably it should.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
EMFormatHTML now holds a sealed EWebView instead of a public GtkHTML,
accessible through em_format_html_get_web_view().
Rename e_mail_reader_get_html_display() to e_mail_reader_get_formatter()
and have it return an EMFormatHTML instead of an EMFormatHTMLDisplay,
since that's usually the type you want (or else an EMFormat, but never
an EMFormatHTMLDisplay).
|
| |
|
|
|
|
|
|
|
| |
This reverts commit 43e2c871a418b560b391af00df2b10896055026c.
Correct icon name is "mail-mark-notjunk". The previous fix got
clobbered by the express2 merge.
|
| |
|
|\ |
|
| | |
|
| |\ |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Closing an EMailBrowser window causes it to be disposed immediately,
but ongoing async operations still hold an EMailBrowser reference --
in particular, regenerating the internal message list and fetching a
mail message. The callback functions for these operations were not
equipped to deal with the disposed-but-not-yet-finalized object.
|
| |\| |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit edf6286a38279e6db82dee4da50e94c587f06e02.
gnome-icon-theme got it wrong, not us. See bug #616954.
|
| | |
| | |
| | |
| | | |
mail-mark-notjunk -> mail-mark-not-junk
|
| | |
| | |
| | |
| | | |
mail-mark-notjunk -> mail-mark-not-junk
|
| |\|
| | |
| | |
| | |
| | |
| | | |
Note that express2 got some documentation for EExtensible and friends,
and that documentation is not in gnome-2-30 yet. We need to cherry-pick
those commits into gnome-2-30 and elsewhere.
|
| | | |
|
| | | |
|