On Fri, 30 Sep 2005, Dominik Vogt wrote:
On Fri, Sep 30, 2005 at 12:58:12PM +0200, Viktor Griph wrote:
On Fri, 30 Sep 2005, Dominik Vogt wrote:
[snip]
I've reverted the patch, and will try to look for a more complete (and
probably more complex) solution when I find the time.
The problem is that if you do for example
DestroyFunc ResizeFunction
AddToFunc ResizeFunction
+ M ThisWindow (Shaded) WindowShade off
+ M Resize
+ M TestRc (Match) WindowShade on
Mouse 1 SF ResizeFunction
to resize shaded windows opaque you end up with reference point making it
resize to double it's size at start, and move up to above it's starting
point. If you move the pointer down beneth the old lower border it will
just be double sized. I'll look into another solution.
Phew, interesting problem. You're right in that the resize code
should not have a reference point to start with when changing the
size of a shaded window. The difficult part is to find out that
the window *was* shaded when the reference point was recorded but
isn't anymore.
It's not just only shaded windows (but I think the are the only one where
I see any usefulness in moving the reference points from the complex
function before calling resize). Ant function that moves any part of the
window could create similar effects, but not as bad as unshading, which is
the extreme situation.
DestroyFunc StupidResize
AddToFunc StupidResize
+ I Move w+10 w+10
+ I Resize
Mouse 1 FS M Function StupidResizee
Can you explain the jumping movement from the top of your head? I
guess you have already debugged that, so I don't need to look at
it myself for now.
I'll try. First of all it should be noted that the problem was for normal
resizing of shaded windows as well before my shaded resize patch (The
changes to move_resize.c were about that, except for the removal of
a duplicate code block)
I'll describe the error as it is with TitleAtTop, and no shade direction
given. It affects all other shade directions as well in a similar way,
with directions changed.
When starting the resize on the south border the window will grow to doble
size, by moving the title up the window hight, leaving the lower border
where it is. Moving the mouse north will keep resizing the window north
from that point, keeping the distance of the old window height. Moving the
pointer down will have the window flicker between that double sized
window, and the original size and pposition window increased in hight by
as mush as you have moved the pointer down. (Moving slowly can make it
stop at either state.) Once passing the original unshaded border point
minus the title hieight (when the flicker window title intersects the
original title position) the window will keep resizing with no flickering.
I didn't debug it further then finding out that it was the reference
points that was wrong, so I didn't dig into the code to check why the
flickering occured.
Ooops. Sorry about that. What was the compiler flags that should be used
to disable all ignorable warnings?
gcc-2.95.x:
make CFLAGS="-g -O2 -Wall -Werror"
gcc-3.x and gcc-4.x:
make CFLAGS="-g -O2 -Wall -Wpointer-arith -fno-stric-aliasing -Werror"
By the way, this information and more is in the docs/DEVELOPERS
file. I always try to keep it up to date.
Thanks again. I thought all developer info was on the web-page.
/Viktor