0
我正在尝试使用全系统模态属性创建GtkDialog,即当对话框打开时,没有其他窗口应该获得焦点。有一个选项可以使用GtkDialogFlag使它成为模态,但这不是系统范围的模态。GTK中的系统模式对话框
我正在尝试使用全系统模态属性创建GtkDialog,即当对话框打开时,没有其他窗口应该获得焦点。有一个选项可以使用GtkDialogFlag使它成为模态,但这不是系统范围的模态。GTK中的系统模式对话框
这是一个完全的可怕的的想法,但你可以覆盖你的窗口的“焦点出事件”处理程序,并呼吁gtk_window_present
。
喜欢的东西gksu作用:
static gboolean focus_out_cb (GtkWidget *widget, GdkEventFocus *event, gpointer user_data) { gtk_window_present (GTK_WINDOW(widget)); return TRUE; } //in your initialization code for your window... /* make sure that our window will always have the focus */ g_signal_connect (G_OBJECT(mywindow), "focus-out-event", G_CALLBACK(focus_out_cb), NULL);
此希望有,如果你的应用程序确实冻结,聚焦出事件的信号可能不会被处理的好处。我不确定GTK如何进行UI线程化,但我认为这应该是事实。
坏主意。如果您的应用程序冻结而无法使用系统监视器或终端来终止它,该怎么办?在他回答你的模态对话框之前,你的用户*不能做任何其他事情是非常重要的吗? – BoltClock 2010-09-02 19:20:43
实际上,我正在实现关闭和重新启动的对话框。所以我需要该用户不应该关注其他任何东西,除非回答对话。 – Durgesh 2010-09-03 07:29:18