[gnome-color-manager] trivial: add gcm_calibrate_dialog_set_move_window() so we only move the calibration window when doin



commit f71373e5a6b232065e83ff6e75cec696b80c549c
Author: Richard Hughes <richard hughsie com>
Date:   Tue Feb 23 11:51:18 2010 +0000

    trivial: add gcm_calibrate_dialog_set_move_window() so we only move the calibration window when doing a display read

 src/gcm-calibrate-argyll.c |    9 +++++++++
 src/gcm-calibrate-dialog.c |   37 +++++++++++++++++++++++++------------
 src/gcm-calibrate-dialog.h |    2 ++
 3 files changed, 36 insertions(+), 12 deletions(-)
---
diff --git a/src/gcm-calibrate-argyll.c b/src/gcm-calibrate-argyll.c
index 6c60618..ecff92e 100644
--- a/src/gcm-calibrate-argyll.c
+++ b/src/gcm-calibrate-argyll.c
@@ -1255,6 +1255,10 @@ gcm_calibrate_argyll_display (GcmCalibrate *calibrate, GtkWindow *window, GError
 	const gchar *title;
 	const gchar *message;
 
+	/* set modal windows up correctly */
+	gcm_calibrate_dialog_set_move_window (priv->calibrate_dialog, TRUE);
+	gcm_calibrate_dialog_set_window (priv->calibrate_dialog, window);
+
 	/* TRANSLATORS: title, hardware refers to a calibration device */
 	title = _("Set up display");
 
@@ -1496,6 +1500,7 @@ gcm_calibrate_argyll_printer (GcmCalibrate *calibrate, GtkWindow *window, GError
 	/* need to ask if we are printing now, or using old data */
 
 	/* set modal windows up correctly */
+	gcm_calibrate_dialog_set_move_window (priv->calibrate_dialog, FALSE);
 	gcm_calibrate_dialog_set_window (priv->calibrate_dialog, window);
 
 	/* step 1 */
@@ -1556,6 +1561,10 @@ gcm_calibrate_argyll_device (GcmCalibrate *calibrate, GtkWindow *window, GError
 	const gchar *title;
 	const gchar *message;
 
+	/* set modal windows up correctly */
+	gcm_calibrate_dialog_set_move_window (priv->calibrate_dialog, FALSE);
+	gcm_calibrate_dialog_set_window (priv->calibrate_dialog, window);
+
 	/* TRANSLATORS: title, hardware refers to a calibration device */
 	title = _("Set up device");
 
diff --git a/src/gcm-calibrate-dialog.c b/src/gcm-calibrate-dialog.c
index 7dee419..c6ebbc2 100644
--- a/src/gcm-calibrate-dialog.c
+++ b/src/gcm-calibrate-dialog.c
@@ -55,6 +55,7 @@ struct _GcmCalibrateDialogPrivate
 	GcmCalibrateReferenceKind	 reference_kind;
 	GtkResponseType			 response;
 	GMainLoop			*loop;
+	gboolean			 move_window;
 };
 
 enum {
@@ -291,9 +292,11 @@ gcm_calibrate_dialog_show (GcmCalibrateDialog		*calibrate_dialog,
 
 	/* move the dialog out of the way, so the grey square doesn't cover it */
 	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "dialog_calibrate"));
-	gtk_window_get_position (GTK_WINDOW (widget), &x, &y);
-	egg_debug ("currently at %i,%i, moving left", x, y);
-	gtk_window_move (GTK_WINDOW (widget), 10, y);
+	if (calibrate_dialog->priv->move_window) {
+		gtk_window_get_position (GTK_WINDOW (widget), &x, &y);
+		egg_debug ("currently at %i,%i, moving left", x, y);
+		gtk_window_move (GTK_WINDOW (widget), 10, y);
+	}
 
 	gtk_widget_show (widget);
 }
@@ -403,14 +406,23 @@ gcm_calibrate_dialog_set_show_expander (GcmCalibrateDialog *calibrate_dialog, gb
 }
 
 /**
+ * gcm_calibrate_dialog_set_move_window:
+ **/
+void
+gcm_calibrate_dialog_set_move_window (GcmCalibrateDialog *calibrate_dialog, gboolean move_window)
+{
+	calibrate_dialog->priv->move_window = move_window;
+}
+
+/**
  * gcm_calibrate_dialog_delete_event_cb:
  **/
-//static gboolean
-//gcm_calibrate_dialog_delete_event_cb (GtkWidget *widget, GdkEvent *event, GcmCalibrateArgyll *calibrate_argyll)
-//{
-//	gcm_calibrate_dialog_cancel_cb (widget, calibrate_argyll);
-//	return FALSE;
-//}
+static gboolean
+gcm_calibrate_dialog_delete_event_cb (GtkWidget *widget, GdkEvent *event, GcmCalibrateDialog *calibrate_dialog)
+{
+	gcm_calibrate_dialog_emit_response (calibrate_dialog, GTK_RESPONSE_CANCEL);
+	return FALSE;
+}
 
 /**
  * gcm_calibrate_dialog_reference_kind_to_thumbnail_image_filename:
@@ -626,6 +638,7 @@ gcm_calibrate_dialog_init (GcmCalibrateDialog *calibrate_dialog)
 
 	calibrate_dialog->priv->device_kind = GCM_CALIBRATE_DEVICE_KIND_UNKNOWN;
 	calibrate_dialog->priv->reference_kind = GCM_CALIBRATE_REFERENCE_KIND_UNKNOWN;
+	calibrate_dialog->priv->move_window = FALSE;
 	calibrate_dialog->priv->loop = g_main_loop_new (NULL, FALSE);
 	calibrate_dialog->priv->cached_dialogs = g_ptr_array_new_with_free_func ((GDestroyNotify)gcm_calibrate_dialog_dialog_free);
 
@@ -637,6 +650,9 @@ gcm_calibrate_dialog_init (GcmCalibrateDialog *calibrate_dialog)
 		g_error_free (error);
 	}
 
+	widget = GTK_WIDGET (gtk_builder_get_object (calibrate_dialog->priv->builder, "dialog_calibrate"));
+	g_signal_connect (widget, "delete_event",
+			  G_CALLBACK (gcm_calibrate_dialog_delete_event_cb), calibrate_dialog);
 	widget = GTK_WIDGET (gtk_builder_get_object (calibrate_dialog->priv->builder, "button_lcd"));
 	g_signal_connect (widget, "clicked",
 			  G_CALLBACK (gcm_calibrate_dialog_button_clicked_lcd_cb), calibrate_dialog);
@@ -659,9 +675,6 @@ gcm_calibrate_dialog_init (GcmCalibrateDialog *calibrate_dialog)
 	gcm_calibrate_dialog_setup_combo_simple_text (widget);
 	g_signal_connect (widget, "changed", G_CALLBACK (gcm_calibrate_dialog_reference_kind_combobox_cb), calibrate_dialog);
 
-//	g_signal_connect (main_window, "delete_event",
-//			  G_CALLBACK (gcm_calibrate_dialog_delete_event_cb), calibrate_argyll);
-
 	/* add the list of charts */
 	for (i = 0; i < GCM_CALIBRATE_REFERENCE_KIND_UNKNOWN; i++) {
 		gtk_combo_box_append_text (GTK_COMBO_BOX (widget),
diff --git a/src/gcm-calibrate-dialog.h b/src/gcm-calibrate-dialog.h
index 63b53db..136a833 100644
--- a/src/gcm-calibrate-dialog.h
+++ b/src/gcm-calibrate-dialog.h
@@ -70,6 +70,8 @@ void			 gcm_calibrate_dialog_show		(GcmCalibrateDialog	*calibrate_dialog,
 								 GcmCalibrateDialogTab	 tab,
 								 const gchar		*title,
 								 const gchar		*message);
+void			 gcm_calibrate_dialog_set_move_window	(GcmCalibrateDialog	*calibrate_dialog,
+								 gboolean		 move_window);
 void			 gcm_calibrate_dialog_set_show_expander	(GcmCalibrateDialog	*calibrate_dialog,
 								 gboolean		 visible);
 void			 gcm_calibrate_dialog_set_show_button_ok (GcmCalibrateDialog	*calibrate_dialog,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]