GtkRevealer会破坏文本视图

时间:2018-05-04 07:30:12

标签: c windows windows-7 gtk visual-glitch

在我的程序开发过程中,我遇到了一个我无法解决的绘图故障。我正在使用GtkRevealer来显示和隐藏GtkInfoBar,在另一个盒子上方,其中包含一个带有GtkTextView(实际上是GtkSourceView)的滚动窗口,就像在gedit中一样。 整件事都是用GtkPaned打包的。

当我通过显示器隐藏信息栏时,文本视图中会出现一个黑色区域,当必须重新绘制窗口小部件时它会消失(例如,当我单击文本视图放置光标时) 此外,如果我放大窗口的默认分辨率,则出现此故障,出于兼容性原因,该分辨率为640x480。 我知道这可能很难再现,但我不知道谁遇到了同样的问题。他可能知道这个问题的解决方法。 也欢迎任何想法。 我将准确地绘制gedit上的毛刺看起来如何(虽然它不会发生在gedit中,但确实如此,但我无法达到正确的分辨率)。 enter image description here

我试图用gtk_widget_queue_draw()强制重绘,但没有任何反应,也没有,因为它没有任何重绘。 我现在将尝试自动放置光标。它可能有用,但功能不足。 修改 令人惊讶的是它没有用。抓住焦点并放置光标 对于有问题的视觉行为没有影响。我甚至不得不换个新台词 这次修理它。 我必须使用超过特定点的值来调整窗口大小的事实可能意味着毛刺可能是由于对齐错误计算造成的,但这并不能解释为什么在阴沟中添加新线或文本标记会使颜色化整条线也会移除黑场。

1 个答案:

答案 0 :(得分:0)

目前在另一个带有文本视图的程序中遇到过这个错误,但还没有被报告为bug。 也许这与它难以复制的事实有关。

我发现用gtk_widget_hide()隐藏gtk文本视图,然后用gtk_widget_show()显示它。这种视觉故障的闪烁并不明显,可能是由于GTK +是基于事件的,并且等待函数返回到过程变化。