[evolution/express2-reduced-preferences] Hack the row spacing of a single-row table



commit 287cb76b70650be2d10ee437a6920f87f4cbff8a
Author: Federico Mena Quintero <federico novell com>
Date:   Sat Apr 17 16:39:49 2010 -0500

    Hack the row spacing of a single-row table
    
    The table for the Time preferences in the calendar's General preferences page,
    when Evo runs in Express mode, has only a single row of visible widgets;
    all the other rows are hidden in Express mode.  However, GTK+ 2.20 and earlier
    will include row spacings even for empty rows in GtkTable (or those that only
    have invisible widgets).  Since that table has only a single visible row
    in Express mode, we hack its row spacing to be 0 so that we don't get any
    extra spacing in that case.
    
    Signed-off-by: Federico Mena Quintero <federico novell com>

 calendar/gui/dialogs/cal-prefs-dialog.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.c b/calendar/gui/dialogs/cal-prefs-dialog.c
index f8ea87a..ae50ab9 100644
--- a/calendar/gui/dialogs/cal-prefs-dialog.c
+++ b/calendar/gui/dialogs/cal-prefs-dialog.c
@@ -785,6 +785,17 @@ calendar_prefs_dialog_construct (CalendarPrefsDialog *prefs,
 	/* Hide senseless preferences when running in Express mode */
 	e_shell_hide_widgets_for_express_mode (shell, prefs->builder, "/apps/evolution/calendar/express_preferences_hidden");
 
+	/* HACK:  GTK+ 2.18 and 2.20 has a GtkTable which includes row/column spacing even for empty rows/columns.
+	 * When Evo runs in Express mode, we hide all the rows in the Time section of the calendar's General
+	 * preferences page.  However, due to that behavior in GTK+, we get a lot of extra spacing in that
+	 * section.  Since we know that in Express mode we only leave a single row visible, we'll make the
+	 * table's row spacing equal to 0 in that case.
+	 */
+	if (e_shell_get_express_mode (shell)) {
+		widget = e_builder_get_widget (prefs->builder, "time");
+		gtk_table_set_row_spacings (GTK_TABLE (widget), 0);
+	}
+
 	/* Hook up and add the toplevel widget */
 	
 	target = e_cal_config_target_new_prefs (ec, prefs->gconf);



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