| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
Approved by Renato Araujo Oliveira Filho.
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
| |
They are not set in every code path but freed at the end of the function.
|
|
|
|
|
|
|
|
| |
This is implemented by appending '-symbolic' to the first icon name. The old
icon name is kept as a fallback in case there's no symbolic icon installed.
This doesn't work yet for applications that specify their icon as a filename.
|
|\
| |
| |
| |
| |
| |
| | |
Newest messages should show up on top. The menu is still sorted by the time
messages were added, not by the time property of MessagingMenuMessage.
Approved by Olivier Tilloy.
|
| |
| |
| |
| |
| |
| | |
Newest messages should show up on top. The menu is still sorted by the time
messages were added, not by the time property of MessagingMenuMessage.
|
|\ \
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This doesn't require every consumer ("panel") to know about
IndicatorServiceManager's protocol.
Also, it ensures that objects are exported before the name is acquired, getting
rid of a race condition (when a consumer tries to access objects in
NameAppeared before they're exported).
This patch also adds a --replace command line option -- replacing the
INDICATOR_SERVICE_REPLACE_MODE environment variable.
. Fixes: https://bugs.launchpad.net/bugs/1085206.
Approved by Renato Araujo Oliveira Filho, PS Jenkins bot.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This doesn't require every consumer ("panel") to know about
IndicatorServiceManager's protocol.
Also, it ensures that objects are exported before the name is acquired, getting
rid of a race condition (when a consumer tries to access objects in
NameAppeared before they're exported).
This patch also adds a --replace command line option -- replacing the
INDICATOR_SERVICE_REPLACE_MODE environment variable.
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| | |
This fixes a crash on arm, because g_signal_emit was called with one argument
too many.
|
| | |
|
| |
| |
| |
| |
| |
| | |
It isn't used right now (the action group wasn't even exported on the bus) and
would need to be refactored anyway once chat status is added back in.
|
| |
| |
| |
| |
| |
| |
| | |
The action for that root item lives in ImApplicationList for now, because it
owns the action group (which should probably factored into its own class at
some point).
|
| | |
|
| |
| |
| |
| |
| |
| | |
And use com.canonical.indicator.messages.snapdecision as widget type if the
message has actions.
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
|
| |
Right now, this is only used to clean up internal data structures in
libmessaging-menu. It's not exposed to the application itself.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The application will only be notified about the activation when this parameter
is true. False denotes a dismissed item.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Remove trailing '.desktop' and replace all dots by underscores to make
GActionMuxer work (which uses the dot as a separator).
In order to contain the canonicalization to ImApplicationList, its signals now
contain string parameters to id and icon name instead of GDesktopAppInfo
pointers.
|
| |
|
| |
|
|
|
|
|
| |
Thanks Olivier!
|
|
|
|
|
| |
This data can (and should) always be retrieved via actions.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Add ImApplicationList, a class that manages the list of applictions that are
currently registered with the messaging menu. It creates dbus proxies for
running applications and sends signals when the app adds messages or sources.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This is a rough first draft: It only fetched the sources and messages from
applications once and doesn't listen for further changes.
This removes all code for the desktop menu for now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the protocol was simply a menu model and an action group of the
currently active sources. The service inserted the menu as a section into the
indicator menu.
This doesn't work anymore, because applications can (soon) expose individual
messages, and the messaging menu doesn't always display all of those at once.
This patch introduces a more specific d-bus API.
That API is still considered private: applications have to use
libmessaging-menu.
|
|
|
|
|
|
|
|
|
|
| |
Both the service (in src/) and the client library (in libmessaging-menu/) need
access to the dbus interface description file. Until now, it resided in src,
with both Makefiles calling gdbus-codegen on it.
This patch moves the file to common/ and builds a convenience library that
contains only the generated code.
|
|
|
|
|
| |
And use g_icon_new_from_string in the indicator to make it load fallbacks.
|
|
|
|
|
| |
To make it consistent with the other indicators.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Changes the state of the "messages" action from a boolean (draws-attention) to
a string (icon-name). This has the added benefit that more logic is moved from
the plugin into the service.
It also fixes an edge case: the messaging menu didn't have the blue icon after
the service restarted (if anything was drawing attention).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Up until now, the global chat status was set every time an application called
_set_status. Thus, global status really meant "status of the app that last
changed the status".
Now, the service remembers the chat status for each application and sets the
global status as a combination of all of application statuses. If applications
have different statuses, the menu items are shown in an inconsistent state.
This is implemented in IdoMenuItem by making it accept state as an array of
strings in addition to a single string. It is drawn inconsistent if the state
contains the menu item's target value in addition to other values.
When the global status is changed through the messaging menu, the service
doesn't update the action immediately anymore. Instead, it notifies all
applications about the change via the "status-changed" signal. Applications
must call _set_state to acknowledge that they have indeed changed their state.
This is consistent with libmessaging-menu's documentation and design.
Also, the SetStatus D-Bus call was missing a "desktop-id" parameter to tell the
menu which application changed status. Changing this doesn't break existing
apps, as the D-Bus interface is considered private to indicator-messages.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, gtk didn't support changing the menu model on an already-created
GtkMenu. Since IndicatorObject doesn't allow changing the GtkMenu it exports
to the panel, IndicatorMessages created a menu with a single section, into
which the menu from the service was inserted (and removed when the service
died). This led to seperators not being shown, because separators are only
shown between top-level sections.
Gtk now has gtk_menu_shell_bind_model, which allows us to get rid of top-level
wrapper section.
|