/* Changes window-title after switching tabs and lots of other things. * note: using 'after' makes Scintilla redraw before the UI, appearing more responsive */ static void on_notebook1_switch_page_after(GtkNotebook *notebook, gpointer page, guint page_num, gpointer user_data) { GeanyDocument *doc; if (G_UNLIKELY(main_status.opening_session_files || main_status.closing_all)) return; doc = document_get_from_notebook_child(page); if (doc != NULL) { sidebar_select_openfiles_item(doc); ui_save_buttons_toggle(doc->changed); ui_set_window_title(doc); ui_update_statusbar(doc, -1); ui_update_popup_reundo_items(doc); ui_document_show_hide(doc); /* update the document menu */ build_menu_update(doc); sidebar_update_tag_list(doc, FALSE); document_highlight_tags(doc); /* We delay the check to avoid weird fast, unintended switching of notebook pages when * the 'file has changed' dialog is shown while the switch event is not yet completely * finished. So, we check after the switch has been performed to be safe. */ g_idle_add(delayed_check_disk_status, doc); #ifdef HAVE_VTE vte_cwd((doc->real_path != NULL) ? doc->real_path : doc->file_name, FALSE); #endif g_signal_emit_by_name(geany_object, "document-activate", doc); } }
/* Changes window-title after switching tabs and lots of other things. * note: using 'after' makes Scintilla redraw before the UI, appearing more responsive */ static void on_notebook1_switch_page_after(GtkNotebook *notebook, gpointer page, guint page_num, gpointer user_data) { GeanyDocument *doc; if (G_UNLIKELY(main_status.opening_session_files || main_status.closing_all)) return; doc = document_get_from_notebook_child(page); if (doc != NULL) { sidebar_select_openfiles_item(doc); ui_save_buttons_toggle(doc->changed); ui_set_window_title(doc); ui_update_statusbar(doc, -1); ui_update_popup_reundo_items(doc); ui_document_show_hide(doc); /* update the document menu */ build_menu_update(doc); sidebar_update_tag_list(doc, FALSE); document_highlight_tags(doc); document_check_disk_status(doc, TRUE); #ifdef HAVE_VTE vte_cwd((doc->real_path != NULL) ? doc->real_path : doc->file_name, FALSE); #endif g_signal_emit_by_name(geany_object, "document-activate", doc); } }
static void vte_popup_menu_clicked(GtkMenuItem *menuitem, gpointer user_data) { switch (GPOINTER_TO_INT(user_data)) { case POPUP_COPY: { if (vf->vte_terminal_get_has_selection(VTE_TERMINAL(vc->vte))) vf->vte_terminal_copy_clipboard(VTE_TERMINAL(vc->vte)); break; } case POPUP_PASTE: { vf->vte_terminal_paste_clipboard(VTE_TERMINAL(vc->vte)); break; } case POPUP_SELECTALL: { vte_select_all(); break; } case POPUP_CHANGEPATH: { GeanyDocument *doc = document_get_current(); if (doc != NULL) vte_cwd(doc->file_name, TRUE); break; } case POPUP_RESTARTTERMINAL: { vte_restart(vc->vte); break; } case POPUP_PREFERENCES: { GtkWidget *notebook, *tab_page; prefs_show_dialog(); notebook = ui_lookup_widget(ui_widgets.prefs_dialog, "notebook2"); tab_page = ui_lookup_widget(ui_widgets.prefs_dialog, "frame_term"); gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), gtk_notebook_page_num(GTK_NOTEBOOK(notebook), GTK_WIDGET(tab_page))); break; } } }