Revision: 508 Author: eht16 Date: 2006-06-29 16:51:32 -0700 (Thu, 29 Jun 2006) ViewCVS: http://svn.sourceforge.net/geany/?rev=508&view=rev
Log Message: ----------- Change the path in the VTE widget when switching between files according to the path of the current file. Process the switch_page callback only once.
Modified Paths: -------------- trunk/ChangeLog trunk/src/callbacks.c trunk/src/vte.c trunk/src/vte.h Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2006-06-29 19:08:21 UTC (rev 507) +++ trunk/ChangeLog 2006-06-29 23:51:32 UTC (rev 508) @@ -1,3 +1,11 @@ +2006-06-30 Enrico Tröger enrico.troeger@uvena.de + + * src/vte.c, src/callbacks.c: + Change the path in the VTE widget when switching between files + according to the path of the current file. + Process the switch_page callback only once. + + 2006-06-29 Nick Treleaven nick.treleaven@btinternet.com
* src/utils.c, src/utils.h, src/win32.c, src/callbacks.c,
Modified: trunk/src/callbacks.c =================================================================== --- trunk/src/callbacks.c 2006-06-29 19:08:21 UTC (rev 507) +++ trunk/src/callbacks.c 2006-06-29 23:51:32 UTC (rev 508) @@ -709,7 +709,14 @@ gpointer user_data) { gint idx; + static gboolean state = FALSE;
+ // this function is called two times when switching notebook pages, I really don't know why + // so, skip one call (workaround) + state= ! state; + if (state) return; + + if (closing_all) return;
// guint == -1 seems useless, but it isn't! @@ -751,7 +758,13 @@ gpointer user_data) { gint idx; + static gboolean state = FALSE;
+ // this function is called two times when switching notebook pages, I really don't know why + // so, skip one call (workaround) + state= ! state; + if (state) return; + if (closing_all) return;
// guint == -1 seems useless, but it isn't! @@ -764,6 +777,21 @@ { utils_check_disk_status(idx); } + +#ifdef HAVE_VTE + gchar *path; + gchar *cmd; + + if (doc_list[idx].file_name != NULL) + { + path = g_path_get_dirname(doc_list[idx].file_name); + cmd = g_strconcat("cd ", path, "\n", "clear\n", NULL); + vte_send_cmd(cmd); + g_free(path); + g_free(cmd); + } +#endif + }
Modified: trunk/src/vte.c =================================================================== --- trunk/src/vte.c 2006-06-29 19:08:21 UTC (rev 507) +++ trunk/src/vte.c 2006-06-29 23:51:32 UTC (rev 508) @@ -200,9 +200,11 @@ { kill(pid, SIGINT); pid = 0; + vf->vte_terminal_reset(VTE_TERMINAL(widget), TRUE, TRUE); vte_start(widget); return TRUE; } + return FALSE; }
@@ -265,6 +267,7 @@ g_module_symbol(mod, "vte_terminal_set_emulation", (void*)&vf->vte_terminal_set_emulation); g_module_symbol(mod, "vte_terminal_set_color_foreground", (void*)&vf->vte_terminal_set_color_foreground); g_module_symbol(mod, "vte_terminal_set_color_background", (void*)&vf->vte_terminal_set_color_background); + g_module_symbol(mod, "vte_terminal_feed_child", (void*)&vf->vte_terminal_feed_child); }
@@ -363,9 +366,12 @@ }
+void vte_send_cmd(const gchar *cmd) +{ + vf->vte_terminal_feed_child(VTE_TERMINAL(vc->vte), cmd, strlen(cmd)); +}
- /* void vte_drag_data_received(GtkWidget *widget, GdkDragContext *drag_context, gint x, gint y, GtkSelectionData *data, guint info, guint time)
Modified: trunk/src/vte.h =================================================================== --- trunk/src/vte.h 2006-06-29 19:08:21 UTC (rev 507) +++ trunk/src/vte.h 2006-06-29 23:51:32 UTC (rev 508) @@ -36,6 +36,8 @@
void vte_apply_user_settings(void);
+void vte_send_cmd(const gchar *cmd); + /* void vte_drag_data_received(GtkWidget *widget, GdkDragContext *drag_context, gint x, gint y, GtkSelectionData *data, guint info, guint time); @@ -102,6 +104,7 @@ void (*vte_terminal_set_emulation) (VteTerminal *terminal, const gchar *emulation); void (*vte_terminal_set_color_foreground) (VteTerminal *terminal, const GdkColor *foreground); void (*vte_terminal_set_color_background) (VteTerminal *terminal, const GdkColor *background); + void (*vte_terminal_feed_child) (VteTerminal *terminal, const char *data, glong length); };
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.