[gnome-session] gsm: Add debug mode to fail whale dialog
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-session] gsm: Add debug mode to fail whale dialog
- Date: Fri, 26 Aug 2011 23:01:18 +0000 (UTC)
commit f41c07f6a95a5a22891db45681afeb05bef669c5
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Wed Aug 17 06:09:03 2011 -0400
gsm: Add debug mode to fail whale dialog
The debug mode lets you crudely debug the fail whale dialog in a window
https://bugzilla.gnome.org/show_bug.cgi?id=656747
gnome-session/gsm-fail-whale-dialog.c | 47 +++++++++++++++++++++------------
gnome-session/gsm-fail-whale-dialog.h | 2 +-
gnome-session/gsm-manager.c | 2 +-
gnome-session/main.c | 2 +-
4 files changed, 33 insertions(+), 20 deletions(-)
---
diff --git a/gnome-session/gsm-fail-whale-dialog.c b/gnome-session/gsm-fail-whale-dialog.c
index d54cf18..a4b3e61 100644
--- a/gnome-session/gsm-fail-whale-dialog.c
+++ b/gnome-session/gsm-fail-whale-dialog.c
@@ -38,6 +38,7 @@
struct _GsmFailWhaleDialogPrivate
{
+ gboolean debug_mode;
GdkRectangle geometry;
};
@@ -78,6 +79,9 @@ _window_move_resize_window (GsmFailWhaleDialog *window,
g_assert (gtk_widget_get_realized (widget));
+ if (window->priv->debug_mode)
+ return;
+
g_debug ("Move and/or resize window x=%d y=%d w=%d h=%d",
window->priv->geometry.x,
window->priv->geometry.y,
@@ -221,8 +225,10 @@ gsm_fail_whale_dialog_get_preferred_height (GtkWidget *widget,
static void
gsm_fail_whale_dialog_class_init (GsmFailWhaleDialogClass *klass)
{
+ GObjectClass *object_class;
GtkWidgetClass *widget_class;
+ object_class = G_OBJECT_CLASS (klass);
widget_class = GTK_WIDGET_CLASS (klass);
widget_class->realize = gsm_fail_whale_dialog_realize;
@@ -237,11 +243,15 @@ static void
on_logout_clicked (GtkWidget *button,
GsmFailWhaleDialog *fail_dialog)
{
- gsm_manager_logout (gsm_manager_get (),
- GSM_MANAGER_LOGOUT_MODE_FORCE,
- NULL);
-
- gtk_widget_destroy (GTK_WIDGET (fail_dialog));
+ if (fail_dialog->priv->debug_mode) {
+ gtk_main_quit ();
+ } else {
+ gsm_manager_logout (gsm_manager_get (),
+ GSM_MANAGER_LOGOUT_MODE_FORCE,
+ NULL);
+
+ gtk_widget_destroy (GTK_WIDGET (fail_dialog));
+ }
}
static void
@@ -256,6 +266,18 @@ setup_window (GsmFailWhaleDialog *fail_dialog)
GtkWidget *button;
char *markup;
+ gtk_window_set_title (GTK_WINDOW (fail_dialog), "");
+ gtk_window_set_icon_name (GTK_WINDOW (fail_dialog), GSM_ICON_COMPUTER_FAIL);
+
+ if (!fail_dialog->priv->debug_mode) {
+ gtk_window_set_skip_taskbar_hint (GTK_WINDOW (fail_dialog), TRUE);
+ gtk_window_set_keep_above (GTK_WINDOW (fail_dialog), TRUE);
+ gtk_window_stick (GTK_WINDOW (fail_dialog));
+ gtk_window_set_position (GTK_WINDOW (fail_dialog), GTK_WIN_POS_CENTER_ALWAYS);
+ /* only works if there is a window manager which is unlikely */
+ gtk_window_fullscreen (GTK_WINDOW (fail_dialog));
+ }
+
alignment = gtk_alignment_new (0.5, 0.5, 1, 1);
gtk_widget_show (alignment);
gtk_container_add (GTK_CONTAINER (fail_dialog), alignment);
@@ -303,21 +325,10 @@ static void
gsm_fail_whale_dialog_init (GsmFailWhaleDialog *fail_dialog)
{
fail_dialog->priv = GSM_FAIL_WHALE_DIALOG_GET_PRIVATE (fail_dialog);
-
- gtk_window_set_skip_taskbar_hint (GTK_WINDOW (fail_dialog), TRUE);
- gtk_window_set_keep_above (GTK_WINDOW (fail_dialog), TRUE);
- gtk_window_stick (GTK_WINDOW (fail_dialog));
- gtk_window_set_title (GTK_WINDOW (fail_dialog), "");
- gtk_window_set_icon_name (GTK_WINDOW (fail_dialog), GSM_ICON_COMPUTER_FAIL);
- gtk_window_set_position (GTK_WINDOW (fail_dialog), GTK_WIN_POS_CENTER_ALWAYS);
- /* only works if there is a window manager which is unlikely */
- gtk_window_fullscreen (GTK_WINDOW (fail_dialog));
-
- setup_window (fail_dialog);
}
void
-gsm_fail_whale_dialog_we_failed (void)
+gsm_fail_whale_dialog_we_failed (gboolean debug_mode)
{
static GsmFailWhaleDialog *current_dialog = NULL;
GsmFailWhaleDialog *fail_dialog;
@@ -327,6 +338,8 @@ gsm_fail_whale_dialog_we_failed (void)
}
fail_dialog = g_object_new (GSM_TYPE_FAIL_WHALE_DIALOG, NULL);
+ fail_dialog->priv->debug_mode = debug_mode;
+ setup_window (fail_dialog);
current_dialog = fail_dialog;
g_signal_connect (current_dialog,
diff --git a/gnome-session/gsm-fail-whale-dialog.h b/gnome-session/gsm-fail-whale-dialog.h
index cc43165..f070d1b 100644
--- a/gnome-session/gsm-fail-whale-dialog.h
+++ b/gnome-session/gsm-fail-whale-dialog.h
@@ -53,7 +53,7 @@ struct _GsmFailWhaleDialogClass
GType gsm_fail_whale_dialog_get_type (void) G_GNUC_CONST;
-void gsm_fail_whale_dialog_we_failed (void);
+void gsm_fail_whale_dialog_we_failed (gboolean debug_mode);
G_END_DECLS
diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
index 870af4a..b362bab 100644
--- a/gnome-session/gsm-manager.c
+++ b/gnome-session/gsm-manager.c
@@ -272,7 +272,7 @@ static void
on_required_app_failure (GsmManager *manager,
GsmApp *app)
{
- gsm_fail_whale_dialog_we_failed ();
+ gsm_fail_whale_dialog_we_failed (FALSE);
}
diff --git a/gnome-session/main.c b/gnome-session/main.c
index d091f7d..e57392a 100644
--- a/gnome-session/main.c
+++ b/gnome-session/main.c
@@ -314,7 +314,7 @@ main (int argc, char **argv)
}
if (please_fail) {
- gsm_fail_whale_dialog_we_failed ();
+ gsm_fail_whale_dialog_we_failed (TRUE);
gtk_main ();
exit (1);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]