Open shugen002 opened 2 years ago
On many OS it is assumed that the menu will appear from left click. I wonder if this is perhaps possibly a request to have a single action instead of a menu? Many apps that want to do both put the window toggle in the menu so both can be done. Toggling a window visibility with a single tap is the job of your OS app switcher / taskbar isn't it?
On many OS it is assumed that the menu will appear from left click.
Sorry about that , I work at window desktop enviroment most of time , I didn't notice the appearance difference in MacOS and Linux.
But looks MacOS is also support handle left right click (sources: https://www.electronjs.org/docs/latest/api/tray#event-right-click-macos-windows)
I wonder if this is perhaps possibly a request to have a single action instead of a menu?
Yes , but not exactly.
I plan do this:
single left click: do nothing
dourble left click: open Browser with our WebUI
right click: show a menu include Open WebUI and Quit and other common action
Toggling a window visibility with a single tap is the job of your OS app switcher / taskbar isn't it?
I agree that , but in my developing experence , some user still request hide window into tray , and many app (such as telegram, steam) support hide into tray when click the close button.
looks like you already done part of support for linux ? https://github.com/fyne-io/systray/blob/master/internal/generated/notifier/status_notifier_item.go#L182-L185
On many OS it is assumed that the menu will appear from left click.
MacOS and Windows differ in this regard. On Windows, you usually open the menu by right clicking the icon, and a left click open a window (as opposed to a menu). On macOS, left clicking is expected to open the menu, and right clicking menu items on macOS is hit-and-miss. Some open a menu, and some do nothing. Very few will open a window without clicking an item in a menu. I don't use Linux as a desktop, so I have no idea what sort of behaviors exist there.
All that said, it's desirable for the app developer to control these behaviors, so we can keep our apps consistent with the users' expectations.
As an app dev, I'd even love to see a third control-option for double-click. I'll try to put some time into this, but can't promise much. I have only had one user ask for the ability to split right/left click on Windows, so it's not super high priority.
I think it's necessary
On macOS, left clicking is expected to open the menu, and right clicking menu items on macOS is hit-and-miss. Some open a menu, and some do nothing. Very few will open a window without clicking an item in a menu.
This is same with my findings
All that said, it's desirable for the app developer to control these behaviors, so we can keep our apps consistent with the users' expectations.
I think it's necessary
These statements feel subjective. We are trying to juggle consistency for all your users whilst being consistent with the OS. I'm not sure that implementing differently for each platform leading to content that may not be accessible to some is the right way to go? Would users of something platform-agnostic like this library really expect to write OS-specific code into their apps for controlling menus?
Would users of something platform-agnostic like this library really expect to write OS-specific code into their apps for controlling menus?
If you don't your users will complain about how your app feels 'weird'. No way around it. If you're good with telling your users "tuff" then don't worry about writing OS-specific code.
fwiw, I've since switched to another systray fork that allows me to define all of these behaviors in my own code my own way. Works brilliantly.
See https://github.com/fyne-io/fyne/issues/4491#issuecomment-1900866088 for a relevant discussion.
Would users of something platform-agnostic like this library really expect to write OS-specific code into their apps for controlling menus?
If you don't your users will complain about how your app feels 'weird'. No way around it. If you're good with telling your users "tuff" then don't worry about writing OS-specific code.
fwiw, I've since switched to another systray fork that allows me to define all of these behaviors in my own code my own way. Works brilliantly.
There is a big distance between not adding APIs that won't work on some platforms and telling users "tough luck". As @Jacalz points out we are having a discussion about how to do it in a way that meets platform expectations without encouraging developers to accidentally break functionality on some platforms.
Has anyone see this PR from the upstream repo? IMHO I think this might be the way to go to allow devs to implement the behaviour as needed/wished, don't you?
The PR you linked to only works on Windows (where the clicks are often different) but not on macOS (where most apps have the same action) or Linux (where right click is not supported).
Don't we want to be able to have an API that works everywhere consistently?
By split left right click action , we can do other action on left click not just open the menu but such as show/hide window.