首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取Gtk::Socket内嵌入窗口的焦点

获取Gtk::Socket内嵌入窗口的焦点
EN

Stack Overflow用户
提问于 2014-04-30 09:02:06
回答 1查看 801关注 0票数 1

我已经将gvim嵌入到Gtk::套接字中,该套接字放置在Gtk::Box中,如何才能将焦点集中到嵌入的gvim窗口,从而实现与实际指向和单击嵌入窗口相同的目的?

在Gtk::Socket小部件上使用->grab_focus()没有任何效果。

根据XEMBED规范(http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html#idm139742761059984),似乎嵌入器( Gtk::Socket )应该向子节点发送XEMBED_FOCUS_INXEMBED_WINDOW_ACTIVATE信号,但是在Gtk::Socket中似乎没有接口。

在这里可以找到基于Gtk::Plug和Gtk::Socket示例的简单示例:https://github.com/gauteh/plug-socket-grab-focus

如果这是一个bug,报告如下:bug.cgi?id=729248

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-01 14:03:06

现在有两种方法来实现这一点,一种是使用bug.cgi?id=729248中提供的修补程序:gtk_socket_focus_forward (),它向GtkSocket添加了一个gtk_socket_focus_forward ()方法。调用它将聚焦Gtk::Plug窗口中的第一个小部件。

使用gtk_socket_focus_forward的示例可以在从标准示例改编的示例的前支中找到。

第二种方法是发送Gtk::DIR_TAB_FORWARD信号,就像在邮寄名单上描述的那样,类似的例子可以在转发分支中找到。

这涉及以下方面:

代码语言:javascript
复制
socket->set_can_focus (true);
socket->child_focus (Gtk::DIR_TAB_FORWARD);

该方法确实与gtk_socket_focus_forward的可能略有不同,但似乎做到了这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23383901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档