Rocket.Chat.Electron icon indicating copy to clipboard operation
Rocket.Chat.Electron copied to clipboard

v 3.8.7 Closing application doesn't quit application

Open coleman-rik opened this issue 1 year ago • 17 comments

When running Rocket.Chat v 3.8.7 on Windows 10 Pro x64 closing the application window does not quit the application, Unless you first disable the tray icon and Minimize on close is disabled.

Unfortunately, if you disable the tray icon there are no notifications that there are any unread messages.

Trying to quit the application by closing the main window when the tray icon is visible causes this message to be displayed instead of quitting the application: "Rocket.Chat is set to stay running in the system/tray notification area."

There should be a setting, as referenced in the message noted above, to disable this behavior. Users should not be forced to choose between having a straight forward means to quit the application and receiving notifications from the application.

Thanks.

coleman-rik avatar Jul 19 '22 15:07 coleman-rik

You cant quit the application if you want to continue receiving the notifications. Then when you close the window, it will be hided to the tray and the tray icon will be the way to access it again.

If you really want to quit the application and don't have the tray icon, then the notifications will not be shown, because nothing will be running that could handle the notifications.

Please explain better the setting that you are asking for.

jeanfbrito avatar Jul 19 '22 16:07 jeanfbrito

There is an apparent conflation of the tray icon and notifications.

Currently, if I choose to close the application from the menu or via the shortcut Ctrl-Q it exits the application. If I use the 'X' button in the window frame this isn't the case. It is dependent on whether or not I have activated the Tray icon in a separate menu.

The two should not be dependent on each other.

There should be a notification option. Independently, there should be an option to Minimize on close instead of exit, and this option should be constant across all three methods of exiting the application. The user should either be able to exit the application normally, or minimize on exit, and in that case would need to exit the application from the tray icon.

In either case, as long as the application is running the user should receive notifications, assuming they have selected the option to receive notifications.

Is that clearer?

Thanks.

coleman-rik avatar Aug 02 '22 14:08 coleman-rik

If the setting "Hide to Notification Area (Tray)" is checked the application will hide to the notification area when closed with either the "x" button or by keyboard shortcut "alt + F4", the keyboard shortcut "ctrl + Q" is reserved for quitting (terminating) the application, which is intended separate from closing the window, so if you want to close the window with your keyboard use "alt + F4" and not "ctrl + Q", cheers

dotty-dev avatar Aug 03 '22 06:08 dotty-dev

So your answer is basically, we like the inconsistent confused mess we currently have and have no desire to fix it to conform to standard Windows conventions.

Is this correct?

coleman-rik avatar Aug 03 '22 15:08 coleman-rik

So your answer is basically, we like the inconsistent confused mess we currently have and have no desire to fix it to conform to standard Windows conventions.

Is this correct?

Who said that? I really understood your issue and think that we could improve that. I will work on this very soon.

jeanfbrito avatar Aug 03 '22 15:08 jeanfbrito

@coleman-rik what exactly is your suggestion to solve that? Closing to tray when the tray icon is active on the window X button is the default behavior for many applications. On menu File > Quit the Rocket.chat or by Control+Q, you will quit it totally.

What behavior do you think that need to be changed?

jeanfbrito avatar Aug 09 '22 16:08 jeanfbrito

Right now the notification and close to try are intertwined.

What I would like to see is: Settings:

  • optional - show tray icon ( t / f )
  • Quit to tray (t / f)
  • Show notifications (t / f)
  • optional - use native notification ( t / f )

If you select Quit to tray then all quit methods ( window 'X', File->Quit Rocket.Chat, Ctrl+Q, Alt-F4) will destroy the window ( it no longer shows up taskbar) but you can still quit the application by right clicking the tray icon. Otherwise closing the window (not minimizing it) or choosing one of the other quit options will actually quit the application.

If you select Show notifications then whenever you get a message or other notification it will show up from the tray icon, and as a toast, in the notification area.

If you were feeling particularly generous, there would be an option to show/hide the tray icon. It would be set to show if they choose Quit to tray.

As a completely crazy idea, there would be an option to use the platform's default notification mechanism be it Windows, Linux, MacOS, etc. as opposed to rewriting the wheel with your homegrown tray icon based method.

I hope that that helps,

coleman-rik avatar Aug 10 '22 20:08 coleman-rik

Control+Q, you will quit it totally.

I personally think this is totally fine and correct behavior as I want to have an option to quit it without it "minimizing" to the tray, whilst keeping that exact behavior for the "x"-Button and Alt-F4, for me those are separate functions, one closes the window, the other quits the application, i don't want the application to minimize to tray when i am trying to "Quit" it (which also is what the option under File states, it reads "Quit Rocket.Chat" at least in the English version)

I want to be able to decide if i want to close the window OR quit the application and don't want to open the tray area to shut the application down from there! Currently everything works as expected, for me and probably many others

IMO: Actual quitting of the application (as stated by File > Quit Rocket.Chat (Ctrl + Q) ) should not be mixed with minimizing/closing to tray

dotty-dev avatar Aug 14 '22 06:08 dotty-dev

@AlexisDot There are already different decorations in the window for close (minimize), maximize, and exit. In most Windows applications closing the window minimizes it. Usually to the taskbar, in rarer cases to the notification try. Selecting the 'X' button exits the application (unless you are talking about Rocket.Chat). Try it with practically any other application; web browser, office suite, heck even Notepad.exe. Choose the X button in the top right corner of the window, that exits, and by that I mean quits, the application. Windows has already has separate window decorations for close (minimize) and quit. The problem is that Rocket.Chat doesn't adhere to that, long standing, convention.

"Currently everything works as expected, for me and probably many others"

That's not the point of praise you might think it is. It just means that people have gotten used to doing it the Rocket.Chat way. If I started selling Acme Automobiles in the U.S. and equipped all of my cars with the brake pedal on the right, the accelerator on the left, and the clutch in the middle could people figure it out? Sure, people are usually bright. Would the fact that hundreds, even thousands of people manage to drive an Acme Automobile and the controls are where they expect it (in a Acme Automobile anyway) mean that it's a good thing? Of course not, folks still have to remember that every other app (like every other american car) is set up a certain way, but then they have to remember that ~~Acme~~ Rocket.Chat has chosen to go their own way.

"IMO: Actual quitting of the application (as stated by File > Quit Rocket.Chat (Ctrl + Q) ) should not be mixed with minimizing/closing to tray"

I am glad to read that you agree with me. The two shouldn't be mixed, unfortunately the current Rocket.Chat implementation does just that.

Hopefully, the Rocket.Chat devs will bring the application back into the fold, UI convention-wise anyway.

coleman-rik avatar Aug 16 '22 14:08 coleman-rik

Selecting the 'X' button exits the application (unless you are talking about Rocket.Chat). Try it with practically any other application; web browser, office suite, heck even Notepad.exe.

All these are programs that don't need to stay running in the background to have notifications showing, any other chat software has the behavior of not quitting on close, just hiding in the tray. You are comparing with the wrong examples on this case.

We don't have how to maintain the notifications working without running the Rocket.chat on the background, on this case, hidden in the tray.

If you don't want the tray icon, you can disable it. Then nothing will be running on the background and you will not receive notifications when the Rocket.chat application is closed. You will need to keep it minimized/running if you want to receive notifications.

The File > Quit Rocket.Chat (Ctrl + Q) ALWAYS quit the application, nothing will be running in background anymore.

Sorry if I couldn't understand yet, but what I understood is that we are ok with the general other chats behavior.

jeanfbrito avatar Aug 16 '22 14:08 jeanfbrito

Well, maybe this will help:

Here's how Hexchat handles it: hexchat_preferences_20220816_111428

Here's how slack handles it: slack_preferences_20220816_113031

Here's Discord: discord_setting__20220816_113551

My favorite, here's how kvirc does it: (notifier) kvirc_notifier_settings_20220816_114735

(tray icon) kirc_tray_icon_settings_20220816_114824

And finally, here's the entirety of Rocket.Chat settings: rocket chat_settings1_20220816_115131

rocket char_settings2_20220816_115225

as an added bonus, don't accidentally turn off the menu bar, as it doesn't appear in the settings list. The main way to turn on the menu bar is via the menu bar which you can't use if you've turned it off.

See how there's a separate option to Close to tray? If you close the application and that's not checked/switch on/etc. the application exits. If it is then closing the application just minimizes it to the tray. Some even have the Minimize to tray option. This further reinforces that there's a minimize button and a close button. Rocket.Chat is the confused mess of defaulting to minimize on close. In the Menu bar, not in the settings, is a setting that the Minimize on close button is tied to in a convoluted way. In order to get the application to actually close/quit on close you have to turn off the tray icon (losing notifications entirely) then make sure the "Minimize on close" setting in settings is off. Otherwise, and whenever the try icon is visible, you can not close/quit the application by using the close/quit button.

I hope that helps clear things up.

coleman-rik avatar Aug 16 '22 16:08 coleman-rik

@coleman-rik I think that now I got it! The problem is not the behavior but the way the settings are not presented and clear to the user. We could add it to the settings window and add a description like the other ones that already have. This would fix the menu bar being disabled and can't be enabled back too.

jeanfbrito avatar Aug 16 '22 16:08 jeanfbrito

@jeanfbrito it's both (or all three). If you scroll up to my previous comment you can see where I broke down the problems and provided a possible solution.

To recap:

  • tray settings and exiting behavior intertwined
  • not enough settings in settings
  • confusing settings
  • window/application behavior dependent on tray icon state
  • notification dependent on tray icon

Possible solutions:

  • put all of the settings in the Settings section
  • add a clear setting to either quit or minimize to tray when pressing the X (or any other quit mechanism)
  • add options for receiving notifications other than the tray
  • add option to hide the tray icon

Don't worry about the fact that people won't receive notifications when the application is closed. That's the expected behavior. If I just wanted to minimize the app, there's a standard windows button for that. If I don't want the app to close when I destroy the window, well that's what the option to quit to tray is for.

As you can see in the myriad of screen shots I've posted, from the minimalist Discord, to the more involved HexChat and KVirc, each of those programs does what the user expects from decades of UI convention on their platform. When it wants to differ, it provides a simple clear setting to accomplish it. Rocket.Chat would do well to do the same.

I hope that helps,

coleman-rik avatar Aug 16 '22 17:08 coleman-rik

@coleman-rik We really appreciate your suggestions and we will improve that on the next releases. Thank you very much!

jeanfbrito avatar Aug 16 '22 17:08 jeanfbrito

  • minimize to tray when pressing the X (or any other quit mechanism)
  • If I don't want the app to close when I destroy the window, well that's what the option to quit to tray is for.

Please don't use quit when talking about closing the window, to quit is to actually shut down, again, those are totally different things, i give you points for a better structured settings menu but other than that i still keep on:

x -button (which is connected to keyboard shortcut alt + F4) closes the window (which is NOT shutting the application down as long as the close to tray option is enabled) File > Quit Rocket.Chat (which is linked to keyboard shortcut ctrl + Q) quits the application (shutting it down entirely)

i would be okay with a separate minimize to tray with the window minimize button _ in the settings but i would want to keep the possibility to have it hide to tray on closing with x

and if i got you the menu bars tray icon intereferes with the settings close to tray option, which i totally agree with you, which should not be the case since nobody wants to search settings for one thing in two places

dotty-dev avatar Aug 16 '22 18:08 dotty-dev

@AlexisDot Yes and no. Strictly programmatically speaking, there is a difference between destroying a window and terminating an application. Practically speaking, in most cases the two are intertwined. Standard UI convention is to terminate (exit/quit/whatever you want to call it) the underlying program when the main window is destroyed.

In Windows, open the Task Manager and switch to the tab where you can see the currently running applications. Move it off to one side. Now open a bunch of programs, NotePad, Word, Edge, Kill the main window, it doesn't matter how; 'X' in the upper right corner, ALT-F4, etc. Notice that the calling program is also terminated. In cases like Edge that spawn multiple processes, they are all killed when the main window is destroyed.

You are still going against standard UI conventions.

x -button (which is connected to keyboard shortcut alt + F4) closes the window (which is NOT shutting the application down as long as the close to tray option is enabled) File > Quit Rocket.Chat (which is linked to keyboard shortcut ctrl + Q) quits the application (shutting it down entirely)

If you reread my previous comment (and illustrated with numerous screen shots):

  • add a clear setting to either quit or minimize to tray when pressing the X (or any other quit mechanism)

This setting would both bring Rocket.Chat into compliance with UI conventions and allow folks like yourself to minimize to tray instead of quitting the application as it would typically do. Standard UI convention is to have; 'X' in upper right of window, Alt-F4 (or whatever replaces it), explicit Exit/Quit/Close menu option to do exactly the same thing, terminate the application. There are classes of applications; messengers, IRC clients, torrent clients, etc. Where some people want to keep the application running in the background (or in the tray) when the main window is destroyed. For those folks the application developers typically include a clear setting changing the default and expected behavior. Everyone else either minimizes the windows, or actually wants to quit the application.

Standard convention and expectations are that all three processes quit the application. Rocket.Chat currently doesn't follow those conventions. If the developers follow my suggestions, then you will still be able to "close to tray" instead of quitting by utilizing a clear and straightforward setting.

I hope that helps clear things up.

coleman-rik avatar Aug 17 '22 17:08 coleman-rik

I agree with your last statement, bringing clear settings would help everybody, as the mentioned settings and behavior of closing to tray are standard in many chat softwares nowadays (including Rocket.Chat sans settings that make clear what is to be expected), I did not look into those. I am sorry if i did not get what you meant or if I sounded lecturing all too much and want to thank you that this was kept as a civilized and very constructive discussion and hope that it will help improving the software! Cheers

dotty-dev avatar Aug 17 '22 17:08 dotty-dev