diff options
author | Jakob Bornecrantz <jakob@vmware.com> | 2009-06-06 03:24:21 +0100 |
---|---|---|
committer | Jakob Bornecrantz <jakob@vmware.com> | 2009-06-06 03:24:21 +0100 |
commit | 359805d723586ba39c83cadf481a04e8ae8ce674 (patch) | |
tree | f734ee8a3c213fc9b0c164c2bc6c3cfa0f94aed7 | |
parent | f742e71f20f2720fa6678014637051e2f75d384a (diff) |
Add flush button
-rw-r--r-- | res/main.xml | 11 | ||||
-rw-r--r-- | src/context.c | 15 | ||||
-rw-r--r-- | src/main.c | 3 | ||||
-rw-r--r-- | src/program.h | 1 |
4 files changed, 30 insertions, 0 deletions
diff --git a/res/main.xml b/res/main.xml index c208043..8f8e485 100644 --- a/res/main.xml +++ b/res/main.xml @@ -77,6 +77,17 @@ </packing> </child> <child> + <object class="GtkToolButton" id="tool_flush"> + <property name="label" translatable="yes">Flush</property> + <property name="use_underline">True</property> + <property name="stock_id">gtk-convert</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> <object class="GtkSeparatorToolItem" id="tool_separator"/> <packing> <property name="expand">False</property> diff --git a/src/context.c b/src/context.c index 3ecd64f..2ed0cf8 100644 --- a/src/context.c +++ b/src/context.c @@ -116,6 +116,17 @@ static void step(GtkWidget *widget, struct program *p) RBUG_BLOCK_BEFORE | RBUG_BLOCK_AFTER, NULL); } +static void flush(GtkWidget *widget, struct program *p) +{ + (void)widget; + + rbug_send_context_flush(p->rbug.con, p->selected.id, + PIPE_FLUSH_TEXTURE_CACHE | + PIPE_FLUSH_RENDER_CACHE, NULL); + + context_start_info_action(p->selected.id, &p->selected.iter, FALSE, p); +} + static gboolean blocked(struct rbug_event *e, struct rbug_header *h, struct program *p) { struct rbug_proto_context_draw_blocked *b = (struct rbug_proto_context_draw_blocked *)h; @@ -177,6 +188,7 @@ void context_unselected(struct program *p) gtk_widget_hide(p->tool.break_before); gtk_widget_hide(p->tool.break_after); gtk_widget_hide(p->tool.step); + gtk_widget_hide(p->tool.flush); gtk_widget_hide(p->tool.separator); for (i = 0; i < CTX_VIEW_NUM; i++) @@ -184,6 +196,7 @@ void context_unselected(struct program *p) g_signal_handler_disconnect(p->tool.step, p->context.sid[12]); g_signal_handler_disconnect(p->tool.break_before, p->context.sid[13]); g_signal_handler_disconnect(p->tool.break_after, p->context.sid[14]); + g_signal_handler_disconnect(p->tool.flush, p->context.sid[15]); } void context_selected(struct program *p) @@ -196,11 +209,13 @@ void context_selected(struct program *p) p->context.sid[12] = g_signal_connect(p->tool.step, "clicked", G_CALLBACK(step), p); p->context.sid[13] = g_signal_connect(p->tool.break_before, "toggled", G_CALLBACK(break_before), p); p->context.sid[14] = g_signal_connect(p->tool.break_after, "toggled", G_CALLBACK(break_after), p); + p->context.sid[15] = g_signal_connect(p->tool.flush, "clicked", G_CALLBACK(flush), p); gtk_widget_show(p->main.context_view); gtk_widget_show(p->tool.break_before); gtk_widget_show(p->tool.break_after); gtk_widget_show(p->tool.step); + gtk_widget_show(p->tool.flush); gtk_widget_show(p->tool.separator); context_start_info_action(p->selected.id, &p->selected.iter, FALSE, p); @@ -369,6 +369,7 @@ void main_window_create(struct program *p) GObject *tool_break_before; GObject *tool_break_after; GObject *tool_step; + GObject *tool_flush; GObject *tool_separator; GObject *tool_back; @@ -403,6 +404,7 @@ void main_window_create(struct program *p) tool_break_before = gtk_builder_get_object(builder, "tool_break_before"); tool_break_after = gtk_builder_get_object(builder, "tool_break_after"); tool_step = gtk_builder_get_object(builder, "tool_step"); + tool_flush = gtk_builder_get_object(builder, "tool_flush"); tool_separator = gtk_builder_get_object(builder, "tool_separator"); tool_back = gtk_builder_get_object(builder, "tool_back"); @@ -448,6 +450,7 @@ void main_window_create(struct program *p) p->tool.break_before = GTK_WIDGET(tool_break_before); p->tool.break_after = GTK_WIDGET(tool_break_after); p->tool.step = GTK_WIDGET(tool_step); + p->tool.flush = GTK_WIDGET(tool_flush); p->tool.separator = GTK_WIDGET(tool_separator); p->tool.back = GTK_WIDGET(tool_back); diff --git a/src/program.h b/src/program.h index 51e40bf..c49101e 100644 --- a/src/program.h +++ b/src/program.h @@ -118,6 +118,7 @@ struct program GtkWidget *break_before; GtkWidget *break_after; GtkWidget *step; + GtkWidget *flush; GtkWidget *separator; GtkWidget *back; |