From 863f7cca212ca6fb90b6e826f6ef0a11c187e8f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E7=BA=A2=E5=B2=A9?= Date: Wed, 4 Jan 2023 20:11:31 +0800 Subject: [PATCH] Fixed Chinese input and gtk3 issues for linux packaging --- cef/cef-views-framework-browser-window.go | 34 +++++++------- cef/window-info.go | 57 ++++++++++++----------- cef/window.go | 4 +- 3 files changed, 50 insertions(+), 45 deletions(-) diff --git a/cef/cef-views-framework-browser-window.go b/cef/cef-views-framework-browser-window.go index c724dae..7da658f 100644 --- a/cef/cef-views-framework-browser-window.go +++ b/cef/cef-views-framework-browser-window.go @@ -50,7 +50,7 @@ func NewViewsFrameworkBrowserWindow(chromiumConfig *tCefChromiumConfig, windowPr if m.chromium.CreateBrowserByBrowserViewComponent(windowProperty.Url, m.browserViewComponent) { m.windowComponent.AddChildView(m.browserViewComponent) m.windowComponent.SetTitle(windowProperty.Title) - if windowProperty.IsCenterWindow { + if windowProperty.CenterWindow { window.CenterWindow(NewCefSize(windowProperty.Width, windowProperty.Height)) } if windowProperty.IconFS != "" { @@ -65,7 +65,7 @@ func NewViewsFrameworkBrowserWindow(chromiumConfig *tCefChromiumConfig, windowPr m.windowComponent.Show() } }) - if !windowProperty.IsCenterWindow { + if !windowProperty.CenterWindow { m.windowComponent.SetOnGetInitialBounds(func(sender lcl.IObject, window *ICefWindow, aResult *TCefRect) { aResult.X = windowProperty.X aResult.Y = windowProperty.Y @@ -146,21 +146,21 @@ func (m *ViewsFrameworkBrowserWindow) registerPopupEvent() { if !result { result = true wp := &WindowProperty{ - Title: BrowserWindow.Config.WindowProperty.Title, - Url: beforePopupInfo.TargetUrl, - CanMinimize: BrowserWindow.Config.WindowProperty.CanMinimize, - CanMaximize: BrowserWindow.Config.WindowProperty.CanMaximize, - CanResize: BrowserWindow.Config.WindowProperty.CanResize, - CanClose: BrowserWindow.Config.WindowProperty.CanClose, - IsCenterWindow: BrowserWindow.Config.WindowProperty.IsCenterWindow, - IsShowModel: BrowserWindow.Config.WindowProperty.IsShowModel, - WindowState: BrowserWindow.Config.WindowProperty.WindowState, - Icon: BrowserWindow.Config.WindowProperty.Icon, - IconFS: BrowserWindow.Config.WindowProperty.IconFS, - X: BrowserWindow.Config.WindowProperty.X, - Y: BrowserWindow.Config.WindowProperty.Y, - Width: BrowserWindow.Config.WindowProperty.Width, - Height: BrowserWindow.Config.WindowProperty.Height, + Title: BrowserWindow.Config.WindowProperty.Title, + Url: beforePopupInfo.TargetUrl, + CanMinimize: BrowserWindow.Config.WindowProperty.CanMinimize, + CanMaximize: BrowserWindow.Config.WindowProperty.CanMaximize, + CanResize: BrowserWindow.Config.WindowProperty.CanResize, + CanClose: BrowserWindow.Config.WindowProperty.CanClose, + CenterWindow: BrowserWindow.Config.WindowProperty.CenterWindow, + IsShowModel: BrowserWindow.Config.WindowProperty.IsShowModel, + WindowState: BrowserWindow.Config.WindowProperty.WindowState, + Icon: BrowserWindow.Config.WindowProperty.Icon, + IconFS: BrowserWindow.Config.WindowProperty.IconFS, + X: BrowserWindow.Config.WindowProperty.X, + Y: BrowserWindow.Config.WindowProperty.Y, + Width: BrowserWindow.Config.WindowProperty.Width, + Height: BrowserWindow.Config.WindowProperty.Height, } vFrameBrowserWindow := NewViewsFrameworkBrowserWindow(BrowserWindow.Config.chromiumConfig, wp, nil) vFrameBrowserWindow.registerPopupEvent() diff --git a/cef/window-info.go b/cef/window-info.go index 2567563..3c9f92f 100644 --- a/cef/window-info.go +++ b/cef/window-info.go @@ -26,6 +26,7 @@ type TCefWindowInfo struct { auxTools *auxTools //辅助工具 } +//辅助工具 type auxTools struct { devToolsWindow *LCLBrowserWindow //devTools devToolsX int32 //上次改变的窗体位置,宽度 @@ -40,36 +41,38 @@ type auxTools struct { viewSourceHeight int32 // } +//窗口属性 type WindowProperty struct { - IsShowModel bool //是否以模态窗口显示 - WindowState types.TWindowState //窗口 状态 - Title string //窗口 标题 - Url string //默认打开URL - Icon string //窗口图标 加载本地图标 - IconFS string //窗口图标 加载emfs内置图标 - CanMinimize bool //窗口 是否启用最小化功能 - CanMaximize bool //窗口 是否启用最大化功能 - CanResize bool //窗口 是否允许调整窗口大小 - CanClose bool //窗口 关闭时是否关闭窗口 - IsCenterWindow bool //窗口 是否居中显示 - AlwaysOnTop bool //窗口 置顶 - X int32 //窗口 IsCenterWindow=false X坐标 - Y int32 //窗口 IsCenterWindow=false Y坐标 - Width int32 //窗口 宽 - Height int32 //窗口 高 -} - + IsShowModel bool //是否以模态窗口显示 + WindowState types.TWindowState //窗口 状态 + Title string //窗口 标题 + Url string //默认打开URL + Icon string //窗口图标 加载本地图标 + IconFS string //窗口图标 加载emfs内置图标 + CanMinimize bool //窗口 是否启用最小化功能 + CanMaximize bool //窗口 是否启用最大化功能 + CanResize bool //窗口 是否允许调整窗口大小 + CanClose bool //窗口 关闭时是否关闭窗口 + CenterWindow bool //窗口 是否居中显示 + AlwaysOnTop bool //窗口 置顶 + X int32 //窗口 CenterWindow=false X坐标 + Y int32 //窗口 CenterWindow=false Y坐标 + Width int32 //窗口 宽 + Height int32 //窗口 高 +} + +//创建一个 窗口默认属性 func NewWindowProperty() *WindowProperty { return &WindowProperty{ - Title: "Energy", - Url: "about:blank", - CanMinimize: true, - CanMaximize: true, - CanResize: true, - CanClose: true, - IsCenterWindow: true, - Width: 1024, - Height: 768, + Title: "Energy", + Url: "about:blank", + CanMinimize: true, + CanMaximize: true, + CanResize: true, + CanClose: true, + CenterWindow: true, + Width: 1024, + Height: 768, } } diff --git a/cef/window.go b/cef/window.go index dc302a6..37ab725 100644 --- a/cef/window.go +++ b/cef/window.go @@ -27,7 +27,9 @@ func NewWindow(windowProperty *WindowProperty) *LCLBrowserWindow { window.SetNotInTaskBar() window.defaultWindowEvent() window.SetCaption(windowProperty.Title) - if windowProperty.IsCenterWindow { + if windowProperty.CenterWindow { + window.SetWidth(windowProperty.Width) + window.SetHeight(windowProperty.Height) window.SetPosition(types.PoDesktopCenter) } else { window.SetPosition(types.PoDefault) -- GitLab