-
Notifications
You must be signed in to change notification settings - Fork 572
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add maximize button to FloatingWidgetTitleBar #246
Add maximize button to FloatingWidgetTitleBar #246
Conversation
Thank you. Just ohne question. So if you are on KDE, then you do not receive the normal move events? |
Hi like I wrote in #230:
But you did it again in the current patch. Was this intentionally? |
Only one sadly AFTER the moving has stopped Ie: pretty useless for what we need. Regarding
|
Ok, i just tested how other windows behave on different WMs. Normally you can drag windows outside to the left and right but never the titlebar over top or bottom panels.This is NOT what WA_X11NetWmWindowTypeDock does tho. It allows to drag the titlebar outside too. Edit: From what i can see the only way is using So if you insist on the WA_X11NetWmWindowTypeDock behavior i'll try to find a workaround for XFCE, but i will mutter all the time while doing so ;) |
Hi, I just tested the normal Qt docking example on Kubuntu and Ubuntu and the dock widgets also behave the way you implemented it. So I think it is o.k. for me, if we have the same behaviour like the native Qt docking system - so I do not insist on WA_X11NetWmWindowTypeDock. But I have to admit, that I do not like how the Qt docking windows work on Linux. I do not work on Linux so I do not really care - but compared to the Windows implementation it is not really nice. I absolutely like your implementation with native title bar. I just tested it again on Ubuntu and it feels so nice. It is really cool. I just tested around on Kubuntu and is is absolutely frustrating, that the moveEvent() is sent only at the end of the drag operation. I just tested it with a QTimer and printed QWidget::pos() to qDebug - and it is the same. The pos value is not updated when the KDE window is dragged around - this is such a bullshit. I really would like to see the native titlebar solution and the custom titlebar solution as fallback. What do you think about this? Is there a way to detect KDE at runtime? If not, then I also could live with a compile time option to switch between native and custom titlebar implementation. |
Yeah, i tested it by listening to nativeEvents and on KDE we don't get configuration_notify events while dragging which QT would use to fire the Move event. So yeah i assume there is some way to detect KDE and will see if i can get this implemented. |
@SleepProgger I have seen, that you are working on your pull request and that you have found a solution to detect KDE Desktop. If it is possible for you, I would like to see the following final solution:
This would be the perfect solution for me. |
Yup, that was basically the plan.
Additionally i'd like use an environment variable ( If you are ok with it i can probably finish this thing (finally :)) today. |
Sounds good. Go for it. |
Added FloatingContainerForc*TitleBar to switch between native and custom titlebar. Co-authored-by: SleepProgger <SleepProgger@users.noreply.github.com>
a1af161
to
533d174
Compare
Please give me a short note if you are finished |
Ok, should be ready to go i think. I decided to not got with a enum for the flags so it works better together with the other WindowManager flags. |
@SleepProgger I just merged your pull request with some changes:
Thank you very much for all the work you have put into this. At the moment I have the problem that the Travis CI build fails and also the CMake build. I hope, I can sort this out quickly. |
Ok, three times is the charm.
This is a combination of PR #228 and #230
Since i did not found a way around the issue that KDE doesn't seem to send move event WHILE moving but only once when the moving is finished, i jumped back to using the custom titlebar and using a Qt::Window type.
We are still extending from Qt:DockWidget but just to borrow their resizing behavior.
To hide the Window from the task bar i had to directly communicate with the Xserver because Qt for some reason doesn't support this by itself ( see #230 (comment) ).
This means the x11extras qt module is now required under linux.
Tested under latest Ubuntu and Kubuntu LTS, Mate, XFCE and openbox.
There are still some minor quirks on some window manager, but so far i think its good enough to go.