Check for settings and views more properly
These improvements were assisted by a test case that is going to follow soon.
This commit is contained in:
parent
5b2380433b
commit
8ec0e53441
1 changed files with 127 additions and 55 deletions
|
@ -80,6 +80,11 @@ struct _MidoriBrowser
|
||||||
KatzeArray* history;
|
KatzeArray* history;
|
||||||
|
|
||||||
KatzeNet* net;
|
KatzeNet* net;
|
||||||
|
|
||||||
|
gboolean show_navigationbar;
|
||||||
|
gboolean show_statusbar;
|
||||||
|
gboolean progress_in_location;
|
||||||
|
gboolean remember_last_visited_pages;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if HAVE_HILDON
|
#if HAVE_HILDON
|
||||||
|
@ -205,6 +210,17 @@ _midori_browser_update_actions (MidoriBrowser* browser)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
midori_browser_view_can_set_encoding (MidoriView* view)
|
||||||
|
{
|
||||||
|
static GParamSpec* pspec = NULL;
|
||||||
|
if (G_UNLIKELY (!pspec))
|
||||||
|
pspec = g_object_class_find_property (
|
||||||
|
g_type_class_peek (WEBKIT_TYPE_WEB_VIEW), "custom-encoding");
|
||||||
|
/* Web views and zoom, source views can't, so zoom means encoding */
|
||||||
|
return pspec && midori_view_can_zoom_in (view);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_midori_browser_update_interface (MidoriBrowser* browser)
|
_midori_browser_update_interface (MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
|
@ -238,9 +254,7 @@ _midori_browser_update_interface (MidoriBrowser* browser)
|
||||||
_action_set_sensitive (browser, "ZoomNormal",
|
_action_set_sensitive (browser, "ZoomNormal",
|
||||||
midori_view_get_zoom_level (MIDORI_VIEW (view)) != 1.0);
|
midori_view_get_zoom_level (MIDORI_VIEW (view)) != 1.0);
|
||||||
_action_set_sensitive (browser, "Encoding",
|
_action_set_sensitive (browser, "Encoding",
|
||||||
midori_view_can_zoom_in (MIDORI_VIEW (view))
|
midori_browser_view_can_set_encoding (MIDORI_VIEW (view)));
|
||||||
&& g_object_class_find_property (
|
|
||||||
g_type_class_peek (WEBKIT_TYPE_WEB_VIEW), "custom-encoding"));
|
|
||||||
_action_set_sensitive (browser, "SourceView",
|
_action_set_sensitive (browser, "SourceView",
|
||||||
midori_view_can_view_source (MIDORI_VIEW (view)));
|
midori_view_can_view_source (MIDORI_VIEW (view)));
|
||||||
_action_set_sensitive (browser, "Find",
|
_action_set_sensitive (browser, "Find",
|
||||||
|
@ -263,8 +277,7 @@ _midori_browser_update_interface (MidoriBrowser* browser)
|
||||||
"tooltip", _("Reload the current page"),
|
"tooltip", _("Reload the current page"),
|
||||||
"sensitive", can_reload, NULL);
|
"sensitive", can_reload, NULL);
|
||||||
gtk_widget_hide (browser->progressbar);
|
gtk_widget_hide (browser->progressbar);
|
||||||
if (!katze_object_get_boolean (browser->settings, "show-navigationbar")
|
if (!browser->show_navigationbar && !browser->show_statusbar)
|
||||||
&& !katze_object_get_boolean (browser->settings, "show-statusbar"))
|
|
||||||
gtk_widget_hide (browser->navigationbar);
|
gtk_widget_hide (browser->navigationbar);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -276,9 +289,9 @@ _midori_browser_update_interface (MidoriBrowser* browser)
|
||||||
gtk_widget_show (browser->progressbar);
|
gtk_widget_show (browser->progressbar);
|
||||||
if (!GTK_WIDGET_VISIBLE (browser->statusbar) &&
|
if (!GTK_WIDGET_VISIBLE (browser->statusbar) &&
|
||||||
!GTK_WIDGET_VISIBLE (browser->navigationbar) &&
|
!GTK_WIDGET_VISIBLE (browser->navigationbar) &&
|
||||||
katze_object_get_boolean (browser->settings, "progress-in-location"))
|
browser->progress_in_location)
|
||||||
gtk_widget_show (browser->navigationbar);
|
gtk_widget_show (browser->navigationbar);
|
||||||
if (katze_object_get_boolean (browser->settings, "progress-in-location"))
|
if (browser->progress_in_location)
|
||||||
{
|
{
|
||||||
action = _action_by_name (browser, "Location");
|
action = _action_by_name (browser, "Location");
|
||||||
midori_location_action_set_progress (MIDORI_LOCATION_ACTION (action),
|
midori_location_action_set_progress (MIDORI_LOCATION_ACTION (action),
|
||||||
|
@ -338,7 +351,7 @@ _midori_browser_update_progress (MidoriBrowser* browser,
|
||||||
gtk_progress_bar_set_text (GTK_PROGRESS_BAR (browser->progressbar),
|
gtk_progress_bar_set_text (GTK_PROGRESS_BAR (browser->progressbar),
|
||||||
message);
|
message);
|
||||||
g_free (message);
|
g_free (message);
|
||||||
if (!katze_object_get_boolean (browser->settings, "progress-in-location"))
|
if (!browser->progress_in_location)
|
||||||
progress = 0.0;
|
progress = 0.0;
|
||||||
midori_location_action_set_progress (action, progress);
|
midori_location_action_set_progress (action, progress);
|
||||||
}
|
}
|
||||||
|
@ -372,7 +385,7 @@ midori_view_notify_icon_cb (MidoriView* view,
|
||||||
|
|
||||||
uri = midori_view_get_display_uri (MIDORI_VIEW (view));
|
uri = midori_view_get_display_uri (MIDORI_VIEW (view));
|
||||||
action = _action_by_name (browser, "Location");
|
action = _action_by_name (browser, "Location");
|
||||||
if (katze_object_get_boolean (browser->settings, "remember-last-visited-pages"))
|
if (browser->remember_last_visited_pages)
|
||||||
midori_location_action_set_icon_for_uri (
|
midori_location_action_set_icon_for_uri (
|
||||||
MIDORI_LOCATION_ACTION (action), midori_view_get_icon (view), uri);
|
MIDORI_LOCATION_ACTION (action), midori_view_get_icon (view), uri);
|
||||||
}
|
}
|
||||||
|
@ -391,8 +404,7 @@ midori_view_notify_load_status_cb (GtkWidget* view,
|
||||||
if (midori_view_get_load_status (MIDORI_VIEW (view))
|
if (midori_view_get_load_status (MIDORI_VIEW (view))
|
||||||
== MIDORI_LOAD_COMMITTED)
|
== MIDORI_LOAD_COMMITTED)
|
||||||
{
|
{
|
||||||
if (katze_object_get_boolean (browser->settings,
|
if (browser->remember_last_visited_pages)
|
||||||
"remember-last-visited-pages"))
|
|
||||||
midori_location_action_add_uri (MIDORI_LOCATION_ACTION (action), uri);
|
midori_location_action_add_uri (MIDORI_LOCATION_ACTION (action), uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -459,7 +471,7 @@ midori_view_notify_title_cb (GtkWidget* view,
|
||||||
uri = midori_view_get_display_uri (MIDORI_VIEW (view));
|
uri = midori_view_get_display_uri (MIDORI_VIEW (view));
|
||||||
title = midori_view_get_display_title (MIDORI_VIEW (view));
|
title = midori_view_get_display_title (MIDORI_VIEW (view));
|
||||||
action = _action_by_name (browser, "Location");
|
action = _action_by_name (browser, "Location");
|
||||||
if (katze_object_get_boolean (browser->settings, "remember-last-visited-pages"))
|
if (browser->remember_last_visited_pages)
|
||||||
midori_location_action_set_title_for_uri (
|
midori_location_action_set_title_for_uri (
|
||||||
MIDORI_LOCATION_ACTION (action), title, uri);
|
MIDORI_LOCATION_ACTION (action), title, uri);
|
||||||
if (midori_view_get_load_status (MIDORI_VIEW (view)) == MIDORI_LOAD_COMMITTED)
|
if (midori_view_get_load_status (MIDORI_VIEW (view)) == MIDORI_LOAD_COMMITTED)
|
||||||
|
@ -467,8 +479,7 @@ midori_view_notify_title_cb (GtkWidget* view,
|
||||||
KatzeItem* item;
|
KatzeItem* item;
|
||||||
KatzeItem* proxy;
|
KatzeItem* proxy;
|
||||||
|
|
||||||
if (browser->history &&
|
if (browser->history && browser->remember_last_visited_pages)
|
||||||
katze_object_get_boolean (browser->settings, "remember-last-visited-pages"))
|
|
||||||
{
|
{
|
||||||
item = g_object_get_data (G_OBJECT (view), "history-item-added");
|
item = g_object_get_data (G_OBJECT (view), "history-item-added");
|
||||||
proxy = midori_view_get_proxy_item (MIDORI_VIEW (view));
|
proxy = midori_view_get_proxy_item (MIDORI_VIEW (view));
|
||||||
|
@ -534,6 +545,9 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser,
|
||||||
GtkWidget* entry_uri;
|
GtkWidget* entry_uri;
|
||||||
GtkWidget* combo_folder;
|
GtkWidget* combo_folder;
|
||||||
|
|
||||||
|
if (!browser->bookmarks || !GTK_WIDGET_VISIBLE (browser))
|
||||||
|
return;
|
||||||
|
|
||||||
if (is_folder)
|
if (is_folder)
|
||||||
title = new_bookmark ? _("New folder") : _("Edit folder");
|
title = new_bookmark ? _("New folder") : _("Edit folder");
|
||||||
else
|
else
|
||||||
|
@ -740,6 +754,9 @@ midori_browser_save_uri (MidoriBrowser* browser,
|
||||||
gchar* last_slash;
|
gchar* last_slash;
|
||||||
gchar* folder;
|
gchar* folder;
|
||||||
|
|
||||||
|
if (!GTK_WIDGET_VISIBLE (browser))
|
||||||
|
return;
|
||||||
|
|
||||||
dialog = gtk_file_chooser_dialog_new (
|
dialog = gtk_file_chooser_dialog_new (
|
||||||
_("Save file as"), GTK_WINDOW (browser),
|
_("Save file as"), GTK_WINDOW (browser),
|
||||||
GTK_FILE_CHOOSER_ACTION_SAVE,
|
GTK_FILE_CHOOSER_ACTION_SAVE,
|
||||||
|
@ -1011,7 +1028,8 @@ _midori_browser_add_tab (MidoriBrowser* browser,
|
||||||
midori_browser_tab_leave_notify_event_cb, browser,
|
midori_browser_tab_leave_notify_event_cb, browser,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
if (katze_object_get_boolean (browser->settings, "open-tabs-next-to-current"))
|
if (browser->settings &&
|
||||||
|
katze_object_get_boolean (browser->settings, "open-tabs-next-to-current"))
|
||||||
{
|
{
|
||||||
n = gtk_notebook_get_current_page (GTK_NOTEBOOK (browser->notebook));
|
n = gtk_notebook_get_current_page (GTK_NOTEBOOK (browser->notebook));
|
||||||
gtk_notebook_insert_page (GTK_NOTEBOOK (browser->notebook), view,
|
gtk_notebook_insert_page (GTK_NOTEBOOK (browser->notebook), view,
|
||||||
|
@ -1347,6 +1365,9 @@ _action_open_activate (GtkAction* action,
|
||||||
gboolean folder_set = FALSE;
|
gboolean folder_set = FALSE;
|
||||||
GtkWidget* dialog;
|
GtkWidget* dialog;
|
||||||
|
|
||||||
|
if (!GTK_WIDGET_VISIBLE (browser))
|
||||||
|
return;
|
||||||
|
|
||||||
dialog = gtk_file_chooser_dialog_new (
|
dialog = gtk_file_chooser_dialog_new (
|
||||||
_("Open file"), GTK_WINDOW (browser),
|
_("Open file"), GTK_WINDOW (browser),
|
||||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||||
|
@ -1479,7 +1500,7 @@ _action_cut_activate (GtkAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
GtkWidget* widget = gtk_window_get_focus (GTK_WINDOW (browser));
|
GtkWidget* widget = gtk_window_get_focus (GTK_WINDOW (browser));
|
||||||
if (G_LIKELY (widget))
|
if (G_LIKELY (widget) && g_signal_lookup ("cut-clipboard", G_OBJECT_TYPE (widget)))
|
||||||
g_signal_emit_by_name (widget, "cut-clipboard");
|
g_signal_emit_by_name (widget, "cut-clipboard");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1488,7 +1509,7 @@ _action_copy_activate (GtkAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
GtkWidget* widget = gtk_window_get_focus (GTK_WINDOW (browser));
|
GtkWidget* widget = gtk_window_get_focus (GTK_WINDOW (browser));
|
||||||
if (G_LIKELY (widget))
|
if (G_LIKELY (widget) && g_signal_lookup ("copy-clipboard", G_OBJECT_TYPE (widget)))
|
||||||
g_signal_emit_by_name (widget, "copy-clipboard");
|
g_signal_emit_by_name (widget, "copy-clipboard");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1497,7 +1518,7 @@ _action_paste_activate (GtkAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
GtkWidget* widget = gtk_window_get_focus (GTK_WINDOW (browser));
|
GtkWidget* widget = gtk_window_get_focus (GTK_WINDOW (browser));
|
||||||
if (G_LIKELY (widget))
|
if (G_LIKELY (widget) && g_signal_lookup ("paste-clipboard", G_OBJECT_TYPE (widget)))
|
||||||
g_signal_emit_by_name (widget, "paste-clipboard");
|
g_signal_emit_by_name (widget, "paste-clipboard");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1527,7 +1548,7 @@ _action_select_all_activate (GtkAction* action,
|
||||||
{
|
{
|
||||||
if (GTK_IS_EDITABLE (widget))
|
if (GTK_IS_EDITABLE (widget))
|
||||||
gtk_editable_select_region (GTK_EDITABLE (widget), 0, -1);
|
gtk_editable_select_region (GTK_EDITABLE (widget), 0, -1);
|
||||||
else
|
else if (g_signal_lookup ("select-all", G_OBJECT_TYPE (widget)))
|
||||||
g_signal_emit_by_name (widget, "select-all", TRUE);
|
g_signal_emit_by_name (widget, "select-all", TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1558,10 +1579,12 @@ _midori_browser_find (MidoriBrowser* browser,
|
||||||
gboolean case_sensitive;
|
gboolean case_sensitive;
|
||||||
GtkWidget* view;
|
GtkWidget* view;
|
||||||
|
|
||||||
|
if (!(view = midori_browser_get_current_tab (browser)))
|
||||||
|
return;
|
||||||
|
|
||||||
text = gtk_entry_get_text (GTK_ENTRY (browser->find_text));
|
text = gtk_entry_get_text (GTK_ENTRY (browser->find_text));
|
||||||
case_sensitive = gtk_toggle_tool_button_get_active (
|
case_sensitive = gtk_toggle_tool_button_get_active (
|
||||||
GTK_TOGGLE_TOOL_BUTTON (browser->find_case));
|
GTK_TOGGLE_TOOL_BUTTON (browser->find_case));
|
||||||
view = midori_browser_get_current_tab (browser);
|
|
||||||
midori_view_search_text (MIDORI_VIEW (view), text, case_sensitive, forward);
|
midori_view_search_text (MIDORI_VIEW (view), text, case_sensitive, forward);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1947,18 +1970,23 @@ static void
|
||||||
_action_preferences_activate (GtkAction* action,
|
_action_preferences_activate (GtkAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
/* Show the preferences dialog. Create it if necessary. */
|
|
||||||
static GtkWidget* dialog = NULL;
|
static GtkWidget* dialog = NULL;
|
||||||
if (GTK_IS_DIALOG (dialog))
|
|
||||||
gtk_window_present (GTK_WINDOW (dialog));
|
if (!browser->settings || !GTK_WIDGET_VISIBLE (browser))
|
||||||
else
|
return;
|
||||||
|
|
||||||
|
if (!dialog)
|
||||||
{
|
{
|
||||||
dialog = midori_preferences_new (GTK_WINDOW (browser),
|
dialog = midori_preferences_new (GTK_WINDOW (browser),
|
||||||
browser->settings);
|
browser->settings);
|
||||||
g_signal_connect (dialog, "response",
|
g_signal_connect (dialog, "response",
|
||||||
G_CALLBACK (midori_preferences_response_help_cb), browser);
|
G_CALLBACK (midori_preferences_response_help_cb), browser);
|
||||||
|
g_signal_connect (dialog, "destroy",
|
||||||
|
G_CALLBACK (gtk_widget_destroyed), &dialog);
|
||||||
gtk_widget_show (dialog);
|
gtk_widget_show (dialog);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
gtk_window_present (GTK_WINDOW (dialog));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1966,6 +1994,7 @@ _action_menubar_activate (GtkToggleAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
gboolean active = gtk_toggle_action_get_active (action);
|
gboolean active = gtk_toggle_action_get_active (action);
|
||||||
|
if (browser->settings)
|
||||||
g_object_set (browser->settings, "show-menubar", active, NULL);
|
g_object_set (browser->settings, "show-menubar", active, NULL);
|
||||||
#if !HAVE_HILDON
|
#if !HAVE_HILDON
|
||||||
sokoke_widget_set_visible (browser->menubar, active);
|
sokoke_widget_set_visible (browser->menubar, active);
|
||||||
|
@ -1977,6 +2006,7 @@ _action_navigationbar_activate (GtkToggleAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
gboolean active = gtk_toggle_action_get_active (action);
|
gboolean active = gtk_toggle_action_get_active (action);
|
||||||
|
if (browser->settings)
|
||||||
g_object_set (browser->settings, "show-navigationbar", active, NULL);
|
g_object_set (browser->settings, "show-navigationbar", active, NULL);
|
||||||
sokoke_widget_set_visible (browser->navigationbar, active);
|
sokoke_widget_set_visible (browser->navigationbar, active);
|
||||||
}
|
}
|
||||||
|
@ -1986,6 +2016,7 @@ _action_bookmarkbar_activate (GtkToggleAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
gboolean active = gtk_toggle_action_get_active (action);
|
gboolean active = gtk_toggle_action_get_active (action);
|
||||||
|
if (browser->settings)
|
||||||
g_object_set (browser->settings, "show-bookmarkbar", active, NULL);
|
g_object_set (browser->settings, "show-bookmarkbar", active, NULL);
|
||||||
sokoke_widget_set_visible (browser->bookmarkbar, active);
|
sokoke_widget_set_visible (browser->bookmarkbar, active);
|
||||||
}
|
}
|
||||||
|
@ -1995,6 +2026,7 @@ _action_statusbar_activate (GtkToggleAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
gboolean active = gtk_toggle_action_get_active (action);
|
gboolean active = gtk_toggle_action_get_active (action);
|
||||||
|
if (browser->settings)
|
||||||
g_object_set (browser->settings, "show-statusbar", active, NULL);
|
g_object_set (browser->settings, "show-statusbar", active, NULL);
|
||||||
#if !HAVE_HILDON
|
#if !HAVE_HILDON
|
||||||
sokoke_widget_set_visible (browser->statusbar, active);
|
sokoke_widget_set_visible (browser->statusbar, active);
|
||||||
|
@ -2011,8 +2043,10 @@ _action_reload_stop_activate (GtkAction* action,
|
||||||
gint x, y;
|
gint x, y;
|
||||||
gboolean from_cache;
|
gboolean from_cache;
|
||||||
|
|
||||||
|
if (!(view = midori_browser_get_current_tab (browser)))
|
||||||
|
return;
|
||||||
|
|
||||||
g_object_get (action, "stock-id", &stock_id, NULL);
|
g_object_get (action, "stock-id", &stock_id, NULL);
|
||||||
view = midori_browser_get_current_tab (browser);
|
|
||||||
|
|
||||||
/* Refresh or stop, depending on the stock id */
|
/* Refresh or stop, depending on the stock id */
|
||||||
if (!strcmp (stock_id, GTK_STOCK_REFRESH))
|
if (!strcmp (stock_id, GTK_STOCK_REFRESH))
|
||||||
|
@ -2060,7 +2094,7 @@ _action_view_encoding_activate (GtkAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
GtkWidget* view = midori_browser_get_current_tab (browser);
|
GtkWidget* view = midori_browser_get_current_tab (browser);
|
||||||
if (view)
|
if (view && midori_browser_view_can_set_encoding (MIDORI_VIEW (view)))
|
||||||
{
|
{
|
||||||
const gchar* name;
|
const gchar* name;
|
||||||
GtkWidget* web_view;
|
GtkWidget* web_view;
|
||||||
|
@ -2183,7 +2217,11 @@ _action_source_view_activate (GtkAction* action,
|
||||||
if (!(view = midori_browser_get_current_tab (browser)))
|
if (!(view = midori_browser_get_current_tab (browser)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (browser->settings)
|
||||||
g_object_get (browser->settings, "text-editor", &text_editor, NULL);
|
g_object_get (browser->settings, "text-editor", &text_editor, NULL);
|
||||||
|
else
|
||||||
|
text_editor = NULL;
|
||||||
|
|
||||||
if (text_editor && *text_editor)
|
if (text_editor && *text_editor)
|
||||||
{
|
{
|
||||||
katze_net_load_uri (browser->net,
|
katze_net_load_uri (browser->net,
|
||||||
|
@ -2212,6 +2250,9 @@ static void
|
||||||
_action_fullscreen_activate (GtkAction* action,
|
_action_fullscreen_activate (GtkAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
|
if (!GTK_WIDGET (browser)->window)
|
||||||
|
return;
|
||||||
|
|
||||||
GdkWindowState state = gdk_window_get_state (GTK_WIDGET (browser)->window);
|
GdkWindowState state = gdk_window_get_state (GTK_WIDGET (browser)->window);
|
||||||
if (state & GDK_WINDOW_STATE_FULLSCREEN)
|
if (state & GDK_WINDOW_STATE_FULLSCREEN)
|
||||||
gtk_window_unfullscreen (GTK_WINDOW (browser));
|
gtk_window_unfullscreen (GTK_WINDOW (browser));
|
||||||
|
@ -2243,6 +2284,9 @@ _action_homepage_activate (GtkAction* action,
|
||||||
{
|
{
|
||||||
gchar* homepage;
|
gchar* homepage;
|
||||||
|
|
||||||
|
if (!browser->settings)
|
||||||
|
return;
|
||||||
|
|
||||||
g_object_get (browser->settings, "homepage", &homepage, NULL);
|
g_object_get (browser->settings, "homepage", &homepage, NULL);
|
||||||
midori_browser_set_current_uri (browser, homepage);
|
midori_browser_set_current_uri (browser, homepage);
|
||||||
g_free (homepage);
|
g_free (homepage);
|
||||||
|
@ -2252,7 +2296,7 @@ static void
|
||||||
_action_location_activate (GtkAction* action,
|
_action_location_activate (GtkAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
if (!katze_object_get_boolean (browser->settings, "show-navigationbar"))
|
if (!browser->show_navigationbar)
|
||||||
gtk_widget_show (browser->navigationbar);
|
gtk_widget_show (browser->navigationbar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2274,7 +2318,7 @@ static void
|
||||||
_action_location_focus_out (GtkAction* action,
|
_action_location_focus_out (GtkAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
if (!katze_object_get_boolean (browser->settings, "show-navigationbar"))
|
if (!browser->show_navigationbar)
|
||||||
gtk_widget_hide (browser->navigationbar);
|
gtk_widget_hide (browser->navigationbar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2447,8 +2491,7 @@ static void
|
||||||
_action_search_focus_out (GtkAction* action,
|
_action_search_focus_out (GtkAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
if (GTK_WIDGET_VISIBLE (browser->statusbar) &&
|
if (GTK_WIDGET_VISIBLE (browser->statusbar) && !browser->show_navigationbar)
|
||||||
!katze_object_get_boolean (browser->settings, "show-navigationbar"))
|
|
||||||
gtk_widget_hide (browser->navigationbar);
|
gtk_widget_hide (browser->navigationbar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2666,14 +2709,21 @@ static void
|
||||||
_action_manage_search_engines_activate (GtkAction* action,
|
_action_manage_search_engines_activate (GtkAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
GtkWidget* dialog;
|
static GtkWidget* dialog = NULL;
|
||||||
|
|
||||||
|
if (!GTK_WIDGET_VISIBLE (browser))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!dialog)
|
||||||
|
{
|
||||||
dialog = midori_search_action_get_dialog (
|
dialog = midori_search_action_get_dialog (
|
||||||
MIDORI_SEARCH_ACTION (_action_by_name (browser, "Search")));
|
MIDORI_SEARCH_ACTION (_action_by_name (browser, "Search")));
|
||||||
if (GTK_WIDGET_VISIBLE (dialog))
|
g_signal_connect (dialog, "destroy",
|
||||||
gtk_window_present (GTK_WINDOW (dialog));
|
G_CALLBACK (gtk_widget_destroyed), &dialog);
|
||||||
else
|
|
||||||
gtk_widget_show (dialog);
|
gtk_widget_show (dialog);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
gtk_window_present (GTK_WINDOW (dialog));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -2790,6 +2840,7 @@ _action_panel_activate (GtkToggleAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
gboolean active = gtk_toggle_action_get_active (action);
|
gboolean active = gtk_toggle_action_get_active (action);
|
||||||
|
if (browser->settings)
|
||||||
g_object_set (browser->settings, "show-panel", active, NULL);
|
g_object_set (browser->settings, "show-panel", active, NULL);
|
||||||
sokoke_widget_set_visible (browser->panel, active);
|
sokoke_widget_set_visible (browser->panel, active);
|
||||||
}
|
}
|
||||||
|
@ -2799,6 +2850,7 @@ midori_browser_panel_timeout (GtkWidget* hpaned)
|
||||||
{
|
{
|
||||||
gboolean position = gtk_paned_get_position (GTK_PANED (hpaned));
|
gboolean position = gtk_paned_get_position (GTK_PANED (hpaned));
|
||||||
MidoriBrowser* browser = MIDORI_BROWSER (gtk_widget_get_toplevel (hpaned));
|
MidoriBrowser* browser = MIDORI_BROWSER (gtk_widget_get_toplevel (hpaned));
|
||||||
|
if (browser->settings)
|
||||||
g_object_set (browser->settings, "last-panel-position", position, NULL);
|
g_object_set (browser->settings, "last-panel-position", position, NULL);
|
||||||
browser->panel_timeout = 0;
|
browser->panel_timeout = 0;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -2823,7 +2875,9 @@ midori_panel_notify_right_aligned_cb (MidoriPanel* panel,
|
||||||
GtkWidget* hpaned = gtk_widget_get_parent (browser->panel);
|
GtkWidget* hpaned = gtk_widget_get_parent (browser->panel);
|
||||||
GtkWidget* vpaned = gtk_widget_get_parent (browser->notebook);
|
GtkWidget* vpaned = gtk_widget_get_parent (browser->notebook);
|
||||||
|
|
||||||
g_object_set (browser->settings, "right-align-sidepanel", right_aligned, NULL);
|
if (browser->settings)
|
||||||
|
g_object_set (browser->settings, "right-align-sidepanel",
|
||||||
|
right_aligned, NULL);
|
||||||
|
|
||||||
g_object_ref (browser->panel);
|
g_object_ref (browser->panel);
|
||||||
g_object_ref (vpaned);
|
g_object_ref (vpaned);
|
||||||
|
@ -2908,6 +2962,9 @@ _action_undo_tab_close_activate (GtkAction* action,
|
||||||
KatzeItem* item;
|
KatzeItem* item;
|
||||||
guint n;
|
guint n;
|
||||||
|
|
||||||
|
if (!browser->trash)
|
||||||
|
return;
|
||||||
|
|
||||||
/* Reopen the most recent trash item */
|
/* Reopen the most recent trash item */
|
||||||
last = katze_array_get_length (browser->trash) - 1;
|
last = katze_array_get_length (browser->trash) - 1;
|
||||||
item = katze_array_get_nth_item (browser->trash, last);
|
item = katze_array_get_nth_item (browser->trash, last);
|
||||||
|
@ -2921,8 +2978,11 @@ static void
|
||||||
_action_trash_empty_activate (GtkAction* action,
|
_action_trash_empty_activate (GtkAction* action,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
|
if (browser->trash)
|
||||||
|
{
|
||||||
katze_array_clear (browser->trash);
|
katze_array_clear (browser->trash);
|
||||||
_midori_browser_update_actions (browser);
|
_midori_browser_update_actions (browser);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const GtkActionEntry entries[] = {
|
static const GtkActionEntry entries[] = {
|
||||||
|
@ -4028,8 +4088,8 @@ _midori_browser_update_settings (MidoriBrowser* browser)
|
||||||
MidoriWindowState last_window_state;
|
MidoriWindowState last_window_state;
|
||||||
gboolean compact_sidepanel, right_align_sidepanel;
|
gboolean compact_sidepanel, right_align_sidepanel;
|
||||||
gint last_panel_position, last_panel_page;
|
gint last_panel_position, last_panel_page;
|
||||||
gboolean show_menubar, show_navigationbar, show_bookmarkbar;
|
gboolean show_menubar, show_bookmarkbar;
|
||||||
gboolean show_panel, show_statusbar;
|
gboolean show_panel;
|
||||||
MidoriToolbarStyle toolbar_style;
|
MidoriToolbarStyle toolbar_style;
|
||||||
gchar* toolbar_items;
|
gchar* toolbar_items;
|
||||||
gint last_web_search;
|
gint last_web_search;
|
||||||
|
@ -4048,14 +4108,16 @@ _midori_browser_update_settings (MidoriBrowser* browser)
|
||||||
"last-panel-position", &last_panel_position,
|
"last-panel-position", &last_panel_position,
|
||||||
"last-panel-page", &last_panel_page,
|
"last-panel-page", &last_panel_page,
|
||||||
"show-menubar", &show_menubar,
|
"show-menubar", &show_menubar,
|
||||||
"show-navigationbar", &show_navigationbar,
|
"show-navigationbar", &browser->show_navigationbar,
|
||||||
"show-bookmarkbar", &show_bookmarkbar,
|
"show-bookmarkbar", &show_bookmarkbar,
|
||||||
"show-panel", &show_panel,
|
"show-panel", &show_panel,
|
||||||
"show-statusbar", &show_statusbar,
|
"show-statusbar", &browser->show_statusbar,
|
||||||
"toolbar-style", &toolbar_style,
|
"toolbar-style", &toolbar_style,
|
||||||
"toolbar-items", &toolbar_items,
|
"toolbar-items", &toolbar_items,
|
||||||
"last-web-search", &last_web_search,
|
"last-web-search", &last_web_search,
|
||||||
"close-buttons-on-tabs", &close_buttons_on_tabs,
|
"close-buttons-on-tabs", &close_buttons_on_tabs,
|
||||||
|
"progress-in-location", &browser->progress_in_location,
|
||||||
|
"remember-last-visited-pages", &browser->remember_last_visited_pages,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
screen = gtk_window_get_screen (GTK_WINDOW (browser));
|
screen = gtk_window_get_screen (GTK_WINDOW (browser));
|
||||||
|
@ -4107,10 +4169,10 @@ _midori_browser_update_settings (MidoriBrowser* browser)
|
||||||
midori_panel_set_current_page (MIDORI_PANEL (browser->panel), last_panel_page);
|
midori_panel_set_current_page (MIDORI_PANEL (browser->panel), last_panel_page);
|
||||||
|
|
||||||
_action_set_active (browser, "Menubar", show_menubar);
|
_action_set_active (browser, "Menubar", show_menubar);
|
||||||
_action_set_active (browser, "Navigationbar", show_navigationbar);
|
_action_set_active (browser, "Navigationbar", browser->show_navigationbar);
|
||||||
_action_set_active (browser, "Bookmarkbar", show_bookmarkbar);
|
_action_set_active (browser, "Bookmarkbar", show_bookmarkbar);
|
||||||
_action_set_active (browser, "Panel", show_panel);
|
_action_set_active (browser, "Panel", show_panel);
|
||||||
_action_set_active (browser, "Statusbar", show_statusbar);
|
_action_set_active (browser, "Statusbar", browser->show_statusbar);
|
||||||
|
|
||||||
g_free (toolbar_items);
|
g_free (toolbar_items);
|
||||||
}
|
}
|
||||||
|
@ -4136,6 +4198,14 @@ midori_browser_settings_notify (MidoriWebSettings* web_settings,
|
||||||
g_value_get_boolean (&value));
|
g_value_get_boolean (&value));
|
||||||
else if (name == g_intern_string ("always-show-tabbar"))
|
else if (name == g_intern_string ("always-show-tabbar"))
|
||||||
_toggle_tabbar_smartly (browser);
|
_toggle_tabbar_smartly (browser);
|
||||||
|
else if (name == g_intern_string ("show-navigationbar"))
|
||||||
|
browser->show_navigationbar = g_value_get_boolean (&value);
|
||||||
|
else if (name == g_intern_string ("show-statusbar"))
|
||||||
|
browser->show_statusbar = g_value_get_boolean (&value);
|
||||||
|
else if (name == g_intern_string ("progress-in-location"))
|
||||||
|
browser->progress_in_location = g_value_get_boolean (&value);
|
||||||
|
else if (name == g_intern_string ("remember-last-visited-pages"))
|
||||||
|
browser->remember_last_visited_pages = g_value_get_boolean (&value);
|
||||||
else if (!g_object_class_find_property (G_OBJECT_GET_CLASS (web_settings),
|
else if (!g_object_class_find_property (G_OBJECT_GET_CLASS (web_settings),
|
||||||
name))
|
name))
|
||||||
g_warning (_("Unexpected setting '%s'"), name);
|
g_warning (_("Unexpected setting '%s'"), name);
|
||||||
|
@ -4481,9 +4551,11 @@ midori_browser_add_uri (MidoriBrowser* browser,
|
||||||
g_return_val_if_fail (MIDORI_IS_BROWSER (browser), -1);
|
g_return_val_if_fail (MIDORI_IS_BROWSER (browser), -1);
|
||||||
g_return_val_if_fail (uri != NULL, -1);
|
g_return_val_if_fail (uri != NULL, -1);
|
||||||
|
|
||||||
view = g_object_new (MIDORI_TYPE_VIEW,
|
if (browser->settings)
|
||||||
"settings", browser->settings,
|
view = g_object_new (MIDORI_TYPE_VIEW, "settings", browser->settings,
|
||||||
NULL);
|
"net", browser->net, NULL);
|
||||||
|
else
|
||||||
|
view = midori_view_new (browser->net);
|
||||||
midori_view_set_uri (MIDORI_VIEW (view), uri);
|
midori_view_set_uri (MIDORI_VIEW (view), uri);
|
||||||
gtk_widget_show (view);
|
gtk_widget_show (view);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue