Index: client/civclient.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/civclient.c,v retrieving revision 1.134 diff -u -r1.134 civclient.c --- client/civclient.c 2002/06/07 04:25:58 1.134 +++ client/civclient.c 2002/06/12 08:17:12 @@ -662,3 +662,11 @@ input_from_server_till_request_got_processed(aconnection.sock, request_id); } + +/************************************************************************** +.. +**************************************************************************/ +bool client_is_observer(void) +{ + return aconnection.established && find_conn_by_id(game.conn_id)->observer; +} Index: client/civclient.h =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/civclient.h,v retrieving revision 1.17 diff -u -r1.17 civclient.h --- client/civclient.h 2002/05/25 17:44:06 1.17 +++ client/civclient.h 2002/06/12 08:17:12 @@ -43,5 +43,6 @@ extern bool auto_connect; void wait_till_request_got_processed(int request_id); +bool client_is_observer(void); #endif /* FC__CIVCLIENT_H */ Index: client/agents/agents.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/agents/agents.c,v retrieving revision 1.12 diff -u -r1.12 agents.c --- client/agents/agents.c 2002/05/25 17:53:39 1.12 +++ client/agents/agents.c 2002/06/12 08:17:17 @@ -122,7 +122,9 @@ { struct call *pcall2; - set_turn_done_button_state(FALSE); + if (client_is_observer()) { + return; + } call_list_iterate(agents.calls, pcall) { if (pcall->type == type && pcall->cb_type == cb_type @@ -130,6 +132,8 @@ return; } } call_list_iterate_end; + + set_turn_done_button_state(FALSE); pcall2 = fc_malloc(sizeof(struct call));