| Summary: | Automatical kicker hiding does no work correctly | ||
|---|---|---|---|
| Product: | [Unmaintained] kicker | Reporter: | Dirk Stoecker <kde> |
| Component: | general | Assignee: | Aaron J. Seigo <aseigo> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | normal | CC: | grundleborg |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Dirk Stoecker
2006-09-26 11:08:01 UTC
After a bit debugging I found it to be related to bug 129818. Thought I still do not know, why my system sometimes thinks that it has a Xinerama layout (it has not). Well, a bit more debugging shows: In ExtensionContainer::moveMe() (kicker/core/container_extension.cpp) the newStrut.m_screen is always set to -1 when the function is called, which is the reason for this error (resulting in an exit in the second if-block in ExtensionContainer::unhideTriggered()). I do not yet know why this is done. Also I do not know, what moveMe() does anyway. I tracked the error to the end of my abilities: In the following function the reason lays hidden somewhere.
UserRectSel::PanelStrut UserRectSel::select(const RectList& rects, const QPoint& offset)
{
UserRectSel sel(rects, offset);
sel.show();
sel.grabMouse();
sel.paintCurrent();
qApp->enter_loop();
sel.paintCurrent();
sel.releaseMouse();
qApp->syncX();
return sel.current;
}
Normally in enter_loop() the sel.current.m_screen is set correctly. This is not done in the error case. It remains -1.
A fix would be to test for -1 in the moveMe() function, but I do not know the internal structure good enough to verify if this would be valid or not.
Now one of the kicker developers must continue. Either tell me what I need to look for or fix the bug based on the information given here.
|