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

This commit is contained in:
杨红岩 2023-01-05 21:21:18 +08:00
parent 6bd9c28aa5
commit 530387c534
8 changed files with 158 additions and 179 deletions

View File

@ -48,7 +48,6 @@ func createBrowserViewSource(browser *ICefBrowser, frame *ICefFrame) {
m.SetShowInTaskBar() m.SetShowInTaskBar()
m.SetWindowType(WT_VIEW_SOURCE) m.SetWindowType(WT_VIEW_SOURCE)
m.ChromiumCreate(nil, viewSourceUrl) m.ChromiumCreate(nil, viewSourceUrl)
m.chromium.EnableIndependentEvent()
m.putChromiumWindowInfo() m.putChromiumWindowInfo()
m.defaultChromiumEvent() m.defaultChromiumEvent()
m.SetWidth(1024) m.SetWidth(1024)

View File

@ -36,7 +36,7 @@ var (
browserProcessStartAfterCallback browserProcessStartAfterCallbackFunc browserProcessStartAfterCallback browserProcessStartAfterCallbackFunc
) )
type browserProcessStartAfterCallbackFunc func(b bool) type browserProcessStartAfterCallbackFunc func(success bool)
// SetBrowserProcessStartAfterCallback 主进程启动之后回调函数 // SetBrowserProcessStartAfterCallback 主进程启动之后回调函数
func SetBrowserProcessStartAfterCallback(callback browserProcessStartAfterCallbackFunc) { func SetBrowserProcessStartAfterCallback(callback browserProcessStartAfterCallbackFunc) {

View File

@ -12,7 +12,6 @@ import (
. "github.com/energye/energy/common" . "github.com/energye/energy/common"
"github.com/energye/golcl/lcl" "github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/api" "github.com/energye/golcl/lcl/api"
"reflect"
) )
//chromium 事件行为 //chromium 事件行为
@ -65,181 +64,181 @@ type IChromiumEvent interface {
// Event // Event
func (m *TCEFChromium) SetOnAfterCreated(fn ChromiumEventOnAfterCreated) { func (m *TCEFChromium) SetOnAfterCreated(fn ChromiumEventOnAfterCreated) {
_CEFChromium_SetOnAfterCreated(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnAfterCreated(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnBeforeBrowser(fn ChromiumEventOnBeforeBrowser) { func (m *TCEFChromium) SetOnBeforeBrowser(fn ChromiumEventOnBeforeBrowser) {
_CEFChromium_SetOnBeforeBrowser(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnBeforeBrowser(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnAddressChange(fn ChromiumEventOnAddressChange) { func (m *TCEFChromium) SetOnAddressChange(fn ChromiumEventOnAddressChange) {
_CEFChromium_SetOnAddressChange(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnAddressChange(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnBeforeClose(fn ChromiumEventOnBeforeClose) { func (m *TCEFChromium) SetOnBeforeClose(fn ChromiumEventOnBeforeClose) {
_CEFChromium_SetOnBeforeClose(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnBeforeClose(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnClose(fn ChromiumEventOnClose) { func (m *TCEFChromium) SetOnClose(fn ChromiumEventOnClose) {
_CEFChromium_SetOnClose(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnClose(m.Instance(), fn)
} }
// pdf // pdf
func (m *TCEFChromium) SetOnPdfPrintFinished(fn ChromiumEventOnResult) { func (m *TCEFChromium) SetOnPdfPrintFinished(fn ChromiumEventOnResult) {
_CEFChromium_SetOnPdfPrintFinished(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnPdfPrintFinished(m.Instance(), fn)
} }
// chromiumEvent zoom // chromiumEvent zoom
func (m *TCEFChromium) SetOnZoomPctAvailable(fn ChromiumEventOnResultFloat) { func (m *TCEFChromium) SetOnZoomPctAvailable(fn ChromiumEventOnResultFloat) {
_CEFChromium_SetOnZoomPctAvailable(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnZoomPctAvailable(m.Instance(), fn)
} }
// load loading // load loading
func (m *TCEFChromium) SetOnLoadStart(fn ChromiumEventOnLoadStart) { func (m *TCEFChromium) SetOnLoadStart(fn ChromiumEventOnLoadStart) {
_CEFChromium_SetOnLoadStart(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnLoadStart(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnLoadingStateChange(fn ChromiumEventOnLoadingStateChange) { func (m *TCEFChromium) SetOnLoadingStateChange(fn ChromiumEventOnLoadingStateChange) {
_CEFChromium_SetOnLoadingStateChange(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnLoadingStateChange(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnLoadingProgressChange(fn ChromiumEventOnLoadingProgressChange) { func (m *TCEFChromium) SetOnLoadingProgressChange(fn ChromiumEventOnLoadingProgressChange) {
_CEFChromium_SetOnLoadingProgressChange(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnLoadingProgressChange(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnLoadError(fn ChromiumEventOnLoadError) { func (m *TCEFChromium) SetOnLoadError(fn ChromiumEventOnLoadError) {
_CEFChromium_SetOnLoadError(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnLoadError(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnLoadEnd(fn ChromiumEventOnLoadEnd) { func (m *TCEFChromium) SetOnLoadEnd(fn ChromiumEventOnLoadEnd) {
_CEFChromium_SetOnLoadEnd(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnLoadEnd(m.Instance(), fn)
} }
// download // download
func (m *TCEFChromium) SetOnBeforeDownload(fn ChromiumEventOnBeforeDownload) { func (m *TCEFChromium) SetOnBeforeDownload(fn ChromiumEventOnBeforeDownload) {
_CEFChromium_SetOnBeforeDownload(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnBeforeDownload(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnDownloadUpdated(fn ChromiumEventOnDownloadUpdated) { func (m *TCEFChromium) SetOnDownloadUpdated(fn ChromiumEventOnDownloadUpdated) {
_CEFChromium_SetOnDownloadUpdated(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnDownloadUpdated(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnFullScreenModeChange(fn ChromiumEventOnFullScreenModeChange) { func (m *TCEFChromium) SetOnFullScreenModeChange(fn ChromiumEventOnFullScreenModeChange) {
_CEFChromium_SetOnFullScreenModeChange(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnFullScreenModeChange(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnKeyEvent(fn ChromiumEventOnKeyEvent) { func (m *TCEFChromium) SetOnKeyEvent(fn ChromiumEventOnKeyEvent) {
_CEFChromium_SetOnKeyEvent(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnKeyEvent(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnTitleChange(fn ChromiumEventOnTitleChange) { func (m *TCEFChromium) SetOnTitleChange(fn ChromiumEventOnTitleChange) {
_CEFChromium_SetOnTitleChange(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnTitleChange(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnRenderCompMsg(fn ChromiumEventOnRenderCompMsg) { func (m *TCEFChromium) SetOnRenderCompMsg(fn ChromiumEventOnRenderCompMsg) {
_CEFChromium_SetOnRenderCompMsg(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnRenderCompMsg(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnRenderProcessTerminated(fn ChromiumEventOnRenderProcessTerminated) { func (m *TCEFChromium) SetOnRenderProcessTerminated(fn ChromiumEventOnRenderProcessTerminated) {
_CEFChromium_SetOnRenderProcessTerminated(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnRenderProcessTerminated(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnRenderViewReady(fn ChromiumEventOnCefBrowser) { func (m *TCEFChromium) SetOnRenderViewReady(fn ChromiumEventOnCefBrowser) {
_CEFChromium_SetOnRenderViewReady(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnRenderViewReady(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnScrollOffsetChanged(fn ChromiumEventOnScrollOffsetChanged) { func (m *TCEFChromium) SetOnScrollOffsetChanged(fn ChromiumEventOnScrollOffsetChanged) {
_CEFChromium_SetOnScrollOffsetChanged(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnScrollOffsetChanged(m.Instance(), fn)
} }
// 进程间通信消息接收 // 进程间通信消息接收
func (m *TCEFChromium) SetOnProcessMessageReceived(fn BrowseProcessMessageReceived) { func (m *TCEFChromium) SetOnProcessMessageReceived(fn BrowseProcessMessageReceived) {
_CEFChromium_SetOnProcessMessageReceived(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnProcessMessageReceived(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnFindResult(fn ChromiumEventOnFindResult) { func (m *TCEFChromium) SetOnFindResult(fn ChromiumEventOnFindResult) {
_CEFChromium_SetOnFindResult(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnFindResult(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnBeforeResourceLoad(fn ChromiumEventOnBeforeResourceLoad) { func (m *TCEFChromium) SetOnBeforeResourceLoad(fn ChromiumEventOnBeforeResourceLoad) {
_CEFChromium_SetOnBeforeResourceLoad(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnBeforeResourceLoad(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnResourceResponse(fn ChromiumEventOnResourceResponse) { func (m *TCEFChromium) SetOnResourceResponse(fn ChromiumEventOnResourceResponse) {
_CEFChromium_SetOnResourceResponse(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnResourceResponse(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnResourceRedirect(fn ChromiumEventOnResourceRedirect) { func (m *TCEFChromium) SetOnResourceRedirect(fn ChromiumEventOnResourceRedirect) {
_CEFChromium_SetOnResourceRedirect(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnResourceRedirect(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnResourceLoadComplete(fn ChromiumEventOnResourceLoadComplete) { func (m *TCEFChromium) SetOnResourceLoadComplete(fn ChromiumEventOnResourceLoadComplete) {
_CEFChromium_SetOnResourceLoadComplete(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnResourceLoadComplete(m.Instance(), fn)
} }
// cookie begin // cookie begin
func (m *TCEFChromium) SetOnCookieSet(fn ChromiumEventOnCookieSet) { func (m *TCEFChromium) SetOnCookieSet(fn ChromiumEventOnCookieSet) {
_CEFChromium_SetOnCookieSet(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnCookieSet(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnCookiesDeleted(fn ChromiumEventOnCookiesDeleted) { func (m *TCEFChromium) SetOnCookiesDeleted(fn ChromiumEventOnCookiesDeleted) {
_CEFChromium_SetOnCookiesDeleted(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnCookiesDeleted(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnCookiesFlushed(fn ChromiumEventOnCookiesFlushed) { func (m *TCEFChromium) SetOnCookiesFlushed(fn ChromiumEventOnCookiesFlushed) {
_CEFChromium_SetOnCookiesFlushed(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnCookiesFlushed(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnCookiesVisited(fn ChromiumEventOnCookiesVisited) { func (m *TCEFChromium) SetOnCookiesVisited(fn ChromiumEventOnCookiesVisited) {
_CEFChromium_SetOnCookiesVisited(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnCookiesVisited(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnCookieVisitorDestroyed(fn ChromiumEventOnCookieVisitorDestroyed) { func (m *TCEFChromium) SetOnCookieVisitorDestroyed(fn ChromiumEventOnCookieVisitorDestroyed) {
_CEFChromium_SetOnCookieVisitorDestroyed(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnCookieVisitorDestroyed(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnBeforeContextMenu(fn ChromiumEventOnBeforeContextMenu) { func (m *TCEFChromium) SetOnBeforeContextMenu(fn ChromiumEventOnBeforeContextMenu) {
_CEFChromium_SetOnBeforeContextMenu(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnBeforeContextMenu(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnContextMenuCommand(fn ChromiumEventOnContextMenuCommand) { func (m *TCEFChromium) SetOnContextMenuCommand(fn ChromiumEventOnContextMenuCommand) {
if api.GoBool(m.cfg.enableMenu) { if api.GoBool(m.cfg.enableMenu) {
_CEFChromium_SetOnContextMenuCommand(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnContextMenuCommand(m.Instance(), fn)
} }
} }
func (m *TCEFChromium) SetOnContextMenuDismissed(fn ChromiumEventOnContextMenuDismissed) { func (m *TCEFChromium) SetOnContextMenuDismissed(fn ChromiumEventOnContextMenuDismissed) {
if api.GoBool(m.cfg.enableMenu) { if api.GoBool(m.cfg.enableMenu) {
_CEFChromium_SetOnContextMenuDismissed(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnContextMenuDismissed(m.Instance(), fn)
} }
} }
// frame附加连接 // frame附加连接
func (m *TCEFChromium) SetOnFrameAttached(fn ChromiumEventOnFrameAttached) { func (m *TCEFChromium) SetOnFrameAttached(fn ChromiumEventOnFrameAttached) {
_CEFChromium_SetOnFrameAttached(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnFrameAttached(m.Instance(), fn)
} }
// frame创建 // frame创建
func (m *TCEFChromium) SetOnFrameCreated(fn ChromiumEventOnFrameCreated) { func (m *TCEFChromium) SetOnFrameCreated(fn ChromiumEventOnFrameCreated) {
_CEFChromium_SetOnFrameCreated(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnFrameCreated(m.Instance(), fn)
} }
// 当前frame离开 // 当前frame离开
func (m *TCEFChromium) SetOnFrameDetached(fn ChromiumEventOnFrameDetached) { func (m *TCEFChromium) SetOnFrameDetached(fn ChromiumEventOnFrameDetached) {
_CEFChromium_SetOnFrameDetached(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnFrameDetached(m.Instance(), fn)
} }
// 主frame被改变 // 主frame被改变
func (m *TCEFChromium) SetOnMainFrameChanged(fn ChromiumEventOnMainFrameChanged) { func (m *TCEFChromium) SetOnMainFrameChanged(fn ChromiumEventOnMainFrameChanged) {
_CEFChromium_SetOnMainFrameChanged(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnMainFrameChanged(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnBeforePopup(fn ChromiumEventOnBeforePopup) { func (m *TCEFChromium) SetOnBeforePopup(fn ChromiumEventOnBeforePopup) {
_CEFChromium_SetOnBeforePopup(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnBeforePopup(m.Instance(), fn)
} }
func (m *TCEFChromium) SetOnOpenUrlFromTab(fn ChromiumEventOnOpenUrlFromTab) { func (m *TCEFChromium) SetOnOpenUrlFromTab(fn ChromiumEventOnOpenUrlFromTab) {
_CEFChromium_SetOnOpenUrlFromTab(m.Instance(), fn, m.independentEvent) _CEFChromium_SetOnOpenUrlFromTab(m.Instance(), fn)
} }
// --------TCEFChromium Event proc begin-------- // --------TCEFChromium Event proc begin--------
@ -247,225 +246,226 @@ func (m *TCEFChromium) SetOnOpenUrlFromTab(fn ChromiumEventOnOpenUrlFromTab) {
// 解决事件重复 // 解决事件重复
var chromiumOnEventIdMapping = map[string]uintptr{} var chromiumOnEventIdMapping = map[string]uintptr{}
func chromiumOnEventNameToId(fn interface{}, independentEvent bool) uintptr { func chromiumOnEventNameToId(fn interface{}) uintptr {
var eventId uintptr return api.MakeEventDataPtr(fn)
if independentEvent { //var eventId uintptr
eventId = api.MakeEventDataPtr(fn) //if independentEvent {
} else { // eventId = api.MakeEventDataPtr(fn)
var ( //} else {
name = reflect.ValueOf(fn).Type().Name() // var (
ok bool // name = reflect.ValueOf(fn).Type().Name()
) // ok bool
if eventId, ok = chromiumOnEventIdMapping[name]; !ok { // )
eventId = api.MakeEventDataPtr(fn) // if eventId, ok = chromiumOnEventIdMapping[name]; !ok {
chromiumOnEventIdMapping[name] = eventId // eventId = api.MakeEventDataPtr(fn)
} // chromiumOnEventIdMapping[name] = eventId
} // }
return eventId //}
//return eventId
} }
func _CEFChromium_SetOnAfterCreated(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnAfterCreated(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnAfterCreated).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnAfterCreated).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnBeforeClose // TCEFChromium _CEFChromium_SetOnBeforeClose
func _CEFChromium_SetOnBeforeClose(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnBeforeClose(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnBeforeClose).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnBeforeClose).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnClose // TCEFChromium _CEFChromium_SetOnClose
func _CEFChromium_SetOnClose(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnClose(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnClose).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnClose).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnPdfPrintFinished // TCEFChromium _CEFChromium_SetOnPdfPrintFinished
func _CEFChromium_SetOnPdfPrintFinished(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnPdfPrintFinished(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnPdfPrintFinished).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnPdfPrintFinished).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnZoomPctAvailable // TCEFChromium _CEFChromium_SetOnZoomPctAvailable
func _CEFChromium_SetOnZoomPctAvailable(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnZoomPctAvailable(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnZoomPctAvailable).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnZoomPctAvailable).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnLoadStart // TCEFChromium _CEFChromium_SetOnLoadStart
func _CEFChromium_SetOnLoadStart(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnLoadStart(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnLoadStart).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnLoadStart).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnLoadingStateChange // TCEFChromium _CEFChromium_SetOnLoadingStateChange
func _CEFChromium_SetOnLoadingStateChange(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnLoadingStateChange(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnLoadingStateChange).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnLoadingStateChange).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnLoadingProgressChange // TCEFChromium _CEFChromium_SetOnLoadingProgressChange
func _CEFChromium_SetOnLoadingProgressChange(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnLoadingProgressChange(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnLoadingProgressChange).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnLoadingProgressChange).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnLoadError // TCEFChromium _CEFChromium_SetOnLoadError
func _CEFChromium_SetOnLoadError(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnLoadError(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnLoadError).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnLoadError).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnLoadEnd // TCEFChromium _CEFChromium_SetOnLoadEnd
func _CEFChromium_SetOnLoadEnd(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnLoadEnd(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnLoadEnd).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnLoadEnd).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnBeforeDownload // TCEFChromium _CEFChromium_SetOnBeforeDownload
func _CEFChromium_SetOnBeforeDownload(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnBeforeDownload(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnBeforeDownload).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnBeforeDownload).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnDownloadUpdated // TCEFChromium _CEFChromium_SetOnDownloadUpdated
func _CEFChromium_SetOnDownloadUpdated(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnDownloadUpdated(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnDownloadUpdated).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnDownloadUpdated).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnFullScreenModeChange // TCEFChromium _CEFChromium_SetOnFullScreenModeChange
func _CEFChromium_SetOnFullScreenModeChange(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnFullScreenModeChange(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnFullScreenModeChange).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnFullScreenModeChange).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnBeforeBrowser // TCEFChromium _CEFChromium_SetOnBeforeBrowser
func _CEFChromium_SetOnBeforeBrowser(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnBeforeBrowser(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnBeforeBrowse).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnBeforeBrowse).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnAddressChange // TCEFChromium _CEFChromium_SetOnAddressChange
func _CEFChromium_SetOnAddressChange(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnAddressChange(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnAddressChange).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnAddressChange).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnKeyEvent // TCEFChromium _CEFChromium_SetOnKeyEvent
func _CEFChromium_SetOnKeyEvent(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnKeyEvent(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnKeyEvent).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnKeyEvent).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnTitleChange // TCEFChromium _CEFChromium_SetOnTitleChange
func _CEFChromium_SetOnTitleChange(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnTitleChange(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnTitleChange).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnTitleChange).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnRenderCompMsg // TCEFChromium _CEFChromium_SetOnRenderCompMsg
func _CEFChromium_SetOnRenderCompMsg(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnRenderCompMsg(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnRenderCompMsg).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnRenderCompMsg).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnRenderProcessTerminated // TCEFChromium _CEFChromium_SetOnRenderProcessTerminated
func _CEFChromium_SetOnRenderProcessTerminated(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnRenderProcessTerminated(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnRenderProcessTerminated).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnRenderProcessTerminated).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnRenderViewReady // TCEFChromium _CEFChromium_SetOnRenderViewReady
func _CEFChromium_SetOnRenderViewReady(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnRenderViewReady(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnRenderViewReady).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnRenderViewReady).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnScrollOffsetChanged // TCEFChromium _CEFChromium_SetOnScrollOffsetChanged
func _CEFChromium_SetOnScrollOffsetChanged(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnScrollOffsetChanged(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnScrollOffsetChanged).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnScrollOffsetChanged).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnProcessMessageReceived // TCEFChromium _CEFChromium_SetOnProcessMessageReceived
func _CEFChromium_SetOnProcessMessageReceived(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnProcessMessageReceived(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnProcessMessageReceived).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnProcessMessageReceived).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnFindResult // TCEFChromium _CEFChromium_SetOnFindResult
func _CEFChromium_SetOnFindResult(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnFindResult(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnFindResult).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnFindResult).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnCookieSet // TCEFChromium _CEFChromium_SetOnCookieSet
func _CEFChromium_SetOnCookieSet(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnCookieSet(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnCookieSet).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnCookieSet).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnCookiesDeleted // TCEFChromium _CEFChromium_SetOnCookiesDeleted
func _CEFChromium_SetOnCookiesDeleted(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnCookiesDeleted(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnCookiesDeleted).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnCookiesDeleted).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnCookiesFlushed // TCEFChromium _CEFChromium_SetOnCookiesFlushed
func _CEFChromium_SetOnCookiesFlushed(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnCookiesFlushed(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnCookiesFlushed).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnCookiesFlushed).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnCookiesVisited // TCEFChromium _CEFChromium_SetOnCookiesVisited
func _CEFChromium_SetOnCookiesVisited(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnCookiesVisited(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnCookiesVisited).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnCookiesVisited).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnCookieVisitorDestroyed // TCEFChromium _CEFChromium_SetOnCookieVisitorDestroyed
func _CEFChromium_SetOnCookieVisitorDestroyed(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnCookieVisitorDestroyed(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnCookieVisitorDestroyed).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnCookieVisitorDestroyed).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnBeforeContextMenu // TCEFChromium _CEFChromium_SetOnBeforeContextMenu
func _CEFChromium_SetOnBeforeContextMenu(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnBeforeContextMenu(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnBeforeContextMenu).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnBeforeContextMenu).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnContextMenuCommand // TCEFChromium _CEFChromium_SetOnContextMenuCommand
func _CEFChromium_SetOnContextMenuCommand(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnContextMenuCommand(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnContextMenuCommand).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnContextMenuCommand).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnContextMenuDismissed // TCEFChromium _CEFChromium_SetOnContextMenuDismissed
func _CEFChromium_SetOnContextMenuDismissed(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnContextMenuDismissed(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnContextMenuDismissed).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnContextMenuDismissed).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnBeforeResourceLoad // TCEFChromium _CEFChromium_SetOnBeforeResourceLoad
func _CEFChromium_SetOnBeforeResourceLoad(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnBeforeResourceLoad(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnBeforeResourceLoad).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnBeforeResourceLoad).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnResourceResponse // TCEFChromium _CEFChromium_SetOnResourceResponse
func _CEFChromium_SetOnResourceResponse(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnResourceResponse(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnResourceResponse).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnResourceResponse).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnResourceRedirect // TCEFChromium _CEFChromium_SetOnResourceRedirect
func _CEFChromium_SetOnResourceRedirect(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnResourceRedirect(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnResourceRedirect).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnResourceRedirect).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnResourceLoadComplete // TCEFChromium _CEFChromium_SetOnResourceLoadComplete
func _CEFChromium_SetOnResourceLoadComplete(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnResourceLoadComplete(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnResourceLoadComplete).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnResourceLoadComplete).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnFrameAttached // TCEFChromium _CEFChromium_SetOnFrameAttached
func _CEFChromium_SetOnFrameAttached(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnFrameAttached(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnFrameAttached).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnFrameAttached).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnFrameCreated // TCEFChromium _CEFChromium_SetOnFrameCreated
func _CEFChromium_SetOnFrameCreated(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnFrameCreated(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnFrameCreated).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnFrameCreated).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnFrameDetached // TCEFChromium _CEFChromium_SetOnFrameDetached
func _CEFChromium_SetOnFrameDetached(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnFrameDetached(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnFrameDetached).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnFrameDetached).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnMainFrameChanged // TCEFChromium _CEFChromium_SetOnMainFrameChanged
func _CEFChromium_SetOnMainFrameChanged(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnMainFrameChanged(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnMainFrameChanged).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnMainFrameChanged).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnBeforePopup // TCEFChromium _CEFChromium_SetOnBeforePopup
func _CEFChromium_SetOnBeforePopup(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnBeforePopup(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnBeforePopup).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnBeforePopup).Call(instance, api.MakeEventDataPtr(fn))
} }
// TCEFChromium _CEFChromium_SetOnOpenUrlFromTab // TCEFChromium _CEFChromium_SetOnOpenUrlFromTab
func _CEFChromium_SetOnOpenUrlFromTab(instance uintptr, fn interface{}, independentEvent bool) { func _CEFChromium_SetOnOpenUrlFromTab(instance uintptr, fn interface{}) {
Proc(internale_CEFChromium_SetOnOpenUrlFromTab).Call(instance, chromiumOnEventNameToId(fn, independentEvent)) Proc(internale_CEFChromium_SetOnOpenUrlFromTab).Call(instance, api.MakeEventDataPtr(fn))
} }
//--------TCEFChromium Event proc end-------- //--------TCEFChromium Event proc end--------

View File

@ -32,27 +32,13 @@ type ExecuteJS struct {
type IChromium interface { type IChromium interface {
IChromiumProc IChromiumProc
IChromiumEvent IChromiumEvent
//启用独立事件 默认禁用, 启用后所有默认事件行为将不在主窗口chromium event执行
//
//启用后注册的事件才生效
//
//只对当前chromium对象有效
EnableIndependentEvent()
//禁用独立事件 默认禁用, 禁用后所有默认事件行为在主窗口chromium event执行
//
//禁用后注册的事件才生效
//
//只对当前chromium对象有效
DisableIndependentEvent()
} }
type TCEFChromium struct { type TCEFChromium struct {
*lcl.TComponent *lcl.TComponent
instance unsafe.Pointer instance unsafe.Pointer
cfg *tCefChromiumConfig cfg *tCefChromiumConfig
independentEvent bool emitLock *sync.Mutex
emitLock *sync.Mutex
} }
func NewChromium(owner lcl.IComponent, config *tCefChromiumConfig) IChromium { 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 { func (m *TCEFChromium) browseEmitJsOnEvent(browseId int32, frameId int64, name string, argumentList ipc.IArgumentList) ProcessMessageError {
data := argumentList.Package() data := argumentList.Package()
r1 := _CEFFrame_SendProcessMessage(browseId, frameId, name, PID_RENDER, int32(argumentList.Size()), uintptr(unsafe.Pointer(&data[0])), uintptr(len(data))) r1 := _CEFFrame_SendProcessMessage(browseId, frameId, name, PID_RENDER, int32(argumentList.Size()), uintptr(unsafe.Pointer(&data[0])), uintptr(len(data)))

View File

@ -213,8 +213,6 @@ func (m *tCefTrayForm) createCefTrayWindow() {
m.windowParent.SetAlign(types.AlClient) m.windowParent.SetAlign(types.AlClient)
m.windowParent.SetAnchors(types.NewSet(types.AkTop, types.AkLeft, types.AkRight, types.AkBottom)) m.windowParent.SetAnchors(types.NewSet(types.AkTop, types.AkLeft, types.AkRight, types.AkBottom))
m.chromium = NewChromium(m.windowParent, nil) m.chromium = NewChromium(m.windowParent, nil)
//打开独立出事件
m.chromium.EnableIndependentEvent()
m.chromium.SetOnBeforeContextMenu(func(sender lcl.IObject, browser *ICefBrowser, frame *ICefFrame, params *ICefContextMenuParams, model *ICefMenuModel) { m.chromium.SetOnBeforeContextMenu(func(sender lcl.IObject, browser *ICefBrowser, frame *ICefFrame, params *ICefContextMenuParams, model *ICefMenuModel) {
model.Clear() model.Clear()
}) })

View File

@ -12,7 +12,6 @@ import (
. "github.com/energye/energy/common" . "github.com/energye/energy/common"
. "github.com/energye/energy/consts" . "github.com/energye/energy/consts"
"github.com/energye/energy/ipc" "github.com/energye/energy/ipc"
"github.com/energye/energy/logger"
t "github.com/energye/energy/types" t "github.com/energye/energy/types"
"github.com/energye/golcl/lcl" "github.com/energye/golcl/lcl"
"github.com/energye/golcl/lcl/api" "github.com/energye/golcl/lcl/api"
@ -68,11 +67,11 @@ func init() {
return lcl.AsObject(senderPtr), browser, frame, request, response return lcl.AsObject(senderPtr), browser, frame, request, response
} }
lcl.RegisterExtEventCallback(func(fn interface{}, getVal func(idx int) uintptr) bool { lcl.RegisterExtEventCallback(func(fn interface{}, getVal func(idx int) uintptr) bool {
defer func() { //defer func() {
if err := recover(); err != nil { // if err := recover(); err != nil {
logger.Error("CEF Events Error:", err) // logger.Error("CEF Events Error:", err)
} // }
}() //}()
var ( var (
instance unsafe.Pointer instance unsafe.Pointer
) )

View File

@ -67,7 +67,10 @@ func NewBrowserWindow(config *tCefChromiumConfig, windowProperty *WindowProperty
window.ChromiumCreate(config, windowProperty.Url) window.ChromiumCreate(config, windowProperty.Url)
window.putChromiumWindowInfo() window.putChromiumWindowInfo()
//OnBeforeBrowser 是一个必须的默认事件在浏览器创建时窗口序号会根据browserId生成 //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 return window
} }
@ -527,7 +530,6 @@ func (m *LCLBrowserWindow) registerPopupEvent() {
} }
BrowserWindow.popupWindow.SetWindowType(consts.WT_POPUP_SUB_BROWSER) BrowserWindow.popupWindow.SetWindowType(consts.WT_POPUP_SUB_BROWSER)
BrowserWindow.popupWindow.ChromiumCreate(BrowserWindow.Config.chromiumConfig, beforePopupInfo.TargetUrl) BrowserWindow.popupWindow.ChromiumCreate(BrowserWindow.Config.chromiumConfig, beforePopupInfo.TargetUrl)
BrowserWindow.popupWindow.chromium.EnableIndependentEvent()
BrowserWindow.popupWindow.putChromiumWindowInfo() BrowserWindow.popupWindow.putChromiumWindowInfo()
BrowserWindow.popupWindow.defaultChromiumEvent() BrowserWindow.popupWindow.defaultChromiumEvent()
var result = false var result = false

View File

@ -133,7 +133,8 @@ func AppBrowserInit() {
var browserWindow *cef.LCLBrowserWindow var browserWindow *cef.LCLBrowserWindow
event.On("js-new-browser-window", func(context ipc.IIPCContext) { event.On("js-new-browser-window", func(context ipc.IIPCContext) {
fmt.Println("通过 js ipc emit 事件创建新Browser窗口 ProcessType:", common.Args.ProcessType()) fmt.Println("通过 js ipc emit 事件创建新Browser窗口 ProcessType:", common.Args.ProcessType())
if browserWindow == nil {
if browserWindow == nil || browserWindow.IsClosing() {
wp := cef.NewWindowProperty() wp := cef.NewWindowProperty()
wp.Url = "https://www.baidu.com" wp.Url = "https://www.baidu.com"
wp.Title = "Browser新窗口标题" wp.Title = "Browser新窗口标题"
@ -141,6 +142,10 @@ func AppBrowserInit() {
browserWindow.SetWidth(800) browserWindow.SetWidth(800)
browserWindow.SetHeight(600) browserWindow.SetHeight(600)
browserWindow.SetShowInTaskBar() 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()) fmt.Println("\t|--", browserWindow.IsClosing())
cef.QueueAsyncCall(func(id int) { cef.QueueAsyncCall(func(id int) {