GValue* value,
GParamSpec* pspec);
-static void
-midori_app_add_browser (MidoriApp* app,
- MidoriBrowser* browser);
-
-static void
-midori_app_quit (MidoriApp* app);
-
static void
midori_app_class_init (MidoriAppClass* class)
{
signals[ADD_BROWSER] = g_signal_new (
"add-browser",
- G_TYPE_FROM_CLASS(class),
+ G_TYPE_FROM_CLASS (class),
(GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
G_STRUCT_OFFSET (MidoriAppClass, add_browser),
0,
signals[QUIT] = g_signal_new (
"quit",
- G_TYPE_FROM_CLASS(class),
+ G_TYPE_FROM_CLASS (class),
(GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
G_STRUCT_OFFSET (MidoriAppClass, quit),
0,
priv->browsers = g_list_remove (priv->browsers, browser);
if (g_list_nth (priv->browsers, 0))
return FALSE;
- g_signal_emit (app, signals[QUIT], 0);
+ midori_app_quit (app);
return TRUE;
}
midori_browser_quit_cb (MidoriBrowser* browser,
MidoriApp* app)
{
- g_signal_emit (app, signals[QUIT], 0);
+ midori_app_quit (app);
}
-static void
+/**
+ * midori_app_new:
+ *
+ * Instantiates a new #MidoriApp singleton.
+ *
+ * Subsequent calls will ref the initial instance.
+ *
+ * Return value: a new #MidoriApp
+ **/
+MidoriApp*
+midori_app_new (void)
+{
+ MidoriApp* app = g_object_new (MIDORI_TYPE_APP,
+ NULL);
+
+ return app;
+}
+
+/**
+ * midori_app_add_browser:
+ *
+ * Adds a #MidoriBrowser to the #MidoriApp singleton.
+ *
+ * The app will take care of the browser's new-window and quit signals, as well
+ * as watch window closing so that the last closed window quits the app.
+ * Also the app watches focus changes to indicate the 'current' browser.
+ *
+ * Return value: a new #MidoriApp
+ **/
+void
midori_app_add_browser (MidoriApp* app,
MidoriBrowser* browser)
{
priv->browsers = g_list_prepend (priv->browsers, browser);
}
-static void
-midori_app_quit (MidoriApp* app)
-{
- gtk_main_quit ();
-}
-
/**
- * midori_app_new:
- *
- * Instantiates a new #MidoriApp singleton.
+ * midori_app_get_settings:
+ * @app: a #MidoriApp
*
- * Subsequent calls will ref the initial instance.
+ * Retrieves the #MidoriWebSettings of the app.
*
- * Return value: a new #MidoriApp
+ * Return value: the assigned #MidoriWebSettings
**/
-MidoriApp*
-midori_app_new (void)
+MidoriWebSettings*
+midori_app_get_settings (MidoriApp* app)
{
- MidoriApp* app = g_object_new (MIDORI_TYPE_APP,
- NULL);
+ g_return_val_if_fail (MIDORI_IS_APP (app), NULL);
- return app;
+ MidoriAppPrivate* priv = app->priv;
+
+ return priv->settings;
}
/**
- * midori_app_get_settings:
+ * midori_app_set_settings:
* @app: a #MidoriApp
*
- * Retrieves the #MidoriWebSettings of the app.
+ * Assigns the #MidoriWebSettings to the app.
*
* Return value: the assigned #MidoriWebSettings
**/
-MidoriWebSettings*
-midori_app_get_settings (MidoriApp* app)
+void
+midori_app_set_settings (MidoriApp* app,
+ MidoriWebSettings* settings)
{
- g_return_val_if_fail (MIDORI_IS_APP (app), NULL);
+ g_return_if_fail (MIDORI_IS_APP (app));
MidoriAppPrivate* priv = app->priv;
- return priv->settings;
+ g_object_set (app, "settings", settings, NULL);
}
/**
return priv->trash;
}
+
+/**
+ * midori_app_quit:
+ * @app: a #MidoriApp
+ *
+ * Quits the #MidoriApp singleton.
+ **/
+void
+midori_app_quit (MidoriApp* app)
+{
+ g_return_if_fail (MIDORI_IS_APP (app));
+
+ gtk_main_quit ();
+}
static gboolean
midori_web_view_console_message_cb (GtkWidget* web_view,
const gchar* message,
- gint line,
+ guint line,
const gchar* source_id,
MidoriBrowser* browser)
{
return FALSE;
}
+static void
+_midori_browser_will_quit (MidoriBrowser* browser)
+{
+ // Nothing to do
+}
+
static void
midori_cclosure_marshal_VOID__OBJECT_POINTER_POINTER (GClosure* closure,
GValue* return_value,
class->add_tab = midori_browser_add_tab;
class->add_uri = midori_browser_add_uri;
class->activate_action = midori_browser_activate_action;
- class->quit = midori_browser_quit;
+ class->quit = _midori_browser_will_quit;
GObjectClass* gobject_class = G_OBJECT_CLASS (class);
gobject_class->finalize = midori_browser_finalize;
else
icon = gtk_image_new_from_stock (GTK_STOCK_STOP, GTK_ICON_SIZE_MENU);
sexy_icon_entry_set_icon (SEXY_ICON_ENTRY (priv->find_text),
- SEXY_ICON_ENTRY_PRIMARY, GTK_IMAGE(icon));
+ SEXY_ICON_ENTRY_PRIMARY, GTK_IMAGE (icon));
webkit_web_view_mark_text_matches (WEBKIT_WEB_VIEW (web_view), text,
case_sensitive, 0);
const gboolean highlight = gtk_toggle_tool_button_get_active (