we had multiple drag resistance values here - unify with 1 and make it
work, now it gets it right deciding between dnd and a long press menu
etc. etc. ...
while also still using the new menu system.
This binding check/action handler was removed, because I am assuming
that the presumption was that the only binding/action that was handled
was showing a menu? This was actually not the case. This
binding/action handler handled resizing, moving, dragging, etc... on
gadgets on the desktop and in the gadget bar. Without it using gadgets
was near impossible on the desktop and inconvenient on the gadget bar.
The longpress menu was only getting cancelled if a drag occured at a
distance of least 25 pixels. This is due to the code checking for horizontal drag
distance + vertical drag distance >= 25. I believe the intent here was
to cancel drag if >= 5 vertically or >= 5 horizontally, not both. Most
drags wouldn't be 25 pixels in a single gadget such as pager, and a 25
pixel drag would not happen quick enough to offset longpress. This
commit also lowers the drag cancelling threshold to 3 pixels, not 5.
This was obviously wrong, it was comparing
the geometry of the whole gadget instead of
the icon one. Now the menu doesn't always
act on the first icon ;)
This is how all the other new gaget are doing the
config popup, I copied from time gadget.
I really think the config popup creation (and size/show)
should be handled by E, not by each gadget. ATM this
code is repeated in every gadget.
hold mode is where if u hold mosue down menu stays only as long as
mouse is held down... then dismissed on up. doesnt work well when youa
re trying to overload a single click with longpresses and so on -
optionally turn it off. used in gadgets.
now right click on any gagdte in bryce and they ALL have a menu that
allows removal of the gagdte bar or the gadget as well as access to
gadget settings AND the ability for gadgets to extendthis menu like
lunhcer does per icon. now it's standard behavior everywhere which is
much easier to use and discover. it also removes code from every
gadget to do their own "button 3" handling as its handled centrally
making the code in gadgets simpler.
this is part of my effort to improve usability (mostly discoverability
and accessibility of settings/features).
also long press left mouse gets u gadget right click menu
this has to move many modules/gadgets actions to mouse up instead of
mouse down so the bryce has a chance to trap the events first and set
hold flags. but now long press for 0.5 sec and bryce menu come sup
(with left mouse .. so touch friendly).
in addition move context menu hanbdling to e_gadget instead of in
bryce and in e_gadget. a context callback is called so different
systems can still do different things. this should probably change to
always pop up a mnenu and simple call populate callbacks for site
owner specific content.
all in all it makes the new gagdtes more consistent, easier to use
(without a right mouse button), doesn't need special action bindings
etc. etc.
bryce was missing the ability to espose orientation to the child
items, so they were the same irrespective of orientation.
i also notice that orientaiont is a simple horiz/vert ... so no
ability to special case corners etc. in the theme... :( not sure if
this should be changed.
also fix the aspect calculation to round up correctly to avoid
off-by-1 pixel gaps i noticed with the pager - necessary for the
styling in the flat theme to be right.
but is not explicitly linking against it. Previously this was not
discovered due to a wrong flag in elementaries pkgconfig. However - the
new .pc file of elementary does not contain dl anymore (as no library
_needs_ to link against it when using elm). So we need to link this here
explicitly
Differential Revision: https://phab.enlightenment.org/D7150
Summary:
Previously if you had different wallpapers on different screens
then came back to the settings and changed the wallpaper ALL
screens would be set, and the painstaking work of setting
various wallpapers across desktops/screens is lost instantly.
This patch avoids this annoyance.
Reviewers: raster, zmike!, devilhorns
Reviewed By: raster
Subscribers: cedric
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D7141
Summary:
Prevent wayland clients from being able to destroy the compositor's
singleton keymap by making individual copies for each client.
Reviewers: zmike, devilhorns
Reviewed By: zmike, devilhorns
Subscribers: cedric
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D6861
this may be causing stale clients to stary in the tasks list. this
might fix it, but i'm not sure as i can't reproduce.
adresses T7223 or at least mhy comment on the valgrind log
@fix
Summary:
evas functions
This fixes an issue when quickly mousing through menus can cause a
segfault in Enlightenment due to menu->comp_object being NULL
ref T7030
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric
Tags: #efl, #enlightenment22
Maniphest Tasks: T7030
Differential Revision: https://phab.enlightenment.org/D6641
elm wont switch profile on the fly if ELM_PROFILE is set this is
considered a custom override thus it stops working... so don't set it
- the elm config files should contain the right profiles to use.
follow on form 4c7b798b45 - really
remove from the alias hash. the alias id is different and should ave
been stored in the pixmap and be deleted when pixmap is freed. i had
it right to remove from the aliases hash too, but i used the wrong id
- i used the "core" pixmap id, not alias. this tracks and uses that
alias.
this means internal windows are reliable now and dont crash...
@fix.
on pixmap free only the pixmaps entry was deleted not the pixmaps hash
one. this led to lookup of stale pixmaps in the aliases hash... and
then a crash.
also use the correct local type with the correct byte order as well.
this has probably been an issue for a while but now internal windows
should work much better without crashes.
@fix
so a new bug in a gpu driver. if dpms is enabled, wakeup doesn't
happen. mouse doesn't do anything, rendering doesn't happen... i can
use the keyboard and ctrl+alt+enmd restart e or killall -HUP
enlightenment and e restarts and renders ... but nothing appears.
interestingly if i let it timeout again and wake it up a second
time... things render (but e is confused it seems and mouse input
doesnt work until i restart e). it's some kind of xorg/driver bug here
with this dpms - no dpms and all is fine. all e does with regards to
dplms is enable or disbale it (and set the timeouts) so e isn't doing
antyhign special otherwise with dpms on vs off ... so somethnig deeper
down the stack here, but to get a desktop that works at least for now,
add an option to not use dpms.
Summary:
in the case where deletion is deferred to preserve a window animation this
codepath may be triggered by a deleted client, at which point no render update
should occur in order to avoid compositor errors
ref f78eb3c108
fix T5203
Reviewers: ManMower, devilhorns
Reviewed By: devilhorns
Subscribers: netstar, cedric
Tags: #enlightenment-git
Maniphest Tasks: T5203
Differential Revision: https://phab.enlightenment.org/D6367
Summary:
these are all harmless but will trigger error messages from efl
ref T7030
Depends on D6315
Reviewers: ManMower, devilhorns
Reviewed By: devilhorns
Subscribers: cedric
Tags: #enlightenment-git
Maniphest Tasks: T7030
Differential Revision: https://phab.enlightenment.org/D6316
It happens that some devices are considered as batteries, even if they
cannot be charged or used as a power supply for the laptop.
The ELAN device deals with the touchpad and is a "battery". When looking
at the udev info, it appears that there is no technology present as
well as the basic battery info (energy levels).
P: /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-ELAN24CC:00/0018:04F3:24CC.0003/power_supply/hid-0018:04F3:24CC.0003-battery
E: DEVPATH=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-ELAN24CC:00/0018:04F3:24CC.0003/power_supply/hid-0018:04F3:24CC.0003-battery
E: POWER_SUPPLY_CAPACITY=1
E: POWER_SUPPLY_MODEL_NAME=ELAN24CC:00 04F3:24CC
E: POWER_SUPPLY_NAME=hid-0018:04F3:24CC.0003-battery
E: POWER_SUPPLY_ONLINE=1
E: POWER_SUPPLY_PRESENT=1
E: POWER_SUPPLY_SCOPE=Device
E: POWER_SUPPLY_STATUS=Discharging
E: SUBSYSTEM=power_supply
The issue with that kind of devices is that it confuses the battery
gadget. Since two batteries are present, the total capacity is divided
by 2, resulting in the gadget displaying only 50% when the battery is
fully charged.
To avoid this, we check that the battery technology is known.
@fix
e was not properly handling the opacity hint in its 0-0xffffffff
range. in one case it converted e's color value to this range but just
with << 24 which is wrong as it then ignors the next 24 lower value
bits, so it should fill the next 3 bytes with repeats of the same
value to do this right, but far worse is on READING the value it just
used the value as-is as if it were a 0-ff (0-255) alpha value that we
use in evas and didnt "thunk it down" with val >> 24. this resulted in
renoise menus being blank as renoise set the opacity value on its
menu windows and e happily made them transparent thanks to this.
this fixes that.
not to peolpe fro the above. bitshifting DOWN is ok, but bitshifting
UP leaves the lower bits all 0 and you should fill this range with
repetitions of the value to properly scale in integert space with
bitshifts. :)
@fix
wizard module was relying on implicit symbol linking for pages. since
i chnaged dlopens to be local this broke page loading. this local
dlopen change is all about not leaking symbols into the global table
which is good/right, but this stops the wixzard setup from working, so
move to explicitly exposing symbols to the modules in a struct.
The symbol table fix on Linux doesn't translate well on BSD.
Adding code to use the older behaviour with the BSD systems
and retaining the new preferred behaviour when using dlopen(3)
on Linux.
running emixer from the mixer module popup was resulting in crashes.
it was this exe event handler handle and leaving a dangling garbage
ptr after it was deleted.
@fix
so users will be mucho displeased and bewildered when the bt adatper
is powered on but nothing happens... it ends up that with some bt adatpers
it will be rfkill blocked by default. this is highly unfriendly. at
least if you have bluez5 module loaded and configured the adatper to
be powered on... i see no reason why it shouldn't be unblocked if the
adatper is powered on. i have considerted making it an option but for
now can't think of good reasons to really do that.