gnome-shell/js/ui
Georges Basile Stavracas Neto d04daf6a1c appDisplay: Protect against source icon destruction
When dragging icons out of a folder dialog, there is a very peculiar
combination of steps that may break GNOME Shell:

 1. Open an app folder dialog
 2. Start dragging an icon to outside the grid
 3. Wait until the popdown animation starts
 4. Before it finishes, drop the icon
 5. See the warnings / crash

That's caused by the source icon being destroyed after the delayed
move timer starts, and before it finishes.

Protect against the source icon being destroyed before the delayed
move timeout triggers by connecting to the 'destroy' signal and
removing the timeout on the callback. Use a single field, called
'_delayedMoveData', to store all data related to delayed moves.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1447
2020-10-05 12:06:48 +00:00
..
components *: Fix spelling mistakes found by codespell 2020-08-21 18:25:09 +00:00
status status/bluetooth: Fix label for >1 connected devices 2020-08-24 15:37:08 +00:00
accessDialog.js js: Don't use templates in files with translations 2020-02-17 23:20:40 +01:00
altTab.js altTab: Support cycle-group cycling only over windows in the workspace 2020-09-04 19:48:33 +02:00
animation.js st/widget: Remove get_resource_scale function 2020-06-30 13:42:18 +00:00
appDisplay.js appDisplay: Protect against source icon destruction 2020-10-05 12:06:48 +00:00
appFavorites.js appFavorites: Add eog to rename list 2020-05-02 00:16:28 +02:00
audioDeviceSelection.js cleanup: Don't linebreak before closing parentheses 2020-04-28 09:04:49 +00:00
background.js background: Mark pattern backgrounds as loaded 2020-07-30 11:48:13 +02:00
backgroundMenu.js cleanup: Avoid unnecessary parentheses 2019-11-11 19:25:14 +00:00
barLevel.js js: Listen to notify::allocation instead of allocation-changed 2020-05-20 15:12:36 +02:00
boxpointer.js util: Remove shell_util_get_transformed_allocation 2020-07-29 18:09:53 +02:00
calendar.js calendar: Vertically center align week numbers 2020-08-21 21:40:22 +03:00
checkBox.js checkbox: Improve accessibility of check boxes for Orca users 2020-03-29 12:56:33 +00:00
closeDialog.js closeDialog: Remove transitions before resetting dialog 2020-03-23 15:27:47 +00:00
ctrlAltTab.js cleanup: Require "dangling" commas 2019-11-11 19:25:14 +00:00
dash.js dash: Restore icon's expected DND behavior 2020-10-02 15:41:04 +00:00
dateMenu.js dateMenu: Do not ellipsize date header 2020-09-25 12:00:40 +02:00
dialog.js *: Fix spelling mistakes found by codespell 2020-08-21 18:25:09 +00:00
dnd.js util: Remove shell_util_get_transformed_allocation 2020-07-29 18:09:53 +02:00
edgeDragAction.js cleanup: Avoid unnecessary parentheses 2019-11-11 19:25:14 +00:00
endSessionDialog.js endSessionDialog: default to not installing updates on low battery 2020-08-10 23:55:14 +00:00
environment.js environment: Mark transitions as "work" 2020-08-12 15:43:38 +00:00
extensionDownloader.js extensionDownloader: Fix check for updates with several extensions 2020-07-15 18:26:11 -06:00
extensionSystem.js cleanup: Remove old compatibility code 2020-08-13 23:00:21 +00:00
focusCaretTracker.js cleanup: Prefer template strings 2019-07-05 11:32:31 +00:00
grabHelper.js grabHelper: Add (promised-based) grabAsync() 2019-12-20 15:41:32 +01:00
ibusCandidatePopup.js cleanup: Avoid unnecessary parentheses 2019-11-11 19:25:14 +00:00
iconGrid.js iconGrid: Add moveItem 2020-10-05 12:06:47 +00:00
inhibitShortcutsDialog.js cleanup: remove controversial naming 2020-08-04 13:24:50 +02:00
kbdA11yDialog.js ui: Use ClutterSeat for keyboard/pointer a11y 2020-01-30 17:49:08 +00:00
keyboard.js cleanup: Remove old compatibility code 2020-08-13 23:00:21 +00:00
layout.js layout: Only show ripple animation when overview was toggled 2020-07-27 13:13:14 +00:00
lightbox.js cleanup: Don't linebreak before closing parentheses 2020-04-28 09:04:49 +00:00
locatePointer.js locatePointer: Bind ripples creation to settings 2019-09-09 19:28:18 +00:00
lookingGlass.js lookingGlass: Add actor tree inspector 2020-06-02 12:44:21 -03:00
magnifier.js Replace anchor point by translation and pivot point 2020-06-26 21:03:57 +00:00
magnifierDBus.js cleanup: Use JSDoc for documentation comments 2019-11-11 19:25:14 +00:00
main.js Move screencasting into a separate service process 2020-07-31 10:51:12 +02:00
messageList.js messageList: Remove setDate() method 2020-06-06 01:04:09 +02:00
messageTray.js messageTray: Remove SourceActorWithLabel class 2020-07-01 20:20:26 -03:00
modalDialog.js switcherPopup: Dismiss when a system modal dialog opens 2019-12-06 19:55:39 +01:00
mpris.js calendar: Don't restrict section visibility by date 2020-06-06 01:04:09 +02:00
notificationDaemon.js notificationDaemon: Try harder to find a matching app 2020-06-02 23:17:24 +00:00
osdMonitorLabeler.js cleanup: Avoid unnecessary parentheses 2019-11-11 19:25:14 +00:00
osdWindow.js cleanup: Avoid unnecessary parentheses 2019-11-11 19:25:14 +00:00
overview.js overview: Pass drag source on item-drag-* signals 2020-06-24 18:06:21 -03:00
overviewControls.js *: Fix spelling mistakes found by codespell 2020-08-21 18:25:09 +00:00
padOsd.js cleanup: Remove old compatibility code 2020-08-13 23:00:21 +00:00
pageIndicators.js pageIndicator: Add getter for current number of pages 2020-06-18 10:54:31 -03:00
panel.js aggregateMenu: Move remote-access indicator to the front 2020-09-14 17:13:27 +02:00
panelMenu.js panelMenu: Destroy menu before chaining up 2020-07-29 19:40:54 +00:00
pointerA11yTimeout.js ui: Use ClutterSeat for keyboard/pointer a11y 2020-01-30 17:49:08 +00:00
pointerWatcher.js cleanup: Stop using Mainloop module 2019-09-12 19:09:24 +02:00
popupMenu.js *: Fix spelling mistakes found by codespell 2020-08-21 18:25:09 +00:00
remoteSearch.js js: Promisify async operations 2020-03-31 05:43:40 +00:00
ripples.js cleanup: Require "dangling" commas 2019-11-11 19:25:14 +00:00
runDialog.js js: Don't use templates in files with translations 2020-02-17 23:20:40 +01:00
screenShield.js screenShield: Don't inhibit suspend during initial setup 2020-04-24 23:47:31 +00:00
screenshot.js screenshot: Properly clean up if PickColor() is cancelled 2020-05-29 00:52:33 +02:00
scripting.js scripting: Switch to standard async/await pattern 2020-08-12 15:43:38 +00:00
search.js search: Remove usage of allocation flags 2020-05-22 10:18:24 +00:00
sessionMode.js cleanup: Remove old compatibility code 2020-08-13 23:00:21 +00:00
shellDBus.js extensionSystem: Add method for opening extension prefs 2020-04-03 15:23:26 +02:00
shellEntry.js shellEntry: Restore natural-height-set instead of forcing it 2020-02-22 16:58:01 +00:00
shellMountOperation.js cleanup: Don't linebreak before closing parentheses 2020-04-28 09:04:49 +00:00
slider.js js: Add missing chain-ups in vfuncs 2020-03-27 10:39:58 +01:00
swipeTracker.js environment: Add Math.clamp 2020-06-03 12:55:53 -03:00
switcherPopup.js Remove ClutterAllocationFlags 2020-05-20 15:12:03 +02:00
switchMonitor.js switchMonitor: Center align switcher icon's label 2020-01-02 13:03:08 +05:30
unlockDialog.js unlockDialog: Defend against absence of blur effect 2020-08-24 17:27:14 +02:00
userWidget.js Remove ClutterAllocationFlags 2020-05-20 15:12:03 +02:00
viewSelector.js workspacesView: Don't set full geometry 2020-07-07 00:06:53 +02:00
windowAttentionHandler.js messageTray: Don't create notification policy on demand 2020-03-26 18:52:10 +00:00
windowManager.js windowManager: Wait for X11 services using systemd 2020-07-31 13:53:31 +00:00
windowMenu.js cleanup: Avoid unnecessary parentheses in arrow functions 2019-09-15 16:02:45 +02:00
windowPreview.js windowPreview: Adapt to ClutterActor API changes 2020-07-07 16:51:33 +00:00
workspace.js workspace: Cap scaled floating size to target layout size 2020-09-05 16:12:08 +00:00
workspacesView.js workspacesView: Update workspace visibility when entering overview 2020-10-02 19:56:01 +02:00
workspaceSwitcherPopup.js workspaceSwitcherPopup: Set offscreen redirect always 2020-07-09 11:49:59 +08:00
workspaceThumbnail.js cleanup: Use Meta.Workspace.active property 2020-06-29 17:09:38 +02:00
xdndHandler.js shell/global: Add 'backend' property 2020-04-27 15:18:18 +00:00