SF.net SVN: geany-plugins:[371] trunk/geanygdb/src/gdb-ui-main.c

eht16 at users.sourceforge.net eht16 at xxxxx
Tue Jan 6 19:08:11 UTC 2009


Revision: 371
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=371&view=rev
Author:   eht16
Date:     2009-01-06 19:08:11 +0000 (Tue, 06 Jan 2009)

Log Message:
-----------
Make the debug window in the sidebar scrollable to avoid display glitches in case the window allocates too much space (patch by Cameron Hart, thanks).

Modified Paths:
--------------
    trunk/geanygdb/src/gdb-ui-main.c

Modified: trunk/geanygdb/src/gdb-ui-main.c
===================================================================
--- trunk/geanygdb/src/gdb-ui-main.c	2009-01-05 20:29:51 UTC (rev 370)
+++ trunk/geanygdb/src/gdb-ui-main.c	2009-01-06 19:08:11 UTC (rev 371)
@@ -21,7 +21,7 @@
 
 GdbUiSetup gdbui_setup;
 
-static GtkWidget *vbox;
+static GtkWidget *main_vbox;
 static GtkWidget *action_area;
 static GtkWidget *stat_lab;
 
@@ -72,7 +72,7 @@
 void
 gdbui_enable(gboolean enabled)
 {
-	gtk_widget_set_sensitive(vbox, enabled);
+	gtk_widget_set_sensitive(main_vbox, enabled);
 }
 
 
@@ -771,7 +771,7 @@
 
 
 #define split1 split(action_area)
-#define split2 split(vbox)
+#define split2 split(main_vbox)
 
 
 //#define splitw gtk_widget_new(GTK_TYPE_BIN,NULL)
@@ -791,18 +791,26 @@
 gdbui_create_widgets(GtkWidget * parent)
 {
 	GtkWidget *w = NULL;
-	vbox = gtk_vbox_new(FALSE, 0);
+	GtkWidget *scrollable;
+
+	scrollable = gtk_scrolled_window_new(NULL, NULL);
+	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollable), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+	gtk_widget_show(scrollable);
+
 	if (parent)
 	{
-		gtk_container_add(GTK_CONTAINER(parent), vbox);
+		gtk_container_add(GTK_CONTAINER(parent), scrollable);
 	}
 
+	main_vbox = gtk_vbox_new(FALSE, 0);
+
+	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrollable), main_vbox);
+
 	split2 stat_lab = gtk_label_new(_("no program"));
-	gtk_box_pack_start(GTK_BOX(vbox), stat_lab, FALSE, FALSE, 4);
-	gtk_widget_show(vbox);
+	gtk_box_pack_start(GTK_BOX(main_vbox), stat_lab, FALSE, FALSE, 4);
 
 	action_area = gtk_vbox_new(FALSE, 0);
-	gtk_box_pack_start(GTK_BOX(vbox), action_area, FALSE, FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(main_vbox), action_area, FALSE, FALSE, 0);
 	gtk_widget_show(action_area);
 	load_btn =
 		make_btn(_("_Load"), load_click, GTK_STOCK_OPEN, _("Load target program into debugger."));
@@ -898,7 +906,7 @@
 
 	split1;
 
-	w = vbox;
+	w = main_vbox;
 	term_chk = gtk_check_button_new_with_label(_("Run in terminal"));
 	gtk_box_pack_start(GTK_BOX(w), term_chk, FALSE, FALSE, 0);
 	gdbui_set_tip(term_chk, _("Execute target program inside a terminal window."));
@@ -916,13 +924,13 @@
 	con_lab = gtk_label_new(_("Console:"));
 	gdbui_set_tip(con_lab, _("Send a GDB command directly to the debugger."));
 	gtk_misc_set_alignment(GTK_MISC(con_lab), 0.0f, 0.0f);
-	gtk_box_pack_start(GTK_BOX(vbox), con_lab, FALSE, FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(main_vbox), con_lab, FALSE, FALSE, 0);
 
 	con_cmd = gtk_entry_new();
 	g_signal_connect(G_OBJECT(con_cmd), "activate", G_CALLBACK(entry_activate), NULL);
-	gtk_box_pack_start(GTK_BOX(vbox), con_cmd, FALSE, FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(main_vbox), con_cmd, FALSE, FALSE, 0);
 
-	gtk_widget_show_all(vbox);
+	gtk_widget_show_all(main_vbox);
 
 	gdbio_setup.error_func = err_func;
 	gdbio_setup.signal_func = signal_func;
@@ -932,7 +940,7 @@
 	last_used = load_btn;
 	status_func(curr_status);
 
-	return vbox;
+	return main_vbox;
 }
 
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Plugins-Commits mailing list