GNOME Bugzilla – Bug 582018
[3.0] Fix GtkWindow-related deprecations
Last modified: 2010-09-11 19:26:38 UTC
gtk+ currently does not build with GSEAL enabled, so in an effort to remedy this I will be posting a series of patches to resolve it. In order to keep it somewhat manageable I'll do this roughly per-widget. This is the first, GtkWindow. Anything that is GSEAL'd is moved into GtkWindowPrivate. Anything that gets moved here that is depended upon elsewhere in gtk+ gets new API added. This means that things that were in GtkWindow public struct which are not needed to build gtk+ did not receive new API in this patch, and I'm aware of that and would rather address that later and make this current effort about getting gtk+ building. New API added: G_CONST_RETURN gchar *gtk_window_get_wmclass_name (GtkWindow *window); G_CONST_RETURN gchar *gtk_window_get_wmclass_class (GtkWindow *window); void gtk_window_set_window_type (GtkWindow *window, GtkWindowType window_type); GtkWindowType gtk_window_get_window_type (GtkWindow *window); GdkWindow *gtk_window_get_frame (GtkWindow *window);
Created attachment 134327 [details] [review] Proposed patch
Also, I need to add API documentation for the new functions. One question about that is what I should list for the "since" version.. not sure if this would go into git HEAD or if it should go into another branch.
> Anything that is GSEAL'd is moved into GtkWindowPrivate. Wait - whats the purpose of the whole GSEAL macro dance then ? My understanding was that stuff is left in place, so that defining away GSEAL would keep old code building ? How is that going to work if you move stuff to private structs ?
But when you enable GSEAL those fields get renamed, so nothing will build and the real data must exist somewhere internally I think. Maybe I'm getting ahead of myself though. Maybe the next step is simply to introduce the new APIs and have them work from window->foo instead of private->foo. I'll talk to mitch or timj and find out if I'm going about this right or not.
Hello Cody, Is there any consensus about this?
This is fixed in current master now.