aboutsummaryrefslogtreecommitdiff
path: root/src/app-section.c
Commit message (Collapse)AuthorAgeFilesLines
* Change application to service d-bus protocolLars Uebernickel2012-11-141-160/+264
| | | | | | | | | | | | | | 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.
* Set the global chat status more intelligentlyLars Uebernickel2012-09-181-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* app-section.c: remove unused function app_section_get_nameLars Uebernickel2012-09-051-11/+0
|
* app-section.c: make destroy_signal staticLars Uebernickel2012-09-051-1/+1
|
* app-section: remove unused private memberLars Uebernickel2012-09-051-10/+0
|
* Watch desktop files for changesLars Uebernickel2012-09-051-16/+105
| | | | | | | | 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.
* Merge lp:~larsu/messaging-menu/fix-iconsLars Uebernickel2012-08-271-1/+6
|\
| * IdoMenuItem: don't try to set state on stateless actionsLars Uebernickel2012-08-271-1/+6
| |
* | Make sure the icon is cleared also when a source is removedLars Uebernickel2012-08-271-7/+0
|/ | | | | | The code was there, but an superfluous condition made the function return early.
* Request showing the chat section also when the app is not runningLars Uebernickel2012-08-241-2/+1
|
* Merge lp:~charlesk/indicator-messages/towards-q-redesignLars Uebernickel2012-08-211-2/+7
|\ | | | | | | | | Plugs several memory leaks in app-section.c
| * in app-section.c's activate_cb(), don't leak the GError if we can't launchCharles Kerr2012-08-211-2/+4
| |
| * in app-section's app_section_set_app_info(), don't leak the nicks' actionsCharles Kerr2012-08-211-0/+1
| |
| * in app-section.c's dispose(), clear the muxer objectCharles Kerr2012-08-211-0/+2
| |
* | Show icons in application and source menu itemsLars Uebernickel2012-08-211-4/+4
|/ | | | | | | Everthing goes through GIcon now, using g_icon_{to,new_for}_string to set a string attribute on the menu item. The attribute is prefixed x-canonical- for now.
* Merge Charles' branch: fixes a memory and a signal leak; various neat cleanupsLars Uebernickel2012-08-201-15/+5
|\ | | | | | | | | | | The "add sanity check" commit is not included, as app-section is not public. This merge also removes the remaining sanity checks in app-section.
| * add sanity checks to args passed in the public APICharles Kerr2012-08-191-1/+9
| |
| * in app-section.c's dispose(), use g_clear_object() for priv.ids and priv.keyfileCharles Kerr2012-08-191-10/+2
| |
| * add lars as co-author of app-sectionCharles Kerr2012-08-191-1/+2
| |
* | app-section: rename remote_menu to source_menuLars Uebernickel2012-08-201-6/+6
| | | | | | | | | | Because it contains the message sources.
* | Export both static shortcuts also when the app is runningLars Uebernickel2012-08-201-19/+30
| |
* | Use a custom menu item for application itemsLars Uebernickel2012-08-201-5/+29
|/ | | | | | | | | | | | | This introduces ImAppMenuItem: a menu item which shows a small triangle next to an application's name if the associated app is running. The running state is communicated to the menu by giving the "launch" action a boolean state. This depends on a patch to gtk which creates custom menu items from gtk_menu_new_from_model when the x-canonical-type attribute is set on a menu item in the model.
* X-MessagingMenu-UsesChatStatus --> X-MessagingMenu-UsesChatSectionLars Uebernickel2012-06-291-1/+1
|
* Only show chat section when necessaryLars Uebernickel2012-06-271-0/+74
| | | | | | | | The chat section is only shown when an application that is registered to use it is running. Applications are registered if their desktop file contains: X-MessagingMenu-UsesChatStatus: true
* Make "Clear" work againLars Uebernickel2012-06-271-0/+39
|
* Add draws-attention flag to source actionsLars Uebernickel2012-06-271-2/+149
| | | | | | AppSections watch those flags for associated sources and mux them into a draws-attention property for the whole section.
* app-section.c: get rid of unnecessary local itemLars Uebernickel2012-06-261-4/+1
|
* messages-service: move gmenu utility functions into gmenuutils.[ch]Lars Uebernickel2012-06-261-16/+5
| | | | | As a neat side-effect, this fixes a memory leak in app-section.c.
* Put launcher and shortcut menu items into the same gmenu sectionLars Uebernickel2012-06-251-36/+22
|
* Reexport application menu as a separate section below the shortcutsLars Uebernickel2012-06-041-2/+12
|
* app-section: replace G_TYPE_INSTANCE_GET_PRIVATE calls with a priv memberLars Uebernickel2012-06-041-18/+19
|
* Name actions after the shortcut nick instead of its labelLars Uebernickel2012-06-031-2/+2
|
* Reexport application actionsLars Uebernickel2012-06-031-0/+21
|
* app-section: only call g_bus_unwatch_name if we're watching a nameLars Uebernickel2012-06-021-2/+4
|
* Listen to menus exported by applicationsLars Uebernickel2012-06-021-8/+14
|
* Listen to actions exported by applicationsLars Uebernickel2012-06-021-0/+68
|
* app-section: fix indentationLars Uebernickel2012-05-311-23/+23
|
* Put the 'launch' action onto app's menu sectionsLars Uebernickel2012-05-311-12/+21
| | | | | This requires clients to make those menu sections clickable.
* Rename AppMenuItem to AppSectionLars Uebernickel2012-05-311-0/+321