在GtkScrolledWindow或GtkEventBox上绘画
使用GTK,我试图在GtkScrolledWindow
包含的GtkTextView
的角落覆盖一个“更多”提示(但它也可以是任何绘图对象)。 我在处理程序中绘制文本视图的expose
信号的提示。 它可以工作,但是当我滚动窗口时,我得到了工件:提示随文本视图的内容一起移动而不会被删除。
为了消除伪影,我在每次滚动后触发重绘。 这大部分都有效,但是当你快速滚动时,你仍然可以看到提示上下跳动。 有什么办法可以防止这种情况吗? 如果提示只是“浮动”在文本视图的顶部,那将是很好的。
我尝试将滚动窗口封闭在GtkEventBox
并在其上绘制提示,但这也不起作用; 滚动条和文本视图总是在提示上绘制,即使您将事件框的窗口设置为在其子窗口前面也是如此。
UPDATE
如果我使用g_signal_connect_after()
连接GtkEventBox
的公开回调,那么在GtkScrolledWindow
和GtkTextView
的公开回调之后调用它。 尽管文本视图仍然覆盖了事件框。 我认为这是因为滚动是异步发生的。 有人知道如何防止我的图画被覆盖吗?
另一个更新
所以我想我真正需要的是在异步滚动完成时连接的信号。 如果我能找到它的时间,那么我可以在GtkEventBox
上触发另一个公开事件。 滚动完成后如何收到通知?
使用弹出窗口提示。 这应该避免滚动工件的所有问题。