diff --git a/cef/cef-aux-dev-tools-window.go b/cef/cef-aux-dev-tools-window.go index 71a773c0c5d7a9ca3a46af186b9ddcf423ec87af..d619592e4269964c54cf455797788c3a84befab0 100644 --- a/cef/cef-aux-dev-tools-window.go +++ b/cef/cef-aux-dev-tools-window.go @@ -46,6 +46,7 @@ func createBrowserDevTools(browser *ICefBrowser, browserWinInfo *TCefWindowInfo) winAuxTools.devToolsWindow.defaultWindowCloseEvent() winAuxTools.devToolsWindow.SetWidth(1024) winAuxTools.devToolsWindow.SetHeight(768) + winAuxTools.devToolsWindow.SetShowInTaskBar() winAuxTools.devToolsWindow.SetOnResize(func(sender lcl.IObject) { winAuxTools.devToolsX = winAuxTools.devToolsWindow.Left() diff --git a/cef/cef-aux-view-source-window.go b/cef/cef-aux-view-source-window.go index cd99fe59187b1e0b25ee837b248c5b53efd1cad1..ffe088222d0dc512708f1c0bfa9b6c84e24dad7d 100644 --- a/cef/cef-aux-view-source-window.go +++ b/cef/cef-aux-view-source-window.go @@ -49,6 +49,7 @@ func createBrowserViewSource(browser *ICefBrowser, frame *ICefFrame) { QueueAsyncCall(func(id int) { var m = BrowserWindow.popupWindow if m != nil { + m.SetShowInTaskBar() m.SetWindowType(WT_VIEW_SOURCE) m.ChromiumCreate(nil, viewSourceUrl) m.chromium.EnableIndependentEvent() diff --git a/cef/cef-base-browser-window.go b/cef/cef-base-browser-window.go index 625bcf507a8281026da28245871d96c6ff7a7c84..8e67b45886cad05403c5f9cf5ca5c80d4a68bda8 100644 --- a/cef/cef-base-browser-window.go +++ b/cef/cef-base-browser-window.go @@ -17,7 +17,9 @@ import ( "github.com/energye/energy/logger" "github.com/energye/golcl/lcl" "github.com/energye/golcl/lcl/api" + "github.com/energye/golcl/lcl/rtl" "github.com/energye/golcl/lcl/types" + "github.com/energye/golcl/lcl/types/messages" "time" ) @@ -452,8 +454,6 @@ func (m *BaseWindow) registerDefaultEvent() { func (m *BaseWindow) registerDefaultChromiumCloseEvent() { var bwEvent = BrowserWindow.browserEvent m.chromium.SetOnClose(func(sender lcl.IObject, browser *ICefBrowser, aAction *TCefCloseBrowsesAction) { - BrowserWindow.uiLock.Lock() - defer BrowserWindow.uiLock.Unlock() if IsDarwin() { //MacOSX m.windowParent.DestroyChildWindow() } else { // Window and Linux @@ -462,10 +462,10 @@ func (m *BaseWindow) registerDefaultChromiumCloseEvent() { }) } if IsLinux() { - //继续关闭 + //继续关闭 -> OnBeforeClose *aAction = CbaClose } else { - //暂时停止关闭 + //暂时停止关闭 -> OnBeforeClose *aAction = CbaDelay } if bwEvent.onClose != nil { @@ -473,8 +473,6 @@ func (m *BaseWindow) registerDefaultChromiumCloseEvent() { } }) m.chromium.SetOnBeforeClose(func(sender lcl.IObject, browser *ICefBrowser) { - BrowserWindow.uiLock.Lock() - defer BrowserWindow.uiLock.Unlock() m.canClose = true var tempClose = func() { defer func() { @@ -489,9 +487,12 @@ func (m *BaseWindow) registerDefaultChromiumCloseEvent() { m.windowInfo.auxTools.devToolsWindow.Close() } BrowserWindow.removeWindowInfo(m.windowId) + //主窗口关闭 if m.WindowType() == WT_MAIN_BROWSER { - //主窗口关闭调用Close函数 m.Close() + if IsWindows() { + rtl.PostMessage(m.Handle(), messages.WM_CLOSE, 0, 0) + } } } QueueAsyncCall(func(id int) {