Bug 134676 - Automatical kicker hiding does no work correctly
Summary: Automatical kicker hiding does no work correctly
Status: RESOLVED DUPLICATE of bug 118551
Alias: None
Product: kicker
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Aaron J. Seigo
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-09-26 11:08 UTC by Dirk Stoecker
Modified: 2008-01-07 05:44 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dirk Stoecker 2006-09-26 11:08:01 UTC
Version:           3.5.3 (using KDE 3.5.4 "release 71.1" , openSUSE )
Compiler:          Target: i586-suse-linux
OS:                Linux (i686) release 2.6.16.21-0.21-default

I use following settings:

- Immediate hiding of kicker when I leave the display field
- Reactive, when button reaches bottom of screen

A little while kicker works and then it no longer does as expected.
a) going to bottom does not bring kicker up again.
b) When pressing <ALT>+<F1> I get the kicker line, but I does not disappear as
expected when leaving the field with the mouse (but when I go to to top line of the screen)

It seems as if kicker forgets the correct state and never finds back into correct behaviour. The error was introduced somewhere in KDE 3.5.3 or 3.5.4.
Comment 1 Dirk Stoecker 2006-10-02 18:43:39 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).
Comment 2 Dirk Stoecker 2006-10-23 10:33:04 UTC
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.
Comment 3 Dirk Stoecker 2006-10-26 10:30:54 UTC
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.
Comment 4 George Goldberg 2008-01-07 05:44:57 UTC

*** This bug has been marked as a duplicate of 118551 ***