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

v2.1 Fixed Chinese input and gtk3 issues for linux packaging

上级 6bd9c28a
......@@ -48,7 +48,6 @@ func createBrowserViewSource(browser *ICefBrowser, frame *ICefFrame) {
m.SetShowInTaskBar()
m.SetWindowType(WT_VIEW_SOURCE)
m.ChromiumCreate(nil, viewSourceUrl)
m.chromium.EnableIndependentEvent()
m.putChromiumWindowInfo()
m.defaultChromiumEvent()
m.SetWidth(1024)
......
......@@ -36,7 +36,7 @@ var (
browserProcessStartAfterCallback browserProcessStartAfterCallbackFunc
)
type browserProcessStartAfterCallbackFunc func(b bool)
type browserProcessStartAfterCallbackFunc func(success bool)
// SetBrowserProcessStartAfterCallback 主进程启动之后回调函数
func SetBrowserProcessStartAfterCallback(callback browserProcessStartAfterCallbackFunc) {
......
此差异已折叠。
......@@ -32,27 +32,13 @@ type ExecuteJS struct {
type IChromium interface {
IChromiumProc
IChromiumEvent
//启用独立事件 默认禁用, 启用后所有默认事件行为将不在主窗口chromium event执行
//
//启用后注册的事件才生效
//
//只对当前chromium对象有效
EnableIndependentEvent()
//禁用独立事件 默认禁用, 禁用后所有默认事件行为在主窗口chromium event执行
//
//禁用后注册的事件才生效
//
//只对当前chromium对象有效
DisableIndependentEvent()
}
type TCEFChromium struct {
*lcl.TComponent
instance unsafe.Pointer
cfg *tCefChromiumConfig
independentEvent bool
emitLock *sync.Mutex
instance unsafe.Pointer
cfg *tCefChromiumConfig
emitLock *sync.Mutex
}
func NewChromium(owner lcl.IComponent, config *tCefChromiumConfig) IChromium {
......@@ -78,16 +64,6 @@ func (m *TCEFChromium) GetBrowserById(browserId int32) *ICefBrowser {
}
}
//启用独立事件 默认 false
func (m *TCEFChromium) EnableIndependentEvent() {
m.independentEvent = true
}
//禁用独立事件 默认 false
func (m *TCEFChromium) DisableIndependentEvent() {
m.independentEvent = false
}
func (m *TCEFChromium) browseEmitJsOnEvent(browseId int32, frameId int64, name string, argumentList ipc.IArgumentList) ProcessMessageError {
data := argumentList.Package()
r1 := _CEFFrame_SendProcessMessage(browseId, frameId, name, PID_RENDER, int32(argumentList.Size()), uintptr(unsafe.Pointer(&data[0])), uintptr(len(data)))
......
......@@ -213,8 +213,6 @@ func (m *tCefTrayForm) createCefTrayWindow() {
m.windowParent.SetAlign(types.AlClient)
m.windowParent.SetAnchors(types.NewSet(types.AkTop, types.AkLeft, types.AkRight, types.AkBottom))
m.chromium = NewChromium(m.windowParent, nil)
//打开独立出事件
m.chromium.EnableIndependentEvent()
m.chromium.SetOnBeforeContextMenu(func(sender lcl.IObject, browser *ICefBrowser, frame *ICefFrame, params *ICefContextMenuParams, model *ICefMenuModel) {
model.Clear()
})
......
......@@ -12,7 +12,6 @@ import (
. "github.com/energye/energy/common"
. "github.com/energye/energy/consts"
"github.com/energye/energy/ipc"
"github.com/energye/energy/logger"
t "github.com/energye/energy/types"
"github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/api"
......@@ -68,11 +67,11 @@ func init() {
return lcl.AsObject(senderPtr), browser, frame, request, response
}
lcl.RegisterExtEventCallback(func(fn interface{}, getVal func(idx int) uintptr) bool {
defer func() {
if err := recover(); err != nil {
logger.Error("CEF Events Error:", err)
}
}()
//defer func() {
// if err := recover(); err != nil {
// logger.Error("CEF Events Error:", err)
// }
//}()
var (
instance unsafe.Pointer
)
......
......@@ -67,7 +67,10 @@ func NewBrowserWindow(config *tCefChromiumConfig, windowProperty *WindowProperty
window.ChromiumCreate(config, windowProperty.Url)
window.putChromiumWindowInfo()
//OnBeforeBrowser 是一个必须的默认事件,在浏览器创建时窗口序号会根据browserId生成
window.Chromium().SetOnBeforeBrowser(func(sender lcl.IObject, browser *ICefBrowser, frame *ICefFrame) bool { return false })
window.Chromium().SetOnBeforeBrowser(func(sender lcl.IObject, browser *ICefBrowser, frame *ICefFrame) bool {
chromiumOnBeforeBrowser(browser, frame)
return false
})
return window
}
......@@ -527,7 +530,6 @@ func (m *LCLBrowserWindow) registerPopupEvent() {
}
BrowserWindow.popupWindow.SetWindowType(consts.WT_POPUP_SUB_BROWSER)
BrowserWindow.popupWindow.ChromiumCreate(BrowserWindow.Config.chromiumConfig, beforePopupInfo.TargetUrl)
BrowserWindow.popupWindow.chromium.EnableIndependentEvent()
BrowserWindow.popupWindow.putChromiumWindowInfo()
BrowserWindow.popupWindow.defaultChromiumEvent()
var result = false
......
......@@ -133,7 +133,8 @@ func AppBrowserInit() {
var browserWindow *cef.LCLBrowserWindow
event.On("js-new-browser-window", func(context ipc.IIPCContext) {
fmt.Println("通过 js ipc emit 事件创建新Browser窗口 ProcessType:", common.Args.ProcessType())
if browserWindow == nil {
if browserWindow == nil || browserWindow.IsClosing() {
wp := cef.NewWindowProperty()
wp.Url = "https://www.baidu.com"
wp.Title = "Browser新窗口标题"
......@@ -141,6 +142,10 @@ func AppBrowserInit() {
browserWindow.SetWidth(800)
browserWindow.SetHeight(600)
browserWindow.SetShowInTaskBar()
browserWindow.EnableDefaultClose()
browserWindow.Chromium().SetOnTitleChange(func(sender lcl.IObject, browser *cef.ICefBrowser, title string) {
fmt.Println(wp.Title, title)
})
}
fmt.Println("\t|--", browserWindow.IsClosing())
cef.QueueAsyncCall(func(id int) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册