-
Notifications
You must be signed in to change notification settings - Fork 102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BasicSurface: allow frame to be posted after surface destroyed #1273
Conversation
On second thought you should probably wait for me to write some tests |
Oh, I didn't notice the usage of |
Throwing disconnected glmark and that stopped it spamming us with unwanted buffers. |
Hmm.. I believe a fully safe solution would be to add
to the destructor. The only issue I can imagine would be it would dead lock if the surface is destroyed from a callback. I will push this along with some tests in a bit. (Before you ask or have to go check, yes, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After discussion, this is correct, but not all that is needed.
This is now ready to merge. I'll let someone else bors after they check the tests are sensible. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bors r+
1273: BasicSurface: allow frame to be posted after surface destroyed r=AlanGriffiths a=wmww Reading through the code, it looks like setting all buffer stream callbacks to `[](){}` is allowed (that's what we already do in `BasicSurface::set_streams()`, and why shouldn't it be?). If an noop callback is allowed, a conditionally noop callback should also be allowed. I see no reason to throw this error, as it is perfectly reasonable for a surface to be destroyed before its buffer streams. Fixes #1272 Co-authored-by: William Wold <wm@wmww.sh>
Build succeeded
|
1273: BasicSurface: allow frame to be posted after surface destroyed r=AlanGriffiths a=wmww Reading through the code, it looks like setting all buffer stream callbacks to `[](){}` is allowed (that's what we already do in `BasicSurface::set_streams()`, and why shouldn't it be?). If an noop callback is allowed, a conditionally noop callback should also be allowed. I see no reason to throw this error, as it is perfectly reasonable for a surface to be destroyed before its buffer streams. Fixes #1272 Co-authored-by: William Wold <wm@wmww.sh>
commit d98dd7c Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Mon Feb 24 14:14:31 2020 +0000 Merge #1315 1315: Don't interleave iterating over environ with unsetting environment variables r=Saviq a=AlanGriffiths Don't interleave iterating over environ with unsetting environment variables Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 170a05f Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Feb 21 17:49:30 2020 +0000 Merge #1311 1311: Fix miral-shell command-line when options are provided. (Fixes: #1310) r=wmww a=AlanGriffiths Fix miral-shell command-line when options are provided. (Fixes: #1310) Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 5e354d2 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Feb 21 16:29:58 2020 +0000 Merge #1308 1308: [mir shell] When started from .desktop, do bash --login processing. (Fixes: #1300) r=wmww a=AlanGriffiths [mir shell] When started from .desktop, do bash --login processing. (Fixes: #1300) Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 13765a9 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Feb 21 10:15:04 2020 +0000 Merge #1304 #1305 1304: Only modify surface if something changed r=AlanGriffiths a=wmww *Some* toolkits (\*cough\* Java \*cough\*) like to spam changes to window properties. No need to propagate that all the way through Mir. 1305: Improve keyboard focus situation r=AlanGriffiths a=wmww Reverts #825 and fixes #1274. This does not fix #1295, but in my opinion it is an improvement on the status quo. With the PR, Mir and Wayland/X keyboard focus state is allowed to fall out of sync, but the issue is detected and fixed before sending key events. The only visible symptom of the problem is in some cases (such as after closing a popup) a window appears to not have keyboard focus, but will gain it as soon as you start typing. None of the new code need be removed when a proper fix is implemented. The fallback of setting keyboard focus before sending keys is reasonable, and will mitigate against potential future bugs. Co-authored-by: William Wold <wm@wmww.sh> # Conflicts: # src/server/frontend_wayland/wl_keyboard.h commit 9ce32b5 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Feb 21 09:18:32 2020 +0000 Merge #1303 1303: Strip out any MIR_* environment variables when launching apps r=wmww a=AlanGriffiths Strip out any MIR_* environment variables when launching apps These can cause annoyance when launching Mir compositors (such as tests) from a Mir Shell. Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit b4223f3 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Thu Feb 20 23:11:10 2020 +0000 Merge #1306 1306: Don't make shell requests under lock r=RAOF a=wmww AFAIK this wasn't causing any problems, but best not to prod complex external components under lock. Co-authored-by: William Wold <wm@wmww.sh> commit eea9c3b Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Thu Feb 20 12:37:32 2020 +0000 Merge #1297 #1298 1297: More cleanup r=AlanGriffiths a=wmww Lots of little things that don't fit anywhere else 1298: Use focused window as default popup parent r=AlanGriffiths a=wmww When `TRANSIENT_FOR` is set to a window without a scene surface, use the currently focused window as the fallback popup parent. This happens, for example, when opening Kate's `Bookmarks` menu. This PR works somewhat on its own, and better in conjunction with #1296 Co-authored-by: William Wold <wm@wmww.sh> commit 177cd6f Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Thu Feb 20 11:43:17 2020 +0000 Merge #1296 1296: Fix XWaylandWM::set_focus() r=AlanGriffiths a=wmww Fixes #1278. Input focus should now be correctly switched between apps. Due to the workaround for #1295, when a Wayland app is focused the last X app is not told it is unfocused, but it **does** stop receiving any input until it is refocused. Co-authored-by: William Wold <wm@wmww.sh> commit b461479 Author: Alan Griffiths <alan@octopull.co.uk> Date: Wed Feb 19 13:57:02 2020 +0000 Add cherry-picks to changelog commit f66aa6a Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Wed Feb 19 12:40:46 2020 +0000 Merge #1292 1292: Provide a usable default configuration for Xenial era toolkits r=Saviq a=AlanGriffiths Provide a usable default configuration for Xenial era toolkits. Also fixes up the `gnome-terminal` launch command so that it works on Ubuntu and similar distros, including Xenial. Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 5c0e7ed Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Wed Feb 19 09:48:26 2020 +0000 Merge #1294 1294: Add wayland "Recommends" to mir-demos dependencies r=RAOF a=AlanGriffiths Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 034af91 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Tue Feb 18 13:24:32 2020 +0000 Merge #1291 1291: Add "Mir Shell" to the greeter r=wmww a=AlanGriffiths Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit c65b9ea Author: Alan Griffiths <alan@octopull.co.uk> Date: Wed Feb 19 10:05:49 2020 +0000 Add missing year to trailer lines commit d179d3d Author: Alan Griffiths <alan@octopull.co.uk> Date: Fri Feb 7 14:29:31 2020 +0000 Drop packaging for dropped script (#1258) (cherry picked from commit e60acb6) commit 29167e8 Author: Alan Griffiths <alan@octopull.co.uk> Date: Tue Feb 18 09:59:00 2020 +0000 No rpi for 1.x commit 2205752 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Mon Feb 17 17:40:21 2020 +0000 Merge #1290 1290: Fix `miral-app -demo-server` r=wmww a=AlanGriffiths Fix `miral-app -demo-server`. Export DISPLAY correctly when starting mir_demo_server. Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 0b5a0a3 Author: Alan Griffiths <alan@octopull.co.uk> Date: Thu Jan 30 11:15:42 2020 +0000 [travis] Merge `matrix` into `jobs` (#1231) * Merge `matrix` into `jobs` * Try to fix warnings * Try to fix warnings more * Travis: Add version: field to opt-in to validation There's a Travis feature in beta we can opt-in to to do [validation on our .travis.yml](https://docs.travis-ci.com/user/build-config-validation). That should hopefully prevent this sort of thing from silently happening again. Co-authored-by: Christopher James Halse Rogers <chris@cooperteam.net> (cherry picked from commit 098ccc6) commit f34afd3 Author: Alan Griffiths <alan@octopull.co.uk> Date: Thu Jan 23 12:44:38 2020 +0000 Drop 19.04 builds - it has gone. (cherry picked from commit 544b530) commit 4eb9c78 Author: Alan Griffiths <alan@octopull.co.uk> Date: Mon Feb 17 12:21:09 2020 +0000 Draft changelog for Mir 1.7.1 commit 349a5ca Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Mon Feb 17 12:21:59 2020 +0000 Merge #1286 1286: Fix unnecessary copies in range-for loops. r=AlanGriffiths a=RAOF Co-authored-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> commit e90bbd4 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Mon Feb 17 16:30:25 2020 +0000 Merge #1289 1289: [mirserver] symbols stanza for mir::Server::x11_display should be 1.7.1 r=wmww a=AlanGriffiths [mirserver] symbols stanza for mir::Server::x11_display should be 1.7.1 Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit b56eab7 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Thu Dec 5 11:50:55 2019 +0000 Merge #1120 1120: decoration type doesn't need a titlebar r=AlanGriffiths a=wmww Any code surrounding MirAL title bars probably needs to be removed, but this function is part of the ABI so for now just fix it. This PR fixes positioning of my new SSD titlebars. Co-authored-by: William Wold <wm@wmww.sh> commit 2301d1e Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Wed Jan 15 09:56:50 2020 +0000 Merge #1197 1197: BasicWindowManager: Place popup's relative to content r=AlanGriffiths a=wmww This corrects popup placement for server side decorated surfaces Co-authored-by: William Wold <wm@wmww.sh> commit 423ca62 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Tue Dec 10 09:26:25 2019 +0000 Merge #1131 1131: Use ByteSizeLong instead of deprecated ByteSize r=AlanGriffiths a=z3ntu Fixes #1127 I've also included a patch which fixes another warning with the musl libc (sys/poll.h -> poll.h). The build seems to be warning-free now except for ``` /home/pmos/build/src/mir-1.6.0/tests/mir_test_framework/test_wlcs_display_server.cpp: In function 'void {anonymous}::wlcs_pointer_move_relative(WlcsPointer*, wl_fixed_t, wl_fixed_t)': /home/pmos/build/src/mir-1.6.0/tests/mir_test_framework/test_wlcs_display_server.cpp:659:10: warning: '*((void*)& event +16)' may be used uninitialized in this function [-Wmaybe-uninitialized] 659 | auto event = mir::input::synthesis::a_pointer_event() | ^~~~~ ``` Co-authored-by: Luca Weiss <luca@z3ntu.xyz> commit 12cf31d Author: Alan Griffiths <alan@octopull.co.uk> Date: Mon Feb 17 11:27:51 2020 +0000 Fix for LP builds (#1287) (cherry picked from commit a187e10) commit 0153a17 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Sat Feb 15 14:39:43 2020 +0000 Merge #1285 1285: Fix for LP builds r=AlanGriffiths a=AlanGriffiths Fix for LP builds Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit f8017ed Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Feb 14 18:51:22 2020 +0000 Merge #1283 1283: [miral] Make app launch environment configurable r=wmww a=AlanGriffiths Make app launch environment configurable. (Fixes: #1268) Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 56a8bd8 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Feb 14 17:32:36 2020 +0000 Merge #1277 1277: BasicSurface: clear all frame posted callbacks in the destructor r=AlanGriffiths a=wmww See discussion in #1273. This prevents observers being sent pointers to dead surfaces. Co-authored-by: William Wold <wm@wmww.sh> commit 12b4ad1 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Feb 14 15:01:46 2020 +0000 Merge #1279 #1282 1279: Improve XCBConnection atom lookup r=AlanGriffiths a=wmww Fixes a potential thread safety issue in the resolving of `XCBConnection::Atom` and starts caching atom names for faster lookup. 1282: [Wayland] Don't destroy objects we don't own r=wmww a=AlanGriffiths Don't destroy objects we don't own. (Fixes #1276) Co-authored-by: William Wold <wm@wmww.sh> Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit ac3f416 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Feb 14 14:03:34 2020 +0000 Merge #1281 1281: Fix XWaylandSurface::property_notify() r=wmww a=wmww We need to fully process properties before consuming the pending spec, and should be reading properties even when we do not have a scene surface. Co-authored-by: William Wold <wm@wmww.sh> commit 842c56c Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Feb 14 10:14:14 2020 +0000 Merge #1280 1280: Process transient_for property in a function r=AlanGriffiths a=wmww Also verbose logs all initial window properties Co-authored-by: William Wold <wm@wmww.sh> commit 726888b Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Feb 14 09:22:06 2020 +0000 Merge #1273 1273: BasicSurface: allow frame to be posted after surface destroyed r=AlanGriffiths a=wmww Reading through the code, it looks like setting all buffer stream callbacks to `[](){}` is allowed (that's what we already do in `BasicSurface::set_streams()`, and why shouldn't it be?). If an noop callback is allowed, a conditionally noop callback should also be allowed. I see no reason to throw this error, as it is perfectly reasonable for a surface to be destroyed before its buffer streams. Fixes #1272 Co-authored-by: William Wold <wm@wmww.sh> commit 56a8c13 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Thu Feb 13 10:17:25 2020 +0000 Merge #1271 1271: Create scene surface in attach_wl_surface() r=AlanGriffiths a=wmww Fixes #1249 and simplifies `XWaylandSurface` logic. `attach_wl_surface()` can now create a `scene::Surface`, even if the `wl_surface` hasn't committed yet. Presumably there used to be a problem with this course of action, but it doesn't seem to be an issue any more (I've tested with gedit, pcmanfm, xxeyes, xterm, kate, blender and steam). Edit: #1249 was caused by `attach_wl_surface()` caching a pre-commit input area, and the commit not updating the area correctly because there wasn't yet a surface to update. This fixes it because there is no gap between reading the initial input area and creating a scene surface (which allows updates to the input area) Co-authored-by: William Wold <wm@wmww.sh> commit f120451 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Wed Feb 12 20:23:48 2020 +0000 Merge #1270 1270: Wait for wl_surface to appear before attaching it to XWayland surface r=wmww a=wmww Fixes #1269. See that issue for more info on the problem. This allows XWayland to register a callback when a surface with a particular ID is created. It is admittedly a lot of new code, and may not be worth it. It's probably not worth the complexity just to fix Mir under wayland-debug, but hypothetically we could hit the same race condition on a very slow machine, or in some other situation where the Wayland thread was bogged down. I'm open to alternative ideas on how to solve this. Co-authored-by: William Wold <wm@wmww.sh> commit 4f00f47 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Wed Feb 12 14:33:44 2020 +0000 Merge #1266 1266: [X11] Once we've got the lockfile, check for an existing socket r=wmww a=AlanGriffiths [X11] Once we've got the lockfile, check for an existing socket before trying to use it. (Fixes: #1265) Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit aeade95 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Tue Feb 11 16:13:54 2020 +0000 Merge #1254 #1262 #1263 1254: [X11] add --x11-displayfd option r=wmww a=AlanGriffiths [X11] add --x11-displayfd option. File descriptor to write X11 DISPLAY number to when ready to connect. 1262: Tell Java toolkits that we're a non-reparenting window manager r=wmww a=AlanGriffiths Tell Java toolkits that we're a non-reparenting window manager. This, for example, gets CLion painting correctly under X11. 1263: Fix FTBFS with g++-10 r=wmww a=AlanGriffiths Fix FTBFS with g++-10. (Fixes: #1259) Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit ec8f06e Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Tue Feb 11 14:21:14 2020 +0000 Merge #1264 1264: Focus state r=AlanGriffiths a=wmww Fixes #1206 and other issues related to window focus. Also organizes properties from the X server into a `cached` struct. Co-authored-by: William Wold <wm@wmww.sh> commit e383085 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Tue Feb 11 12:42:47 2020 +0000 Merge #1261 1261: More cleanup r=AlanGriffiths a=wmww Drop some dead code and turn some defines into an enum Co-authored-by: William Wold <wm@wmww.sh> commit 683e0b8 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Mon Feb 10 11:01:12 2020 +0000 Merge #1253 1253: Politely ask XWayland clients to close r=AlanGriffiths a=wmww Fixes #1171 Co-authored-by: William Wold <wm@wmww.sh> commit 7c50dee Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Sat Feb 8 02:17:32 2020 +0000 Merge #1256 1256: Move debugging methods from wm to connection class r=AlanGriffiths a=wmww Makes it more convenient to surface useful debugging messages from the surface class Co-authored-by: William Wold <wm@wmww.sh> commit ae76246 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Feb 7 16:13:36 2020 +0000 Merge #1255 1255: Drop unused atoms r=AlanGriffiths a=wmww These are atoms we're not using and won't need in the immediate future. We can always add them back as we need them. Co-authored-by: William Wold <wm@wmww.sh> commit 67b47ad Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Feb 7 11:48:42 2020 +0000 Merge #1252 1252: X11 not experimental r=wmww a=AlanGriffiths X11 is no longer "experimental". A follow-up will provide a way to write to supply an FD to receive the display. (Like Xwayland's -displayfd.) Maybe we should provide a way to select the socket from the command-line, but that's less urgent. Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 6699a7f Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Wed Feb 5 20:57:53 2020 +0000 Merge #1248 1248: XWayland: popups! r=AlanGriffiths a=wmww Improve property reading system and place popups correctly. Popups tested with PCManFM (GTK2), gedit (GTK3) and Kate (Qt, see known issues). XTerm and XEyes also tested. Known issues: * Tooltips are only sometimes placed correctly on all toolkits * Specific Kate menus aren't place correctly Co-authored-by: William Wold <wm@wmww.sh> commit a3e42fe Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Tue Feb 4 16:46:52 2020 +0000 Merge #1245 1245: XWayland: more refactoring r=AlanGriffiths a=wmww In addition to general cleanup, this changes the flow of configure requests to go though the Mir window manager, so they should no longer be ignored. Co-authored-by: William Wold <wm@wmww.sh> commit fd5ecd2 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Tue Feb 4 11:26:43 2020 +0000 Merge #1244 1244: XWayland: debug messages and data length bug r=AlanGriffiths a=wmww Improves some debugging and error messages, and fixes a bug related to data buffer length. I was assuming `xcb_get_property_value_length()` was in elements, when it is actually in bytes. This bug was exposed as soon as I tried to read a 32-bit window property. Co-authored-by: William Wold <wm@wmww.sh> commit 95cc3ed Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Mon Feb 3 09:52:37 2020 +0000 Merge #1237 1237: XCBConnection helpers r=AlanGriffiths a=wmww Adds helper methods to `XCBConnection` for getting and setting window properties. The new property setters are wrappers around the XCB calls that also catch various type and format issues at compile time. The getters request a property and return a function. When called, the function waits for the property and processes it. This way a number of properties can be queued up, then all read at once (which is more efficient than requiring a round-trip for each one). The old code *was* doing this, but the way it worked was error-prone and required the property request and property processing logic to be split up. Co-authored-by: William Wold <wm@wmww.sh> commit da9a32b Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Mon Feb 3 07:00:44 2020 +0000 Merge #1240 1240: Fix GTest deprecation r=RAOF a=RAOF GTest conveniently renamed `INSTANTIATE_TEST_CASE_P` to `INSTANTATE_TEST_SUITE_P` and deprecated the old name. This breaks the build on Focal. Switch to the new name, providing the old name on older GTests via a compatibility `#define`. Co-authored-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> commit 1f7a819 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Jan 31 16:48:59 2020 +0000 Merge #1243 1243: Drop broken entry in libmiral3.symbols r=wmww a=AlanGriffiths Drop broken entry in libmiral3.symbols. (Fixes: #1242) Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 154e1a5 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Jan 31 14:15:53 2020 +0000 Merge #1239 1239: [miral] Add ExternalClientLauncher::launch_using_x11() r=wmww a=AlanGriffiths Add ExternalClientLauncher::launch_using_x11() 1. A new API for shells to launch apps using X11 2. miral-shell shortcut Ctrl-Alt-X launches xterm Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 92a38ac Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Jan 31 11:05:40 2020 +0000 Merge #1238 1238: XWayland: fix double free of XCB connection r=AlanGriffiths a=wmww Fixes #1235. Looks like it was just an oversight when moving ownership of the `xcb_connection_t` into `XCBConnection`. Co-authored-by: William Wold <wm@wmww.sh> commit 103116e Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Thu Jan 30 14:37:26 2020 +0000 Merge #1234 1234: Repurpose XCBAtoms into XCBConnection r=AlanGriffiths,RAOF a=wmww The new `XCBConnection` class holds atoms as the `XCBAtoms` class used to. It also now manages the lifetime and gives access to the `xcb_connection_t`. It is passed to each surface, which reduces dependence of the surfaces on the window manager. In the future, XCB helper methods such as setting properties on windows could be implemented on the `XCBConnection`. Co-authored-by: William Wold <wm@wmww.sh> commit abec10d Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Wed Jan 29 09:30:28 2020 +0000 Merge #1226 1226: XWayland: reduce tight coupling between surface components r=AlanGriffiths a=wmww Adds two new interfaces (`XWaylandSurfaceRoleSurface` and `XWaylandSurfaceObserverSurface`) which are used by their respective components to talk to the XWayland surface. There's pleanty more work to do in this area, but this is a start. Co-authored-by: William Wold <wm@wmww.sh> commit 05f818c Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Tue Jan 28 16:17:07 2020 +0000 Merge #1229 1229: Correct logic to locate gmock when gtest has package configuration r=wmww a=AlanGriffiths Correct logic to locate gmock when gtest has package configuration. (Fixes: #1228) Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 063a537 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Jan 24 14:05:57 2020 +0000 Merge #1219 #1220 1219: Only use `--disable-factory` with gnome-terminal when launched from the script. r=wmww a=AlanGriffiths Only consider using `--disable-factory` with gnome-terminal when launched from the script. This workaround is broken and not needed with miral-shell. 1220: Exec errors after forking need to be fatal r=RAOF a=AlanGriffiths Exec errors after forking need to be fatal. (Fixes: #1218) Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 6b3676c Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Mon Jan 27 15:48:42 2020 +0000 Merge #1225 1225: [miral-app] Add `xdg-terminal` to the list of possible terminal commands r=wmww a=AlanGriffiths Add `xdg-terminal` to the list of possible terminal commands. It isn't earlier in the list as it isn't clear that it "does the right thing" for a specific user any more than `x-terminal-emulator` does. But it does exist on a different range of systems. Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 38ab737 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Mon Jan 27 14:41:43 2020 +0000 Merge #1223 1223: XWayland: use new role and surface observer r=AlanGriffiths a=wmww Previously there was a class, `XWaylandWMShellSurface`, which used the normal Wayland surface role and observer. These classes are highly specific to normal Wayland protocols, and less useful for XWayland. This PR introduces and uses two new classes: `XWaylandSurfaceRole` and `XWaylandSurfaceObserver`. `XWaylandWMSurface` is now responsible for managing instances of these classes, as well as handling the `scene::Surface`. The new system is (to the best of my knowledge) threadsafe and more efficient than the old system (on account of not having to run many things on the Wayland thread unnecessarily). Co-authored-by: William Wold <wm@wmww.sh> commit 2b3681f Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Mon Jan 27 13:32:35 2020 +0000 Merge #1224 1224: Correction: mirplatform ABI unchanged at 17 r=wmww a=AlanGriffiths Correction: mirplatform ABI unchanged at 17 Copy & pasted in error from 1.6.0 Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 3be82c8 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Jan 24 10:12:16 2020 +0000 Merge #1215 1215: Split WaylandInputDispatcher out from WaylandSurfaceObserver r=AlanGriffiths a=wmww Splits input event dispatching out from the rest of the Wayland surface observer. This will allow more easily writing an `XWaylandSurfaceObserver`. Co-authored-by: William Wold <wm@wmww.sh> commit e9b78c6 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Jan 24 08:46:48 2020 +0000 Merge #1211 1211: XWayland: manage window state correctly r=AlanGriffiths a=wmww Fixes #1210. Also alerts windows to their current state (for example, Gedit draws slightly differently when it knows it's maximized). Co-authored-by: William Wold <wm@wmww.sh> commit 0034a23 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Thu Jan 23 10:14:38 2020 +0000 Merge #1212 1212: XWaylandWM: make threadsafe r=AlanGriffiths a=wmww Introduces and uses a `mutex` and inlines `create()` and `destroy()` into the constructor and destructor (they were only being called from there anyway). Co-authored-by: William Wold <wm@wmww.sh> commit 75e99b2 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Tue Jan 21 15:10:29 2020 +0000 Merge #1207 1207: More minor XWayland improvements r=AlanGriffiths a=wmww Notably moves processing of a single event into its own function and catches exceptions while processing X11 events. Wrote code last Thursday, but required PRs hadn't landed yet Co-authored-by: William Wold <wm@wmww.sh> commit 8e56313 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Tue Jan 21 13:18:53 2020 +0000 Merge #1208 1208: XWaylandWM::get_wm_surface() r=wmww a=wmww More code left over from Thursday. Adds a new `XWaylandWM::get_wm_surface()` method. This makes converting from XCB windows to wm surfaces more convenient and publicly accessible (the latter will be important when shell surfaces want to look up their parent windows). This also fixes the issue of accidentally creating null shell surfaces in the surfaces map via careless usage of the '[]` map operator. Co-authored-by: William Wold <wm@wmww.sh> commit 6d9b832 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Mon Jan 20 09:16:42 2020 +0000 Merge #1205 1205: Better execl arguments when executing Xwayland r=RAOF a=AlanGriffiths Better execl arguments when executing Xwayland. Fixes the results from ps etc. Co-authored-by: Alan Griffiths <alan@octopull.co.uk> commit 24b814f Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Jan 17 12:23:20 2020 +0000 Merge #1203 1203: XWayland: XCBAtoms class r=AlanGriffiths a=wmww Move atom management into its own class, and resolve atom cookies lazily when required. Stacked on #1200 Co-authored-by: William Wold <wm@wmww.sh> (cherry picked from commit 32a6fc5) commit 702fdee Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Fri Jan 17 07:10:53 2020 +0000 Merge #1200 1200: XWayland: replace C-style code with safer C++ alternatives r=RAOF a=wmww Mostly replaces C arrays with vectors and adds const. Should improve readability and reduce future errors. Co-authored-by: William Wold <wm@wmww.sh> (cherry picked from commit ce7c686) commit a8002a8 Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Thu Jan 16 17:07:22 2020 +0000 Merge #1196 1196: Simplify miral-app script and make terminal logic more robust r=wmww a=AlanGriffiths Simplify miral-app script and make terminal logic more robust. 1. Adds a --shell-terminal-emulator option to miral-shell 2. Uses that (and Ctrl-Alt-T) instead of a separate "launcher" process in miral-app 3. Renames the miral-app "-launcher" option "-terminal" 4. Tries to detect a usable default terminal on the system Co-authored-by: Alan Griffiths <alan@octopull.co.uk> (cherry picked from commit c057d69) commit 24e741c Author: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Thu Jan 16 15:01:22 2020 +0000 Merge #1198 1198: XWayland: improve verbose logging r=AlanGriffiths a=wmww Improvements to the verbose logs generated by the XWayland frontend. Probably not interesting to anyone but me, but merging will make maintaining my branches simpler. Co-authored-by: William Wold <wm@wmww.sh> (cherry picked from commit ed1bc7b) Merge remote-tracking branch 'origin/release/1.7'
Reading through the code, it looks like setting all buffer stream callbacks to
[](){}
is allowed (that's what we already do inBasicSurface::set_streams()
, and why shouldn't it be?). If an noop callback is allowed, a conditionally noop callback should also be allowed. I see no reason to throw this error, as it is perfectly reasonable for a surface to be destroyed before its buffer streams.Fixes #1272