After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 746026 - legacy tray is very hard to open on dual displays with primary screen on the right
legacy tray is very hard to open on dual displays with primary screen on the ...
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
3.15.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2015-03-11 12:16 UTC by Kamil Páral
Modified: 2015-03-15 12:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
legacyTray: add a pointer barrier to activate the tray (3.56 KB, patch)
2015-03-13 23:14 UTC, Cosimo Cecchi
needs-work Details | Review
legacyTray: add a pointer barrier to activate the tray (3.78 KB, patch)
2015-03-14 01:26 UTC, Cosimo Cecchi
reviewed Details | Review
legacyTray: add a pointer barrier to activate the tray (3.78 KB, patch)
2015-03-14 17:16 UTC, Cosimo Cecchi
accepted-commit_now Details | Review

Description Kamil Páral 2015-03-11 12:16:52 UTC
If I have dual displays with primary screen on the right, it's very hard to move the mouse cursor over the tiny gray rectangle in the lower left corner. It's just a few pixels wide, and you cannot bump the the screen edge, because there's another screen to the left. So your mouse cursor just moves through to the other screen.

I don't know how to make this more navigation friendly. A few ideas:

* Could you perhaps block the mouse cursor from leaving the primary screen, when it is over the tray rectangle? It would act as a barrier and if you wanted to move the cursor to the other screen on the left, you would have to move it a bit higher (above the rectangle) and then to the left. I don't know if this is technically possible.

* Implementing bug 746025 would help a lot, because it would give you easy access to the legacy icons at least in the overview mode (because it would get expanded by default).

* Make the tray configurable to show at the bottom right corner instead of the bottom left corner? Or maybe move it automatically depending on the dual head setup (based on the primary screen position)?

Thanks a lot.

gnome-shell-3.15.91-1.fc22.x86_64
Comment 1 Florian Müllner 2015-03-11 12:58:31 UTC
(In reply to Kamil Páral from comment #0)
> I don't know how to make this more navigation friendly. A few ideas:
> 
> * Could you perhaps block the mouse cursor from leaving the primary screen,
> when it is over the tray rectangle?

Yes, and this looks like the most straightforward option to me. Even if we come up with something else, this is something we should do anyway IMHO.


> * Implementing bug 746025 would help a lot

As mentioned there, it's not shown in the overview because of a technical limitation, not by design.


> * Make the tray configurable to show at the bottom right corner instead of
> the bottom left corner? Or maybe move it automatically depending on the dual
> head setup (based on the primary screen position)?

This wouldn't be hard to implement, considering that we already move the tray to the right under RTL locales. However we've played around with both positions, and the right was generally more annoying (under LTR) - it tends to get in the way of application UI (e.g. scrollbars) more there. So for the time being, I'd go with pointer barriers and reevaluate if we need anything else then.
Comment 2 Matthias Clasen 2015-03-11 23:52:28 UTC
The barrier is something we may want to consider for 3.16, still.
Comment 3 Cosimo Cecchi 2015-03-13 23:14:27 UTC
Created attachment 299365 [details] [review]
legacyTray: add a pointer barrier to activate the tray

Allows easier access to the tray by just pushing the cursor against the
edge.
Comment 4 Florian Müllner 2015-03-13 23:49:09 UTC
Review of attachment 299365 [details] [review]:

::: js/ui/legacyTray.js
@@ +173,3 @@
+        let [w, h] = this._slider.get_transformed_size();
+
+        let x1 = Math.round(x);

+ w under RTL locales

@@ +194,3 @@
+                                                     x1: x1, x2: x2,
+                                                     y1: y1, y2: y2,
+                                                     directions: Meta.BarrierDirection.NEGATIVE_X });

Should be POSITIVE_X for LTR locales, no?
Comment 5 Cosimo Cecchi 2015-03-14 01:26:42 UTC
Created attachment 299377 [details] [review]
legacyTray: add a pointer barrier to activate the tray

--

Whoops, didn't think about RTL.
Comment 6 Florian Müllner 2015-03-14 10:04:36 UTC
Review of attachment 299377 [details] [review]:

::: js/ui/legacyTray.js
@@ +195,3 @@
+        }
+
+        let directions = (rtl ? Meta.BarrierDirection.POSITIVE_X : Meta.BarrierDirection.NEGATIVE_X);

I still think this is backwards - with the tray on the left, the pointer should be allowed to move freely from left to right, but hit the barrier when leaving the monitor with the tray.
Comment 7 Cosimo Cecchi 2015-03-14 17:16:20 UTC
Created attachment 299411 [details] [review]
legacyTray: add a pointer barrier to activate the tray

--

You're right - I was confused by the meaning of the barrier direction parameter.
Comment 8 Florian Müllner 2015-03-14 19:30:29 UTC
Review of attachment 299411 [details] [review]:

(In reply to Cosimo Cecchi from comment #7)
> You're right - I was confused by the meaning of the barrier direction
> parameter.

Yeah, it happens easily - LGTM now
Comment 9 Cosimo Cecchi 2015-03-14 21:27:00 UTC
Thanks for the reviews!

Attachment 299411 [details] pushed as a5b7eae - legacyTray: add a pointer barrier to activate the tray
Comment 10 alex diavatis 2015-03-15 12:44:00 UTC
This only works if you push horizontally (L2R), and not diagonally or vertically. Is that wanted?