将密钥绑定到GTK应用程序,而不删除现有的

时间:2017-03-07 13:51:32

标签: c gtk

我使用gtk在C中制作一个小型图形程序。

我设法创建了一个键盘快捷键,当我按下escap按钮时,应用程序退出:

gboolean on_key_press (GtkWidget *widget, GdkEventKey *event, gpointer data){
    switch(event->keyval){
        case GDK_Escape:
            gtk_main_quit();
            break;
    }
    return TRUE;
}

当我创建GUI时,我有这个代码来检测按键:

g_signal_connect(G_OBJECT (window), "key_press_event", G_CALLBACK(on_key_press), pCtxt);

问题是,它禁用任何类型的交互,例如使用TAB键选择按钮,甚至在gtk_entry中输入文本。

如何在不破坏按键事件的默认行为的情况下使用键盘快捷键?

1 个答案:

答案 0 :(得分:1)

让事件处理程序return FALSE;进一步传播事件。正如documentation所说:

  

返回TRUE以阻止为该事件调用其他处理程序。 FALSE进一步宣传该事件。