{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":266848223,"defaultBranch":"master","name":"baseview","ownerLogin":"RustAudio","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-05-25T18:08:00.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/9999738?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1711508083.0","currentOid":""},"activityList":{"items":[{"before":"45465c5f46abed6c6ce370fffde5edc8e4cd5aa3","after":"579130ecb4f9f315ae52190af42f0ea46aeaa4a2","ref":"refs/heads/master","pushedAt":"2024-05-22T23:54:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prokopyl","name":"Adrien Prokopowicz","path":"/prokopyl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6529475?s=80&v=4"},"commit":{"message":"Fix usage of spare_capacity_mut which isn't available in MSRV 1.59 (#190)","shortMessageHtmlLink":"Fix usage of spare_capacity_mut which isn't available in MSRV 1.59 (#190"}},{"before":"be3d72d524c8d8ebf2b10f5e30a78e0891981cbd","after":"45465c5f46abed6c6ce370fffde5edc8e4cd5aa3","ref":"refs/heads/master","pushedAt":"2024-04-05T19:18:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"X11: Split off the event loop into a separate module (#183)\n\nThis PR splits off the X11 event loop logic into a separate module. It also changes the X11 implementation of the `Window` type to take only a shared reference to the inner type (`&WindowInner` instead of `&mut WindowInner`), bringing it in line with the other backends.\r\n\r\nThis does not change any of the logic however, it only separates some of the window state from the event loop state, to make sure they don't step on each other's toes in the future (particularly around the WindowHandler).\r\n\r\nThis is part of the effort to split up #174 into smaller pieces.","shortMessageHtmlLink":"X11: Split off the event loop into a separate module (#183)"}},{"before":"905854d026e5944b387accfdc825d3bd2cc9d26f","after":"be3d72d524c8d8ebf2b10f5e30a78e0891981cbd","ref":"refs/heads/master","pushedAt":"2024-04-02T21:14:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Handle set_mouse_cursor method on windows (#186)\n\nThis adds the ability to change the cursor on Windows platforms. For some reason there are very few default cursors included in Windows so a lot of cursors available on other platforms aren't available yet, which is why many of the `MouseCursor` options just maps to `IDC_ARROW`. I'll look into adding custom cursors next.\r\n\r\n`LoadCursorW` is supposedly superseded by [LoadImageW](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-loadcursorw) but I couldn't find a way to do it with that one that doesn't crash. \r\n\r\nTested with Vizia's cursor icon example [here](https://github.com/Fredemus/vizia/tree/baseview-window-events) and everything seems to work as it should.\r\nAlso tested by hovering over some buttons on a plugin.","shortMessageHtmlLink":"Handle set_mouse_cursor method on windows (#186)"}},{"before":"119fc25cd6484a3cf66f53ba55f06d881e87d804","after":"905854d026e5944b387accfdc825d3bd2cc9d26f","ref":"refs/heads/master","pushedAt":"2024-03-30T05:29:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prokopyl","name":"Adrien Prokopowicz","path":"/prokopyl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6529475?s=80&v=4"},"commit":{"message":"Remove unnecessary dependences from CI pipeline (#185)","shortMessageHtmlLink":"Remove unnecessary dependences from CI pipeline (#185)"}},{"before":"bcbdb8921f6c10954c29ddf053e6590dfb9f003b","after":"119fc25cd6484a3cf66f53ba55f06d881e87d804","ref":"refs/heads/master","pushedAt":"2024-03-29T23:55:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prokopyl","name":"Adrien Prokopowicz","path":"/prokopyl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6529475?s=80&v=4"},"commit":{"message":"Add additional CI checks (#182)","shortMessageHtmlLink":"Add additional CI checks (#182)"}},{"before":"f5b0c6d46045d0774d480965e771d0f381bfd368","after":"bcbdb8921f6c10954c29ddf053e6590dfb9f003b","ref":"refs/heads/master","pushedAt":"2024-03-29T03:41:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Fix GL X11 error handling (#181)\n\nThis PR fixes a soundness issue inside the `XErrorHandler` utility function, which could use an xlib `Display` pointer that had no guarantee to be still valid.\r\n\r\nThis could happen because the underlying `XErrorEvent` was stored directly inside the returned error type, and the `Display` pointer it contained was only called to extract the error message during in `Debug` implementation, which could happen long after the associated `Display` had been destroyed.\r\n\r\nThis PR fixes this by extracting the error message upfront and storing it as a string as soon as the error happens.\r\nThis PR also fixes the `handle` method that was not properly marked `unsafe`.","shortMessageHtmlLink":"Fix GL X11 error handling (#181)"}},{"before":"70e7af6c61e9a59d2d03a53d22f2a210c1779cfc","after":"f5b0c6d46045d0774d480965e771d0f381bfd368","ref":"refs/heads/master","pushedAt":"2024-03-29T03:09:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prokopyl","name":"Adrien Prokopowicz","path":"/prokopyl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6529475?s=80&v=4"},"commit":{"message":"Call XCloseDisplay instead of xcb_disconnect (#184)","shortMessageHtmlLink":"Call XCloseDisplay instead of xcb_disconnect (#184)"}},{"before":"f5ae585758cf937fc8c90d0b54ad704164d09d4d","after":"70e7af6c61e9a59d2d03a53d22f2a210c1779cfc","ref":"refs/heads/master","pushedAt":"2024-03-27T05:39:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prokopyl","name":"Adrien Prokopowicz","path":"/prokopyl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6529475?s=80&v=4"},"commit":{"message":"Add a new example for OpenGL setup using femtovg (#176)","shortMessageHtmlLink":"Add a new example for OpenGL setup using femtovg (#176)"}},{"before":"e8b1236fda7bf0b07edb8b4d0c20cd24463475fe","after":"f5ae585758cf937fc8c90d0b54ad704164d09d4d","ref":"refs/heads/master","pushedAt":"2024-03-27T05:34:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prokopyl","name":"Adrien Prokopowicz","path":"/prokopyl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6529475?s=80&v=4"},"commit":{"message":"X11: split off Visual Info negotiation into a separate module (#177)","shortMessageHtmlLink":"X11: split off Visual Info negotiation into a separate module (#177)"}},{"before":"f7d83a561e0627271791c11267d45798a131bf70","after":"e8b1236fda7bf0b07edb8b4d0c20cd24463475fe","ref":"refs/heads/master","pushedAt":"2024-03-27T03:46:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prokopyl","name":"Adrien Prokopowicz","path":"/prokopyl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6529475?s=80&v=4"},"commit":{"message":"Fix warnings in examples (#180)","shortMessageHtmlLink":"Fix warnings in examples (#180)"}},{"before":"ea0cd5367dab8e7fe4584bf2a8c32e70e9117447","after":"f7d83a561e0627271791c11267d45798a131bf70","ref":"refs/heads/master","pushedAt":"2024-03-27T03:43:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"prokopyl","name":"Adrien Prokopowicz","path":"/prokopyl","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6529475?s=80&v=4"},"commit":{"message":"Fix temporary names left over from x11rb migration (#179)","shortMessageHtmlLink":"Fix temporary names left over from x11rb migration (#179)"}},{"before":"0c9d32e31e85ec89ab0b66b50394c7636c76c7fd","after":null,"ref":"refs/heads/fix-warnings","pushedAt":"2024-03-27T02:54:43.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"}},{"before":null,"after":"0c9d32e31e85ec89ab0b66b50394c7636c76c7fd","ref":"refs/heads/fix-warnings","pushedAt":"2024-03-27T02:54:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"fix warnings in examples","shortMessageHtmlLink":"fix warnings in examples"}},{"before":"65d970495fc624ef0258ed96ba00cc0c31be2a50","after":"ea0cd5367dab8e7fe4584bf2a8c32e70e9117447","ref":"refs/heads/master","pushedAt":"2024-03-26T16:05:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Fix resizing on Windows not triggering an event (#166)\n\nResizing should trigger a baseview resize event, but because we already\r\nset the new size here the `WM_SIZE` event was ignored.\r\n\r\nCo-authored-by: Micah Johnston ","shortMessageHtmlLink":"Fix resizing on Windows not triggering an event (#166)"}},{"before":"bad50d886a36699bcb19078256cb1063f1166ed6","after":"65d970495fc624ef0258ed96ba00cc0c31be2a50","ref":"refs/heads/master","pushedAt":"2024-03-25T23:41:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Render a background for the open_window example (#175)\n\nThis PR adds code to render a basic gray background to the opened window in the `open_window` example.\r\n\r\nThis also helps making the example a bit more useful, since most users will want to render to their window.\r\n\r\nAnd also it looks nicer. :slightly_smiling_face: \r\n\r\nThis is done using the `softbuffer` crate, in the same manner of the `open_parented` introduced in #172.","shortMessageHtmlLink":"Render a background for the open_window example (#175)"}},{"before":"085ae2a27e367d355a5801d19744aeed99bbe61f","after":"bad50d886a36699bcb19078256cb1063f1166ed6","ref":"refs/heads/master","pushedAt":"2024-03-25T22:05:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Implement input focus for Mac & Windows (#170)\n\n* Implement input focus for Mac\r\n\r\n* Add stubs for Windows and Linux\r\n\r\n* Remove unnecessary call to window\r\n\r\n* Implement input focus for Windows\r\n\r\n* Add check for key window status\r\n\r\n* Rename to `has_focus` & `focus`\r\n\r\n* Use GetFocus\r\n\r\n* Fix incorrectly named var\r\n\r\n---------\r\n\r\nCo-authored-by: Micah Johnston ","shortMessageHtmlLink":"Implement input focus for Mac & Windows (#170)"}},{"before":"fdc5d282fcce517bff65bfed6a56d51c05003d2e","after":"085ae2a27e367d355a5801d19744aeed99bbe61f","ref":"refs/heads/master","pushedAt":"2024-03-25T16:34:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"add support for Window::Focused/Unfocused events on macOS (#171)\n\ntrigger `WindowEvent::Focused` and `WindowEvent::Unfocused` events when the plugin window gains/loses focus. implemented by adding observers to `NSNotificationCenter::defaultCenter()` that listen to `NSWindowDidBecomeKeyNotification` and `NSWindowDidResignKeyNotification` notifications on the `NSViews`' window.\r\n\r\ntested and confirmed to work in Live, Bitwig, FL Studio, Reaper and AudioPluginHost.","shortMessageHtmlLink":"add support for Window::Focused/Unfocused events on macOS (#171)"}},{"before":"998ced845c83002712cb414f97bdb05566b1ff13","after":"fdc5d282fcce517bff65bfed6a56d51c05003d2e","ref":"refs/heads/master","pushedAt":"2024-03-25T16:20:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Switch from xcb crate to x11rb (#173)\n\nReplace the `xcb` and `xcb-util` crates with `x11rb`. We were using an old version of the `xcb` crate which had some soundness issue. `x11rb` doesn't have these issues and generally provides a safer and nicer to use API.\r\n\r\nIt's possible to use `x11rb` without linking to xcb at all, using the `RustConnection` API, but unfortunately we have to use the `XCBConnection` API (which uses xcb under the hood) due to our use of the xlib GLX API for creating OpenGL contexts. In the future, it might be possible to avoid linking to xlib and xcb by replacing GLX with EGL.\r\n\r\nGetting the xlib-xcb integration to work also necessitated upgrading the version of the `x11` crate, since the version we were using was missing some necessary functionality that was previously being provided by the `xcb` crate.","shortMessageHtmlLink":"Switch from xcb crate to x11rb (#173)"}},{"before":"26b019d6a278ac94d6011cebbfa13c8c9017306b","after":"998ced845c83002712cb414f97bdb05566b1ff13","ref":"refs/heads/master","pushedAt":"2024-03-24T22:16:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Added functional open_parented example (#172)\n\nThis PR adds a simple example that allows to test and showcase the `Window::open_parented` method.\r\n\r\nThat example first creates a parent window using `Window::open_blocking`, and then creates a smaller child window using `Window::open_parented`.\r\n\r\nBoth window's handlers log all of their events to the console, in a similar fashion to the `open_window` example.\r\n\r\nBoth windows actually do rendering (unlike the `open_window` example for now): the parent fills its window with a grey backround, and the child fills its window with a red background.\r\n\r\nThis example also uses the `softbuffer` crate to perform the rendering, which allows testing it in a more portable manner and in the simplest use case possible, without having to involve OpenGL or any 3D rendering pipeline at all.","shortMessageHtmlLink":"Added functional open_parented example (#172)"}},{"before":"2c1b1a7b0fef1a29a5150a6a8f6fef6a0cbab8c4","after":"26b019d6a278ac94d6011cebbfa13c8c9017306b","ref":"refs/heads/master","pushedAt":"2024-03-18T15:46:27.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"robbert-vdh","name":"Robbert van der Helm","path":"/robbert-vdh","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/748520?s=80&v=4"},"commit":{"message":"Merge pull request #150 from Fredemus/feature/windows-cursor-enter-leave\n\nAdd logic for CursorEntered/CursorLeft on Windows","shortMessageHtmlLink":"Merge pull request #150 from Fredemus/feature/windows-cursor-enter-leave"}},{"before":"fdb43eac115470408c5a90f04766bcc346e27ef3","after":"2c1b1a7b0fef1a29a5150a6a8f6fef6a0cbab8c4","ref":"refs/heads/master","pushedAt":"2023-12-18T04:57:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Fix window cleanup logic on macOS (#164)\n\nInstead of trying to detect when to clean up the window based on the `NSView`'s retain count, require window cleanup to be initiated explicitly via `Window::close`, `WindowHandle::close`, or `[NSWindowDelegate windowShouldClose:]` (in non-parented mode; called when the user clicks the \"X\" button). This fixes the leaks and use-after-frees that can be caused by the inherent unreliability of the retain count logic.\r\n\r\nAs discussed in #153, this change essentially means that the `NSView` created by Baseview will not be suitable as the top-level view for an Audio Unit, since the Baseview API now requires that child windows be cleaned up by an explicit call to `WindowHandle::close`, and the only reliable signal for cleaning up an Audio Unit view is a call to `[NSView dealloc]`. However, this does not mean that Baseview cannot be used in the context of an Audio Unit; it just means that plugin frameworks must implement a compatibility layer with a wrapper `NSView` (which is the approach taken by JUCE).\r\n\r\nIn order to implement this change:\r\n\r\n- `WindowState` is stored in an `Rc` rather than a `Box`.\r\n- `WindowHandle` holds an `Rc` so that `WindowHandle::close` can directly invoke window cleanup logic.\r\n- Since the window can be closed during an event handler, `WindowState::from_view` now returns a clone of the `Rc` held by the `NSView` to ensure that it lives until the end of an event handler.\r\n- In the non-parented case, the `NSView` is set as the window delegate, which allows it to receive the `windowShouldClose:` call when the user clicks the \"X\" button, upon which it will dispatch the `WillClose` event and initiate window cleanup logic.\r\n- `Window::open_parented` and `open_blocking` no longer `release` the `NSView` immediately after attaching it. Instead, the `NSView` is released as part of the cleanup logic in `WindowInner::close`.\r\n- `Window::resize` now checks if the window is open to avoid using the `NSView` after releasing it.\r\n- The overridden `release` method, the `retain_count_after_build` field, the `ParentHandle` struct, and the `close_requested` flag have all been removed.","shortMessageHtmlLink":"Fix window cleanup logic on macOS (#164)"}},{"before":"937ef965b42799705ee88977bde9e12ebd87cf13","after":"fdb43eac115470408c5a90f04766bcc346e27ef3","ref":"refs/heads/master","pushedAt":"2023-12-17T08:21:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Unify Window struct across backends (#162)\n\nThe public Window struct holds a mutable reference to `platform::Window`, which is a pattern that doesn't make sense for all backends. On Windows, the `platform::Window` struct itself just holds another (immutable) reference, and on macOS the `platform::Window` struct has to be wrapped in a `RefCell` so that a mutable reference to it can be formed.\r\n\r\nChange the public `Window` struct to hold `platform::Window` directly, and change `platform::Window` in the macOS and X11 backends so that it simply holds a reference to another `WindowInner` struct similarly to the Windows backend. This allows us to remove the platform conditional in the declaration of the top-level `Window` struct. It also allows us to remove the `RefCell` wrapping `platform::Window` in the macOS backend and replace it with `Cell`s wrapping its individual fields.","shortMessageHtmlLink":"Unify Window struct across backends (#162)"}},{"before":"7d14a555e5f10e06094f49fb888761b4a9bed94f","after":"937ef965b42799705ee88977bde9e12ebd87cf13","ref":"refs/heads/master","pushedAt":"2023-12-17T08:16:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Remove unnecessary PhantomData from platform::WindowHandle definitions (#163)\n\nThese `PhantomData` fields are redundant, as the public `WindowHandle` struct already contains one.","shortMessageHtmlLink":"Remove unnecessary PhantomData from platform::WindowHandle definitions ("}},{"before":"0976a9a6a48179218f221ee5c5271e4eb72f1660","after":"7d14a555e5f10e06094f49fb888761b4a9bed94f","ref":"refs/heads/master","pushedAt":"2023-12-17T08:12:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Expose public Window::set_mouse_cursor method (#161)\n\nThe X11 backend has a full implementation of a `Window::set_mouse_cursor` method, but it isn't exposed via any public interface, which results in a lot of warnings for unused code. Add a public `set_mouse_cursor` method, along with stubbed-out versions in the Windows and macOS backends.","shortMessageHtmlLink":"Expose public Window::set_mouse_cursor method (#161)"}},{"before":"1b8c8760c71a0a68a89c779cbf076da7230ff7ea","after":"0976a9a6a48179218f221ee5c5271e4eb72f1660","ref":"refs/heads/master","pushedAt":"2023-12-17T01:37:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"macOS: use interior mutability for WindowState (#157)\n\nForming mutable references to the WindowState is unsound given the possibility\r\nof reentrant calls to NSView methods. Instead, form only immutable references\r\nto the WindowState and wrap mutable fields in Cell and RefCell.\r\n\r\nFollow-up work should use try_borrow_mut instead of borrow_mut to avoid\r\npanicking in the case of reentrant calls.","shortMessageHtmlLink":"macOS: use interior mutability for WindowState (#157)"}},{"before":"b59a67d287f7187fd8834aa018f13068ca672874","after":"1b8c8760c71a0a68a89c779cbf076da7230ff7ea","ref":"refs/heads/master","pushedAt":"2023-12-17T01:33:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Fix warnings on windows (#159)","shortMessageHtmlLink":"Fix warnings on windows (#159)"}},{"before":"92f1a19b81354e8cf966903a815efdec801abbeb","after":"b59a67d287f7187fd8834aa018f13068ca672874","ref":"refs/heads/master","pushedAt":"2023-12-17T01:31:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Fix warnings on X11 (#160)","shortMessageHtmlLink":"Fix warnings on X11 (#160)"}},{"before":"348bc9fe615a0eebca4887f01d61a22d66f03635","after":"92f1a19b81354e8cf966903a815efdec801abbeb","ref":"refs/heads/master","pushedAt":"2023-12-17T01:29:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"Fix warnings in example (#158)","shortMessageHtmlLink":"Fix warnings in example (#158)"}},{"before":"f2882d280828dc4593bb8e0999411e38b1e66b62","after":null,"ref":"refs/heads/window-refactor","pushedAt":"2023-12-17T00:23:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"}},{"before":null,"after":"f2882d280828dc4593bb8e0999411e38b1e66b62","ref":"refs/heads/window-refactor","pushedAt":"2023-12-17T00:22:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"glowcoil","name":"Micah Johnston","path":"/glowcoil","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/131388?s=80&v=4"},"commit":{"message":"make Window hold platform::Window directly","shortMessageHtmlLink":"make Window hold platform::Window directly"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEUXcg1AA","startCursor":null,"endCursor":null}},"title":"Activity ยท RustAudio/baseview"}