By playing with screen orientation spying for traces, signals etc. I found by changing orientation, everything was properly handled.
So Qt internal initialization stuff is properly triggered by doing this:
PHP Code:
SendEvent(GetEventHandler(), EVT_ORIENTATION, GetOrientation(), 0);
I have no idea if this has any effect outside Qt context, but it might be worth trying.
edit: did not see your answer before rkomar, I will try to completely disable those DrawPanel functions.
edit2: avoiding DrawPanel calls does not make it my case. From what I understand, PB Qt platform integration makes use of inkview library. When starting Qt graphic stuff (which occurs at QApplication construction), InkViewMain is called, and internal window system is initialized with some defaults (i.e. Panel shown). When calling SetPanelType(0), QPlatformScreen is not notified of the change (QApplication::desktop()->screenGeometry() continues to return partial screen size). The simple call at the top of this message make stuff properly update.
Of course, this is speculation, but the result is here with Qt.
There are custom event types in PB platform integration. For now I have only discovered 1111 which simply wraps OpenRotateBox and perform SendEvent() stuff in handler, nothing more. So I guess EVT_ORIENTATION is properly processed in main event handler. And after that, QApplication::desktop()->screenGeometry() returns good value.
All I know it is valid only for Qt.