mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2025-12-31 20:36:25 +00:00
libsysprof-gtk: use shortcut controller for actions
This commit is contained in:
@ -227,32 +227,6 @@ functions_selection_changed_cb (SysprofCallgraphView *self,
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
sysprof_callgraph_view_key_pressed_cb (GtkTreeExpander *expander,
|
||||
guint keyval,
|
||||
guint keycode,
|
||||
GdkModifierType state,
|
||||
GtkEventControllerKey *controller)
|
||||
{
|
||||
GtkTreeListRow *row;
|
||||
|
||||
g_assert (GTK_IS_TREE_EXPANDER (expander));
|
||||
g_assert (GTK_IS_EVENT_CONTROLLER_KEY (controller));
|
||||
|
||||
row = gtk_tree_expander_get_list_row (expander);
|
||||
|
||||
if (keyval == GDK_KEY_space)
|
||||
gtk_tree_list_row_set_expanded (row, !gtk_tree_list_row_get_expanded (row));
|
||||
else if (keyval == GDK_KEY_Right)
|
||||
gtk_tree_list_row_set_expanded (row, TRUE);
|
||||
else if (keyval == GDK_KEY_Left)
|
||||
gtk_tree_list_row_set_expanded (row, FALSE);
|
||||
else
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static char *
|
||||
format_time_offset (gpointer cell)
|
||||
{
|
||||
@ -385,7 +359,6 @@ sysprof_callgraph_view_class_init (SysprofCallgraphViewClass *klass)
|
||||
gtk_widget_class_bind_template_child (widget_class, SysprofCallgraphView, scrolled_window);
|
||||
gtk_widget_class_bind_template_child (widget_class, SysprofCallgraphView, traceable_column_view);
|
||||
gtk_widget_class_bind_template_child (widget_class, SysprofCallgraphView, traceables_column_view);
|
||||
gtk_widget_class_bind_template_callback (widget_class, sysprof_callgraph_view_key_pressed_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, format_time_offset);
|
||||
|
||||
klass->augment_size = GLIB_SIZEOF_VOID_P;
|
||||
|
||||
@ -124,14 +124,32 @@
|
||||
<template class="GtkListItem">
|
||||
<property name="child">
|
||||
<object class="GtkTreeExpander" id="expander">
|
||||
<child>
|
||||
<object class="GtkShortcutController">
|
||||
<property name="propagation-phase">capture</property>
|
||||
<child>
|
||||
<object class="GtkShortcut">
|
||||
<property name="trigger">Right</property>
|
||||
<property name="action">action(listitem.expand)</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcut">
|
||||
<property name="trigger">space</property>
|
||||
<property name="action">action(listitem.expand)</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkShortcut">
|
||||
<property name="trigger">Left</property>
|
||||
<property name="action">action(listitem.collapse)</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<binding name="list-row">
|
||||
<lookup name="item">GtkListItem</lookup>
|
||||
</binding>
|
||||
<child>
|
||||
<object class="GtkEventControllerKey" id="key_controller">
|
||||
<signal name="key-pressed" handler="sysprof_callgraph_view_key_pressed_cb" object="expander" swapped="true"/>
|
||||
</object>
|
||||
</child>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="hexpand">true</property>
|
||||
|
||||
Reference in New Issue
Block a user