我正在尝试编写一个简短的C程序,使所有程序在单击Apply时都重新加载GTK + 2主题,就像LXAppearance一样。
通过查看LXAppearance的源代码,我发现了一个可以执行此操作的函数。在gtk-theme-switch中也发现了相同的功能(没有仅适用于LXSession的if-else)。
这是作为单独程序编写的代码:
#include <gtk/gtk.h>
int main()
{
GdkEventClient event;
event.type = GDK_CLIENT_EVENT;
event.send_event = TRUE;
event.window = NULL;
event.message_type = gdk_atom_intern("_GTK_READ_RCFILES", FALSE);
event.data_format = 8;
gdk_event_send_clientmessage_toall((GdkEvent*)&event);
}
运行程序时出现以下错误:
(process:3428): Gdk-CRITICAL **: 21:38:49.599: IA__gdk_screen_get_root_window: assertion 'GDK_IS_SCREEN (screen)' failed
Segmentation fault (core dumped)
我在做什么错了?