-
Notifications
You must be signed in to change notification settings - Fork 380
Docking as a Feature Mk2 #557
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
Conversation
Also rerun bindgen
Mainly changes from newer bindgen
I am very excited for this. I looked over the code, but as we know, this isn't my forte in the code base. @thomcc said he might have time over the weekend. With such a large, change, I think it'd be good to get a second pair of eyes on it, but if we go through the weekend and they couldn't find the time, I'm for the merge! |
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.
I think this is good, with some caveats.
-
I don't feel that strongly about it if there's push back, but I think I'd prefer the name
imgui-release
toimgui-master
for the directory, since it's not actually taken from the master branch (it's taken from a tag off of it, presumably), and who knows, imgui might stop using themaster
branch for similar reasons to us. -
We need to still expose a way to access DEP_IMGUI_THIRD_PARTY, and to loop in people who currently depend on it (@4bb4 and @benmkw AFAICT) and provide a migration path for them. We also might need to expose the fact that docking is enabled in case they need to know it.
I think the way to do this probably to just expose the
third-party/imgui-release
(or whatever) orthird-party/imgui-docking
as theDEP_IMGUI_THIRD_PARTY
var, depending on features, which (probably? hopefully?) would not be breaking. -
This makes it more important that we come up with some automated way of doing updates (#435). Probably a new xtask command which takes the path to the cimgui checkout (or checks it out itself in a temp dir), or something. That doesn't need to be in this PR ofc, but it seems worth doing.
At the very least, IMO you should write down the concrete steps to take to perform the update in a comment on #435 (although there isn't much rush on that β just if you don't do it before the next update, you'll probably be the one who should do that update, and write down the steps you're taking as you do it).
|
||
#[cfg(not(feature = "wasm"))] | ||
pub use crate::bindings::*; | ||
cfg_if::cfg_if! { |
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.
nit: I think I'd prefer this be flattened rather than 2 levels of nesting, tbh.
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.
I couldn't work out a neater way of doing this - how would you write the flattened version?
Avoids unnecessary rebuilds of build script. Also a few somewhat unrelated tidy-ups
Now a bit simpler as: 1. No submodules 2. update-cimgui-output.sh handles pointing it to the correct imgui source
The
A good point, I wasn't aware of this - this is now restored and should work exactly as it did before.
Done in |
@dbr lets do it? |
π |
As described in #538 (comment) - this is just the "boring" parts of that PR which revise the build system, and
#[cfg(...)]
around the few differences in the API in the upstreamdocking
branchMeaning this basically just allows user to enable the
imgui/docking
feature, then doto enable windows to be docked together
Once this is good and merged, we can start deciding which bits of the docking API to expose and how (probably very roughly along these lines)