Thanks for the record. The second I saw it, I understood what's the issue.
Short version: Android gesture navigation (back swipe, home swipe, etc) can be overridden by apps, but only in a limit of 200dp vertical size. MacroDroid + QuickCursor together have more than 200dp.
Long version:
When you have gesture navigation enabled, your left and right edges act as a back button when you swipe, and the bottom act as a home/multitask button when you swipe,
there is no other way to control your phone, only by this gestures.
This can conflict with some apps already developed, or new apps that are developed. Some apps need a swipe from left or right exactly where the "Back" swipe is, so Android made a special handling for that and let the developers override the system navigation gesture at specific positions:
https://developer.android.com/training/gestures/gesturenav
That's what MacroDroid does, that's what Quick Cursor does, both apps uses
setSystemGestureExclusionRects() to override the system navigation gesture at position X, Y, which means the system back gesture won't work at that position, and the app will have priority and full control at a specific region on the edge. And this is how both apps can work with system gesture navigation enabled.
But this can cause a problem, because if an app (or multiple apps), sets an exclusion over all the swipe back region, the user can't swipe back anymore, and can't control the phone anymore, so Android needed to find a way to force this to not happen, so they introduced two concepts:
1. There are some specific regions on the screen that can't be taken by apps, they are specially reserved for navigation gestures. So if you put the triggers on this zones, they won't have priority over navigation gestures. This is described here:
getMandatorySystemGestureInsets()
2. They set a limit on how much space can be took by apps. The limit is 200dp vertically, which means that if MacroDroid takes 100dp, and Quick Cursor will take 200dp, in total it is 300dp, which is greater than 200dp, so it won't take effect all. Only 200dp of the edge will have priority over gesture navigation, the other 100dp will work as a gesture navigation.
So, this is an Android limitation that makes sense, you don't want an app (or multiple apps) to take over your back swipe because you can't control your phone anymore. There is no solution to this problem, because this is working exactly as expected for Android, even if for the user can be confusing.
In Quick Cursor I implemented a toggle in settings called "Restrict system navigation gestures" which can be enabled or disabled.
There is no solution for this, only workarounds:
- Reduce the size of MacroDroid drawer and Quick Cursor triggers, so together they won't be bigger than 200dp. (that's what happens when you have the floating tracker, it is smaller)
- Disable Quick Cursor -> Settings -> Restrict system navigation gestures. In this case MacroDroid will have enough space for it's drawer, and for Quick Cursor you can do one of the following:
- if you want to grab a cursor, swipe vertically (bottom to top, or top to bottom) on the triggers, in this way the back gesture is skipped, and the triggers are working
- make the triggers wider, so you can grab the cursor from "near the edge", not from the "edge". So you can trigger the cursor, not the back gesture, but you have learn this.
Of course, there are the others options: use the 3 buttons (but this is not an option if you are already used to use the gesture navigations), use the floating tracker, etc etc
As you said in the previous post, swiping vertically (up or down) works because the back gesture is not triggered, but drawer or quick cursor triggers are.
I hope I explained what happens, and I hope one of the workarounds will work for you.