2015-06-11 41 views
0

有沒有簡單的方法來找出以前的焦點小部件是什麼?Gtk焦點的歷史?

假設我有兩個(或更多)TextView(A和B)和一個ComboBoxEntry。對ComboBoxEntry所做的任何更改都會根據焦點控件(A或B)修改A或B中的當前選擇。問題是,ComboBoxEntry抓住焦點,所以我不知道我是否必須將更改應用到A或B上。

如果我知道最後一個重點對象,它可以工作。

現在我幾乎無法想象爲我的應用程序中的每個小部件添加焦點處理程序,只是爲了能夠在ComboBoxEntry獲得焦點之前檢測哪個焦點是最後一個焦點。

任何人都可以幫忙嗎?

謝謝。

回答

0

我到底做了accros我的主窗口跟蹤對焦的變化,但它原來是非常簡單的:

在頂層窗口,覆蓋的onSetFocus:

protected override void OnSetFocus(Widget focus) 
{ 
    // Queue focus in a two entries queue (a simple array will do) 
    // So this queue will always contain : Current Widget, last Widget. 
} 

現在,當我的組合框與條目觸發OnChange,它產生一個事件的兩個TextViews,這反過來讀取我的隊列,並確定哪個是焦點元素之前,他們失去了Combobox的焦點。