enforcing construct only properties and gnome-session



Hey,
	Tim's GObject change which enforces construct-only properties (i.e.
doesn't allow them to be set after construction) has at least one
serious consequence in GNOME.

	gnome-session's logout dialog creates a override_redirect dialog by:

  box = gtk_dialog_new ();
  g_object_set_property (box, "type", GTK_WINDOW_POPUP, NULL);

	which, because "type" is a CONSTRUCT_ONLY property, now fails. Because
gnome-session maps this window with the server grabbed, the end result
is that if you upgrade to gtk+ 2.3.1 without upgrading your
gnome-session[1] clicking "Log Out" will cause your session to lock up.

	I'm assuming that because this property has always been CONSTRUCT_ONLY
- hence, gnome-session was always in the wrong to use it this way - we
shouldn't consider this an incompatible API change in gtk+/glib? Seems
like its a very similar situation to when gtk+ 2.1 made it impossible to
instantiate a GtkWidget, which cause breakage in libgnomeui.

Cheers,
Mark.

[1] - To gnome-session >= 2.4.2 or gnome-session >= 2.5.3, both of which
I'll release later today.




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