gnome-shell/js/ui
Sebastian Keller 8b5d027724 magnifier: Request window-relative coordinates for focus/caret events
Absolute screen coordinates are impossible for Wayland clients to
provide, because the clients don't know where the window is positioned.
Some clients, such as the ones using GTK 3 were providing window
relative coordinates even when screen coordinates were requested,
while others, such as GTK 4 clients, were just returning an error for
caret events or also window-relative coordinates for focus events.

So for this to work on Wayland we have to request window-relative
coordinates and translate them to the current focus window.

To ensure the correct coordinates, we have to only consider events
coming from the current focus window. All other events are filtered out
now. As a side effect this also fixes the magnifier always jumping
to a terminal cursor whenever there was some output, even if the window
was not focused.

This also needs some special handling for events coming from the shell
itself, which should not be translated to the focus window either. As
another side effect this fixes another bug that was caused by these
events already including scaling and getting scaled again.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5509
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2301>
2022-05-28 10:47:01 +00:00
..
components js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
status status/network: Show WireGuard connections in VPN list 2022-05-23 18:11:16 +02:00
accessDialog.js cleanup: Use new indentation style for object literals 2022-02-23 12:23:52 +00:00
altTab.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
animation.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
appDisplay.js Js: Use new :icon-name property 2022-05-06 13:39:40 +00:00
appFavorites.js js: Use templates for non-translatable strings 2022-02-12 12:29:52 +00:00
appMenu.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
audioDeviceSelection.js cleanup: Use new indentation style for object literals 2022-02-23 12:23:52 +00:00
background.js background: Do not queue idle when cancelled 2022-04-13 21:12:27 +00:00
backgroundMenu.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
barLevel.js cleanup: Define GObject accessors in camelCase 2021-02-03 20:19:29 +01:00
boxpointer.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
calendar.js Js: Use new :icon-name property 2022-05-06 13:39:40 +00:00
checkBox.js checkbox: Improve accessibility of check boxes for Orca users 2020-03-29 12:56:33 +00:00
closeDialog.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
ctrlAltTab.js cleanup: Use new indentation style for object literals 2022-02-23 12:23:52 +00:00
dash.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
dateMenu.js dateMenu: Align time strings in the World Clocks section 2022-05-18 14:59:02 +00:00
dialog.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
dnd.js dnd: Drop captured event handler 2022-02-02 17:22:20 +01:00
edgeDragAction.js edgeDragAction: Change edge trigger threshold to AFTER 2022-05-27 09:29:26 +00:00
endSessionDialog.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
environment.js Specify API versions for all public GIR APIs, except GLib 2022-04-04 17:55:25 +01:00
extensionDownloader.js js: Use templates for non-translatable strings 2022-02-12 12:29:52 +00:00
extensionSystem.js extensionSystem: Check metadata types 2022-04-21 08:16:30 +00:00
focusCaretTracker.js
grabHelper.js Require both mouse and keyboard grabs for some grabs to be successful 2022-05-04 17:28:08 +00:00
ibusCandidatePopup.js Js: Use new :icon-name property 2022-05-06 13:39:40 +00:00
iconGrid.js iconGrid: Add more possible icon sizes 2022-05-04 20:49:15 +00:00
inhibitShortcutsDialog.js cleanup: Use new indentation style for object literals 2022-02-23 12:23:52 +00:00
init.js init: Set console log domain 2021-09-01 14:55:47 +00:00
kbdA11yDialog.js cleanup: Use new indentation style for object literals 2022-02-23 12:23:52 +00:00
keyboard.js keyboard: Set up OSK edge drag gesture on capture phase 2022-05-27 09:29:26 +00:00
layout.js layout: Make sure startup animation completes 2022-04-13 21:08:53 +02:00
lightbox.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
locatePointer.js
lookingGlass.js Js: Use new :icon-name property 2022-05-06 13:39:40 +00:00
magnifier.js magnifier: Request window-relative coordinates for focus/caret events 2022-05-28 10:47:01 +00:00
main.js main: Add help function for moving window to monitor/workspace 2022-03-31 17:56:41 +02:00
messageList.js Js: Use new :icon-name property 2022-05-06 13:39:40 +00:00
messageTray.js signalTracker: Explicitly register destroyable types 2022-03-06 00:10:03 +00:00
modalDialog.js Require both mouse and keyboard grabs for some grabs to be successful 2022-05-04 17:28:08 +00:00
mpris.js Js: Use new :icon-name property 2022-05-06 13:39:40 +00:00
notificationDaemon.js cleanup: Use new indentation style for object literals 2022-02-23 12:23:52 +00:00
osdMonitorLabeler.js osd: Restyle OSD display popup 2022-04-24 18:19:16 +02:00
osdWindow.js osdWindow: Implement new OSD design 2022-02-12 15:28:52 +00:00
overview.js Require both mouse and keyboard grabs for some grabs to be successful 2022-05-04 17:28:08 +00:00
overviewControls.js overview: Remove desktop fade logic 2022-03-20 21:57:51 +00:00
padOsd.js padOsd: Set menu manager on pad chooser popup 2022-04-24 18:44:51 +00:00
pageIndicators.js cleanup: Use new indentation style for object literals 2022-02-23 12:23:52 +00:00
panel.js panel: Listen differently for button-press events 2022-03-05 23:51:59 +00:00
panelMenu.js js: Use templates for non-translatable strings 2022-02-12 12:29:52 +00:00
pointerA11yTimeout.js ui: Use ClutterSeat for keyboard/pointer a11y 2020-01-30 17:49:08 +00:00
pointerWatcher.js js: Get idle monitor from backend 2021-05-18 13:42:52 +00:00
popupMenu.js popupMenu: Fix usage of GRAB_NOTIFY ClutterEventFlag 2022-03-20 21:42:16 +00:00
remoteSearch.js cleanup: Use new indentation style for object literals 2022-02-23 12:23:52 +00:00
ripples.js cleanup: Use new indentation style for object literals 2022-02-23 12:23:52 +00:00
runDialog.js js: Use templates for non-translatable strings 2022-02-12 12:29:52 +00:00
screenShield.js lockScreen: Extend modal grab to entire uiGroup 2022-05-18 20:16:10 +02:00
screenshot.js Js: Use new :icon-name property 2022-05-06 13:39:40 +00:00
scripting.js cleanup: Use new indentation style for object literals 2022-02-23 12:23:52 +00:00
search.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
searchController.js searchController: Avoid event.set_source() API 2022-03-04 12:27:34 +00:00
sessionMode.js cleanup: Use new indentation style for arrays 2022-02-23 12:23:52 +00:00
shellDBus.js shellDBus: Actually make ScreenTransitionAsync async 2022-03-28 15:36:18 +02:00
shellEntry.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
shellMountOperation.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
slider.js slider: Use Clutter.grab() for implicit grab 2022-01-29 01:16:29 +01:00
swipeTracker.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
switcherPopup.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
switchMonitor.js switchMonitor: Fix switching configuration 2022-03-20 22:04:55 +00:00
unlockDialog.js lockScreen: Extend modal grab to entire uiGroup 2022-05-18 20:16:10 +02:00
userWidget.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
welcomeDialog.js cleanup: Use new indentation style for object literals 2022-02-23 12:23:52 +00:00
windowAttentionHandler.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
windowManager.js windowManager: Change unfullscreen mode to NORMAL 2022-03-13 00:01:17 +00:00
windowMenu.js windowMenu: Add an entry to take a screenshot 2022-02-12 00:20:54 +00:00
windowPreview.js Js: Use new :icon-name property 2022-05-06 13:39:40 +00:00
workspace.js workspace: Use new helper function when accepting drops 2022-03-31 17:56:49 +02:00
workspaceAnimation.js workspaceAnimation: Get time outside of the animation-complete callback 2022-03-13 00:06:03 +00:00
workspacesView.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
workspaceSwitcherPopup.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00
workspaceThumbnail.js workspaceThumbnail: Use new helper function when accepting drops 2022-03-31 17:56:49 +02:00
xdndHandler.js js: Use (dis)connectObject() 2022-03-04 14:14:37 +00:00