drawpile / Drawpile

A collaborative drawing program
http://drawpile.net/
GNU General Public License v3.0
1.01k stars 129 forks source link

Make chat not fixed to the bottom #1208

Open askmeaboutlo0m opened 3 months ago

askmeaboutlo0m commented 3 months ago

Currently, the chat always splits the main window at the bottom. It can't be moved anywhere else.

Depending on your screen and how you have the application arranged, this is not a good place for it. However, we also can't make it a dock, because the chat needs to spring open automatically when there's an alert, which a dock can't really do in a sensible way without risking messing up your entire application layout.

It's unclear what the solution for this could be, it needs some thinking on design. Maybe some kind of on-canvas display similar to how video games usually do it, with the chat being somewhere in the corner.

MorrowShore commented 3 months ago

There are quite a few ways this may be implemented.

There are many possibilities; feedback from users either here or in the community Discord server would be great.

Invertex commented 2 months ago

Curious, why does it need to "spring open" on alert? If it's docked, the size shouldn't be changing on alert, just highlighted and/or ping no? And if it's hidden, it shouldn't be shown automatically... Just maybe a notif icon on the UI somewhere that there's unseen chats.

But having an option for transparent overlay would be a nice extra option

askmeaboutlo0m commented 1 month ago

@Invertex Alerts are supposed to be messages of such high importance that they must be shown to the user immediately. For example, a server admin sending a notice that the server is going down for a reboot, a moderator wanting to talk to you instead of just instantly banning you for violating rules or a session operator letting you know that they're going to clear the canvas and to save what you want to keep.

Those cases go beyond just the "unread messages" badge (which already exists in the bottom-right corner.) If you don't act on these, you lose art, your session will be terminated or you get your account banned.

Unfortunately, most alerts you get currently "preparing for session reset" ones. That's historical, because there didn't use to be any other indicator that the session is resetting. Those exist now, so we should make the message less disruptive.

However, it might be worth a thought if maybe the chat is the wrong place for some or all of those messages and if we can stick them somewhere else. A server admin sending an announcement or an operator telling you to save your stuff isn't really something that needs to go into the chat because it's not something you're supposed to respond to, just something you need to be made aware of. So we could actually put those somewhere else, maybe similar to the disconnect notification where it shows up at the top of the canvas.

That doesn't cover the case where a moderator wants to talk to you though, since you're not gonna chat through a banner message. Or maybe that message could have a "Respond" button that opens up a separate chat dialog. Which may be nice in general for moderators, since it would make it clearer that it's not an automated message, but instead actually the owner of the server wanting them to fix something.

Invertex commented 1 month ago

Yeah I would agree separating announcements/alerts into a separate panel would probably be a better option. Can just have a dedicated button to show a list of announcements that have happened and highlight it if there's an unseen one.

Could have similar for moderation messages, or they could both be part of the same window, just a different instance of the regular chat window, that gets targeted for alerts and moderator chat. And by default would open as a floating window so it only blocks but doesn't displace interface. Probably not something people would care to have docked for frequent access.