upon mousing into a screen edge, other connected screens will now be checked for location. if another screen is near the current edge, no binding will be triggered
SVN revision: 71580
Subject: [E-devel] [Patch] e_zone bug fix
I found a minor bug in e_zone.c. The bug is that the E_EVENT_ZONE_DEL
event doesn't occur when the zone is deleted.
SVN revision: 70453
not zone->id. zone->id is for matching u to zinerama/xrandr
screens/outputs. e re-sorts based on highest res screens first, lower
res later.
SVN revision: 67951
convinced that we need to dump edge bindings as they stand entirely
and turn it into an event registration system.
virtual desktops register for edge events on the zone they are on as
they flip around or are created or destroyed. shelf for audiohide
registers a region of an edge etc.
SVN revision: 64100
Do not abuse the concept of e_*_init(), make them call-once and those
that needed multiple call are renamed to e_*_update(). To make sure
convert them to EINTERN so the symbols are not exported.
Actually I guess too much is exported as EAPI while they should be
EINTERN, but that would require manual investigation, while this patch
was basically created with sed + grep.
SVN revision: 54795
better and only create what is needed to surround the fullscreen
window if it cant be fullscren and needs a black border).
2. set bg color of root to black - e has its own bg anyway.
SVN revision: 54748
* Remove vim modelines:
find . -name '*.[chx]' -exec sed -i '/\/\*$/ {N;N;/ \* vim:ts/d}' \{\} \;
find . -name '*.[chx]' -exec sed -i '/\/[\*\/] *vim:/d' \{\} \;
* Remove leading blank lines:
find . -name '*.[cxh]' -exec sed -i '/./,$!d'
If you use vim, use this in your .vimrc:
set ts=8 sw=3 sts=8 expandtab cino=>5n-3f0^-2{2(0W1st0
SVN revision: 50816
The new trend these days seems to be "place a shelf on top of the
screen", in that case your desktop icons will get under that shelf and
looks annoying, people laugh at E users that use that :-D (fortunately
I'm the one that usually laugh...)
Fixed, but possible other places to be fixed as well. If one wants to
avoid the shelves, use the e_zone_useful_geometry_get().
e_zone now emits E_EVENT_ZONE_MOVE_RESIZE when the useful geometry
becomes dirty. Maybe it is worth to add a new signal, but I'm reusing
it until someone complains.
SVN revision: 49431
For corner shelves, detect movement in corner windows
Use ev->root.{x,y} as event coordinates, we do not care where the mouse
moves within the edge windows.
Convenience function for window -> edge detection.
SVN revision: 45498
Previously all windows always existed, and edge bindings showed/hided
windows as needed. And e_zone_flip_win_disable/ e_zone_flip_win_restore
f**k'ed this up.
Will fix bug #483 soon.
SVN revision: 45366
put the edge windows on the correct layers
allow edge click bindings
use actions for auto-hide shelves
toggling auto-hide will cause edge event windows to show/hide if necessary
SVN revision: 42864
The option can currently be activated from Virtual Desktops Settings -> Advanced. A better home and preview would be better for these settings.
In more detail, this option can make a wallpaper, larger than the geometry of the zone, scroll appropriately with each desk change. Consider a nice panorama picture, which is as wide as the total desks' width. Then, at most, E will scroll the background by 1 / (number of desks) for each desk change. The direction of the scrolling is dependent on the desk change itself. Also, the user can specify a coefficient of maximum scrolling for each axis. If the coefficient is 0, the wallpaper will not move.
More advanced animations can be constructed with edje. The data item "directional_freedom" "(1|0) (1|0)" can toggle the actual wallpaper scrolling done by E for each axis. A message with the current x/y position, panning w|h, and zone w|h is sent to the background edje with each desk change animation tick. An example embryo script that handles the message, and changes a hypothetical "a1" part in the "e/desktop/background" group is shown below:
public message(Msg_Type:type, id, ...) {
if (type == MSG_INT_SET) {
new x = getarg(2);
new y = getarg(3);
// new max_x = getarg(4);
// new max_y = getarg(5);
// new w = getarg(6);
// new h = getarg(7);
custom_state(PART:"a1", "default", 0.0);
set_state_val(PART:"a1", STATE_FILL_POS, 0.0, 0.0, -x / 4, -y / 4);
set_state(PART:"a1", "custom", 0.0);
}
}
SVN revision: 40543
* e_border_center() will center window in a better way, accounting
the shelves/panels instead of just centering on the screen. This is
better and most noticeable if screens are small and a big shelf on
just one edge.
* e_border_move_without_border(), e_border_resize_without_border()
and e_border_move_resize_without_border() will assume the given
values do not acount border/decorations (client_inset) and will do
automatically. As stated in documentation, this is specially useful
when it is a new client and thus have no decorations when it is
positioned, when decorations are added window would be placed at
wrong position. One can try this by adding efwin window overflowing
the bottom-right corner, closing it and when reopen fileman would
try to make it inside the screen, this would not work well with
part of the window still being outside.
* e_win_move(), e_win_resize() and e_win_move_resize() will now use
new e_border functions.
SVN revision: 40307