Gdk-WARNING **:/ build /...... / gdkdrawable-x11.c:952 drawable不是像素图或窗口

时间:2012-04-25 08:51:03

标签: x11 ubuntu-11.10 sublimetext gdk pixmap

我的操作系统是Ubuntu 11.10,我从终端启动Sublime Text 2,每当我操作它时,这个Gdk警告将显示在终端上,这非常烦人。如何解决?

$ subl . &
[1] 4294
$ 
(subl:4294): Gdk-WARNING **: /build/buildd/gtk+2.0-2.24.6/gdk/x11/gdkdrawable-x11.c:952 drawable is not a pixmap or window
(subl:4294): Gdk-WARNING **: /build/buildd/gtk+2.0-2.24.6/gdk/x11/gdkdrawable-x11.c:952 drawable is not a pixmap or window
(subl:4294): Gdk-WARNING **: /build/buildd/gtk+2.0-2.24.6/gdk/x11/gdkdrawable-x11.c:952 drawable is not a pixmap or window

3 个答案:

答案 0 :(得分:3)

要解决此问题,您必须查看应用程序的源代码,修复它并重新编译它。 Gdk正在发出警告,但可能是因为应用程序误用了库。

不幸的是,在Gtk +应用程序上看到这些错误有点常见......太糟糕了一些开发人员不关心修复它们......

另一种解决方案是启动应用将其stdout和/或stderr重定向到其他地方:subl . > /dev/null 2>&1 &

答案 1 :(得分:2)

我知道这个老问题,但万一其他人被这个错误所困扰。之所以会发生这种情况,是因为该程序使用gtk的input methods api,粗略地说,它允许您将中文和日文字符输入到输入窗口小部件中。 api不容易使用,并且存在许多陷阱。见http://lists.maemo.org/pipermail//maemo-developers/2006-January/002337.html

在这种情况下,程序很可能不会使用已实现的gdk窗口调用gtk_im_context_set_client_window。这是正确使用api的要求,但文档并不是那么清楚。然后,您在每个按键时都会收到上述警告,但如果您实际上正在运行IBus守护程序,则。大多数人没有任何用处,因为他们不需要输入亚洲字符,所以他们永远不会看到警告。

答案 2 :(得分:1)

对于一个非常古老的问题的另一个答案,但是在从wxpython 2.8升级到wxpython 3.0之后我遇到了同样的问题。
问题似乎源于gtk.gtk.Drawable(),它可能略微改变了它处理窗口标识的方式或者wxpython 3.0如何处理窗口Id的请求。
要访问曾经工作的窗口Id(在Linux上)GetHandle(),它不再用,而是在上面的问题中得到错误。您现在必须使用GetId()

引用gtk手册:

Attributes
"handle"    Read    The handle of the MS Windows window associated with the drawable. Not supported on X11.
"xid"   Read    The id of the X window available with the drawable. Not supported on MS Windows

我很欣赏这不是一个wxpython问题,但如果以其他方式使用gtk,则适用相同的规则。