static void
on_window_tab_removed (GeditWindow *window,
		       GeditTab *tab,
		       gpointer user_data)
{
	disconnect_handlers (gedit_tab_get_view (tab));
}
static void
tab_added_cb (GeditWindow      *window,
	      GeditTab         *tab,
	      GeditSpellPlugin *plugin)
{
	GeditView *view;
	GeditDocument *doc;

	view = gedit_tab_get_view (tab);
	doc = GEDIT_DOCUMENT (gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)));

	/* we need to pass the view with the document as there is no way to
	   attach the view to the automatic spell checker. */
	g_object_set_data (G_OBJECT (doc), GEDIT_AUTOMATIC_SPELL_VIEW, view);

	g_signal_connect (doc,
			  "loaded",
			  G_CALLBACK (on_document_loaded),
			  plugin);

	g_signal_connect (doc,
			  "saved",
			  G_CALLBACK (on_document_saved),
			  plugin);
}
static void
tab_removed_cb (GeditWindow *window,
		GeditTab    *tab,
		gpointer     useless)
{
	GeditDocument *doc;
	GeditView *view;

	doc = gedit_tab_get_document (tab);
	view = gedit_tab_get_view (tab);
	
	g_signal_handlers_disconnect_by_func (doc, on_document_loaded, window);
}
static void
tab_added_cb (GeditWindow *window,
	      GeditTab    *tab,
	      gpointer     useless)
{
	GeditDocument *doc;
	GeditView *view;

	doc = gedit_tab_get_document (tab);
	view = gedit_tab_get_view (tab);

	g_signal_connect (doc, "loaded",
			  G_CALLBACK (on_document_loaded),
			  window);
}
static void
tab_added_cb (GeditWindow *window,
	      GeditTab    *tab,
	      gpointer     useless)
{
	GeditView *view;
	WindowData *data;
	
	data = (WindowData *) g_object_get_data (G_OBJECT (window),
						 WINDOW_DATA_KEY);
	g_return_if_fail (data != NULL);
	
	view = gedit_tab_get_view (tab);

	add_view (data, GTK_SOURCE_VIEW (view));
}
static void
on_tab_removed (GeditWindow *window,
	        GeditTab    *tab,
	        GeditPlugin *plugin)
{
	GeditDocument *doc;
	GeditView *view;

	doc = gedit_tab_get_document (tab);
	view = gedit_tab_get_view (tab);
	
	g_signal_handlers_disconnect_by_func (doc, on_document_loaded, view);
	g_signal_handlers_disconnect_by_func (doc, on_document_saved, view);

	disable_bookmarks (view);
}
static void
on_tab_added (GeditWindow *window,
	      GeditTab    *tab,
	      GeditPlugin *plugin)
{
	GeditDocument *doc;
	GeditView *view;

	doc = gedit_tab_get_document (tab);
	view = gedit_tab_get_view (tab);
	
	g_signal_connect (doc, "loaded",
			  G_CALLBACK (on_document_loaded),
			  view);
	g_signal_connect (doc, "saved",
			  G_CALLBACK (on_document_saved),
			  view);

	enable_bookmarks (view, plugin);
}