提交 19cb22fd 编写于 作者: yanghye's avatar yanghye

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

上级 2426cca4
......@@ -34,19 +34,19 @@ func (m *LCLBrowserWindow) HideTitle() {
win.SetWindowPos(m.Handle(), m.Handle(), 0, 0, 0, 0, win.SWP_NOSIZE|win.SWP_NOMOVE|win.SWP_NOZORDER|win.SWP_NOACTIVATE|win.SWP_FRAMECHANGED)
}
//windows 窗口拖拽区域管理
var wdrs = &windowDragRegions{}
//windows 窗口标题栏管理
var wdrs = &windowCaption{}
type windowDragRegions struct {
type windowCaption struct {
canCaption bool
}
func (m *windowDragRegions) toPoint(message *types.TMessage) (x, y int32) {
func (m *windowCaption) toPoint(message *types.TMessage) (x, y int32) {
return int32(message.LParam & 0xFFFF), int32(message.LParam & 0xFFFF0000 >> 16)
}
//鼠标在标题栏区域
func (m *windowDragRegions) isCaption(hWND types.HWND, rgn *HRGN, message *types.TMessage) (x, y int32, caption bool) {
func (m *windowCaption) isCaption(hWND types.HWND, rgn *HRGN, message *types.TMessage) (x, y int32, caption bool) {
dx, dy := m.toPoint(message)
p := &types.TPoint{
X: dx,
......@@ -60,42 +60,31 @@ func (m *windowDragRegions) isCaption(hWND types.HWND, rgn *HRGN, message *types
func (m *LCLBrowserWindow) doOnRenderCompMsg(message *types.TMessage, lResult *types.LRESULT, aHandled *bool) {
if m.regions != nil && m.regions.RegionsCount() > 0 {
switch message.Msg {
case WM_GETMINMAXINFO:
fmt.Println("WM_GETMINMAXINFO")
case WM_MOUSEMOVE:
//fmt.Println("move")
case WM_LBUTTONDBLCLK:
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
fmt.Println("l up", wdrs.canCaption)
case WM_MOVE, WM_MOVING:
fmt.Println("move")
case WM_NCLBUTTONDBLCLK: /*-- NC --*/
if !m.WindowProperty().CanCaptionDClkMaximize {
break
}
fmt.Println("nc ld click", m.windowsState)
fmt.Println("nc ld click", m.windowsState, m.WindowState())
if m.rgn != nil && wdrs.canCaption {
if ov.Major == 6 {
//win.ReleaseCapture()
}
//SendMessage(hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0); // 最大化
//SendMessage(hwnd, WM_SYSCOMMAND, SC_MINIMIZE, 0); // 最小化
//SendMessage(hwnd, WM_SYSCOMMAND, SC_CLOSE, 0); // 关闭
//SendMessage(hwnd, WM_SYSCOMMAND, SC_RESTORE, 0); // 最大化状态还原
if m.windowsState == 0 {
m.windowsState = types.WsMaximized
m.SetWindowState(types.WsMaximized)
*lResult = HTCAPTION
*aHandled = true
win.ReleaseCapture()
m.windowsState = m.WindowState()
if m.windowsState == types.WsNormal {
rtl.PostMessage(m.Handle(), WM_SYSCOMMAND, SC_MAXIMIZE, 0)
//var monitor = m.Monitor().WorkareaRect()
//m.SetBounds(monitor.Left, monitor.Top, monitor.Right-monitor.Left-1, monitor.Bottom-monitor.Top-1)
} else {
//需要先设置一次-不然不生效
m.SetWindowState(m.windowsState)
m.windowsState = types.WsNormal
m.SetWindowState(types.WsNormal)
rtl.SendMessage(m.Handle(), WM_SYSCOMMAND, SC_RESTORE, 0)
}
rtl.SendMessage(m.Handle(), WM_NCLBUTTONUP, 0, 0)
return
}
case WM_NCLBUTTONDOWN:
......@@ -103,25 +92,18 @@ func (m *LCLBrowserWindow) doOnRenderCompMsg(message *types.TMessage, lResult *t
if m.rgn != nil && wdrs.canCaption {
*lResult = HTCAPTION
*aHandled = true
//1 这个在windows7不正确
//WinDefWindowProc(m.hWnd, message.Msg, message.WParam, message.LParam)
//2 这个在windows7下正常
win.ReleaseCapture()
rtl.SendMessage(m.Handle(), WM_NCLBUTTONDOWN, HTCAPTION, 0)
rtl.PostMessage(m.Handle(), WM_NCLBUTTONDOWN, HTCAPTION, 0)
rtl.SendMessage(m.Handle(), WM_NCLBUTTONUP, 0, 0)
//rtl.SendMessage(m.Handle(), WM_NCLBUTTONUP, 0, 0)
return
}
case WM_NCLBUTTONUP:
fmt.Println("nc l up", wdrs.canCaption)
case WM_NCMOUSEMOVE:
fmt.Println("nc mouse move", wdrs.canCaption)
if m.rgn != nil && wdrs.canCaption {
WinDefWindowProc(m.Handle(), message.Msg, message.WParam, message.LParam)
//WinDefWindowProc(m.Handle(), message.Msg, message.WParam, message.LParam)
*lResult = HTCAPTION
*aHandled = true
break
return
}
case WM_NCRBUTTONDOWN:
fmt.Println("nc r down", wdrs.canCaption)
......@@ -129,7 +111,6 @@ func (m *LCLBrowserWindow) doOnRenderCompMsg(message *types.TMessage, lResult *t
fmt.Println("nc r up", wdrs.canCaption)
case WM_NCHITTEST: /*-- NCHITTEST --*/
if m.rgn != nil {
//var hit = WinDefWindowProc(m.Handle(), message.Msg, message.WParam, message.LParam)
_, _, caption := wdrs.isCaption(m.Handle(), m.rgn, message)
//设置鼠标坐标是否在标题区域
wdrs.canCaption = caption
......@@ -143,9 +124,6 @@ func (m *LCLBrowserWindow) doOnRenderCompMsg(message *types.TMessage, lResult *t
return
}
}
//other message -> WinDefWindowProc
*lResult = WinDefWindowProc(m.Handle(), message.Msg, message.WParam, message.LParam)
//m.InheritedWndProc(message)
}
}
......@@ -162,7 +140,7 @@ func (m *LCLBrowserWindow) registerWindowsCompMsgEvent() {
}
})
m.TForm.SetOnConstrainedResize(func(sender lcl.IObject, minWidth, minHeight, maxWidth, maxHeight *int32) {
m.windowsState = m.WindowState()
//m.windowsState = m.WindowState()
if m.onConstrainedResizeEvent != nil {
m.onConstrainedResizeEvent(sender, minWidth, minHeight, maxWidth, maxHeight)
}
......
......@@ -29,12 +29,12 @@ func main() {
browserWindow := window.AsLCLBrowserWindow().BrowserWindow()
browserWindow.Constraints().SetMinWidth(300)
browserWindow.Constraints().SetMinHeight(300)
//window.DisableResize()
window.DisableResize()
//window.HideTitle()
//browserWindow.SetBorderStyle(types.BsNone)
//browserWindow.SetBorderStyle(types.BsSingle)
//browserWindow.SetBorderStyle(types.BsSingle)
//window.HideTitle()
window.HideTitle()
window.AsLCLBrowserWindow().BrowserWindow().SetOnCloseQuery(func(sender lcl.IObject, canClose *bool) bool {
fmt.Println("lcl browser close query")
return false
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册