Deal with moving and switching in dynamic notebook

This commit is contained in:
Christian Dywan 2012-07-12 00:14:48 +02:00
parent 9ca795eec2
commit 93ef102c23
2 changed files with 19 additions and 18 deletions

View file

@ -210,7 +210,8 @@ katze_preferences_prepare (KatzePreferences* preferences)
G_CALLBACK (gtk_widget_destroyed), &priv->scrolled); G_CALLBACK (gtk_widget_destroyed), &priv->scrolled);
#else #else
#if HAVE_GRANITE #if HAVE_GRANITE
priv->notebook = granite_widgets_static_notebook_new (FALSE); /* FIXME: granite: should return GtkWidget* like GTK+ */
priv->notebook = (GtkWidget*)granite_widgets_static_notebook_new (FALSE);
#else #else
priv->notebook = gtk_notebook_new (); priv->notebook = gtk_notebook_new ();
#endif #endif

View file

@ -309,10 +309,9 @@ midori_browser_update_secondary_icon (MidoriBrowser* browser,
} }
static void static void
_midori_browser_update_interface (MidoriBrowser* browser) _midori_browser_update_interface (MidoriBrowser* browser,
MidoriView* view)
{ {
GtkWidget* widget = midori_browser_get_current_tab (browser);
MidoriView* view = MIDORI_VIEW (widget);
gboolean loading = midori_view_get_load_status (view) != MIDORI_LOAD_FINISHED; gboolean loading = midori_view_get_load_status (view) != MIDORI_LOAD_FINISHED;
gboolean can_reload = midori_view_can_reload (view); gboolean can_reload = midori_view_can_reload (view);
GtkAction* action; GtkAction* action;
@ -376,7 +375,7 @@ _midori_browser_update_interface (MidoriBrowser* browser)
action = _action_by_name (browser, "Location"); action = _action_by_name (browser, "Location");
midori_location_action_set_security_hint ( midori_location_action_set_security_hint (
MIDORI_LOCATION_ACTION (action), midori_view_get_security (view)); MIDORI_LOCATION_ACTION (action), midori_view_get_security (view));
midori_browser_update_secondary_icon (browser, MIDORI_VIEW (view), action); midori_browser_update_secondary_icon (browser, view, action);
} }
static void static void
@ -528,7 +527,7 @@ midori_view_notify_load_status_cb (GtkWidget* widget,
g_object_notify (G_OBJECT (browser), "uri"); g_object_notify (G_OBJECT (browser), "uri");
} }
_midori_browser_update_interface (browser); _midori_browser_update_interface (browser, view);
_midori_browser_set_statusbar_text (browser, NULL); _midori_browser_set_statusbar_text (browser, NULL);
/* This is a hack to ensure that the address entry is focussed /* This is a hack to ensure that the address entry is focussed
@ -795,7 +794,7 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser,
/* FIXME: granite: should return GtkWidget* like GTK+ */ /* FIXME: granite: should return GtkWidget* like GTK+ */
dialog = (GtkWidget*)granite_widgets_pop_over_new (); dialog = (GtkWidget*)granite_widgets_pop_over_new ();
granite_widgets_pop_over_move_to_widget ( granite_widgets_pop_over_move_to_widget (
GRANITE_WIDGETS_POP_OVER (dialog), proxy); GRANITE_WIDGETS_POP_OVER (dialog), proxy, TRUE);
} }
else else
#endif #endif
@ -4844,11 +4843,7 @@ _action_tab_move_backward_activate (GtkAction* action,
else else
new_pos = midori_browser_get_n_pages (browser) - 1; new_pos = midori_browser_get_n_pages (browser) - 1;
#ifdef HAVE_GRANITE #ifdef HAVE_GRANITE
/* FIXME: There is no move/ set_tab_position function */ granite_widgets_dynamic_notebook_set_tab_position (
granite_widgets_dynamic_notebook_remove_tab (
GRANITE_WIDGETS_DYNAMIC_NOTEBOOK (browser->notebook),
midori_view_get_tab (MIDORI_VIEW (widget)));
granite_widgets_dynamic_notebook_insert_tab (
GRANITE_WIDGETS_DYNAMIC_NOTEBOOK (browser->notebook), GRANITE_WIDGETS_DYNAMIC_NOTEBOOK (browser->notebook),
midori_view_get_tab (MIDORI_VIEW (widget)), new_pos); midori_view_get_tab (MIDORI_VIEW (widget)), new_pos);
#else #else
@ -5222,7 +5217,7 @@ midori_browser_notebook_switch_page_cb (GtkWidget* notebook,
GtkAction* action; GtkAction* action;
const gchar* text; const gchar* text;
if (!(widget = midori_browser_get_current_tab (browser))) if (!(widget = midori_browser_get_nth_tab (browser, page_num)))
return; return;
action = _action_by_name (browser, "Location"); action = _action_by_name (browser, "Location");
@ -5242,7 +5237,7 @@ midori_browser_notebook_switch_page_after_cb (GtkWidget* notebook,
const gchar* uri; const gchar* uri;
GtkAction* action; GtkAction* action;
if (!(widget = midori_browser_get_current_tab (browser))) if (!(widget = midori_browser_get_nth_tab (browser, page_num)))
return; return;
view = MIDORI_VIEW (widget); view = MIDORI_VIEW (widget);
@ -5261,7 +5256,7 @@ midori_browser_notebook_switch_page_after_cb (GtkWidget* notebook,
g_object_notify (G_OBJECT (browser), "tab"); g_object_notify (G_OBJECT (browser), "tab");
_midori_browser_set_statusbar_text (browser, NULL); _midori_browser_set_statusbar_text (browser, NULL);
_midori_browser_update_interface (browser); _midori_browser_update_interface (browser, view);
_midori_browser_update_progress (browser, view); _midori_browser_update_progress (browser, view);
} }
@ -5310,13 +5305,18 @@ midori_browser_notebook_tab_added_cb (GtkWidget* notebook,
} }
static void static void
midori_browser_notebook_tab_switched_cb (GtkWidget* notebook, midori_browser_notebook_tab_switched_cb (GraniteWidgetsDynamicNotebook* notebook,
GraniteWidgetsTab* old_tab, GraniteWidgetsTab* old_tab,
GraniteWidgetsTab* new_tab, GraniteWidgetsTab* new_tab,
MidoriBrowser* browser) MidoriBrowser* browser)
{ {
midori_browser_notebook_switch_page_cb (notebook, NULL, 0, browser); gint new_pos = granite_widgets_dynamic_notebook_get_tab_position (notebook, new_tab);
midori_browser_notebook_switch_page_after_cb (notebook, NULL, 0, browser); if (old_tab)
{
gint old_pos = granite_widgets_dynamic_notebook_get_tab_position (notebook, old_tab);
midori_browser_notebook_switch_page_cb (browser->notebook, NULL, old_pos, browser);
}
midori_browser_notebook_switch_page_after_cb (browser->notebook, NULL, new_pos, browser);
} }
static void static void