[CF-Devel] GTK client container apply bug patch submission
crossfire-devel-admin at archives.real-time.com
crossfire-devel-admin at archives.real-time.com
Sun Jul 13 03:36:13 CDT 2003
Hello everyone.
I made a small patch to correct the odd 'apply' behaviour on the GTK
client, mainly that you can't unapply a container (switches from
applied/opened to applied).
What i did is simple (i'll explain even if code is pretty straightforward):
I split gtk/gx11.c:close_container into 2 functions, close_container &
do_close_container
The first one is the reply to the server event 'container closed', sent
to signal a container goes from opened to closed (and unapplied,
actually). This one just clears locally the display list.
The second handles the mouse click on the 'close' button, and just sends
a client command 'apply <container>' to the server to ask for container
close (this will generate a server event 'container closed', thus
close_container gets called right after that).
Ok, important point: I couldn't test that patch. Running under Windows,
and i didn't want to mess with mingw/cygwin to try to compile the code.
I do think my patch is valid (even some tabs may be weird), though. If
i'm wrong on that, just kick me :-)
Oh, and something else: if you look at the X11 client code, you'll see
the 'close_container' is exactly how i made the GTK like, just local
changes. Also the Gnome client prolly has the same bug as the GTK, since
the close_container handles both the server event & the client button click.
Finally, i'm sorry if the patch is weird, i couldn't find the correct
diff option to strip first directory name...
Thanks to all developers for the game ^_-
Nicolas 'Ryo'
-------------- next part --------------
diff -r crossfire-cvs-original/client/gtk/gx11.c crossfire-cvs/client/gtk/gx11.c
2761c2761
< void close_container (item *op)
---
>
void do_close_container (item *op)
2764a2765,2769
>
}
>
}
>
>
void close_container (item *op)
>
{
2768d2772
< }
3044c3048
< GTK_SIGNAL_FUNC(close_container),
---
>
GTK_SIGNAL_FUNC(do_close_container),
More information about the crossfire
mailing list