Make the History List recognize tabs open before its activation
This commit is contained in:
parent
bda19771c3
commit
ee87663b35
1 changed files with 28 additions and 32 deletions
|
@ -70,8 +70,9 @@ static GtkWidget* tab_selector_init_window (MidoriBrowser *browser)
|
||||||
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
|
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
|
||||||
|
|
||||||
|
|
||||||
hbox = gtk_hbox_new(FALSE, 5);
|
hbox = gtk_hbox_new(FALSE, 1);
|
||||||
gtk_container_add(GTK_CONTAINER(window), hbox);
|
gtk_container_add(GTK_CONTAINER(window), hbox);
|
||||||
|
gtk_container_set_border_width(GTK_CONTAINER(hbox), 1);
|
||||||
|
|
||||||
sw = gtk_scrolled_window_new (NULL, NULL);
|
sw = gtk_scrolled_window_new (NULL, NULL);
|
||||||
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
|
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
|
||||||
|
@ -241,26 +242,6 @@ static void tab_selector_switch_page (GtkNotebook *notebook,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tab_selector_page_added (GtkNotebook *notebook,
|
|
||||||
GtkWidget *child,
|
|
||||||
guint page_num,
|
|
||||||
MidoriBrowser *browser)
|
|
||||||
{
|
|
||||||
GList *list = g_object_get_data(G_OBJECT(browser), "tab_selector_list");
|
|
||||||
list = g_list_append(list, child);
|
|
||||||
g_object_set_data(G_OBJECT(browser), "tab_selector_list", list);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void tab_selector_page_removed (GtkNotebook *notebook,
|
|
||||||
GtkWidget *child,
|
|
||||||
guint page_num,
|
|
||||||
MidoriBrowser *browser)
|
|
||||||
{
|
|
||||||
GList *list = g_object_get_data(G_OBJECT(browser), "tab_selector_list");
|
|
||||||
list = g_list_remove(list, child);
|
|
||||||
g_object_set_data(G_OBJECT(browser), "tab_selector_list", list);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
tab_selector_browser_add_tab_cb (MidoriBrowser *browser,
|
tab_selector_browser_add_tab_cb (MidoriBrowser *browser,
|
||||||
GtkWidget *view,
|
GtkWidget *view,
|
||||||
|
@ -270,6 +251,20 @@ tab_selector_browser_add_tab_cb (MidoriBrowser *browser,
|
||||||
G_CALLBACK (tab_selector_handle_events), browser);
|
G_CALLBACK (tab_selector_handle_events), browser);
|
||||||
g_signal_connect (view, "key_release_event",
|
g_signal_connect (view, "key_release_event",
|
||||||
G_CALLBACK (tab_selector_handle_events), browser);
|
G_CALLBACK (tab_selector_handle_events), browser);
|
||||||
|
|
||||||
|
GList *list = g_object_get_data(G_OBJECT(browser), "tab_selector_list");
|
||||||
|
list = g_list_append(list, view);
|
||||||
|
g_object_set_data(G_OBJECT(browser), "tab_selector_list", list);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
tab_selector_browser_remove_tab_cb (MidoriBrowser *browser,
|
||||||
|
GtkWidget *view,
|
||||||
|
MidoriExtension *extension)
|
||||||
|
{
|
||||||
|
GList *list = g_object_get_data(G_OBJECT(browser), "tab_selector_list");
|
||||||
|
list = g_list_remove(list, view);
|
||||||
|
g_object_set_data(G_OBJECT(browser), "tab_selector_list", list);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -289,8 +284,10 @@ tab_selector_app_add_browser_cb (MidoriApp *app,
|
||||||
|
|
||||||
g_object_set_data(G_OBJECT(browser), "tab_selector_list", NULL);
|
g_object_set_data(G_OBJECT(browser), "tab_selector_list", NULL);
|
||||||
|
|
||||||
g_signal_connect_after (browser, "add-tab",
|
g_signal_connect (browser, "add-tab",
|
||||||
G_CALLBACK (tab_selector_browser_add_tab_cb), extension);
|
G_CALLBACK (tab_selector_browser_add_tab_cb), extension);
|
||||||
|
g_signal_connect (browser, "remove-tab",
|
||||||
|
G_CALLBACK (tab_selector_browser_remove_tab_cb), extension);
|
||||||
|
|
||||||
navigationbar = katze_object_get_object(browser, "navigationbar");
|
navigationbar = katze_object_get_object(browser, "navigationbar");
|
||||||
g_signal_connect (navigationbar, "key_press_event",
|
g_signal_connect (navigationbar, "key_press_event",
|
||||||
|
@ -302,10 +299,6 @@ tab_selector_app_add_browser_cb (MidoriApp *app,
|
||||||
notebook = katze_object_get_object(browser, "notebook");
|
notebook = katze_object_get_object(browser, "notebook");
|
||||||
g_signal_connect_after (notebook, "switch-page",
|
g_signal_connect_after (notebook, "switch-page",
|
||||||
G_CALLBACK (tab_selector_switch_page), browser);
|
G_CALLBACK (tab_selector_switch_page), browser);
|
||||||
g_signal_connect (notebook, "page-added",
|
|
||||||
G_CALLBACK (tab_selector_page_added), browser);
|
|
||||||
g_signal_connect (notebook, "page-removed",
|
|
||||||
G_CALLBACK (tab_selector_page_removed), browser);
|
|
||||||
g_object_unref(notebook);
|
g_object_unref(notebook);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -330,6 +323,8 @@ tab_selector_disconnect_browser_cb (MidoriApp *app,
|
||||||
|
|
||||||
g_signal_handlers_disconnect_by_func (
|
g_signal_handlers_disconnect_by_func (
|
||||||
browser, tab_selector_browser_add_tab_cb, extension);
|
browser, tab_selector_browser_add_tab_cb, extension);
|
||||||
|
g_signal_handlers_disconnect_by_func (
|
||||||
|
browser, tab_selector_browser_remove_tab_cb, extension);
|
||||||
g_signal_handlers_disconnect_by_func (
|
g_signal_handlers_disconnect_by_func (
|
||||||
katze_object_get_object (browser, "navigationbar"),
|
katze_object_get_object (browser, "navigationbar"),
|
||||||
tab_selector_handle_events, browser);
|
tab_selector_handle_events, browser);
|
||||||
|
@ -344,10 +339,6 @@ tab_selector_disconnect_browser_cb (MidoriApp *app,
|
||||||
notebook = katze_object_get_object (browser, "notebook");
|
notebook = katze_object_get_object (browser, "notebook");
|
||||||
g_signal_handlers_disconnect_by_func (notebook,
|
g_signal_handlers_disconnect_by_func (notebook,
|
||||||
tab_selector_switch_page, browser);
|
tab_selector_switch_page, browser);
|
||||||
g_signal_handlers_disconnect_by_func (notebook,
|
|
||||||
tab_selector_page_added, browser);
|
|
||||||
g_signal_handlers_disconnect_by_func (notebook,
|
|
||||||
tab_selector_page_removed, browser);
|
|
||||||
g_object_unref (notebook);
|
g_object_unref (notebook);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -355,14 +346,19 @@ static void
|
||||||
tab_selector_activate_cb (MidoriExtension *extension,
|
tab_selector_activate_cb (MidoriExtension *extension,
|
||||||
MidoriApp *app)
|
MidoriApp *app)
|
||||||
{
|
{
|
||||||
|
GtkWidget *view;
|
||||||
KatzeArray *browsers;
|
KatzeArray *browsers;
|
||||||
MidoriBrowser *browser;
|
MidoriBrowser *browser;
|
||||||
guint i;
|
guint i, j;
|
||||||
|
|
||||||
browsers = katze_object_get_object (app, "browsers");
|
browsers = katze_object_get_object (app, "browsers");
|
||||||
i = 0;
|
i = 0;
|
||||||
while ((browser = katze_array_get_nth_item (browsers, i++)))
|
while ((browser = katze_array_get_nth_item (browsers, i++))) {
|
||||||
|
j = 0;
|
||||||
tab_selector_app_add_browser_cb (app, browser, extension);
|
tab_selector_app_add_browser_cb (app, browser, extension);
|
||||||
|
while((view = midori_browser_get_nth_tab(browser, j++)))
|
||||||
|
tab_selector_browser_add_tab_cb(browser, view, extension);
|
||||||
|
}
|
||||||
g_object_unref (browsers);
|
g_object_unref (browsers);
|
||||||
g_signal_connect (app, "add-browser",
|
g_signal_connect (app, "add-browser",
|
||||||
G_CALLBACK (tab_selector_app_add_browser_cb), extension);
|
G_CALLBACK (tab_selector_app_add_browser_cb), extension);
|
||||||
|
|
Loading…
Reference in a new issue