Skip to content
This repository has been archived by the owner on May 20, 2023. It is now read-only.

Commit

Permalink
upgpkg: chromium 97.0.4692.71-2: fix tab dragging (FS#73307)
Browse files Browse the repository at this point in the history
git-svn-id: file:///srv/repos/svn-packages/svn@434008 eb2447ed-0c53-47e4-bac8-5bc4a241df78
  • Loading branch information
foutrelis authored and svntogit committed Jan 9, 2022
1 parent dc92e33 commit e2ef1df
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 1 deletion.
10 changes: 9 additions & 1 deletion trunk/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

pkgname=chromium
pkgver=97.0.4692.71
pkgrel=1
pkgrel=2
_launcher_ver=8
_gcc_patchset=4
pkgdesc="A web browser built for speed, simplicity, and security"
Expand All @@ -25,6 +25,8 @@ options=('!lto') # Chromium adds its own flags for ThinLTO
source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz
https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz
https://github.com/stha09/chromium-patches/releases/download/chromium-${pkgver%%.*}-patchset-$_gcc_patchset/chromium-${pkgver%%.*}-patchset-$_gcc_patchset.tar.xz
fix-tag-dragging-in-KWin.patch
fix-tag-dragging-in-Mutter.patch
sql-make-VirtualCursor-standard-layout-type.patch
chromium-93-ffmpeg-4.4.patch
unbundle-ffmpeg-av_stream_get_first_dts.patch
Expand All @@ -33,6 +35,8 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgn
sha256sums=('8ae189d44b782fe4d4942962260dbf5f753abf141148727d9fe82852778dfd7c'
'213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a'
'7af5c0a55a20c0fb496b2f4448d89203a83bb1914754d864460e55e68731ef0b'
'8dac06ef6e85ddb205b47bb7f1b8c3f73b67a8252dd2a81ed636964c517114ed'
'764dd0c1336881ff37c764f59f25f5830675b5db1388a74da5ddbe9642883692'
'dd317f85e5abfdcfc89c6f23f4c8edbcdebdd5e083dcec770e5da49ee647d150'
'1a9e074f417f8ffd78bcd6874d8e2e74a239905bf662f76a7755fa40dc476b57'
'1f0c1a7a1eb67d91765c9f28df815f58e1c6dc7b37d0acd4d68cac8e5515786c'
Expand Down Expand Up @@ -105,6 +109,10 @@ prepare() {
# https://crbug.com/1207478
patch -Np0 -i ../unexpire-accelerated-video-decode-flag.patch

# Upstream fixes
patch -Np1 -i ../fix-tag-dragging-in-KWin.patch
patch -Np1 -i ../fix-tag-dragging-in-Mutter.patch

# https://chromium-review.googlesource.com/c/chromium/src/+/2862724
patch -Np1 -i ../sql-make-VirtualCursor-standard-layout-type.patch

Expand Down
35 changes: 35 additions & 0 deletions trunk/fix-tag-dragging-in-KWin.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
From 52d0ad25ea695da44195e49f36e69fa81b55e670 Mon Sep 17 00:00:00 2001
From: Tom Anderson <thomasanderson@chromium.org>
Date: Wed, 5 Jan 2022 21:11:03 +0000
Subject: [PATCH] [X11] Fix tag dragging in KWin

R=sky

Bug: 1279532
Change-Id: Iac166803e2149eef234045d922b630f0019c8073
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3355376
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#955869}
---
ui/platform_window/x11/x11_topmost_window_finder.cc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/ui/platform_window/x11/x11_topmost_window_finder.cc b/ui/platform_window/x11/x11_topmost_window_finder.cc
index 50e75e17f0a..2e16393487b 100644
--- a/ui/platform_window/x11/x11_topmost_window_finder.cc
+++ b/ui/platform_window/x11/x11_topmost_window_finder.cc
@@ -68,9 +68,9 @@ bool EnumerateAllWindows(ShouldStopIteratingCallback should_stop_iterating,

void EnumerateTopLevelWindows(
ui::ShouldStopIteratingCallback should_stop_iterating) {
- // Some WMs parent 'top-level' windows in unnamed actual top-level windows
- // (ion WM), so extend the search depth to all children of top-level windows.
- const int kMaxSearchDepth = 1;
+ // WMs may reparent toplevel windows inside their own containers, so extend
+ // the search to all grandchildren of all toplevel windows.
+ const int kMaxSearchDepth = 2;
ui::EnumerateAllWindows(should_stop_iterating, kMaxSearchDepth);
}

46 changes: 46 additions & 0 deletions trunk/fix-tag-dragging-in-Mutter.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
From 3806f28918ea23291749ff4775339075a5f394e8 Mon Sep 17 00:00:00 2001
From: Tom Anderson <thomasanderson@chromium.org>
Date: Thu, 6 Jan 2022 00:59:40 +0000
Subject: [PATCH] [X11] Fix tag dragging in Mutter

We used to use a BFS to find the target window for tag dragging, but
this causes windows underneath (like the window for the desktop
wallpaper) to take precedence over nested windows.

This CL switches to a DFS.

R=sky

Bug: 1279532
Change-Id: Ib569e9270be60bcb4fff088517dfe295697608b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3355470
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#955976}
---
ui/platform_window/x11/x11_topmost_window_finder.cc | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/ui/platform_window/x11/x11_topmost_window_finder.cc b/ui/platform_window/x11/x11_topmost_window_finder.cc
index 2e16393487b..e20bf0abf0e 100644
--- a/ui/platform_window/x11/x11_topmost_window_finder.cc
+++ b/ui/platform_window/x11/x11_topmost_window_finder.cc
@@ -44,15 +44,8 @@ bool EnumerateChildren(ShouldStopIteratingCallback should_stop_iterating,
for (iter = windows.rbegin(); iter != windows.rend(); iter++) {
if (IsWindowNamed(*iter) && should_stop_iterating.Run(*iter))
return true;
- }
-
- // If we're at this point, we didn't find the window we're looking for at the
- // current level, so we need to recurse to the next level. We use a second
- // loop because the recursion and call to XQueryTree are expensive and is only
- // needed for a small number of cases.
- if (++depth <= max_depth) {
- for (iter = windows.rbegin(); iter != windows.rend(); iter++) {
- if (EnumerateChildren(should_stop_iterating, *iter, max_depth, depth))
+ if (depth < max_depth) {
+ if (EnumerateChildren(should_stop_iterating, *iter, max_depth, depth + 1))
return true;
}
}

0 comments on commit e2ef1df

Please sign in to comment.