afd3b76970
This patch ensures the following notifications behavior: - Urgent notifications that have long title or banner text are auto-expanded correctly. - Single-line notifications that have _expandNotification() called (e.g. because the user mouses over to them), are treated as expanded, which means they get fully expanded if they are updated with more content and the user can escape them. - The position of expanded notifications is updated when they are updated. - Notification banner is shown again on the first line if it can fully fit there after a notification is updated, even if it was previously hidden because the notification was expanded and the old banner did not fully fit. - New notifications are immediately hidden if the user mouses away from them. - If a new notification is updated while it is shown, we extend the time it will be shown. - If a new notification is updated while it is hiding, we stop hiding it and show it again. - If a summary notification is updated while it is hiding, we let it finish hiding and show a new notification with the updated information. Implementation details: - Single-line notifications now have 4px bottom padding instead of 8px, which means that their height matches the tray height, they are fully shown in the banner mode, and don't pop out by 4px when the notification is expanded. - Notification keeps a flag that indicates whether it is expanded, updates its expanded look when it is updated, and emits an 'expanded' signal indicating that its layout has possibly changed. The message tray connects to this 'expanded' signal when it is showing a notification in the expanded state and updates the position of the notification accordingly when this signal is received so that the notification is fully shown. This is better than connecting to 'notify::height' signal on the notification bin, since it results in fewer callbacks. https://bugzilla.gnome.org/show_bug.cgi?id=617209 |
||
---|---|---|
.. | ||
altTab.js | ||
appDisplay.js | ||
appFavorites.js | ||
boxpointer.js | ||
calendar.js | ||
chrome.js | ||
dash.js | ||
dnd.js | ||
docDisplay.js | ||
environment.js | ||
extensionSystem.js | ||
genericDisplay.js | ||
lightbox.js | ||
link.js | ||
lookingGlass.js | ||
magnifier.js | ||
magnifierDBus.js | ||
main.js | ||
Makefile.am | ||
messageTray.js | ||
notificationDaemon.js | ||
overview.js | ||
panel.js | ||
panelMenu.js | ||
placeDisplay.js | ||
popupMenu.js | ||
runDialog.js | ||
scripting.js | ||
search.js | ||
shellDBus.js | ||
statusMenu.js | ||
telepathyClient.js | ||
tweener.js | ||
windowAttentionHandler.js | ||
windowManager.js | ||
workspace.js | ||
workspacesView.js | ||
workspaceSwitcherPopup.js |