diff --git a/libgnome-control-center/cc-editable-entry.c b/libgnome-control-center/cc-editable-entry.c index 8c35f210a..297d7eb14 100644 --- a/libgnome-control-center/cc-editable-entry.c +++ b/libgnome-control-center/cc-editable-entry.c @@ -32,6 +32,7 @@ struct _CcEditableEntryPrivate { gchar *text; gboolean editable; + gboolean selectable; gint weight; gboolean weight_set; gdouble scale; @@ -46,6 +47,7 @@ enum { PROP_0, PROP_TEXT, PROP_EDITABLE, + PROP_SELECTABLE, PROP_SCALE, PROP_SCALE_SET, PROP_WEIGHT, @@ -122,6 +124,29 @@ cc_editable_entry_get_editable (CcEditableEntry *e) return e->priv->editable; } +void +cc_editable_entry_set_selectable (CcEditableEntry *e, + gboolean selectable) +{ + CcEditableEntryPrivate *priv; + + priv = e->priv; + + if (priv->selectable != selectable) { + priv->selectable = selectable; + + gtk_label_set_selectable (priv->label, selectable); + + g_object_notify (G_OBJECT (e), "selectable"); + } +} + +gboolean +cc_editable_entry_get_selectable (CcEditableEntry *e) +{ + return e->priv->selectable; +} + static void update_entry_font (GtkWidget *widget, CcEditableEntry *e) @@ -247,6 +272,9 @@ cc_editable_entry_set_property (GObject *object, case PROP_EDITABLE: cc_editable_entry_set_editable (e, g_value_get_boolean (value)); break; + case PROP_SELECTABLE: + cc_editable_entry_set_selectable (e, g_value_get_boolean (value)); + break; case PROP_WEIGHT: cc_editable_entry_set_weight (e, g_value_get_int (value)); break; @@ -282,6 +310,10 @@ cc_editable_entry_get_property (GObject *object, g_value_set_boolean (value, cc_editable_entry_get_editable (e)); break; + case PROP_SELECTABLE: + g_value_set_boolean (value, + cc_editable_entry_get_selectable (e)); + break; case PROP_WEIGHT: g_value_set_int (value, cc_editable_entry_get_weight (e)); @@ -344,6 +376,12 @@ cc_editable_entry_class_init (CcEditableEntryClass *class) FALSE, G_PARAM_READWRITE)); + g_object_class_install_property (object_class, PROP_SELECTABLE, + g_param_spec_boolean ("selectable", + "Selectable", "Whether the text can be selected by mouse", + FALSE, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, PROP_WEIGHT, g_param_spec_int ("weight", "Font Weight", "The font weight to use", diff --git a/libgnome-control-center/cc-editable-entry.h b/libgnome-control-center/cc-editable-entry.h index 2906d6121..7d91cf051 100644 --- a/libgnome-control-center/cc-editable-entry.h +++ b/libgnome-control-center/cc-editable-entry.h @@ -52,20 +52,23 @@ struct _CcEditableEntryClass void (* editing_done) (CcEditableEntry *entry); }; -GType cc_editable_entry_get_type (void) G_GNUC_CONST; -GtkWidget *cc_editable_entry_new (void); -void cc_editable_entry_set_text (CcEditableEntry *entry, - const gchar *text); -const gchar *cc_editable_entry_get_text (CcEditableEntry *entry); -void cc_editable_entry_set_editable (CcEditableEntry *entry, - gboolean editable); -gboolean cc_editable_entry_get_editable (CcEditableEntry *entry); -void cc_editable_entry_set_weight (CcEditableEntry *entry, - gint weight); -gint cc_editable_entry_get_weight (CcEditableEntry *entry); -void cc_editable_entry_set_scale (CcEditableEntry *entry, - gdouble scale); -gdouble cc_editable_entry_get_scale (CcEditableEntry *entry); +GType cc_editable_entry_get_type (void) G_GNUC_CONST; +GtkWidget *cc_editable_entry_new (void); +void cc_editable_entry_set_text (CcEditableEntry *entry, + const gchar *text); +const gchar *cc_editable_entry_get_text (CcEditableEntry *entry); +void cc_editable_entry_set_editable (CcEditableEntry *entry, + gboolean editable); +gboolean cc_editable_entry_get_editable (CcEditableEntry *entry); +void cc_editable_entry_set_selectable (CcEditableEntry *entry, + gboolean selectable); +gboolean cc_editable_entry_get_selectable (CcEditableEntry *entry); +void cc_editable_entry_set_weight (CcEditableEntry *entry, + gint weight); +gint cc_editable_entry_get_weight (CcEditableEntry *entry); +void cc_editable_entry_set_scale (CcEditableEntry *entry, + gdouble scale); +gdouble cc_editable_entry_get_scale (CcEditableEntry *entry); G_END_DECLS diff --git a/panels/printers/cc-printers-panel.c b/panels/printers/cc-printers-panel.c index e4fad1367..d220f381a 100644 --- a/panels/printers/cc-printers-panel.c +++ b/panels/printers/cc-printers-panel.c @@ -2560,6 +2560,16 @@ cc_printers_panel_init (CcPrintersPanel *self) gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); + /* Make model label and ip-address label selectable */ + widget = (GtkWidget*) + gtk_builder_get_object (priv->builder, "printer-ip-address-label"); + cc_editable_entry_set_selectable (CC_EDITABLE_ENTRY (widget), TRUE); + + widget = (GtkWidget*) + gtk_builder_get_object (priv->builder, "printer-model-label"); + cc_editable_entry_set_selectable (CC_EDITABLE_ENTRY (widget), TRUE); + + /* Add unlock button */ priv->permission = (GPermission *)polkit_permission_new_sync ( "org.opensuse.cupspkhelper.mechanism.all-edit", NULL, NULL, NULL);