Revision: 3052 http://geany.svn.sourceforge.net/geany/?rev=3052&view=rev Author: ntrel Date: 2008-10-07 14:50:54 +0000 (Tue, 07 Oct 2008)
Log Message: ----------- Use EditWindow structure instead of separate global variables.
Modified Paths: -------------- trunk/ChangeLog trunk/plugins/splitwindow.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-10-07 12:14:57 UTC (rev 3051) +++ trunk/ChangeLog 2008-10-07 14:50:54 UTC (rev 3052) @@ -5,6 +5,8 @@ an Unsplit button (reuses existing string). * src/editor.c: Fix segfault when holding Alt and scrolling editor window. + * plugins/splitwindow.c: + Use EditWindow structure instead of separate global variables.
2008-10-06 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/plugins/splitwindow.c =================================================================== --- trunk/plugins/splitwindow.c 2008-10-07 12:14:57 UTC (rev 3051) +++ trunk/plugins/splitwindow.c 2008-10-07 14:50:54 UTC (rev 3052) @@ -63,9 +63,18 @@ menu_items;
static enum State plugin_state; -static GeanyEditor *our_editor = NULL; /* original editor for split view */ -static ScintillaObject *our_sci = NULL; /* new editor widget */
+ +typedef struct EditWindow +{ + GeanyEditor *editor; /* original editor for split view */ + ScintillaObject *sci; /* new editor widget */ +} +EditWindow; + +static EditWindow edit_window = {NULL, NULL}; + + static void on_unsplit(GtkMenuItem *menuitem, gpointer user_data);
@@ -198,9 +207,9 @@ GeanyDocument *doc = p_document->get_current();
g_return_if_fail(doc); - g_return_if_fail(our_sci); + g_return_if_fail(edit_window.sci);
- sync_to_current(doc->editor->sci, our_sci); + sync_to_current(doc->editor->sci, edit_window.sci); }
@@ -252,7 +261,7 @@ set_state(STATE_SPLIT_HORIZONTAL);
g_return_if_fail(doc); - g_return_if_fail(our_editor == NULL); + g_return_if_fail(edit_window.editor == NULL);
/* temporarily put document notebook in main vbox (scintilla widgets must stay * in a visible parent window, otherwise there are X selection and scrollbar issues) */ @@ -268,10 +277,10 @@ gtk_box_pack_start(GTK_BOX(box), toolbar, FALSE, FALSE, 0); gtk_container_add(GTK_CONTAINER(pane), box);
- our_editor = doc->editor; - our_sci = p_editor->create_widget(our_editor); - sync_to_current(our_editor->sci, our_sci); - gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(our_sci), TRUE, TRUE, 0); + edit_window.editor = doc->editor; + edit_window.sci = p_editor->create_widget(edit_window.editor); + sync_to_current(edit_window.editor->sci, edit_window.sci); + gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(edit_window.sci), TRUE, TRUE, 0);
gtk_paned_set_position(GTK_PANED(pane), width); gtk_widget_show_all(pane); @@ -286,7 +295,7 @@
set_state(STATE_UNSPLIT);
- g_return_if_fail(our_editor); + g_return_if_fail(edit_window.editor);
/* temporarily put document notebook in main vbox (scintilla widgets must stay * in a visible parent window, otherwise there are X selection and scrollbar issues) */ @@ -294,7 +303,7 @@ p_support->lookup_widget(geany->main_widgets->window, "vbox1"));
gtk_widget_destroy(pane); - our_editor = NULL; + edit_window.editor = NULL; gtk_widget_reparent(notebook, parent); }
@@ -330,7 +339,7 @@ static void on_document_close(GObject *obj, GeanyDocument *doc, gpointer user_data) { /* remove the split window because the document won't exist anymore */ - if (our_editor && doc == our_editor->document) + if (doc->editor == edit_window.editor) on_unsplit(NULL, NULL); }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.