@metalefty Here's what worked for me for now. Nexarian/xrdp@d06b37f
Note this is a WIP branch so don't take too much stock in it.
Do you know anything about the right want to invoke the send_server_monitor_resize function (that I just created) from the dynamic monitor response processor? There seems to be a lot of signaling mechanisms and it's hard to know which is which.
I figured out how to get xrdp_mm.c to communicate to xup.c! Now I can see resize messages being sent from the client all the way to the xorgxrdp backend. The key was the mod structures. Really xrdp_mod is the same as mod, but the idea is that they may have slightly different formats to allow for implementation details.
Dynamic resizing is still not working however. I suspect I need to be cautious about the way the signaling mechanism works. Recently Jay had made some changes to the way xorgxrdp handles resize events, and it's possible those were oriented to resize-on-connection scenarios and aren't flexible enough to handle dynamic resizing of the xorgxrdp backend.
Continuing to investigate. I'm really proud of the progress I've made on this thus far!
Here is my latest change: Nexarian/xrdp@05a3a9a
It works now! To my knowledge, this is the first time dynamic monitor resizing has worked with XRDP!
In the end, it was mostly a matter of taking the dynamic_monitor branch that Jay had already created, and then moving out the "on connect" screen resize functions such that they could be called from a network response function rather than only on session connect.
Anyway, testing/comments appreciated. Build this custom branch and let me know: https://github.com/Nexarian/xrdp/tree/devel
No changes to xorgxrdp are necessary.