diff --git a/dlgs_linux.go b/dlgs_linux.go index 49c0023..bbdb41f 100644 --- a/dlgs_linux.go +++ b/dlgs_linux.go @@ -12,16 +12,21 @@ package dialog // return gtk_file_chooser_dialog_new(title, parent, action, "Cancel", GTK_RESPONSE_CANCEL, acceptText, GTK_RESPONSE_ACCEPT, NULL); // } import "C" -import "unsafe" +import ( + "sync" + "unsafe" +) -var initSuccess bool - -func init() { - C.XInitThreads() - initSuccess = (C.gtk_init_check(nil, nil) == C.TRUE) -} +var ( + initSuccess bool + once sync.Once +) func checkStatus() { + once.Do(func() { + C.XInitThreads() + initSuccess = (C.gtk_init_check(nil, nil) == C.TRUE) + }) if !initSuccess { panic("gtk initialisation failed; presumably no X server is available") }