Compare commits

...

2 Commits

Author SHA1 Message Date
zhuzichu 46f7299362 update 2023-12-28 15:07:04 +08:00
zhuzichu 9f652a7c76 update 2023-12-28 14:27:19 +08:00
4 changed files with 26 additions and 15 deletions

View File

@ -113,14 +113,6 @@ bool FramelessEventFilter::nativeEventFilter(const QByteArray &eventType, void *
QGuiApplication::sendEvent(_helper->maximizeButton(),&event); QGuiApplication::sendEvent(_helper->maximizeButton(),&event);
} }
return false; return false;
}else if(uMsg == WM_GETMINMAXINFO){
if(IsZoomed(hwnd)){
RECT frame = {0,0,0,0};
AdjustWindowRectEx(&frame,WS_OVERLAPPEDWINDOW,FALSE,0);
_helper->setOffsetXY(QPoint(floor(abs(frame.left)/_helper->window->devicePixelRatio()),floor(abs(frame.bottom)/_helper->window->devicePixelRatio())));
}else{
_helper->setOffsetXY(QPoint(0,0));
}
} }
return false; return false;
#endif #endif
@ -247,7 +239,6 @@ void FluFramelessHelper::componentComplete(){
#endif #endif
_stayTop = QQmlProperty(window,"stayTop"); _stayTop = QQmlProperty(window,"stayTop");
_screen = QQmlProperty(window,"screen"); _screen = QQmlProperty(window,"screen");
_offsetXY = QQmlProperty(window,"_offsetXY");
_onStayTopChange(); _onStayTopChange();
_stayTop.connectNotifySignal(this,SLOT(_onStayTopChange())); _stayTop.connectNotifySignal(this,SLOT(_onStayTopChange()));
_screen.connectNotifySignal(this,SLOT(_onScreenChanged())); _screen.connectNotifySignal(this,SLOT(_onScreenChanged()));
@ -341,10 +332,6 @@ QObject* FluFramelessHelper::maximizeButton(){
return var.value<QObject*>(); return var.value<QObject*>();
} }
void FluFramelessHelper::setOffsetXY(QPoint val){
_offsetXY.write(val);
}
bool FluFramelessHelper::resizeable(){ bool FluFramelessHelper::resizeable(){
return !(window->width() == window->maximumWidth() && window->width() == window->minimumWidth() && window->height() == window->maximumHeight() && window->height() == window->minimumHeight()); return !(window->width() == window->maximumWidth() && window->width() == window->minimumWidth() && window->height() == window->maximumHeight() && window->height() == window->minimumHeight());
} }

View File

@ -39,7 +39,6 @@ public:
bool hoverMaxBtn(); bool hoverMaxBtn();
bool resizeable(); bool resizeable();
QObject* maximizeButton(); QObject* maximizeButton();
void setOffsetXY(QPoint val);
Q_INVOKABLE void showSystemMenu(); Q_INVOKABLE void showSystemMenu();
protected: protected:
bool eventFilter(QObject *obj, QEvent *event) override; bool eventFilter(QObject *obj, QEvent *event) override;
@ -55,7 +54,6 @@ private:
FramelessEventFilter* _nativeEvent = nullptr; FramelessEventFilter* _nativeEvent = nullptr;
QQmlProperty _stayTop; QQmlProperty _stayTop;
QQmlProperty _screen; QQmlProperty _screen;
QQmlProperty _offsetXY;
}; };
#endif // FLUFRAMELESSHELPER_H #endif // FLUFRAMELESSHELPER_H

View File

@ -73,6 +73,19 @@ Window {
Component.onDestruction: { Component.onDestruction: {
lifecycle.onDestruction() lifecycle.onDestruction()
} }
onVisibilityChanged: {
if(visibility === Window.Maximized || visibility === Window.FullScreen){
var dx = window.x-Screen.virtualX
var dy = window.y-Screen.virtualY
if(dx<0 && dy<0){
_offsetXY = Qt.point(Math.abs(dx+1),Math.abs(dy+1))
}else{
_offsetXY = Qt.point(0,0)
}
}else{
_offsetXY = Qt.point(0,0)
}
}
onShowSystemMenu: { onShowSystemMenu: {
if(loader_frameless_helper.item){ if(loader_frameless_helper.item){
loader_frameless_helper.item.showSystemMenu() loader_frameless_helper.item.showSystemMenu()

View File

@ -72,6 +72,19 @@ Window {
Component.onDestruction: { Component.onDestruction: {
lifecycle.onDestruction() lifecycle.onDestruction()
} }
onVisibilityChanged: {
if(visibility === Window.Maximized || visibility === Window.FullScreen){
var dx = window.x-Screen.virtualX
var dy = window.y-Screen.virtualY
if(dx<0 && dy<0){
_offsetXY = Qt.point(Math.abs(dx+1),Math.abs(dy+1))
}else{
_offsetXY = Qt.point(0,0)
}
}else{
_offsetXY = Qt.point(0,0)
}
}
onShowSystemMenu: { onShowSystemMenu: {
if(loader_frameless_helper.item){ if(loader_frameless_helper.item){
loader_frameless_helper.item.showSystemMenu() loader_frameless_helper.item.showSystemMenu()