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

v2.2.18 Fixed Chinese input and gtk3 issues for linux packagin

上级 74075169
......@@ -95,7 +95,7 @@ func (m *ICefBrowser) createBrowserDevTools(browserWinInfo IBrowserWindow) {
wp.Title = dev_tools_name
wp.IconFS = BrowserWindow.Config.IconFS
wp.Icon = BrowserWindow.Config.Icon
devToolsWindow := NewViewsFrameworkBrowserWindow(nil, wp)
devToolsWindow := NewViewsFrameworkBrowserWindow(nil, wp, BrowserWindow.MainWindow().AsViewsFrameworkBrowserWindow().Component())
devToolsWindow.resetWindowPropertyEvent()
devToolsWindow.SetWindowType(WT_DEV_TOOLS)
devToolsWindow.windowId = BrowserWindow.GetNextWindowNum()
......
......@@ -42,23 +42,29 @@ func viewSourceAfterCreate(browser *ICefBrowser) bool {
func (m *ICefBrowser) createBrowserViewSource(frame *ICefFrame) {
var viewSourceUrl = fmt.Sprintf("view-source:%s", frame.Url)
QueueAsyncCall(func(id int) {
var browserWindow = BrowserWindow.popupWindow.AsLCLBrowserWindow().BrowserWindow()
if browserWindow != nil {
browserWindow.SetShowInTaskBar()
browserWindow.SetWindowType(WT_VIEW_SOURCE)
browserWindow.ChromiumCreate(nil, viewSourceUrl)
browserWindow.putChromiumWindowInfo()
browserWindow.defaultChromiumEvent()
browserWindow.SetSize(1024, 768)
if winInfo := BrowserWindow.GetWindowInfo(browserWindow.windowId); winInfo != nil {
winInfo.createAuxTools()
winInfo.getAuxTools().viewSourceUrl = viewSourceUrl
winInfo.getAuxTools().viewSourceWindow = browserWindow
}
browserWindow.Show()
} else {
logger.Fatal("Window not initialized successfully")
if currentWindowInfo := BrowserWindow.GetWindowInfo(m.Identifier()); currentWindowInfo != nil {
if currentWindowInfo.IsLCL() {
QueueAsyncCall(func(id int) {
var bw = BrowserWindow.popupWindow.AsLCLBrowserWindow().BrowserWindow()
if bw != nil {
bw.SetShowInTaskBar()
bw.SetWindowType(WT_VIEW_SOURCE)
bw.ChromiumCreate(nil, viewSourceUrl)
bw.putChromiumWindowInfo()
bw.defaultChromiumEvent()
bw.SetSize(1024, 768)
if winInfo := BrowserWindow.GetWindowInfo(bw.windowId); winInfo != nil {
winInfo.createAuxTools()
winInfo.getAuxTools().viewSourceUrl = viewSourceUrl
winInfo.getAuxTools().viewSourceWindow = bw
}
bw.Show()
} else {
logger.Fatal("Window not initialized successfully")
}
})
} else if currentWindowInfo.IsViewsFramework() {
frame.ViewSource()
}
})
}
}
......@@ -25,13 +25,12 @@ var (
//
//3. 该窗口是主窗体,因此初始化时必须第一个初始化完成,如果创建子窗口最好在 SetBrowserInitAfter 回调函数中创建
BrowserWindow = &browser{
mainBrowserWindow: &browserWindow{},
browserEvent: &BrowserEvent{},
browserEvent: &BrowserEvent{},
Config: &browserConfig{
WindowProperty: NewWindowProperty(),
},
windowInfo: make(map[int32]IBrowserWindow),
windowSerial: 1,
windowSerial: 1, //默认1开始
}
browserProcessStartAfterCallback browserProcessStartAfterCallbackFunc
)
......@@ -119,6 +118,9 @@ func Run(cefApp *TCEFApplication) {
if IsMessageLoop {
cefApp.RunMessageLoop()
} else {
if BrowserWindow.mainBrowserWindow == nil {
BrowserWindow.mainBrowserWindow = &browserWindow{}
}
lcl.RunApp(&BrowserWindow.mainBrowserWindow)
}
}
......@@ -180,10 +182,16 @@ func (m *browserWindow) OnFormCreate(sender lcl.IObject) {
}
func (m *browser) MainWindow() IBrowserWindow {
if IsMessageLoop {
return m.mainVFBrowserWindow.BrowserWindow()
if m.mainVFBrowserWindow != nil {
return m.mainVFBrowserWindow
} else if m.mainBrowserWindow != nil {
return m.mainBrowserWindow
}
return m.mainBrowserWindow.BrowserWindow()
return nil
//if IsMessageLoop {
// return m.mainVFBrowserWindow.BrowserWindow()
//}
//return m.mainBrowserWindow.BrowserWindow()
}
// 主窗口和chromium初始化时回调
......
......@@ -41,7 +41,7 @@ type ViewsFrameworkBrowserWindow struct {
}
//创建 ViewsFrameworkBrowserWindow 窗口
func NewViewsFrameworkBrowserWindow(chromiumConfig *tCefChromiumConfig, windowProperty *WindowProperty) *ViewsFrameworkBrowserWindow {
func NewViewsFrameworkBrowserWindow(chromiumConfig *tCefChromiumConfig, windowProperty *WindowProperty, owner ...lcl.IComponent) *ViewsFrameworkBrowserWindow {
if chromiumConfig == nil {
chromiumConfig = NewChromiumConfig()
chromiumConfig.SetEnableViewSource(false)
......@@ -52,7 +52,12 @@ func NewViewsFrameworkBrowserWindow(chromiumConfig *tCefChromiumConfig, windowPr
if windowProperty == nil {
windowProperty = NewWindowProperty()
}
component := lcl.NewComponent(nil)
var component lcl.IComponent
if len(owner) > 0 {
component = lcl.NewComponent(owner[0])
} else {
component = lcl.NewComponent(nil)
}
m := &ViewsFrameworkBrowserWindow{
windowProperty: windowProperty,
component: component,
......@@ -62,7 +67,6 @@ func NewViewsFrameworkBrowserWindow(chromiumConfig *tCefChromiumConfig, windowPr
}
m.chromium.SetEnableMultiBrowserMode(true)
m.windowComponent.SetOnWindowCreated(func(sender lcl.IObject, window *ICefWindow) {
fmt.Println("args-ProcessType", common.Args.ProcessType())
if m.chromium.CreateBrowserByBrowserViewComponent(windowProperty.Url, m.browserViewComponent) {
m.windowComponent.AddChildView(m.browserViewComponent)
if windowProperty.Title != "" {
......@@ -77,11 +81,6 @@ func NewViewsFrameworkBrowserWindow(chromiumConfig *tCefChromiumConfig, windowPr
_ = m.windowComponent.SetWindowAppIcon(1, windowProperty.Icon)
}
m.browserViewComponent.RequestFocus()
//regions := NewCefDraggableRegions()
//regions.Append(NewCefDraggableRegion(NewCefRect(0, 0, 600, 100), true))
//regions.Append(NewCefDraggableRegion(NewCefRect(0, 0, 100, 50), false))
//window.SetDraggableRegions(regions.Regions())
m.windowComponent.Show()
if m.doOnWindowCreated != nil {
m.doOnWindowCreated(sender, window)
......@@ -150,7 +149,7 @@ func (m *ViewsFrameworkBrowserWindow) registerPopupEvent() {
Width: BrowserWindow.Config.WindowProperty.Width,
Height: BrowserWindow.Config.WindowProperty.Height,
}
var vfbw = NewViewsFrameworkBrowserWindow(BrowserWindow.Config.ChromiumConfig(), wp)
var vfbw = NewViewsFrameworkBrowserWindow(BrowserWindow.Config.ChromiumConfig(), wp, BrowserWindow.MainWindow().AsViewsFrameworkBrowserWindow().Component())
var result = false
if bwEvent.onBeforePopup != nil {
result = bwEvent.onBeforePopup(sender, browser, frame, beforePopupInfo, vfbw, noJavascriptAccess)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册