Jacob Young
e4502d4f64
Fix filename case so that it will build on a case-sensitive filesystem.
2020-12-28 03:07:30 -05:00
Sergio Martins
771bf10951
Merge branch '1.2'
2020-12-22 18:48:22 +00:00
Sergio Martins
cd859d6725
Fix a bunch of clazy warnings
2020-12-22 17:01:50 +00:00
Sergio Martins
6b846fcdff
qt6: Use more 'auto' to fix some Wconversion errors
2020-12-19 22:54:06 +00:00
Allen Winter
e41cdb6f78
various - fix misspellings
2020-12-16 16:49:22 -05:00
Sergio Martins
9a9488117c
Add a State dtor, fixes a -Wweak-vtables warning
2020-12-09 11:13:55 +00:00
Sergio Martins
89635d8b98
qt6: build is fixed now
2020-12-08 21:47:35 +00:00
Sergio Martins
f475312f11
qt6: Port away from QStateMachine
...
QStateMachine was moved to qtsxml module, which is not ported to
Qt6 yet.
We use QStateMachine for the semantics it gives us, not because of
its implementation. The implementation is trivial, so do it outselves.
We used very little from QStateMachine.
2020-12-08 19:55:52 +00:00
Sergio Martins
785db1b50c
qtquick: Fix detaching windows not working smoothly
...
Use the global event filter, as grabing isn't reliable in QtQuick.
Either not the same item is getting the mouse moves and release, or
it's because QtQuick internally is also setting/unsetting grabbers,
as seen in the source code
2020-12-01 20:14:46 +00:00
Sergio Martins
52bff59024
Remove duplicated logic regarding mouse events
2020-11-30 23:14:00 +00:00
Sergio Martins
bba0195196
Move "mouseEvent()" function to Utils_p.h
...
So it can be reused
2020-11-30 23:00:30 +00:00
Sergio Martins
60331fc654
qtquick: Remove some unneeded QtWidget includes
2020-11-29 17:57:14 +00:00
Sergio Martins
1d2a791dfc
qtquick: Fix DND operation never ending
...
When double-clicking a title bar we're getting: Press, Release,
Press and never the Release. We get the MouseDblClickEvent instead,
so handle that
2020-11-29 14:40:03 +00:00
Sergio Martins
5372920cd0
qtquick: Port NCHITTESTEventFilter
2020-11-26 21:53:48 +00:00
Sergio Martins
0980a7f601
qtquick: Port qtTopLevelForHWND() to Windows
...
Deals in QWindow instead of QWidget
2020-11-26 18:54:58 +00:00
Sergio Martins
b9962b3df0
qtquick: Make the QWinWidget case specific to QtWidgets
...
With QtQuick we don't have QWinWidget
2020-11-26 13:23:06 +00:00
Sergio Martins
774e66ba6f
Minor: add an assert
...
Provides a nicer backtrace when it happens.
Currently repro on QtQuick only
2020-11-17 21:04:32 +00:00
Sergio Martins
046ceae500
Remove unneeded null check from DropArea::drop()
2020-10-18 12:31:04 +01:00
Sergio Martins
33c0cda582
Minor readability, just call setWindowBeingDragged(true)
...
It's always true here.
2020-10-18 12:28:10 +01:00
Sergio Martins
bf1c5140cd
Wayland: Fix another missing mapToGlobal
...
Hovering indicators was fine, but dropping was off by a few pixels
vertically due to the menu bar
2020-10-17 11:41:19 +01:00
Sergio Martins
fb7a35db5b
Wayland: Fix indicator hover being off
...
Drag events are in local coords, while DropArea wants it in
global
2020-10-17 11:05:56 +01:00
Sergio Martins
171023558e
Introduce WindowBeingDraggedWayland
...
This is just a cleanup. Instead of having WindowBeingDragged
having both code paths, let's keep the non-wayland platforms code
small and clean.
2020-10-16 17:08:36 +01:00
Sergio Martins
bc04863439
Wayland: Dragging a tab or a nested dock widget now shows pixmap
...
TODO: Supporting a drop for those two cases
2020-10-16 10:33:01 +01:00
Sergio Martins
52fddaa1cd
wayland: Set a pixmap while DND
...
Since our source window isn't moving, let's at least show a copy
of it on the pixmap
A bunch of tearing going on kwin_wayland/nvidia though.
Weston/nvidia is fine.
Haven't tried kwin_wayland/Intel yet
2020-10-15 19:11:12 +01:00
Sergio Martins
f3d7400c15
wayland: End the drag properly when user cancels the drag
2020-10-15 19:02:46 +01:00
Sergio Martins
d44a173945
Wayland: Really end the drag after dropping
...
Fixes a crash on shutdown
2020-10-15 17:27:12 +01:00
Sergio Martins
ac001d6f32
wayland: Don't allow to drop onto itself
...
It was showing the drop indicators in the window being dragged
2020-10-15 16:50:46 +01:00
Sergio Martins
e3de2df69c
wayland: Add initial drag and drop support
...
You can drag a floating window and drop it somewhere
- Only works with segmented indicator style. Classical indicators
require us being able to positioning an overlay, which wayland
doesn't allow us to.
- Detaching inner tabs and dock widgets not implemented yet.
- polishing needed
2020-10-15 16:50:46 +01:00
Sergio Martins
bca21defa5
wayland: Don't grab mouse or set window opacity
...
Not supported by the QPA and not needed for wayland anyway
2020-10-15 16:50:46 +01:00
Sergio Martins
6479bcabfb
Make DropArea::drop() receive WindowBeingDragged instead
...
In prep for wayland support
2020-10-14 20:42:51 +01:00
Sergio Martins
c2cc914b5c
indicators: Depend less on FloatingWindow
...
Deal in terms of WindowBeingDragged instead, as wayland won't have
a floating window being dragged
2020-10-14 19:39:51 +01:00
Sergio Martins
beef3c7fb5
Specialize StateDragging for wayland
...
Introduces StateDraggingWayland. Wayland is the alien, so don't want
to introduce hacks in the existing clean code.
StateDraggingWayland will deal with the wayland workarounds.
Although the impl only has placeholders for now I'm committing it
because it's already an improvement: broken detachment is no longer
possible. Detached windows were going to a random place on screen.
2020-10-14 18:12:25 +01:00
Sergio Martins
52184ca72b
Added StateBase::isActiveState()
2020-10-14 18:01:48 +01:00
Sergio Martins
78cd7c56f7
Minor: Switch order of ifdefs
...
Will want to add a case for wayland too.
2020-10-14 16:41:17 +01:00
Sergio Martins
7bfac091ae
Rename DockRegistry::nestedwindows() to DockRegistry::floatingWindow
...
which is the naming we use everywhere else
2020-10-10 20:41:42 +01:00
Sergio Martins
543f734650
Added DragController::enableFallbackMouseGrabber()
...
So it's easier to test the fallback mouse grabber
2020-10-03 18:37:26 +01:00
Sergio Martins
991075d69e
Windows: Start a native drag as soon as possible
...
Native drag works much better with HDPI crossing screens.
Relates to issue #78
2020-09-29 12:39:10 +01:00
Sergio Martins
576627eb17
Always outter indicators if the center is obscured with something else
...
If there's some other floating window over our drop zone, then it's
very difficult to drop if there's no outter indicators.
Now we'll show the outter indicators if we suspect there's some other
window obscuring
2020-09-16 12:54:09 +01:00
Sergio Martins
02c165163a
DragController: Use the geometry of the QWindow
...
While this works fine for QtWidgets, where the geometry of the
top-level QWidget is the same as the QWindow, it doesn't work
for QtQuick, where the geometry of the root item starts at 0,0
2020-08-10 19:03:15 +01:00
Sergio Martins
37590b44d7
qml: DragController now compiles with the QtQuick frontend
2020-08-06 23:31:44 +01:00
Sergio Martins
78dcb0f7f3
qml: Abstract some methods that QQuickItem doesn't have
...
geometry(), isMinimized(), etc.
2020-08-06 23:10:08 +01:00
Sergio Martins
c7afbf0803
qml: make qtTopLevelUnderCursor_impl() receive QWindow
...
QWindow works for both QtWidgets and QtQuick
2020-08-06 18:30:53 +01:00
Sergio Martins
769d34d746
qml: implement childAt
...
Added a namespace-level parentWidget() helper, so it works for
both widgets and quick
2020-08-06 17:51:49 +01:00
Sergio Martins
6502ee5071
DragControl: Remove some dead code paths
...
Neither DockWidget nor DropArea are ever a top-level
2020-08-04 18:23:55 +01:00
Sergio Martins
9657bc50a3
qml: Remove QtWidget'ism from DragController
2020-07-30 22:18:05 +01:00
Sergio Martins
c53d71e2de
qml: Remove more QWidget'isms, make code generic
2020-07-26 16:49:01 +01:00
Allen Winter
b4f49895c2
clarify: licensing is GPL2 or GPL3 or commercial licensed
...
follow the REUSE specs
2020-07-24 18:16:13 -04:00
Sérgio Martins
8474f246ae
Fix Qt6 build
...
Didn't include the cmake changes, as those are hacks for now.
Only included fixes to cpp code.
2020-07-18 18:51:47 +01:00
Sergio Martins
bcfb57f89d
Fix aerosnap|alwaysTabs|noTitleBar
...
DragController would ignore the non-client mouse press
2020-06-24 16:18:58 +01:00
Sergio Martins
5f4d8b515f
Fix detaching now allowing to continue a drag
...
Seen sometimes on Windows.
Also, since aero-snap works fine now, we can re-enable the mouse grab
2020-06-23 19:19:59 +01:00