[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