This broke with the change to elm (so within this release cycle). Tiling
wasn't properly detecting windows who become centered after creation as
there was no e event for that. This is now fixed, and a blanket solution
for similar gotchas has been implemented (otherwise known as a hack).
Thanks to Mike for helping out.
there is only one E_Comp which can now be accessed by the e_comp global.
if you're editing a file with some uses of these deprecated functions, replace their usages with appropriate references to this variable
pass -Wno-deprecated-declarations to ignore these warnings during build
Summary:
This implements the possibility to "break out" a node in the tree which
means that the node will be appended or prependen to the parent in the
grandparent.
The other function "joins" the node to the node before or after.
Basically it will be added as a child, and if necessarry the client
of this node will be added in a new Window Tree and also added as a child.
With the new actions you can move the focused window right/left/up/down
with keybindings.
If the window will "break out" or "join" depends on the parent split type.
Sample:
1|4|6
2|4|6
3|5|6
(Same Number means same Window)
1 is focused.
Left Key is pressed.
1 is in a vertical split so the window will "break out".
Result:
2|1|4|6
2|1|5|6
Now another key:
Down Key is pressed.
1 is in a vertical split so the window will "join".
Result:
1|2|4|6
3 3|5|6
@feature
Fixes T1350
Reviewers: tasn
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1382
This fix floats all the windows that don't fit because of their min size
restrictions.
It can be made better, at the moment it is very simple. An example
broken case would be the following:
Assume we have 3 windows, A, B and C.
B and C both hand a min width of half the screen.
First we create A, then B. Everything works as they share the screen,
but when we add C, both B's and C's restrictions "fail" so they are both
set to float although in reality, floating C is enough. This can be
fixed by doing a live scan of the tree every time a window is floated,
though it's not essential at the moment.
Fixes T952.
Tiling wasn't being applied when enabling it with a new config because
we were comparing with the old config instead of just always applying.
This fixes T974.
this is not the correct way to use this function, and tiling should probably never call it. this is a function for (slowly) repositioning every client on the currently visible desktop while trying not to overlap. on failure, which occurs when clients cannot be placed without overlapping, it moves clients to 0,0.
fix T1310 because there is no i in team
Summary:
change the time to call _add_hook to eval_fetch in tiling.
finally, tiling resize window after setting desk of client.
Reviewers: tasn
CC: cedric
Differential Revision: https://phab.enlightenment.org/D869
Summary:
initailize the tinfo before calling _remove_client.
remove call "_desk_should_tile_check" in "_remove_client", and added it before calling "_remove_client".
That's beause, in _desk_set_hook, use ev->desk (old desk) to initialize tinfo, and then only remove ec using _remove_client.
Test Plan:
(1) launch any app in one desk.
(2) change the any desk.
(3) launch browser or xchat like the app that launch time is relatively slow.
(4) change the in (1)'s desk quickly before completely launching browser or xchat.
(5) you can see wrong splited screen.
Reviewers: tasn, raster, zmike
CC: cedric
Differential Revision: https://phab.enlightenment.org/D860
Summary:
initialize the tinfo when remove client in tiling.
the reason why of "freezing" that tiling added window twice into _G.tinfo->tree.
then tiling module set to a different size about same window as if two different window.
finally, the event "E_EVENT_CLIENT_MOVE" occurs by changing geometry, and tiling resize the window again by the event "E_EVENT_CLIENT_MOVE".
next, it is the cause of this problem.
In (4), when user types ALT+TAP.
- tiling module adds uniconify window into _G.tinfo->tree.
- at this time, _G.tinfo is the informaion of one desk.
- E create input_only window and destoryed for a moment.
- tiling module initialize the _G.tinfo by the event EVAS_CALLBACK_DEL happend by destorying input window.
- now, _G.tinfo is the informaion of the other desk.
In (5), iconify app.
- tiling try to remove window from _G.tinfo->tree, but failed. (problem)
- because _G.tinfo isn't initialized to the desk including uniconify window at that time.
In (6), uniconify app.
- tiling change the _G.tinfo, then insert client info to _G.tinfo.
so I suggest that initializing the _G.tinfo when removing window.
Test Plan:
(1) launch any app.
(2) Iconify it.
(3) change the desk different with launching app.
(4) Uniconify app by ALT+TAP.
(5) Iconify it again.
(6) Uniconify it again.
Reviewers: raster, zmike, tom, tasn
Reviewed By: tasn
CC: cedric
Differential Revision: https://phab.enlightenment.org/D850