+ if (selectable) {
+#if GTK_CHECK_VERSION(2,0,0)
+ struct uctrl *uc = dlg_find_byctrl(&dp, textctrl);
+ gtk_label_set_selectable(GTK_LABEL(uc->text), TRUE);
+
+ /*
+ * GTK selectable labels have a habit of selecting their
+ * entire contents when they gain focus. It's ugly to have
+ * text in a message box start up all selected, so we suppress
+ * this by manually selecting none of it - but we must do this
+ * when the widget _already has_ focus, otherwise our work
+ * will be undone when it gains it shortly.
+ */
+ gtk_widget_grab_focus(uc->text);
+ gtk_label_select_region(GTK_LABEL(uc->text), 0, 0);
+#else
+ (void)textctrl; /* placate warning */
+#endif
+ }
+