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: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed 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. |