[gnome-initial-setup/shell/4765: 151/362] display: hide overscan page when we can't get screen or primary output
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-initial-setup/shell/4765: 151/362] display: hide overscan page when we can't get screen or primary output
- Date: Thu, 19 Mar 2015 01:33:45 +0000 (UTC)
commit cde2eef7622213bbd1e3f6dac9f92734ad4552d5
Author: Cosimo Cecchi <cosimo endlessm com>
Date: Tue Aug 12 10:15:39 2014 -0700
display: hide overscan page when we can't get screen or primary output
Instead of showing a label that is probably not very helpful.
[endlessm/eos-shell#3370]
.../pages/display/gis-display-page.c | 53 +++++++------------
1 files changed, 20 insertions(+), 33 deletions(-)
---
diff --git a/gnome-initial-setup/pages/display/gis-display-page.c
b/gnome-initial-setup/pages/display/gis-display-page.c
index 9c9fc45..36b1b55 100644
--- a/gnome-initial-setup/pages/display/gis-display-page.c
+++ b/gnome-initial-setup/pages/display/gis-display-page.c
@@ -48,7 +48,7 @@ G_DEFINE_TYPE_WITH_PRIVATE (GisDisplayPage, gis_display_page, GIS_TYPE_PAGE);
#define OBJ(type,name) ((type)gtk_builder_get_object(GIS_PAGE(page)->builder,(name)))
#define WID(name) OBJ(GtkWidget*,name)
-static void
+static gboolean
read_screen_config (GisDisplayPage *page)
{
GisDisplayPagePrivate *priv = gis_display_page_get_instance_private (page);
@@ -80,28 +80,14 @@ read_screen_config (GisDisplayPage *page)
}
}
- check_button = WID ("overscan_checkbutton");
-
priv->current_output = output;
if (priv->current_output == NULL)
- {
- GtkWidget *label, *widget;
-
- gtk_widget_hide (check_button);
-
- /* Translators note: this is the same label we use in the
- * Display page of the system settings
- */
- label = gtk_label_new (_("Could not get screen information"));
- widget = WID ("box2");
- gtk_container_add (GTK_CONTAINER (widget), label);
- gtk_widget_show (label);
-
- return;
- }
+ return FALSE;
+ check_button = WID ("overscan_checkbutton");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
gnome_rr_output_info_get_underscanning (output));
+ return TRUE;
}
static void
@@ -156,6 +142,8 @@ gis_display_page_constructed (GObject *object)
GisDisplayPage *page = GIS_DISPLAY_PAGE (object);
GisDisplayPagePrivate *priv = gis_display_page_get_instance_private (page);
GtkWidget *widget;
+ GError *error = NULL;
+ gboolean visible = FALSE;
G_OBJECT_CLASS (gis_display_page_parent_class)->constructed (object);
@@ -165,35 +153,34 @@ gis_display_page_constructed (GObject *object)
/* the page is always complete */
gis_page_set_complete (GIS_PAGE (page), TRUE);
- priv->screen = gnome_rr_screen_new (gdk_screen_get_default (), NULL);
+ priv->screen = gnome_rr_screen_new (gdk_screen_get_default (), &error);
if (priv->screen == NULL)
{
- GtkWidget *label;
-
- widget = WID ("overscan_checkbutton");
- gtk_widget_hide (widget);
-
- /* Translators note: this is the same label we use in the
- * Display page of the system settings
- */
- label = gtk_label_new (_("Could not get screen information"));
- widget = WID ("box2");
- gtk_container_add (GTK_CONTAINER (widget), label);
- gtk_widget_show (label);
+ g_critical ("Could not get screen information: %s. Hiding overscan page.",
+ error->message);
+ g_error_free (error);
+ goto out;
+ }
- return;
+ if (!read_screen_config (page))
+ {
+ g_critical ("Could not get primary output information. Hiding overscan page.");
+ goto out;
}
+ visible = TRUE;
priv->screen_changed_id = g_signal_connect_swapped (priv->screen,
"changed",
G_CALLBACK (read_screen_config),
page);
- read_screen_config (page);
widget = WID ("overscan_checkbutton");
g_signal_connect_swapped (widget, "toggled",
G_CALLBACK (toggle_overscan),
page);
+
+ out:
+ gtk_widget_set_visible (GTK_WIDGET (page), visible);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]