Discord calls use round green/red icon buttons (IncomingCallPanel.tsx:58-73); Matrix calls use text .button/.button danger in the same container class (CallStage.tsx:412-430). Each renders its own fixed container at the same bottom-left spot (app.css:2476-2486), so two simultaneous rings overlap.
Fix: one incoming-call component for both services with round accept/decline buttons; simultaneous rings stack.
Part of the v1.0 UI pass.
Discord calls use round green/red icon buttons (IncomingCallPanel.tsx:58-73); Matrix calls use text `.button`/`.button danger` in the same container class (CallStage.tsx:412-430). Each renders its own fixed container at the same bottom-left spot (app.css:2476-2486), so two simultaneous rings overlap.
**Fix:** one incoming-call component for both services with round accept/decline buttons; simultaneous rings stack.
_Part of the v1.0 UI pass._
Salastil
added this to the v1.0 milestone 2026-10-07 20:43:28 -04:00
One incoming-call component for both services, and simultaneous rings stack.
IncomingCallPanel now builds one list from Discord's calls and Matrix's ringing call and draws them in the one container: the avatar and name of the conversation, who is calling and on which account, then round buttons - green to answer, a camera to answer with video where the Matrix offer carries one, red to decline. The Matrix card's text buttons are gone, and with it the second fixed container at the same corner that drew over the Discord one.
One ringtone for however many are ringing (Matrix's ring now has the tone Discord's already had). A popped-out window shows the same cards but stays silent - the main window rings.
Staged in the picture with a Discord call and a Matrix video call at once; before (left, the Matrix card sits on top of the Discord one and hides it), after (right).
Finished: [59d4893](https://git.salastil.com/Salastil/moho/commit/59d4893fbc190c399863ca0d8f9d4701862c03e5).
One incoming-call component for both services, and simultaneous rings stack.
- `IncomingCallPanel` now builds one list from Discord's calls and Matrix's ringing call and draws them in the one container: the avatar and name of the conversation, who is calling and on which account, then round buttons - green to answer, a camera to answer with video where the Matrix offer carries one, red to decline. The Matrix card's text buttons are gone, and with it the second fixed container at the same corner that drew over the Discord one.
- One ringtone for however many are ringing (Matrix's ring now has the tone Discord's already had). A popped-out window shows the same cards but stays silent - the main window rings.
- Staged in the picture with a Discord call and a Matrix video call at once; before (left, the Matrix card sits on top of the Discord one and hides it), after (right).

Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Discord calls use round green/red icon buttons (IncomingCallPanel.tsx:58-73); Matrix calls use text
.button/.button dangerin the same container class (CallStage.tsx:412-430). Each renders its own fixed container at the same bottom-left spot (app.css:2476-2486), so two simultaneous rings overlap.Fix: one incoming-call component for both services with round accept/decline buttons; simultaneous rings stack.
Part of the v1.0 UI pass.
Finished: 59d4893.
One incoming-call component for both services, and simultaneous rings stack.
IncomingCallPanelnow builds one list from Discord's calls and Matrix's ringing call and draws them in the one container: the avatar and name of the conversation, who is calling and on which account, then round buttons - green to answer, a camera to answer with video where the Matrix offer carries one, red to decline. The Matrix card's text buttons are gone, and with it the second fixed container at the same corner that drew over the Discord one.