@b4n requested changes on this pull request.

Looks mostly OK and harmless, although I'm not fond of the style used to support both GTK versions.
There's a few suspicious thing around the end though.


In debugger/src/cell_renderers/cellrendererbreakicon.c:

>  		return;
+
+	g_object_get_property(G_OBJECT(cell), "is-expander", &is_expander_value);
+	is_expander = g_value_get_boolean(&is_expander_value);
+	g_value_unset(&is_expander_value);

You should probably just use the simpler version: g_object_get(cell, "is-expander", &is_expander, NULL)


In debugger/src/cell_renderers/cellrendererbreakicon.c:

>  	cell_renderer->mode = GTK_CELL_RENDERER_MODE_ACTIVATABLE;
+#endif

Here the GTK3 version would work on GTK2 too


In debugger/src/cell_renderers/cellrendererbreakicon.h:

>  
-  GdkPixbuf *GSEAL (pixbuf_enabled);
-  GdkPixbuf *GSEAL (pixbuf_disabled);
-  GdkPixbuf *GSEAL (pixbuf_conditional);
-  GdkPixbuf *GSEAL (pixbuf_file);
+  GdkPixbuf *pixbuf_enabled;
+  GdkPixbuf *pixbuf_disabled;
+  GdkPixbuf *pixbuf_conditional;
+  GdkPixbuf *pixbuf_file;

I guess this would ideally use a private member: the goal of GSEAL() during GTK3 transition preparation was to "hide" members to callers by mangling their name. The "correct" solution is to use a private, opaque, structure.


In debugger/src/cell_renderers/cellrendererframeicon.h:

>  
-  GdkPixbuf *GSEAL (pixbuf_active);
-  GdkPixbuf *GSEAL (pixbuf_highlighted);
+  GdkPixbuf *pixbuf_active;
+  GdkPixbuf *pixbuf_highlighted;

Same for private


In debugger/src/debug.c:

> @@ -1048,12 +1068,24 @@ void debug_init(void)
 		    NULL);
 	grantpt(pty_master);
 	unlockpt(pty_master);
+#if GTK_CHECK_VERSION(3, 0, 0)
+	pty = vte_pty_new_foreign_sync(pty_master, NULL, NULL);
+	vte_terminal_set_pty(VTE_TERMINAL(terminal), pty);
+	g_object_unref(pty);
+	scrollbar = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(terminal)));
+	gtk_widget_set_can_focus(GTK_WIDGET(scrollbar), FALSE);
+#else
 	vte_terminal_set_pty(VTE_TERMINAL(terminal), pty_master);
 	scrollbar = gtk_vscrollbar_new(GTK_ADJUSTMENT(VTE_TERMINAL(terminal)->adjustment));
 	GTK_WIDGET_UNSET_FLAGS(scrollbar, GTK_CAN_FOCUS);

This line could be using the GTK3 version


In debugger/src/tpage.c:

>  	}
 	g_list_free(modules);
 	gtk_combo_box_set_active(GTK_COMBO_BOX(debugger_cmb), 0);
 
 	/* arguments */
 	args_frame = gtk_frame_new(_("Command Line Arguments"));
+#if GTK_CHECK_VERSION(3, 0, 0)
+	hbox = gtk_scrolled_window_new(
+		gtk_scrollable_get_hadjustment(GTK_SCROLLABLE(args_textview)),
+		gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(args_textview)));
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(hbox), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);

This is weird to be so different between versions, if the view should be in a scrolled window, it probably should be in any case, even if it works OK with GTK2 but shows a GTK3 bug.

Also, args_textview seems ti be used before assignment a few lines down.


In debugger/src/tpage.c:

> @@ -279,8 +336,15 @@ static void tpage_create_widgets(void)
 
 	/* environment */
 	env_frame = gtk_frame_new(_("Environment Variables"));
+#if GTK_CHECK_VERSION(3, 0, 0)
+	hbox = gtk_scrolled_window_new(
+		gtk_scrollable_get_hadjustment(GTK_SCROLLABLE(args_textview)),
+		gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(args_textview)));
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(hbox), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);

same here, and using the adjustment from args_textview seem wrong here, shouldn't it be tree?


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.