brasero r1477 - in trunk: . src
- From: philippr svn gnome org
- To: svn-commits-list gnome org
- Subject: brasero r1477 - in trunk: . src
- Date: Wed, 5 Nov 2008 19:36:29 +0000 (UTC)
Author: philippr
Date: Wed Nov 5 19:36:28 2008
New Revision: 1477
URL: http://svn.gnome.org/viewvc/brasero?rev=1477&view=rev
Log:
Fix #559229 â Brasero svn trunk crashes when cancel an iso.
The crash was triggered by our attempt at gtk_main_quit () whereas we
had not even started it
* src/brasero-app.c (on_delete_cb), (on_destroy_cb),
(brasero_app_run):
* src/brasero-app.h:
* src/brasero-project-manager.c
(brasero_project_manager_burn_iso_dialog):
* src/main.c (brasero_app_parse_options), (main):
Modified:
trunk/ChangeLog
trunk/src/brasero-app.c
trunk/src/brasero-app.h
trunk/src/brasero-project-manager.c
trunk/src/main.c
Modified: trunk/src/brasero-app.c
==============================================================================
--- trunk/src/brasero-app.c (original)
+++ trunk/src/brasero-app.c Wed Nov 5 19:36:28 2008
@@ -62,7 +62,8 @@
gint width;
gint height;
- gboolean is_maximised;
+ guint is_maximised:1;
+ guint is_running:1;
};
#define BRASERO_APP_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BRASERO_TYPE_APP, BraseroAppPrivate))
@@ -217,13 +218,24 @@
static gboolean
on_delete_cb (GtkWidget *window, GdkEvent *event, BraseroApp *app)
{
+ BraseroAppPrivate *priv;
+
+ priv = BRASERO_APP_PRIVATE (app);
+ if (!priv->is_running)
+ return FALSE;
+
return brasero_session_save (app, TRUE, TRUE);
}
static gboolean
-on_destroy_cb (GtkWidget *window, GdkEvent *event, BraseroApp *app)
+on_destroy_cb (GtkWidget *window, BraseroApp *app)
{
- gtk_main_quit ();
+ BraseroAppPrivate *priv;
+
+ priv = BRASERO_APP_PRIVATE (app);
+ if (priv->is_running)
+ gtk_main_quit ();
+
return FALSE;
}
@@ -237,6 +249,19 @@
}
void
+brasero_app_run (BraseroApp *app)
+{
+ BraseroAppPrivate *priv;
+
+ priv = BRASERO_APP_PRIVATE (app);
+ priv->is_running = TRUE;
+
+ gtk_widget_realize (GTK_WIDGET (app));
+ gtk_widget_show (GTK_WIDGET (app));
+ gtk_main ();
+}
+
+void
brasero_app_blank (BraseroApp *app,
const gchar *device,
gboolean wait_and_close)
Modified: trunk/src/brasero-app.h
==============================================================================
--- trunk/src/brasero-app.h (original)
+++ trunk/src/brasero-app.h Wed Nov 5 19:36:28 2008
@@ -52,6 +52,9 @@
brasero_app_new (void);
void
+brasero_app_run (BraseroApp *app);
+
+void
brasero_app_blank (BraseroApp *app,
const gchar *device,
gboolean wait_and_close);
Modified: trunk/src/brasero-project-manager.c
==============================================================================
--- trunk/src/brasero-project-manager.c (original)
+++ trunk/src/brasero-project-manager.c Wed Nov 5 19:36:28 2008
@@ -586,6 +586,7 @@
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (manager));
gtk_widget_destroy (toplevel);
}
+
return;
}
Modified: trunk/src/main.c
==============================================================================
--- trunk/src/main.c (original)
+++ trunk/src/main.c Wed Nov 5 19:36:28 2008
@@ -228,10 +228,12 @@
/* this can't combine with any other options */
brasero_project_manager_set_oneshot (BRASERO_PROJECT_MANAGER (manager), TRUE);
brasero_project_manager_copy (BRASERO_PROJECT_MANAGER (manager), device);
+ return FALSE;
}
else if (iso_uri) {
brasero_project_manager_set_oneshot (BRASERO_PROJECT_MANAGER (manager), TRUE);
BRASERO_PROJECT_OPEN_URI (manager, brasero_project_manager_iso, iso_uri);
+ return FALSE;
}
else if (project_uri) {
brasero_project_manager_set_oneshot (BRASERO_PROJECT_MANAGER (manager), TRUE);
@@ -394,11 +396,8 @@
if (app == NULL)
return 1;
- if (brasero_app_parse_options (BRASERO_APP (app))) {
- gtk_widget_realize (app);
- gtk_widget_show (app);
- gtk_main ();
- }
+ if (brasero_app_parse_options (BRASERO_APP (app)))
+ brasero_app_run (BRASERO_APP (app));
brasero_burn_library_shutdown ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]