ghaerr / microwindows

The Nano-X Window System
Other
648 stars 92 forks source link

wasm: hide window content while dragging ? #84

Open pmp-p opened 6 months ago

pmp-p commented 6 months ago

is it possible to prevent showing window content while moving them ?

https://pmp-p.ddns.net/gh/mwin_asyncify/mwdemo2.html

Also when a window (X11) goes a bit out of viewport and come back, redraw is not always ok until mouseover the main widgets

https://pygame-web.github.io/showroom/fltk/index.html

maybe related https://github.com/ghaerr/microwindows/issues/28

ghaerr commented 6 months ago

Hello @pmp-p,

is it possible to prevent showing window content while moving them ?

Yes, the ERASEMOVE setting in config (default =Y) will normally prevent Win32 window content redraws while dragging the window. It looks like the Emscripten build in demos/Makefile-emscripten is not setting this. Try adding a line CFLAGS += -DERASEMOVE=1 in line 31, that should fix it.

Also when a window (X11) goes a bit out of viewport and come back, redraw is not always ok until mouseover the main widgets

Hmmm... this one will be a bit harder to figure out. It appears that an X11 expose event is not being sent, or perhaps blocked from being received, either in the FLTK main loop, or perhaps in the NX11 (X11 -> Nano-X) conversion library. In certain cases the X11 server (which of course is not running) may be expected to keep the window contents and redisplay without an expose event.

Are you running an older (tested with Nano-X) version of FLTK? Another thought would be to turn on debug output, setting #define EVDEBUG 1 in src/nx11/NextEvent.c, as well as adding CFLAGS += -DDEBUG=1 in demos/Makefile-emscripten as describe above. This should produce more output that we can possibly use to determine what events are being received by NX11/Nano-X and help find the problem location.

Another thought would be to run a Linux native version of the demo, from which we might be able to capture more debug output.

Thank you!

pmp-p commented 6 months ago

FLTK in above build is git, my patches are here https://github.com/pmp-p/fltk-wasm and the upstreaming discussion here https://github.com/fltk/fltk/issues/41#issuecomment-1895554255

thank you, i'll try the ERASEMOVE asap not sure i will have time for debugging though