gnome-shell/js/ui
Jonas Dreßler 004a5e1042 iconGrid: Queue a relayout after child opacity changes
We're using a vfunc override for `get_paint_volume` to exclude children
with an opacity of 0 from the paint volume and thus decrease the size of
the area we need to paint.

Now if the paint volume is requested during the spring animation (the
real icons are hidden using an opacity of 0 and clones are used for the
animation), `get_paint_volume` returns a paint volume with a height of
0. After that, the spring animation finishes and the icon-opacities are
set to 255 in `_resetAnimationActors`, and since we cache paint volumes
and there's no reason for Clutter to assume it got invalid, the icons
end up not being painted.

Fix this by queuing a relayout of the grid when the opacity of a child
is changed from or to 0, which manually invalidates the paint volume.

The reason why this is not an issue with the paginated icon grid
(all-apps view) is probably because StScrollView invalidates the paint
volume a lot more often than regular containers.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1502
2019-09-09 19:39:28 +00:00
..
components cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
status system: Track buttonGroup visibility using a group of actors 2019-09-09 19:28:19 +00:00
accessDialog.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
altTab.js altTab: use AltTab prefix on AppIcon class 2019-09-09 19:28:18 +00:00
animation.js animation: Stop the animation before removing all the children 2019-09-09 19:28:18 +00:00
appDisplay.js AppIcon: Nullify _draggable if available on destruction 2019-08-09 23:30:52 +02:00
appFavorites.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
audioDeviceSelection.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
background.js js: Use implicit animations for animatable properties 2019-08-06 23:54:29 +02:00
backgroundMenu.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
barLevel.js barLevel: Remove duplicated assignment 2019-08-13 16:35:17 +02:00
boxpointer.js js: Use implicit animations for animatable properties 2019-08-06 23:54:29 +02:00
calendar.js calendar: Use binding for clearButton visibility 2019-09-09 19:28:18 +00:00
checkBox.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
closeDialog.js js: Use implicit animations for animatable properties 2019-08-06 23:54:29 +02:00
ctrlAltTab.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
dash.js appIcon: Make AppIcon a drop target 2019-08-09 10:58:38 -03:00
dateMenu.js dateMenu: Stop accessing app settings directly 2019-08-08 17:41:46 +02:00
dialog.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
dnd.js dnd: Fix drag cancel animation scale 2019-08-09 10:58:46 -03:00
edgeDragAction.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
endSessionDialog.js endSessionDialog: Initialize Polkit permission asynchronously 2019-09-01 12:45:49 +02:00
environment.js environment: Don't use actor if an ease callback destroys it 2019-08-09 21:00:22 +00:00
extensionDownloader.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
extensionSystem.js extensionSystem: Use logError to record extension errors with stack trace 2019-09-09 19:28:19 +00:00
focusCaretTracker.js cleanup: Prefer template strings 2019-07-05 11:32:31 +00:00
grabHelper.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
ibusCandidatePopup.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
iconGrid.js iconGrid: Queue a relayout after child opacity changes 2019-09-09 19:39:28 +00:00
inhibitShortcutsDialog.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
kbdA11yDialog.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
keyboard.js keyboard: Treat menu items as actors 2019-09-09 19:28:18 +00:00
layout.js ripples: Add destroy() method and remove them when unneeded 2019-09-09 19:28:18 +00:00
lightbox.js lightbox: Use common ease parameters and avoid similar codepaths 2019-09-09 19:28:18 +00:00
locatePointer.js locatePointer: Bind ripples creation to settings 2019-09-09 19:28:18 +00:00
lookingGlass.js lookingGlass: Throw a clearer error on referencing invalid result index 2019-09-09 19:28:18 +00:00
magnifier.js cleanup: Mark unused (but useful) variables as ignored 2019-07-24 00:28:45 +02:00
magnifierDBus.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
main.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
messageList.js js: Ease non-animatable actor properties 2019-08-06 23:54:29 +02:00
messageTray.js messageTray: Remove unused source object parameter 2019-09-09 19:28:18 +00:00
modalDialog.js js: Use implicit animations for animatable properties 2019-08-06 23:54:29 +02:00
mpris.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
notificationDaemon.js notificationDaemon: Catch exceptions while loading notifications 2019-09-03 01:00:50 +00:00
osdMonitorLabeler.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
osdWindow.js js: Ease non-animatable actor properties 2019-08-06 23:54:29 +02:00
overview.js js: Ease non-animatable actor properties 2019-08-06 23:54:29 +02:00
overviewControls.js controlsManager: Don't fade icon grid while dragging 2019-08-08 09:12:00 -03:00
padOsd.js style: Disable camelcase rule for GObject properties 2019-07-24 00:28:45 +02:00
pageIndicators.js js: Use implicit animations for animatable properties 2019-08-06 23:54:29 +02:00
panel.js js: Use implicit animations for animatable properties 2019-08-06 23:54:29 +02:00
panelMenu.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
pointerA11yTimeout.js pointerA11yTimeout: Create new PieTimer object for each timeout 2019-08-27 08:03:49 +00:00
pointerWatcher.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
popupMenu.js popupMenu: Remove extra parameter on boolean ParamSpec initialization 2019-09-09 19:28:18 +00:00
remoteSearch.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
ripples.js ripples: Add destroy() method and remove them when unneeded 2019-09-09 19:28:18 +00:00
runDialog.js js: Use implicit animations for animatable properties 2019-08-06 23:54:29 +02:00
screencast.js cleanup: Use destructuring for imports from GI 2019-02-09 07:39:20 +01:00
screenShield.js js: Use implicit animations for animatable properties 2019-08-06 23:54:29 +02:00
screenshot.js js: Use implicit animations for animatable properties 2019-08-06 23:54:29 +02:00
scripting.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
search.js search: Remove updateSearch later on destruction 2019-09-09 19:28:18 +00:00
sessionMode.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
shellDBus.js shellDBus: Use floats instead of percentages for OSD levels 2019-07-28 17:27:53 +02:00
shellEntry.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
shellMountOperation.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
slider.js slider: Do not notify on parent's behalf 2019-08-13 16:35:17 +02:00
switcherPopup.js js: Use Clutter transitions for adjustment changes 2019-08-07 18:40:49 +02:00
switchMonitor.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
tweener.js tweener: Use new adjustAnimationTime() helper 2019-08-06 20:50:43 +02:00
unlockDialog.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
userWidget.js userWidget: Handle non-square icons gracefully 2019-07-29 16:16:22 +00:00
viewSelector.js viewSelector: Use onStopped callback when fading out pages 2019-08-09 21:02:58 +00:00
windowAttentionHandler.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
windowManager.js windowManager: Handle starting/stopping of X11 services 2019-09-05 07:42:46 +00:00
windowMenu.js cleanup: Mark globals used from other modules as exported 2019-07-24 00:28:45 +02:00
workspace.js workspace: Don't use clones' delegate to check children 2019-09-09 19:28:18 +00:00
workspacesView.js workspacesDisplay: Disconnect MetaLater and parent signals on destroy 2019-09-09 19:28:18 +00:00
workspaceSwitcherPopup.js js: Use implicit animations for animatable properties 2019-08-06 23:54:29 +02:00
workspaceThumbnail.js js: Ease non-animatable actor properties 2019-08-06 23:54:29 +02:00
xdndHandler.js cleanup: Mark unused (but useful) variables as ignored 2019-07-24 00:28:45 +02:00