After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 615398 - Does not compile with -DGSEAL_ENABLE
Does not compile with -DGSEAL_ENABLE
Status: RESOLVED FIXED
Product: nautilus
Classification: Core
Component: general
2.30.x
Other Linux
: Normal normal
: ---
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on: 612509 621081
Blocks: 585391 620995
 
 
Reported: 2010-04-10 21:30 UTC by André Klapper
Modified: 2010-06-11 11:28 UTC
See Also:
GNOME target: 3.0
GNOME version: 2.29/2.30


Attachments
fix (478 bytes, patch)
2010-04-10 23:12 UTC, A. Walton
reviewed Details | Review
Fix eel for GSEAL (42.57 KB, patch)
2010-06-09 00:35 UTC, Bastien Nocera
reviewed Details | Review
Fix eel for GSEAL (81.79 KB, patch)
2010-06-09 10:14 UTC, Bastien Nocera
reviewed Details | Review
Fix libnautilus-private for GSEAL (23.79 KB, patch)
2010-06-09 10:50 UTC, Bastien Nocera
reviewed Details | Review
Fix libnautilus-private for GSEAL (23.78 KB, patch)
2010-06-09 11:55 UTC, Bastien Nocera
none Details | Review

Description André Klapper 2010-04-10 21:30:51 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
Comment 1 A. Walton 2010-04-10 23:12:25 UTC
Created attachment 158396 [details] [review]
fix

Just waiting on vuntz's patch in bug 612509 to go into gtk+.
Comment 2 A. Walton 2010-04-10 23:13:28 UTC
And we'll nail down the next ones as they come up (eel's probably got a ton of these).
Comment 3 Cosimo Cecchi 2010-04-11 01:36:52 UTC
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
Comment 4 Bastien Nocera 2010-06-09 00:35:02 UTC
Created attachment 163127 [details] [review]
Fix eel for GSEAL

Partially.
Comment 5 Bastien Nocera 2010-06-09 00:38:26 UTC
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.
Comment 6 Javier Jardón (IRC: jjardon) 2010-06-09 00:51:23 UTC
(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
Comment 7 Cosimo Cecchi 2010-06-09 08:29:13 UTC
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.
Comment 8 Bastien Nocera 2010-06-09 10:14:04 UTC
Created attachment 163180 [details] [review]
Fix eel for GSEAL

Missing accessor for viewport->view_window
Comment 9 Bastien Nocera 2010-06-09 10:15:03 UTC
(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.
Comment 10 Cosimo Cecchi 2010-06-09 10:39:00 UTC
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
Comment 11 Bastien Nocera 2010-06-09 10:50:30 UTC
Created attachment 163185 [details] [review]
Fix libnautilus-private for GSEAL

Partial fix
Comment 12 Bastien Nocera 2010-06-09 10:51:45 UTC
Another partial fix. I'm getting a bit bored of this, so somebody should take over.
Comment 13 Cosimo Cecchi 2010-06-09 11:46:50 UTC
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.
Comment 14 Bastien Nocera 2010-06-09 11:55:27 UTC
Created attachment 163193 [details] [review]
Fix libnautilus-private for GSEAL

Partial fix
Comment 15 Bastien Nocera 2010-06-09 11:56:01 UTC
(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 :)
Comment 16 Cosimo Cecchi 2010-06-10 16:48:47 UTC
I'm working on this.
Comment 17 Cosimo Cecchi 2010-06-11 11:28:45 UTC
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!