Skip to content

Commit 378333c

Browse files
committed
Merge branch 'next' into feat-convert-legacy-parameters-to-rules
2 parents a886570 + e4eef75 commit 378333c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1492
-5533
lines changed

.clang-tidy

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ Checks: >
1414
-readability-magic-numbers,
1515
-readability-identifier-length,
1616
-bugprone-easily-swappable-parameters
17-
AnalyzeTemporaryDtors: false
1817
FormatStyle: file
1918
CheckOptions:
2019
- key: readability-magic-numbers.IgnoredIntegerValues
@@ -29,3 +28,5 @@ CheckOptions:
2928
value: true
3029
- key: bugprone-signed-char-misuse.CharTypdefsToIgnore
3130
value: int8_t
31+
- key: bugprone-suspicious-string-compare.WarnOnLogicalNotComparison
32+
value: true

.github/workflows/codeql-analysis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
languages: ${{ matrix.language }}
3535

3636
# Install dependencies
37-
- run: sudo apt update && sudo apt install libdbus-1-dev libegl-dev libev-dev libgl-dev libpcre2-dev libpixman-1-dev libx11-xcb-dev libxcb1-dev libxcb-composite0-dev libxcb-damage0-dev libxcb-glx0-dev libxcb-image0-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev libxcb-util-dev libxcb-xfixes0-dev meson ninja-build uthash-dev
37+
- run: sudo apt update && sudo apt install libdbus-1-dev libegl-dev libev-dev libgl-dev libpcre2-dev libpixman-1-dev libx11-xcb-dev libxcb1-dev libxcb-composite0-dev libxcb-damage0-dev libxcb-glx0-dev libxcb-image0-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev libxcb-util-dev libxcb-xfixes0-dev meson ninja-build uthash-dev libepoxy-dev
3838
if: ${{ matrix.language == 'cpp' }}
3939

4040
# Autobuild

.github/workflows/coding-style-pr.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ jobs:
88
steps:
99
- uses: actions/checkout@v4
1010
- run: git fetch --depth=1 origin ${{ github.event.pull_request.base.sha }}
11-
- uses: yshui/git-clang-format-lint@v1.16
11+
- uses: yshui/git-clang-format-lint@v1.17
1212
with:
1313
base: ${{ github.event.pull_request.base.sha }}

.github/workflows/coding-style.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ jobs:
99
- uses: actions/checkout@v4
1010
with:
1111
fetch-depth: 2
12-
- uses: yshui/git-clang-format-lint@v1.16
12+
- uses: yshui/git-clang-format-lint@v1.17
1313
with:
1414
base: ${{ github.event.ref }}~1

CHANGELOG.md

+76-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,84 @@
1+
# Unreleased
2+
3+
## Deprecations
4+
5+
* `--legacy-backends` is now deprecated. Setting it no longer has an effect.
6+
* `resize-damage`, `glx-no-stencil` and `glx-no-rebind-pixmap` are now deprecated, because they only works on legacy backends.
7+
* Removed several options that have been deprecated for a long time, this includes:
8+
- `glx-fshader-win`
9+
- `glx-swap-method`
10+
- `glx-use-gpushader4`
11+
- `menu-opacity`
12+
- `vsync-aggressive`
13+
- `respect-prop-shadow`
14+
- `sw-opti`
15+
- `clear-shadow`
16+
17+
# 12.3 (2024-Oct-14)
18+
19+
## Improvements
20+
21+
* Extend workaround for missing hardware accelerated convolution to more drivers (#1349)
22+
23+
## Bug fixes
24+
25+
* Fix memory corruption that can happen when handling window property changes (#1350)
26+
* Fix `force-win-blend` having no effect (#1354)
27+
* Fix shadow being rendered incorrectly in xrender backend (#1352)
28+
29+
# 12.2 (2024-Oct-10)
30+
31+
## Improvements
32+
33+
* fly-out/slide-out animation presets no longer cause jumps in window opacity
34+
35+
## Bug fixes
36+
37+
* Random delays before screen is updated (#1345 #1330)
38+
* Fix building on 32-bit systems (#1346)
39+
* Fix blank screen on 32-bit systems
40+
* Fix fly-in/fly-out animation presets so they work with directions other than up and left
41+
42+
# v12.1 (2024-Sep-29)
43+
44+
## Bug fixes
45+
46+
* picom stops rendering correctly after monitor configuration changes (#1338, thanks to @Suyooo)
47+
48+
# v12 (2024-Sep-27)
49+
50+
## Bug fixes
51+
52+
* Fix crash related to window leader updates (#1337 + extra).
53+
* Remove an invalid assertion.
54+
55+
# v12-rc4 (2024-Sep-08)
56+
57+
## Bug fixes
58+
59+
* Windows become completely black when `rules` and `inactive-dim` are set at the same time
60+
* Fix segmentation fault during unredirection if the geometry change animation is used (#1333, thanks to @monsterovich)
61+
* Fix many rare race conditions in the window management code (#1334)
62+
63+
# v12-rc3 (2024-Aug-30)
64+
65+
## Bug fixes
66+
67+
* `transparent-clipping` has no effect (#1317)
68+
* `unredir` in window rules not being parsed correctly
69+
* Changing window opacity with `picom-trans` does not take effect immediately (#1315)
70+
71+
## Documentation
72+
73+
* Document behavior change around rounded corners and fullscreen windows (#1323)
74+
175
# v12-rc2 (2024-Aug-17)
276

377
## Bug fixes
478

5-
* Setting corner-radius to 0 cause all windows to not render: #1311
79+
* Setting corner-radius to 0 cause all windows to not render (#1311)
680
* Setting corner-radius causes windows to have a 1-pixel transparent border
7-
* Window shaders no longer work: #1312
81+
* Window shaders no longer work (#1312)
882

983
# v12-rc1 (2024-Aug-12)
1084

CONTRIBUTORS

+1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ scrouthtv <lennivh24 at gmail.com>
8080
Sebastien Waegeneire <sebastien at waegeneire.com>
8181
Stefan Radziuk <stefan.radziuk19 at imperial.ac.uk>
8282
Subhaditya Nath <sn03.general at gmail.com>
83+
Suyooo <me at suyo.be>
8384
Tasos Sahanidis <tasos at tasossah.com>
8485
Thiago Kenji Okada <thiagokokada at gmail.com>
8586
Tilman Sauerbeck <tilman at code-monkey.de>

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@ libconfig-dev libdbus-1-dev libegl-dev libev-dev libgl-dev libepoxy-dev libpcre2
5353
On Fedora, the needed packages are
5454

5555
```
56-
dbus-devel gcc git libconfig-devel libdrm-devel libev-devel libX11-devel libX11-xcb libxcb-devel libGL-devel libEGL-devel libepoxy-devel meson pcre2-devel pixman-devel uthash-devel xcb-util-image-devel xcb-util-renderutil-devel xorg-x11-proto-devel xcb-util-devel
56+
dbus-devel gcc git libconfig-devel libev-devel libX11-devel libX11-xcb libxcb-devel libGL-devel libEGL-devel libepoxy-devel meson pcre2-devel pixman-devel uthash-devel xcb-util-image-devel xcb-util-renderutil-devel xorg-x11-proto-devel xcb-util-devel
5757
```
5858

59-
To build the documents, you need `asciidoc`
59+
To build the documents, you need `asciidoctor`
6060

6161
### To build
6262

data/animation_presets.conf

+24-15
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,11 @@ slide-out = {
7171
crop-y = "window-y";
7272
crop-width = "window-width";
7373
crop-height = "window-height";
74-
opacity = 1;
74+
opacity = {
75+
start = "window-raw-opacity-before";
76+
end = "window-raw-opacity-before";
77+
duration = "placeholder0";
78+
};
7579
blur-opacity = "opacity";
7680
shadow-opacity = "opacity";
7781
*knobs = {
@@ -118,49 +122,54 @@ fly-out = {
118122
curve = "cubic-bezier(0.05, 0, 0.69, -0.05)";
119123
duration = "placeholder0";
120124
start = 0;
121-
end = "(window-height + window-y) * placeholder2 + (window-width + window-x) * placeholder1";
125+
end = "window-height * placeholder2 + window-y * placeholder5 + window-width * placeholder1 + window-x * placeholder4";
122126
};
123127
offset-x = "v-timing * placeholder3";
124128
offset-y = "v-timing * (1 - placeholder3)";
125129
shadow-offset-x = "offset-x";
126130
shadow-offset-y = "offset-y";
127-
opacity = 1;
128-
shadow-opacity = 1;
129-
blur-opacity = 1;
131+
opacity = {
132+
start = "window-raw-opacity-before";
133+
end = "window-raw-opacity-before";
134+
duration = "placeholder0";
135+
};
136+
shadow-opacity = "opacity";
137+
blur-opacity = "opacity";
130138
*knobs = {
131139
duration = 0.2;
132140
direction = (0, ["up", "down", "left", "right"]);
133141
};
134142
*placeholders = (
135143
(0, "duration"),
136-
(1, "direction", [0, 0, -1, 1]),
137-
(2, "direction", [-1, 1, 0, 0]),
138-
(3, "direction", [0, 0, 1, 1]),
144+
(1, "direction", [0, 0, -1, 1]), # left/right -> +1/-1 for X axis
145+
(2, "direction", [-1, 1, 0, 0]), # up/down -> +1/-1 for Y axis
146+
(3, "direction", [0, 0, 1, 1]), # X/Y axis switch
147+
(4, "direction", [0, 0, -1, 0]), # whether window X is added
148+
(5, "direction", [-1, 0, 0, 0]), # whether window Y is added
139149
);
140150
};
141151
fly-in = {
142152
v-timing = {
143153
curve = "cubic-bezier(0.17, 0.67, 0.68, 1.03)";
144154
end = 0;
145155
duration = "placeholder0";
146-
start = "- window-height - window-y";
156+
start = "window-height * placeholder2 + window-y * placeholder5 + window-width * placeholder1 + window-x * placeholder4";
147157
};
148158
offset-x = "v-timing * placeholder3";
149159
offset-y = "v-timing * (1 - placeholder3)";
150160
shadow-offset-x = "offset-x";
151161
shadow-offset-y = "offset-y";
152-
opacity = 1;
153-
shadow-opacity = 1;
154-
blur-opacity = 1;
155162
*knobs = {
156163
duration = 0.2;
157164
direction = (0, ["up", "down", "left", "right"]);
158165
};
159166
*placeholders = (
160167
(0, "duration"),
161-
(1, "direction", [0, 0, -1, 1]),
162-
(2, "direction", [-1, 1, 0, 0]),
163-
(3, "direction", [0, 0, 1, 1]),
168+
(1, "direction", [0, 0, -1, 1]), # left/right -> +1/-1 for X axis
169+
(2, "direction", [-1, 1, 0, 0]), # up/down -> +1/-1 for Y axis
170+
(3, "direction", [0, 0, 1, 1]), # X/Y axis switch
171+
(4, "direction", [0, 0, -1, 0]), # whether window X is added
172+
(5, "direction", [-1, 0, 0, 0]), # whether window Y is added
164173
);
165174
};
166175
geometry-change = {

man/meson.build

+27-13
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,32 @@ mans = ['picom.1', 'picom-inspect.1', 'picom-trans.1']
22
if get_option('with_docs')
33
a2x = find_program('asciidoctor')
44
foreach m : mans
5-
custom_target(m, output: [m], input: [m+'.adoc'],
6-
command: [a2x, '-a',
7-
'picom-version='+version,
8-
'--backend', 'manpage', '@INPUT@', '-D',
9-
meson.current_build_dir()],
10-
install: true,
11-
install_dir: join_paths(get_option('mandir'), 'man1'))
12-
custom_target(m+'.html', output: [m+'.html'], input: [m+'.adoc'],
13-
command: [a2x, '-a',
14-
'picom-version='+version,
15-
'--backend', 'html', '@INPUT@', '-D',
16-
meson.current_build_dir()],
17-
install_dir: get_option('datadir') / 'doc' / 'picom')
5+
custom_target(
6+
m,
7+
output: [m],
8+
input: [m + '.adoc'],
9+
command: [
10+
a2x,
11+
'-a', 'picom-version=v' + meson.project_version(),
12+
'--backend', 'manpage',
13+
'@INPUT@',
14+
'-D', meson.current_build_dir(),
15+
],
16+
install: true,
17+
install_dir: join_paths(get_option('mandir'), 'man1'),
18+
)
19+
custom_target(
20+
m + '.html',
21+
output: [m + '.html'],
22+
input: [m + '.adoc'],
23+
command: [
24+
a2x,
25+
'-a', 'picom-version=v' + meson.project_version(),
26+
'--backend', 'html',
27+
'@INPUT@',
28+
'-D', meson.current_build_dir(),
29+
],
30+
install_dir: get_option('datadir') / 'doc' / 'picom',
31+
)
1832
endforeach
1933
endif

0 commit comments

Comments
 (0)