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

Reply via email to