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
  Show dependency tree
 
Reported: 2010-04-10 21:30 UTC by André Klapper
Modified: 2010-06-11 11:28 UTC (History)
4 users (show)

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 | Diff | Review
Fix eel for GSEAL (42.57 KB, patch)
2010-06-09 00:35 UTC, Bastien Nocera
reviewed Details | Diff | Review
Fix eel for GSEAL (81.79 KB, patch)
2010-06-09 10:14 UTC, Bastien Nocera
reviewed Details | Diff | Review
Fix libnautilus-private for GSEAL (23.79 KB, patch)
2010-06-09 10:50 UTC, Bastien Nocera
reviewed Details | Diff | Review
Fix libnautilus-private for GSEAL (23.78 KB, patch)
2010-06-09 11:55 UTC, Bastien Nocera
none Details | Diff | 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!

Note You need to log in before you can comment on or make changes to this bug.