aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Change application to service d-bus protocolLars Uebernickel2012-11-145-414/+555
| | | | | | | | | | | | | | 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.
* Remove gtupleaction, it isn't used anymoreLars Uebernickel2012-11-134-399/+2
|
* Move service .xml into a common directoryLars Uebernickel2012-11-137-44/+38
| | | | | | | | | | 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.
* Merge new libmessaging-menu APILars Uebernickel2012-11-056-128/+671
|\ | | | | | | | | | | | | | | | | Adds MessagingMenuMessage, which allows adding individual messages with titles and body previews to the messaging menu with messaging_menu_app_append_message. This only adds the new API, messages are not actually sent to the messaging menu yet.
| * libmessaging-menu: add MessagingMenuMessageLars Uebernickel2012-11-015-2/+518
| | | | | | | | | | | | | | | | | | MessagingMenuMessage allows adding individual messages with titles and body previews to the messaging menu with messaging_menu_app_append_message. This only adds the new API, messages are not actually sent to the messaging menu yet.
| * libmessaging-menu: messaging-menu.[ch] -> messaing-menu-app.[ch]Lars Uebernickel2012-11-014-127/+153
| |
* | Clear the detail (count or time) of a source when another type of detail is ↵Lars Uebernickel2012-10-291-42/+68
|\ \ | | | | | | | | | | | | | | | set. Fixes: https://bugs.launchpad.net/bugs/1071640. Approved by Charles Kerr, PS Jenkins bot.
| * | libmessaging-menu: clear time when set_count is calledLars Uebernickel2012-10-281-42/+68
|/ /
* | 12.10.5Lars Uebernickel2012-10-242-1/+8
| |
* | messaging_menu_app_set_source_icon: unset x-canonical-icon if NULL is ↵Lars Uebernickel2012-10-241-5/+15
|\ \ | | | | | | | | | passed. Fixes: https://bugs.launchpad.net/bugs/1070421. Approved by Charles Kerr.
| * | messaging_menu_app_set_source_icon: unset x-canonical-icon if NULL is passedLars Uebernickel2012-10-241-5/+15
|/ /
* | Merge lp:~jconti/indicator-messages/unexport-itemsLars Uebernickel2012-10-181-15/+33
|\ \ | | | | | | | | | | | | libmessaging-menu: unexport action group and menu model on dispose.
| * | Unexport actions/menus on disposeJason Conti2012-10-101-15/+34
| |/
* | Merge lp:~larsu/indicator-messages/lp1064314Lars Uebernickel2012-10-181-2/+2
|\ \ | |/ |/| | | | | | | Fixes a crash in libmessaging-menu when menus and action groups cannot be exported.
| * libmessaging-menu: clear error before reusing itLars Uebernickel2012-10-111-2/+2
|/
* Fixed typo in doc string. Approved by Charles Kerr, jenkins.Ken VanDine2012-10-101-1/+1
|\
| * Fixed typo in docstringKen VanDine2012-10-091-1/+1
|/
* Call gtk-update-icon-cache on $(datadir)/icons/hicolorLars Uebernickel2012-10-031-1/+1
|\ | | | | | | That's were icons are installed, not $(pkgdatadir).. Fixes: https://bugs.launchpad.net/bugs/1060618. Approved by jenkins, Charles Kerr.
| * Call gtk-update-icon-cache on $(datadir)/icons/hicolorLars Uebernickel2012-10-031-1/+1
|/ | | | | That's were icons are installed, not $(pkgdatadir).
* 12.10.4Lars Uebernickel2012-10-022-1/+8
|
* Merge lp:~larsu/indicator-messages/lp1056595Lars Uebernickel2012-10-022-3/+16
|\ | | | | | | | | Use fallback icon names (without status emblems).
| * Include fallback icon namesLars Uebernickel2012-09-282-3/+16
| | | | | | | | | | And use g_icon_new_from_string in the indicator to make it load fallbacks.
* | Merge lp:~larsu/indicator-messages/lp1058386Lars Uebernickel2012-10-021-3/+14
|\ \ | |/ |/| | | | | Don't crash when getting an invalid desktop id.
| * libmessaging-menu: don't crash when getting an invalid desktop idLars Uebernickel2012-10-011-3/+14
|/ | | | | | Instead, silently don't export menus and actions. The single warning about the desktop id being invalid should be enough.
* Merge lp:~larsu/indicator-messages/lp1055966Lars Uebernickel2012-09-261-3/+2
|\ | | | | | | | | Request GTK_ICON_SIZE_LARGE_TOOLBAR icons for the indicator.
| * Request LARGE_TOOLBAR icons for the panelLars Uebernickel2012-09-251-3/+2
|/ | | | | To make it consistent with the other indicators.
* 12.10.3Lars Uebernickel2012-09-192-1/+12
|
* Bump required gtk version to 3.5.18Lars Uebernickel2012-09-191-1/+1
|
* Merge lp:~larsu/indicator-messages/fix-set-statusLars Uebernickel2012-09-197-76/+278
|\
| * messages-service: define all global variables as staticLars Uebernickel2012-09-191-3/+3
| |
| * Use indicator-message icons with chat statusLars Uebernickel2012-09-182-30/+109
| | | | | | | | | | | | | | | | | | | | 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).
| * Set the global chat status more intelligentlyLars Uebernickel2012-09-186-47/+168
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * libmessaging-menu: don't set app->status when global status changesLars Uebernickel2012-09-181-2/+1
| | | | | | | | | | | | | | | | | | The application's status only changes when it calls _set_status, so it's wrong to set the internal status when the global status changes. This shouldn't be a problem in practice, as app->status is not accessible from the API.
| * libmessaging-menu: don't call SetStatus(OFFLINE) for all appsLars Uebernickel2012-09-181-2/+5
|/ | | | | | | | Only notify the service about status if the application has actually called messaging_menu_app_set_status. This saves a d-bus call per non-chat application and - more importantly - doesn't make the messaging menu go into "unknown status" mode when one application is reporting 'online' status.
* Merge lp:~larsu/indicator-messages/show-separatorsLars Uebernickel2012-09-183-20/+11
|\
| * messages-services: don't call g_object_unref with NULLLars Uebernickel2012-09-141-1/+2
| |
| * Show menu separators between sectionsLars Uebernickel2012-09-132-19/+9
|/ | | | | | | | | | | | | 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.
* messages-service: update chat section when an app is removedLars Uebernickel2012-09-061-3/+11
|
* messages-service: fix merge errorLars Uebernickel2012-09-061-7/+5
| | | | | | | Check whether no apps are left in remove_section instead of remove_application, so that it is also done when an AppSection emits "destroy". This is a result of improper merging of the watch-desktop-files and hide-indicator branches.
* Merge lp:~larsu/indicator-messages/watch-desktop-filesLars Uebernickel2012-09-063-48/+128
|\
| * messages-service.c: remove redundant g_hash_table_removeLars Uebernickel2012-09-051-1/+0
| |
| * app-section.c: remove unused function app_section_get_nameLars Uebernickel2012-09-052-12/+0
| |
| * app-section.c: make destroy_signal staticLars Uebernickel2012-09-051-1/+1
| |
| * app-section: remove unused private memberLars Uebernickel2012-09-052-11/+0
| |
| * Watch desktop files for changesLars Uebernickel2012-09-052-26/+129
| | | | | | | | | | | | | | | | This introduces a slightly clumsy "destroy" signal for AppSection to notify outsiders that the desktop file was deleted. This will do for now, but a larger refactoring which pulls all the desktop-file-reading code out of appsection is in order.
* | Hide the indicator when no application is configured to use it.. Fixes: ↵Lars Uebernickel2012-09-052-54/+71
|\ \ | |/ |/| | | https://bugs.launchpad.net/bugs/661059, https://bugs.launchpad.net/bugs/1045039. Approved by jenkins, Charles Kerr.
| * indicator-messages.c: don't call menu_items_changed directlyLars Uebernickel2012-09-051-31/+38
| |
| * Hide indicator when no applications are configured to use itLars Uebernickel2012-09-042-64/+74
| | | | | | | | | | | | This is done by removing the header item from the menu model in the service. On the panel side, call indicator_object_hide() if the recevied menu is empty.
* | Some minor enhancements to the in-source documentation.. Approved by ↵Lars Uebernickel2012-09-041-10/+15
|\ \ | | | | | | | | | jenkins, Charles Kerr.
| * | libmessaging-menu: fix shortcut action documentationLars Uebernickel2012-09-041-4/+5
| | |