gnome-shell/js/ui
Jonas Dreßler 746230f8b6 keyboard: Ignore focus rects outside the window
Apparently some clients, including gtk don't "clip" the focus rectangle
to their window bounds when scrolling the focus outside the window. This
makes us shift up windows when the focus actually is no longer visible.

This issue needs fixing in GTK, it should probably stop reporting
focus changes when the focus moves outside of the visible view. We can
still do a little bit better on our side though and "clip" the rectangle
to the windows frame rect: If it moves out of the window, we simply stop
updating our focus rect.

The intersection check introduces a small problem though: Some clients
(for example gedit) will give us a cursor rect that has a 0 width or
height. This won't play well with graphene_rect_intersect()
(GrapheneRects never intersect if they are 0-sized), so we set the size
to 1 in case we get a 0-sized rectangle.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1728>
2021-03-12 15:56:12 +00:00
..
components polkitAgent: Ensure cleanup if dialog wasn't shown 2021-02-11 13:48:54 +01:00
status status/network: Use the same signal strength values as GNOME Settings 2021-03-02 23:07:01 +00:00
accessDialog.js js: Don't use templates in files with translations 2020-02-17 23:20:40 +01:00
altTab.js cleanup: Use optional chaining and ?? operator 2020-12-02 15:10:29 +00:00
animation.js st/widget: Remove get_resource_scale function 2020-06-30 13:42:18 +00:00
appDisplay.js appDisplay: Don't reset adjustment on ::pages-changed 2021-03-02 22:02:56 +00:00
appFavorites.js appFavorites: Add eog to rename list 2020-05-02 00:16:28 +02:00
audioDeviceSelection.js audioDeviceSelection: Center-align icons 2020-10-21 03:29:18 +02:00
background.js background: Add option to not use background content size 2021-01-29 21:56:05 +00:00
backgroundMenu.js cleanup: Avoid unnecessary parentheses 2019-11-11 19:25:14 +00:00
barLevel.js cleanup: Define GObject accessors in camelCase 2021-02-03 20:19:29 +01: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 ctrlAltTab: Fix usage of bind_cairo_surface_property 2021-03-08 09:21:25 +00:00
dash.js overviewControls: Limit Dash height to 15% of the overview's 2021-02-11 22:31:50 +00:00
dateMenu.js dateMenu: Fix temperature edge case 2020-12-22 09:27:45 +00:00
dialog.js cleanup: Define GObject accessors in camelCase 2021-02-03 20:19:29 +01:00
dnd.js dnd: Remove pointless scale factor from restore position 2021-02-17 10:12:00 +00:00
edgeDragAction.js keyboard: Handle edge drag gesture cancellation 2021-02-17 15:45:01 +00:00
endSessionDialog.js endSessionDialog: Only show logout inhibiting apps 2021-02-24 15:31:03 +00:00
environment.js js: Require Soup 2.4 2021-02-26 12:28:21 +00:00
extensionDownloader.js extensionDownloader: Fix check for updates with several extensions 2020-07-15 18:26:11 -06:00
extensionSystem.js extensionSystem: Fix opening Extensions app from notification 2021-01-26 17:12:04 +01:00
focusCaretTracker.js cleanup: Prefer template strings 2019-07-05 11:32:31 +00:00
grabHelper.js grabHelper: Avoid sync_pointer after pop_modal() 2021-02-14 13:57:56 +00:00
ibusCandidatePopup.js cleanup: Avoid unnecessary parentheses 2019-11-11 19:25:14 +00:00
iconGrid.js iconGrid: Only animate items when we actually need it 2021-03-03 17:59:16 +00:00
inhibitShortcutsDialog.js cleanup: Use optional chaining and ?? operator 2020-12-02 15:10:29 +00:00
kbdA11yDialog.js cleanup: Remove empty leading/trailing lines in blocks 2020-11-16 18:04:23 +00:00
keyboard.js keyboard: Ignore focus rects outside the window 2021-03-12 15:56:12 +00:00
layout.js overview: Implement startup animation 2021-03-02 23:14:07 +00:00
lightbox.js lightbox: Fix shader effect 2021-02-24 09:52:45 +00:00
locatePointer.js locatePointer: Bind ripples creation to settings 2019-09-09 19:28:18 +00:00
lookingGlass.js lookingGlass: Let history trim input 2021-02-13 08:58:20 +00:00
magnifier.js magnifier: Stop exposing D-Bus interface 2020-12-06 06:18:07 +01:00
main.js overviewControls: Handle overlay key 2021-03-02 15:36:26 +01:00
messageList.js messageList: Drop sync_pointer() after relayouts 2021-02-14 13:57:56 +00:00
messageTray.js messageTray: Remove deprecated code 2021-03-10 15:17:52 +00:00
modalDialog.js switcherPopup: Dismiss when a system modal dialog opens 2019-12-06 19:55:39 +01:00
mpris.js mpris: Hide unused elements to leave more space for the title 2021-02-04 22:42:08 +00:00
notificationDaemon.js notificationDaemon: Fix icon-choosing logic 2021-02-01 13:58:20 +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: Don't show black panel on startup 2021-03-02 23:14:07 +00:00
overviewControls.js overview: Implement startup animation 2021-03-02 23:14:07 +00:00
padOsd.js cleanup: Define GObject accessors in camelCase 2021-02-03 20:19:29 +01:00
pageIndicators.js pageIndicators: Remove animated indicators 2021-02-03 09:55:29 +01:00
panel.js panel: Only update appMenu icon when the app actually changed 2021-03-09 13:15:09 +00:00
panelMenu.js cleanup: Use optional chaining and ?? operator 2020-12-02 15:10:29 +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 cleanup: Use optional chaining and ?? operator 2020-12-02 15:10:29 +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 runDialog: Let history trim input 2021-02-13 08:58:20 +00:00
screenShield.js screenShield: Tie LockedHint to locked state 2021-01-07 22:43:42 +01:00
screenshot.js screenshot: Remove shooter from sender in finally block 2021-02-11 18:51:40 +00:00
scripting.js scripting: Switch to standard async/await pattern 2020-08-12 15:43:38 +00:00
search.js cleanup: Use optional chaining and ?? operator 2020-12-02 15:10:29 +00:00
searchController.js searchController: Get rid of activePage reference in key handling 2021-02-17 02:31:32 +01:00
sessionMode.js cleanup: Remove old compatibility code 2020-08-13 23:00:21 +00:00
shellDBus.js overviewControls: Incorporate ActivitiesContainer 2021-02-11 15:50:31 +00: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 swipeTracker: Reject touch swipes in the wrong directions 2021-02-17 14:06:11 +01:00
switcherPopup.js cleanup: Remove empty leading/trailing lines in blocks 2020-11-16 18:04:23 +00:00
switchMonitor.js switchMonitor: Center align switcher icon's label 2020-01-02 13:03:08 +05:30
unlockDialog.js unlockDialog: Use unique unlock-dialog style class 2020-10-07 16:16:57 +00:00
userWidget.js theme: Don't draw border around symbolic user-icon 2020-12-17 21:46:41 +01:00
welcomeDialog.js welcomeDialog: Hide overview when taking tour 2021-02-19 17:18:50 +01:00
windowAttentionHandler.js messageTray: Don't create notification policy on demand 2020-03-26 18:52:10 +00:00
windowManager.js windowManager: Limit super-scroll handling to normal mode 2021-03-09 12:28:36 +00:00
windowMenu.js cleanup: Avoid unnecessary parentheses in arrow functions 2019-09-15 16:02:45 +02:00
windowPreview.js windowPreview: Subclass a C actor 2021-03-09 15:40:49 +00:00
workspace.js workspace: Use Util.lerp() instead of actor box for interpolating 2021-03-09 15:40:49 +00:00
workspaceAnimation.js windowManager: Allow switching workspaces with super-scroll 2021-02-04 20:04:15 +00:00
workspacesView.js workspace: Decrease spacing between workspaces in the window picker 2021-03-03 12:08:58 +00:00
workspaceSwitcherPopup.js cleanup: Remove empty leading/trailing lines in blocks 2020-11-16 18:04:23 +00:00
workspaceThumbnail.js workspaceThumbnail: Update visibility when showing the overview 2021-03-04 12:39:37 +00:00
xdndHandler.js cleanup: Use optional chaining and ?? operator 2020-12-02 15:10:29 +00:00