2017-03-07 97 views
1

我使用gtk在C中製作一個小型圖形程序。將密鑰綁定到GTK應用程序,而不刪除現有密鑰

我成功地創建一個快捷鍵,當我按下亞太經社會按鈕,應用程序退出:

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

您沒有看完我的整個問題。 「我怎樣纔能有鍵盤快捷鍵,而不會破壞按鍵事件的默認行爲?」 – user96649

回答

1

讓您的事件處理程序return FALSE;進一步傳播該事件。由於documentation說:

返回TRUE停止其他處理程序被調用的事件。 FALSE以進一步傳播事件。

+0

這解決了它。謝謝 ! – user96649