when plugging a screen in and out, there is the case that a zone has a
usefull geometry of 0x0, which means all clients on this zone are
resized to 0x0. Which leads to a CRIT message in the compositor, which
leads (ref commit 5d875e6a3d) to a abort()
which is really really annoying. Give here a short ERR about that case
so we are leaving out the compositor, since this really only strikes on
tiling, since in normal mode the client just keeps its size.
there is no event that indicates that the mouse went to a other zone. To
solve this we simply update the current split type each time when
changing or using the type.
If someone starts to drag a client arround, then the client will shrink
into a icon, that now is always at the position of the mouse cursor, if
the drag ends, the client will be placed in the client currently below
it. The client will be placed in a place where the mouse cursor was
currently closer to.
alignment warnings are anal and seem to not like casting allocated
structs nicely ... but they are noise that hides real issues, so
silence these as these casts/ptrs are ok after inspection.
So yeah, I've literally used sed to replace every occurrence of
ecore_time_add() with ecore_timer_loop_add() because I'm reasonably
confident that no part of E has a legitimate need for timer based on the
exact current time.
It would be really nice if I'm not wrong. :)
The reason for this is the incredible spew of clock_gettime() calls I'm
seeing on an ARM system (that should have a vdso for gettime, but...)
This can amount to thousands of system calls per second.
#YOLO
Otherwise the popup will be where you are not looking at.
This patch adds a new function to e_comp_object where you can pass the
zone where you want to place the e_comp_object on.
ref T4499
in many cases, a mouse action's callback will fail to execute as a result of multiple
objects being under the pointer at the time of the event. in this case,
the callback should be able to determine whether action callback processing should
continue.
as an example, when attempting to execute an action which only activates for
client objects, if the passed object is not a client then the callback should return
false to indicate that it was not able to perform the action for the given object,
allowing further actions to be attempted on this object
I can't find anything in the specs that would imply those shouldn't be
tiled. This may cause placement bugs, but I don't think that'd be the
case, as we ignore application placement when tiling anyway.
@fix
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 fixes the case when par is NULL, this means we should insert a
parent node between the 2 nodes and root. (T1790)
Example:
Each Number is a Window,
12
Focus on 2
Press Win+Up should end up in this:
2
1
This patch also makes the bahavior for 2 windows more
consistent
12
Focus on 2
Pressing Win+Right,
21
It Will just swap the nodes,
This is the same behavior then in higher levels.
Reviewers: tasn
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1643
Summary:
The module is now working like it is described in T1773.
What the patch really does:
If a join request can not be done cause there is no node in the
direction to join, the join will try to break out the node into the
grand-grand-parent, this means a node can break out of his parent
without walking done each parent.
Issue as described in the original ticket:
Each number represents a different window:
122
134
155
Focus on 3, press Win+Left
I'd expect it to become:
132
134
135
But instead, nothing happens.
Fixes T1773
Reviewers: tasn
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1632
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.