Merge dc1fc36ce8419e9bad999b6d931832cff5df304b into b9891f2912a7e7374e3121f74b587af1e7b3901d
This commit is contained in:
commit
ac8a3b8d06
@ -213,16 +213,8 @@ GeanyDocument *document_find_by_filename(const gchar *utf8_filename)
|
|||||||
/* returns the document which has sci, or NULL. */
|
/* returns the document which has sci, or NULL. */
|
||||||
GeanyDocument *document_find_by_sci(ScintillaObject *sci)
|
GeanyDocument *document_find_by_sci(ScintillaObject *sci)
|
||||||
{
|
{
|
||||||
guint i;
|
g_return_val_if_fail(IS_SCINTILLA(sci), NULL);
|
||||||
|
return g_object_get_data(G_OBJECT(sci), "geany-document");
|
||||||
g_return_val_if_fail(sci != NULL, NULL);
|
|
||||||
|
|
||||||
for (i = 0; i < documents_array->len; i++)
|
|
||||||
{
|
|
||||||
if (documents[i]->is_valid && documents[i]->editor->sci == sci)
|
|
||||||
return documents[i];
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -294,6 +286,15 @@ gint document_get_notebook_page(GeanyDocument *doc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Check if the object is not only a Scintilla but also has our special
|
||||||
|
* "geany-document" tag, set in document_create(), so it can be distinguished
|
||||||
|
* from any other non-document Scintilla widgets. */
|
||||||
|
static inline gboolean is_geany_scintilla(gpointer obj)
|
||||||
|
{
|
||||||
|
return IS_SCINTILLA(obj) && (g_object_get_data(obj, "geany-document") != NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Recursively searches a containers children until it finds a
|
* Recursively searches a containers children until it finds a
|
||||||
* Scintilla widget, or NULL if one was not found.
|
* Scintilla widget, or NULL if one was not found.
|
||||||
@ -308,7 +309,7 @@ static ScintillaObject *locate_sci_in_container(GtkWidget *container)
|
|||||||
children = gtk_container_get_children(GTK_CONTAINER(container));
|
children = gtk_container_get_children(GTK_CONTAINER(container));
|
||||||
for (iter = children; iter != NULL; iter = g_list_next(iter))
|
for (iter = children; iter != NULL; iter = g_list_next(iter))
|
||||||
{
|
{
|
||||||
if (IS_SCINTILLA(iter->data))
|
if (is_geany_scintilla(iter->data))
|
||||||
{
|
{
|
||||||
sci = SCINTILLA(iter->data);
|
sci = SCINTILLA(iter->data);
|
||||||
break;
|
break;
|
||||||
@ -316,7 +317,7 @@ static ScintillaObject *locate_sci_in_container(GtkWidget *container)
|
|||||||
else if (GTK_IS_CONTAINER(iter->data))
|
else if (GTK_IS_CONTAINER(iter->data))
|
||||||
{
|
{
|
||||||
sci = locate_sci_in_container(iter->data);
|
sci = locate_sci_in_container(iter->data);
|
||||||
if (IS_SCINTILLA(sci))
|
if (is_geany_scintilla(sci))
|
||||||
break;
|
break;
|
||||||
sci = NULL;
|
sci = NULL;
|
||||||
}
|
}
|
||||||
@ -653,6 +654,10 @@ static GeanyDocument *document_create(const gchar *utf8_filename)
|
|||||||
doc->index = new_idx;
|
doc->index = new_idx;
|
||||||
doc->file_name = g_strdup(utf8_filename);
|
doc->file_name = g_strdup(utf8_filename);
|
||||||
doc->editor = editor_create(doc);
|
doc->editor = editor_create(doc);
|
||||||
|
|
||||||
|
/* set a tag on the editor's Scintilla widget so we can tell it's ours */
|
||||||
|
g_object_set_data(G_OBJECT(doc->editor->sci), "geany-document", doc);
|
||||||
|
|
||||||
#ifndef USE_GIO_FILEMON
|
#ifndef USE_GIO_FILEMON
|
||||||
doc->priv->last_check = time(NULL);
|
doc->priv->last_check = time(NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user