[geany/geany-plugins] 57b473: fixes several bugs (see changelog)
Alexander Petukhov
git-noreply at xxxxx
Wed Apr 4 19:38:53 UTC 2012
Branch: refs/heads/master
Author: Alexander Petukhov <devel at apetukhov.ru>
Committer: Alexander Petukhov <devel at apetukhov.ru>
Date: Wed, 04 Apr 2012 19:38:53
Commit: 57b4736aa5ff7d4793292d3b7831176a08994626
https://github.com/geany/geany-plugins/commit/57b4736aa5ff7d4793292d3b7831176a08994626
Log Message:
-----------
fixes several bugs (see changelog)
Modified Paths:
--------------
debugger/ChangeLog
debugger/TODO
debugger/src/callbacks.c
debugger/src/cell_renderers/cellrendererbreakicon.c
debugger/src/cell_renderers/cellrendererframeicon.c
debugger/src/cell_renderers/cellrenderertoggle.c
debugger/src/debug.c
debugger/src/stree.c
debugger/src/stree.h
Modified: debugger/ChangeLog
2 files changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -5,6 +5,8 @@
* handling spaces in target and breakpoints filenames (gdb)
* fixing memory leaks on gtk_tree_row_reference_get_path and tree/list stores
* fixing SIGSEGV when selecting a cell in custom cell renderers using a keyboard
+ * fixing lack of breakpoint/stack frame markers after plugin unload and load
+ * fixing "jump to current instruction" behaviour (does not change an active frame)
10-03-2012 Alexander Petukhov <devel at apetukhov.ru>
Modified: debugger/TODO
2 files changed, 0 insertions(+), 2 deletions(-)
===================================================================
@@ -1,7 +1,5 @@
BUGS:
- tooltip appears even if a pointer in no longer inside editor window
-- when "Jump to current instruction" - two active frame icons in stack view
-- no icons in stack and breaks after unload/load plugin
FEATURES:
- custom tooltip with sticking facilities
Modified: debugger/src/callbacks.c
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -330,7 +330,7 @@ gboolean keys_callback(guint key_id)
{
debug_jump_to_current_instruction();
gtk_widget_set_sensitive(tab_call_stack, FALSE);
- stree_select_first_frame();
+ stree_select_first_frame(FALSE);
gtk_widget_set_sensitive(tab_call_stack, TRUE);
}
}
Modified: debugger/src/cell_renderers/cellrendererbreakicon.c
42 files changed, 25 insertions(+), 17 deletions(-)
===================================================================
@@ -415,24 +415,32 @@ GType cell_renderer_break_icon_get_type(void)
if(0 == cell_break_icon_type)
{
- static const GTypeInfo cell_break_icon_info =
+ if ( (cell_break_icon_type = g_type_from_name("CellRendererBreakIcon")) )
{
- sizeof (CellRendererBreakIconClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) cell_renderer_break_icon_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (CellRendererBreakIcon),
- 0, /* n_preallocs */
- (GInstanceInitFunc) cell_renderer_break_icon_init,
- };
-
- /* Derive from GtkCellRenderer */
- cell_break_icon_type = g_type_register_static (GTK_TYPE_CELL_RENDERER,
- "CellRendererBreakIcon",
- &cell_break_icon_info,
- 0);
+ parent_class = g_type_class_peek_static(g_type_parent(cell_break_icon_type));
+ clicked_signal = g_signal_lookup("clicked", cell_break_icon_type);
+ }
+ else
+ {
+ static const GTypeInfo cell_break_icon_info =
+ {
+ sizeof (CellRendererBreakIconClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) cell_renderer_break_icon_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (CellRendererBreakIcon),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) cell_renderer_break_icon_init,
+ };
+
+ /* Derive from GtkCellRenderer */
+ cell_break_icon_type = g_type_register_static (GTK_TYPE_CELL_RENDERER,
+ "CellRendererBreakIcon",
+ &cell_break_icon_info,
+ 0);
+ }
}
return cell_break_icon_type;
Modified: debugger/src/cell_renderers/cellrendererframeicon.c
42 files changed, 25 insertions(+), 17 deletions(-)
===================================================================
@@ -315,24 +315,32 @@ GType cell_renderer_frame_icon_get_type(void)
if(0 == cell_frame_icon_type)
{
- static const GTypeInfo cell_frame_icon_info =
+ if ( (cell_frame_icon_type = g_type_from_name("CellRendererFrameIcon")) )
{
- sizeof (CellRendererFrameIconClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) cell_renderer_frame_icon_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (CellRendererFrameIcon),
- 0, /* n_preallocs */
- (GInstanceInitFunc) cell_renderer_frame_icon_init,
- };
-
- /* Derive from GtkCellRenderer */
- cell_frame_icon_type = g_type_register_static (GTK_TYPE_CELL_RENDERER,
- "CellRendererFrameIcon",
- &cell_frame_icon_info,
- 0);
+ parent_class = g_type_class_peek_static(g_type_parent(cell_frame_icon_type));
+ clicked_signal = g_signal_lookup("clicked", cell_frame_icon_type);
+ }
+ else
+ {
+ static const GTypeInfo cell_frame_icon_info =
+ {
+ sizeof (CellRendererFrameIconClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) cell_renderer_frame_icon_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (CellRendererFrameIcon),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) cell_renderer_frame_icon_init,
+ };
+
+ /* Derive from GtkCellRenderer */
+ cell_frame_icon_type = g_type_register_static (GTK_TYPE_CELL_RENDERER,
+ "CellRendererFrameIcon",
+ &cell_frame_icon_info,
+ 0);
+ }
}
return cell_frame_icon_type;
Modified: debugger/src/cell_renderers/cellrenderertoggle.c
8 files changed, 4 insertions(+), 4 deletions(-)
===================================================================
@@ -70,9 +70,9 @@ static void cell_renderer_toggle_class_init (GtkCellRendererToggleClass *class)
*/
GType cell_renderer_toggle_get_type(void)
{
- static GType cell_brekpoint_type = 0;
+ static GType cell_break_toggle_type = 0;
- if(0 == cell_brekpoint_type)
+ if(0 == cell_break_toggle_type && !(cell_break_toggle_type = g_type_from_name("CellRendererToggle")))
{
static const GTypeInfo cell_file_info =
{
@@ -88,13 +88,13 @@ GType cell_renderer_toggle_get_type(void)
};
/* Derive from GtkToggleCellRenderer */
- cell_brekpoint_type = g_type_register_static (GTK_TYPE_CELL_RENDERER_TOGGLE,
+ cell_break_toggle_type = g_type_register_static (GTK_TYPE_CELL_RENDERER_TOGGLE,
"CellRendererToggle",
&cell_file_info,
0);
}
- return cell_brekpoint_type;
+ return cell_break_toggle_type;
}
/*
Modified: debugger/src/debug.c
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -679,7 +679,7 @@ static void on_debugger_stopped (int thread_id)
stree_add(f);
iter = g_list_next(iter);
}
- stree_select_first_frame();
+ stree_select_first_frame(TRUE);
/* files */
GList *files = active_module->get_files();
Modified: debugger/src/stree.c
12 files changed, 7 insertions(+), 5 deletions(-)
===================================================================
@@ -136,7 +136,7 @@ static gboolean on_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean key
}
else if (column == gtk_tree_view_get_column(GTK_TREE_VIEW(widget), S_ADRESS && bx >= start_pos && bx < start_pos + width))
{
- gtk_tooltip_set_text(tooltip, gtk_tree_path_get_indices(tpath)[1] == active_frame_index ? _("Active frame") : _("Switch to a frame"));
+ gtk_tooltip_set_text(tooltip, gtk_tree_path_get_indices(tpath)[1] == active_frame_index ? _("Active frame") : _("Click an arrow to switch to a frame"));
gtk_tree_view_set_tooltip_row(GTK_TREE_VIEW(widget), tooltip, tpath);
show = TRUE;
}
@@ -440,7 +440,7 @@ void stree_clear()
/*
* select first frame in the stack
*/
-void stree_select_first_frame()
+void stree_select_first_frame(gboolean make_active)
{
gtk_tree_view_expand_all(GTK_TREE_VIEW(tree));
@@ -451,7 +451,11 @@ void stree_select_first_frame()
gtk_tree_path_free(active_path);
if(gtk_tree_model_iter_children(model, &frame_iter, &thread_iter))
{
- gtk_tree_store_set (store, &frame_iter, S_ACTIVE, TRUE, -1);
+ if (make_active)
+ {
+ gtk_tree_store_set (store, &frame_iter, S_ACTIVE, TRUE, -1);
+ active_frame_index = 0;
+ }
GtkTreePath* path = gtk_tree_model_get_path(model, &frame_iter);
@@ -460,8 +464,6 @@ void stree_select_first_frame()
path);
gtk_tree_path_free(path);
-
- active_frame_index = 0;
}
}
Modified: debugger/src/stree.h
2 files changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -28,7 +28,7 @@
void stree_add_thread(int thread_id);
void stree_remove_thread(int thread_id);
-void stree_select_first_frame();
+void stree_select_first_frame(gboolean make_active);
void stree_remove_frames();
void stree_set_active_thread_id(int thread_id);
@@ Diff output truncated at 100000 characters. @@
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
More information about the Plugins-Commits
mailing list