Skip to content

Commit

Permalink
Add 'Open in New Window' command in the notebook tab menu (based on
Browse files Browse the repository at this point in the history
patch by Matthew Brush, thanks - #3118059).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/unstable@5448 ea778897-0a13-0410-b9d1-a72fbfd435f5
  • Loading branch information
ntrel committed Nov 29, 2010
1 parent 313e0e0 commit 31a4d06
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
7 changes: 7 additions & 0 deletions ChangeLog
@@ -1,3 +1,10 @@
2010-11-29 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>

* src/notebook.c:
Add 'Open in New Window' command in the notebook tab menu (based on
patch by Matthew Brush, thanks - #3118059).


2010-11-28 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>

* data/filetypes.cpp, data/filetypes.vala, data/filetypes.glsl,
Expand Down
43 changes: 43 additions & 0 deletions src/notebook.c
Expand Up @@ -193,10 +193,39 @@ static void tab_bar_menu_activate_cb(GtkMenuItem *menuitem, gpointer data)
}


static void on_open_in_new_window_activate(GtkMenuItem *menuitem, gpointer user_data)
{
gchar *geany_path;
GeanyDocument *doc = user_data;

g_return_if_fail(doc->is_valid);

geany_path = g_find_program_in_path("geany");

if (geany_path)
{
gchar *doc_path = utils_get_locale_from_utf8(doc->file_name);
gchar *argv[] = {geany_path, "-i", doc_path, NULL};
GError *err = NULL;

if (!utils_spawn_async(NULL, argv, NULL, 0, NULL, NULL, NULL, &err))
{
g_printerr("Unable to open new window: %s", err->message);
g_error_free(err);
}
g_free(doc_path);
g_free(geany_path);
}
else
g_printerr("Unable to find 'geany'");
}


static void show_tab_bar_popup_menu(GdkEventButton *event)
{
GtkWidget *menu_item;
static GtkWidget *menu = NULL;
GeanyDocument *doc = NULL;

if (menu == NULL)
menu = gtk_menu_new();
Expand All @@ -211,6 +240,20 @@ static void show_tab_bar_popup_menu(GdkEventButton *event)
gtk_widget_show(menu_item);
gtk_container_add(GTK_CONTAINER(menu), menu_item);

doc = document_get_current();
menu_item = ui_image_menu_item_new(GTK_STOCK_OPEN, "Open in New _Window");
gtk_widget_show(menu_item);
gtk_container_add(GTK_CONTAINER(menu), menu_item);
g_signal_connect(menu_item, "activate",
G_CALLBACK(on_open_in_new_window_activate), doc);
/* disable if not on disk */
if (!doc->real_path)
gtk_widget_set_sensitive(menu_item, FALSE);

menu_item = gtk_separator_menu_item_new();
gtk_widget_show(menu_item);
gtk_container_add(GTK_CONTAINER(menu), menu_item);

menu_item = ui_image_menu_item_new(GTK_STOCK_CLOSE, _("Close Ot_her Documents"));
gtk_widget_show(menu_item);
gtk_container_add(GTK_CONTAINER(menu), menu_item);
Expand Down

0 comments on commit 31a4d06

Please sign in to comment.