提交 b622b966 编写于 作者: yanghye's avatar yanghye

Ready to fix some problems on linux

上级 d95c7a1b
......@@ -23,6 +23,7 @@ import (
//CEF应用对象
type TCEFApplication struct {
instance unsafe.Pointer
cfg *tCefApplicationConfig
}
//创建CEF应用程序
......@@ -31,9 +32,18 @@ func NewCEFApplication(cfg *tCefApplicationConfig) *TCEFApplication {
cfg = NewApplicationConfig()
}
cfg.framework()
//linux >= 107.xxx 版本以后,默认不支持GTK2,同时GTK2又无法正常输入中文
//顾强制使用GTK3方式,但又无法正常创建lcl组件到窗口中,该框架只是对浏览器应用做封装
//所以尽量以正常使用为基准
if IsLinux() {
cfg.SetExternalMessagePump(false)
cfg.SetMultiThreadedMessageLoop(false)
}
m := new(TCEFApplication)
r1, _, _ := Proc(internale_CEFApplication_Create).Call(uintptr(unsafe.Pointer(cfg)))
m.instance = unsafe.Pointer(r1)
m.cfg = cfg
return m
}
......
......@@ -14,6 +14,7 @@ import (
"github.com/energye/energy/ipc"
"github.com/energye/energy/logger"
"github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/api"
"sync"
)
......@@ -104,6 +105,8 @@ func Run(cefApp *TCEFApplication) {
cefApp.StartSubProcess()
cefApp.Free()
} else {
isMessageLoop := !api.GoBool(cefApp.cfg.externalMessagePump) && !api.GoBool(cefApp.cfg.multiThreadedMessageLoop)
b := cefApp.StartMainProcess()
if b {
internalBrowserIPCOnEventInit()
......@@ -114,7 +117,11 @@ func Run(cefApp *TCEFApplication) {
browserProcessStartAfterCallback(b)
}
if b {
lcl.RunApp(&BrowserWindow.mainBrowserWindow)
if isMessageLoop {
cefApp.RunMessageLoop()
} else {
lcl.RunApp(&BrowserWindow.mainBrowserWindow)
}
}
}
}
......
......@@ -10,7 +10,7 @@ func main() {
//创建应用
cefApp := cef.NewApplication(nil)
//指定一个URL地址,或本地html文件目录
cef.BrowserWindow.Config.DefaultUrl = "https://energy.yanghy.cn"
cef.BrowserWindow.Config.DefaultUrl = "https://www.baidu.com"
//运行应用
cef.Run(cefApp)
}
......@@ -20,7 +20,6 @@ func main() {
config := cef.NewApplicationConfig()
config.SetMultiThreadedMessageLoop(false)
config.SetExternalMessagePump(false)
config.SetChromeRuntime(false)
application := cef.NewCEFApplication(config)
application.SetOnContextCreated(func(browser *cef.ICefBrowser, frame *cef.ICefFrame, context *cef.ICefV8Context) bool {
fmt.Println("OnContextCreated")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册