GNOME Bugzilla – Bug 615398
Does not compile with -DGSEAL_ENABLE
Last modified: 2010-06-11 11:28:45 UTC
This module does not build with -DGSEAL_ENABLE. See http://live.gnome.org/GnomeGoals/UseGseal . Note that maybe this report cannot be fixed yet, as GTK+ still misses some accessor functions (see bug 588389, bug 597610) needed for sealing. Also see http://live.gnome.org/GTK%2B/3.0/PendingSealings for current status. The jhbuild output posted here of course only lists the very first error when trying to compile. make[2]: Entering directory `/home/andre/svn-gnome/nautilus/eel' CC eel-accessibility.lo eel-accessibility.c: In function ‘get_simple_text’: eel-accessibility.c:228: error: ‘GtkAccessible’ has no member named ‘widget’ make[2]: *** [eel-accessibility.lo] Error 1
Created attachment 158396 [details] [review] fix Just waiting on vuntz's patch in bug 612509 to go into gtk+.
And we'll nail down the next ones as they come up (eel's probably got a ton of these).
Review of attachment 158396 [details] [review]: This will need GTK+ > 2.20, so we should - wait after we branch gnome-2-30 - wait a new GTK+ release including the fix - bump the requirement for the GTK+ version
Created attachment 163127 [details] [review] Fix eel for GSEAL Partially.
There seems to be no replacement for: GTK_WIDGET_(UN)SET_FLAGS (widget, GTK_HAS_FOCUS); though we might be able to use a private flags instead. And I only did 12 of the eel C files, about twice as many to go just for eel.
(In reply to comment #5) > There seems to be no replacement for: > GTK_WIDGET_(UN)SET_FLAGS (widget, GTK_HAS_FOCUS); There is new api for this: gtk_widget_send_focus_change() Take a look to bug #593671
Review of attachment 163127 [details] [review]: Bastien, thanks for this patch! I inlined some comments below. With those and the other FIXMEs fixed, I think we can merge this to master and eventually improve from there. ::: eel/eel-canvas.c @@ +2382,3 @@ + gtk_layout_get_size (&canvas->layout, &width, &height); + if (scroll_width != (int) width || scroll_height != (int) height) { Please add some brackets here between the two expressions of the if block. @@ +2425,2 @@ + g_signal_emit_by_name (G_OBJECT (hadjustment), "changed"); + g_signal_emit_by_name (G_OBJECT (vadjustment), "changed"); The G_OBJECT() cast can be removed. ::: eel/eel-debug-drawing.c @@ +102,3 @@ { + //FIXME + //GTK_WIDGET_UNSET_FLAGS (viewer, GTK_CAN_FOCUS); You can use gtk_widget_set_can_focus () here.
Created attachment 163180 [details] [review] Fix eel for GSEAL Missing accessor for viewport->view_window
(In reply to comment #7) > Review of attachment 163127 [details] [review]: > > Bastien, thanks for this patch! > I inlined some comments below. With those and the other FIXMEs fixed, I think > we can merge this to master and eventually improve from there. > > ::: eel/eel-canvas.c > @@ +2382,3 @@ > > + gtk_layout_get_size (&canvas->layout, &width, &height); > + if (scroll_width != (int) width || scroll_height != (int) height) { > > Please add some brackets here between the two expressions of the if block. Fixed. > @@ +2425,2 @@ > + g_signal_emit_by_name (G_OBJECT (hadjustment), "changed"); > + g_signal_emit_by_name (G_OBJECT (vadjustment), "changed"); > > The G_OBJECT() cast can be removed. Fixed. > ::: eel/eel-debug-drawing.c > @@ +102,3 @@ > { > + //FIXME > + //GTK_WIDGET_UNSET_FLAGS (viewer, GTK_CAN_FOCUS); > > You can use gtk_widget_set_can_focus () here. Fixed. (In reply to comment #6) > (In reply to comment #5) > > There seems to be no replacement for: > > GTK_WIDGET_(UN)SET_FLAGS (widget, GTK_HAS_FOCUS); > > There is new api for this: gtk_widget_send_focus_change() > > Take a look to bug #593671 Fixed. Still missing an accessor for viewport->view_window.
Review of attachment 163180 [details] [review]: Thanks, your patch looks great. We should wait for the GTK+ bug to be fixed before merging this though. ::: eel/eel-gtk-extensions.c @@ +1125,3 @@ viewport_rect.y = 0; + //FIXME + /* I filed this bug for GTK+. https://bugzilla.gnome.org/show_bug.cgi?id=621081
Created attachment 163185 [details] [review] Fix libnautilus-private for GSEAL Partial fix
Another partial fix. I'm getting a bit bored of this, so somebody should take over.
Review of attachment 163185 [details] [review]: Looks almost perfect from a quick review. ::: libnautilus-private/nautilus-cell-renderer-pixbuf-emblem.c @@ +415,2 @@ pixbuf = cellpixbuf->pixbuf; + g_object_get (G_OBJECT (cell), This cast is useless. ::: libnautilus-private/nautilus-dnd.c @@ +454,3 @@ } + if ( gdk_drag_context_get_suggested_action (context) == GDK_ACTION_ASK) { Extra space before the function call.
Created attachment 163193 [details] [review] Fix libnautilus-private for GSEAL Partial fix
(In reply to comment #13) > Review of attachment 163185 [details] [review]: > > Looks almost perfect from a quick review. > > ::: libnautilus-private/nautilus-cell-renderer-pixbuf-emblem.c > @@ +415,2 @@ > pixbuf = cellpixbuf->pixbuf; > + g_object_get (G_OBJECT (cell), > > This cast is useless. Removed. > ::: libnautilus-private/nautilus-dnd.c > @@ +454,3 @@ > } > > + if ( gdk_drag_context_get_suggested_action (context) == GDK_ACTION_ASK) { > > Extra space before the function call. Fixed. Problem with my sed rules :)
I'm working on this.
I merged a branch to master to fix this completely. I also decided to split these patches in small commits, one per object/C-file, so that if anything went wrong in the migration, we should be able to track down issues with little effort. Closing as FIXED, thanks Bastien for the help!