Index: gnome-panel/gnome-panel/ChangeLog
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/ChangeLog,v
retrieving revision 1.2257
diff -p -u -5 -r1.2257 ChangeLog
--- gnome-panel/gnome-panel/ChangeLog	31 Oct 2003 16:07:57 -0000	1.2257
+++ gnome-panel/gnome-panel/ChangeLog	31 Oct 2003 16:59:19 -0000
@@ -1,7 +1,22 @@
 2003-10-31  Arvind Samptur  <arvind.samptur@wipro.com>
 
+	* panel-properties-dialog.c: (panel_properties_dialog_new) :
+	Block autohiding when the properites dialog is open.
+	(panel_properties_dialog_response) : Unblock the autohiding when
+	destroying the dialog.
+	
+	* panel.c: (panel_delete): Block autohiding
+	(panel_deletion_response): Unblock autohiding
+
+	
+	* panel-toplevel.c: (panel_toplevel_auto_unhide_timeout_handler):
+	Don't unhide if we are not in the vicinity of the panel.
+	Fix bug #122589
+	
+2003-10-31  Arvind Samptur  <arvind.samptur@wipro.com>
+
 	* panel-toplevel.c: (panel_toplevel_auto_unhide_timeout_handler):
 	Reverting the changes done for 122589. It's breaking some things.
 
 2003-10-31  Arvind Samptur  <arvind.samptur@wipro.com>
 
Index: gnome-panel/gnome-panel/panel-properties-dialog.c
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel-properties-dialog.c,v
retrieving revision 1.17
diff -p -u -5 -r1.17 panel-properties-dialog.c
--- gnome-panel/gnome-panel/panel-properties-dialog.c	20 Oct 2003 15:26:57 -0000	1.17
+++ gnome-panel/gnome-panel/panel-properties-dialog.c	31 Oct 2003 16:59:19 -0000
@@ -634,10 +634,11 @@ panel_properties_dialog_response (PanelP
 				  int                    response,
 				  GtkWidget             *properties_dialog)
 {
 	switch (response) {
 	case GTK_RESPONSE_CLOSE:
+		panel_toplevel_unblock_auto_hide (PANEL_TOPLEVEL (dialog->toplevel));
 		gtk_widget_destroy (properties_dialog);
 		break;
 	case GTK_RESPONSE_HELP:
 		panel_show_help (gtk_window_get_screen (GTK_WINDOW (properties_dialog)),
 				 "wgospanel.xml", "gospanel-28");
@@ -978,10 +979,12 @@ panel_properties_dialog_new (PanelToplev
 			(GConfClientNotifyFunc) panel_properties_dialog_background_notify,
 			dialog);
 
 	panel_properties_dialog_update_for_attached (dialog,
 						     panel_toplevel_get_is_attached (dialog->toplevel));
+
+	panel_toplevel_block_auto_hide (dialog->toplevel);
 
 	gtk_widget_show (dialog->properties_dialog);
 
 	return dialog;
 }
Index: gnome-panel/gnome-panel/panel-toplevel.c
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel-toplevel.c,v
retrieving revision 1.42
diff -p -u -5 -r1.42 panel-toplevel.c
--- gnome-panel/gnome-panel/panel-toplevel.c	31 Oct 2003 16:07:58 -0000	1.42
+++ gnome-panel/gnome-panel/panel-toplevel.c	31 Oct 2003 16:59:21 -0000
@@ -3165,10 +3165,15 @@ panel_toplevel_auto_unhide_timeout_handl
 	 *        animation has finished.
 	 */
 	if (toplevel->priv->animating)
 		return TRUE;
 
+	if (!panel_toplevel_contains_pointer (toplevel)) {
+		toplevel->priv->unhide_timeout = 0;
+		return FALSE;
+	}
+
 	panel_toplevel_unhide (toplevel);
 
 	return FALSE;
 }
 
Index: gnome-panel/gnome-panel/panel.c
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel.c,v
retrieving revision 1.527
diff -p -u -5 -r1.527 panel.c
--- gnome-panel/gnome-panel/panel.c	13 Oct 2003 13:03:56 -0000	1.527
+++ gnome-panel/gnome-panel/panel.c	31 Oct 2003 16:59:21 -0000
@@ -1206,10 +1206,12 @@ panel_deletion_response (GtkWidget     *
 		panel_push_window_busy (dialog);
 		panel_delete_without_query (toplevel);
 		panel_pop_window_busy (dialog);
 	}
 
+	panel_toplevel_unblock_auto_hide (toplevel);
+
 	gtk_widget_destroy (dialog);
 }
 
 static void
 panel_deletion_destroy_dialog (GtkWidget *widget,
@@ -1293,8 +1295,10 @@ panel_delete (PanelToplevel *toplevel)
 	if (!panel_global_config_get_confirm_panel_remove () ||
 	    !g_list_length (panel_widget->applet_list)) {
 		panel_delete_without_query (toplevel);
 		return;
 	}
+
+	panel_toplevel_block_auto_hide (toplevel);
 
 	panel_query_deletion (toplevel);
 }
