Comment 4 for bug 930412

Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: [regression] no core keybindings work

Tracked the problem down. It appears to have regressed in the recent CompScreen class cleanup.

The problem is that CompAction::KeyBinding::fromString fails for CoreOptions, because CoreOptions is being constructed before ::screen is initialized (it only needs the dpy member of ::screen).

This is a tricky problem because CoreOptions is now always constructed before PrivateScreen::init. However a fix for the bug requires that at least the dpy initialization of PrivateScreen::init needs to happen BEFORE CoreOptions construction.

Fundamentally, I think the bigger design issue is that *Options is doing way too much initialization in its constructor(s). This bug could also be fixed by separating CoreOptions construction from initialization, and ensure the initialization happens after PrivateScreen::init.