[Thread Prev][Thread Next]   >Date Index >Thread Index

[wmx] raise-delay problem!?

Fabian Sturm - Fri Mar 05 02:55:58 1999

Hello everybody

i have just installed wmx-5sec4 under redhat 5.2 with
the kernel 2.0.36. And wow this wm is really great.
I like the neat implementation and the way it looks.

But i have a small problem with the configuration.
It seems as if the delay-raise doesn't work correct.
It makes no difference to which value i set the 
delay-raise parameter in the options link.
The window pops up immediately when the mouse
is over it.

I have tried to figure out why it is so.
But i'm not good in C++ programing.
Because of that i don't know if the following
assumptions are correct.


Probably the lines around 131 in the file Config.C shouldn't 
look like this:

            else if (OPTION("delay-raise")) {
                m_impl->focus = 2;
                if (OPTION(",")) m_impl->raisedelay = strtol(s, &s, 10);
but look like this:
            else if (OPTION("delay-raise")) {
                m_impl->focus = 4;
                if (OPTION(",")) m_impl->raisedelay = strtol(s, &s, 10);

After this the auto-raise delay can be set active with
the options link. But the variable CONFIG_AUTO_RAISE_DELAY
seems not to be interpreted correct.
The delay till the raise is constant independent
from the value in the options link.

The statement:
        if (t < m_focusTimestamp ||
            t - m_focusTimestamp > CONFIG_AUTO_RAISE_DELAY) {
in the Event.C seems to be never reached.


If you change the following in the Event.C file around line
255
Previous:
            if (m_focusPointerNowStill) {
                m_focusCandidate->focusIfAppropriate(True);
//              if (m_focusCandidate->isNormal()) m_focusCandidate->mapRaised();
//              stopConsideringFocus();

            } else m_focusPointerNowStill = True; // until proven false


After:


            if (m_focusPointerNowStill) {
//              m_focusCandidate->focusIfAppropriate(True);
                m_focusPointerMoved = False;
//              if (m_focusCandidate->isNormal()) m_focusCandidate->mapRaised();
//              stopConsideringFocus();

            } else m_focusPointerNowStill = True; // until proven false


then the auto-raise-delay works (i can only speak for my pc).
Watch out i only tested it few minutes because i'm very tired
at the moment (its around 3am), so handle the patch with care.
I don't know if the patch breaks any other functions of the wmx.
Perhaps someone can prove the correctness or the fault of it?

In any case i am pleased if you write a comment to this
because i'm just starting to learn C++.

with kind regards
Fabian 




Next: