我曾嘗試這樣的:如何在gtk3中獲得一個活動的gtk窗口?
gdk_screen_get_active_window(gdk_screen_get_default());
但它返回GDK窗口,這不是我想要的。
原因需要GTK是我想通過獲取活動窗口的位置:
gtk_widget_get_allocation
人知道如何做到這一點?
我曾嘗試這樣的:如何在gtk3中獲得一個活動的gtk窗口?
gdk_screen_get_active_window(gdk_screen_get_default());
但它返回GDK窗口,這不是我想要的。
原因需要GTK是我想通過獲取活動窗口的位置:
gtk_widget_get_allocation
人知道如何做到這一點?
這種方法是right.Maybe你可以叫gdk_screen_get_default()
獲得GdkScreen找到它是否爲null或not.If它不爲空,也許,問題是這樣的:
GTK+3.0 API of gdk-screen-get-active-window
因爲thie方法在我的系統中運行成功。
它是接近正確的位置
贏= gdk_screen_get_active_window(gdk_screen_get_default());
gdk_window_get_position(win,NULL,& title_h);
gdk_window_get_root_origin(win,& win_x,& win_y);
win_width = gdk_window_get_width(win);
win_height = gdk_window_get_height(win);
你可以定義什麼活動窗口的含義?它是你的應用程序中當前有輸入焦點(或可能最後有輸入焦點)的窗口? – jku
最後在系統中有輸入焦點 – cxl
如果您正在嘗試使用另一個應用程序窗口,則無法獲得GtkWindow ...首先,該應用程序可能無法使用Gtk構建,因此功能不在此處(而且,您也沒有業務查看或修改其他應用的內部信息)。事實上,您可以在沒有特殊權限的情況下獲取其他應用程序窗口的任何信息,這基本上是窗口系統中的一個設計錯誤。 – jku