Sebastian Dransfeld wrote: > dan sinclair wrote: >> Sebastian Dransfeld wrote: >>> The ecore_x_netwm_state_request_send() function should be correct. But >>> don't send the ECORE_X_WINDOW_STATE_FULLSCREEN twice (although it >>> shouldn't matter). It is possible to request two changes in one call, >>> but if you only want to change one property use >>> ECORE_X_WINDOW_STATE_UNKNOWN. (There should be an >>> ECORE_X_WINDOW_STATE_NONE there, please add it :). >>> >>> The request will (should) only work if the window is mapped. Else the >>> state should be set on the window with ecore_x_netwm_window_state_set(). >>> >>> If it still doesn't work, I've done something wrong somewhere. >>> >>> Sebastian >>> >> Hm, using the ecore_x_netwm_state_request is actually causing evas to segv: >> #0 0x00002aaaac64f45d in evas_object_change (obj=0x5703a0) at >> evas_object_main.c:66 >> 66 obj->layer->evas->changed = 1; >> (gdb) bt >> #0 0x00002aaaac64f45d in evas_object_change (obj=0x5703a0) at >> evas_object_main.c:66 >> #1 0x00002aaaab279e57 in _edje_part_recalc (ed=0x56ee80, ep=0x5701a0, >> flags=3) >> at edje_calc.c:1117 >> #2 0x00002aaaab27a17a in _edje_recalc (ed=0x56ee80) at edje_calc.c:162 >> #3 0x00002aaaab284d48 in _edje_thaw (ed=0x56ee80) at edje_util.c:1781 >> #4 0x00002aaaab287688 in edje_thaw () at edje_util.c:49 >> #5 0x00002aaaaac49ffe in ewl_idle_render (data=0x5703a0) at ewl_misc.c:456 >> #6 0x00002aaaace9c715 in _ecore_idle_enterer_call () at >> ecore_idle_enterer.c:78 >> #7 0x00002aaaace9e635 in _ecore_main_loop_iterate_internal (once_only=0) >> at ecore_main.c:487 >> #8 0x00002aaaace9e957 in ecore_main_loop_begin () at ecore_main.c:79 >> #9 0x00002aaaaac4a609 in ewl_main () at ewl_misc.c:357 >> #10 0x0000000000402837 in main (argc=2, argv=0x7fffff998008) at main.c:104 >> (gdb) quit >> >> >> If I do it before the window is realized (with the _state_set call) I >> get a window that doesn't have a border, but isn't resized to the size >> of the screen. I think the WM should do the resize, correct? Or do I >> need to store the original position/size in ewl somewhere and restore >> that when they drop out of fullscreen? >> >> If you want to see what ewl is doing, do a cvs update as I've put the >> code back. There are two tests you can run 'ewl_test widget' and then >> click on the button on the bottom should try to use the _state_request >> function to go fullscreen. The other test is 'ewl_test fullscreen' which >> will do it before the window is realized. >> >> Again, it's quite possible I've done something wrong with this, I just >> don't know what it is, heh. > > Maybe the window either has a size set, or sets it size later? If the > state is set to fullscreen on map, the wm should make the window > fullscreen without any client interaction. Same with the state request. > > I can look at the test apps, I will probably have time for it tomorrow.
Well. Request state is fixed (hopefully), whilst state set before map is broken. E ignores all window size changes because the pending move/resize queue is read before the hints are read. As I remember, this used to work, but doesn't anymore. If no one objects, I will move e_hints_window_init() before reading the pending move/resize queue. Sebastian _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
