this also should apply to calculating height correctly given a known
width - ie horiz or vert taskbar in a shelf. without this you can't
calc min size correctly from the theme.
@fix
this makes tasks behave like you'd expect with a stack - only show the
top one and track properly. tasks was simple and easiest to do first
as it has little fluff other than the tasks logic itself. other
elements of e next...
ALSO dont remove dups from e_module_new as we may be walking at the
time. instead refuse to load a module alread loaded bu name. this
should solve things better.
@fix
so e config would add lunhcers forevert. i spotted 13 of them. no.
just one. also make them delayed because thats pretty much what we
always want. same with other config added modules. should be delayed
generally.
this adds core basic handling for window stacks where windows behave
correctly as a single unified stack something like what naviframe does
but out-of-window so you can including multiple processes. only on x11
right now as it's being supported/worked on.
as we dont plan to kepe naviframe in future, this is the way to go.
naviframe "pages" will be windows in a stack. the wm should do the
nice thing. in e this will be very nice. for now elsewhere we use
transient_for so a wm would treat this like a bunch of dialogs with a
single parent window. i guess in a desktop thats probably what you
might expect. e will be a little more "finesse" filled.
need to make ibar, tasks,m win menu and winlist (alt-tab) respect this
and only show the top member of a stack.
need to send messages to clients when they are "top" or "middle" or
"bottom" or "alone" in the stack or something so decorations can change.
should add soem new border signals in theme (for both SSD and CSD) to
make this look nice. will need some config additions for that and
ability for e comp to do the right thing
but this is a solid start
==13307== 96 bytes in 1 blocks are definitely lost in loss record 6,598 of 11,698
==13307== at 0x4C2DA60: calloc (vg_replace_malloc.c:711)
==13307== by 0xCECA287: eina_tiler_iterator_new (eina_tiler.c:1299)
==13307== by 0x46D13D: e_comp_object_render (e_comp_object.c:3966)
==13307== by 0x46DB42: e_comp_object_dirty (e_comp_object.c:3923)
==13307== by 0x46017D: _e_comp_client_update (e_comp.c:343)
==13307== by 0x46017D: _e_comp_cb_update (e_comp.c:400)
==13307== by 0xB34D4BA: _ecore_job_event_handler (ecore_job.c:98)
==13307== by 0xB34909C: _ecore_call_handler_cb (ecore_private.h:317)
==13307== by 0xB34909C: _ecore_event_call (ecore_events.c:518)
==13307== by 0xB350527: _ecore_main_loop_iterate_internal (ecore_main.c:2359)
==13307== by 0xB3508A6: ecore_main_loop_begin (ecore_main.c:1287)
==13307== by 0x43C88A: main (e_main.c:1093)
This patch makes the mouse pointer disappear when the physical mouse
device is unplugged. It also makes the mouse pointer reappear when a
physical mouse is hotplugged.
NB: There is one small hiccup with this patch and that is: when you
re-plug the mouse in the pointer itself doesn't show until you
physically move the mouse. Tried several things locally to sort it
out, but no success :/
Signed-off-by: Chris Michael <cp.michael@samsung.com>
the sizing issue in all of these tickets was caused by the "empty" object
being deleted, thus allowing the box to reset to 0x0 size hints and
returning this value as the overall size during recalc; the result is that
all icons would be sized at 0x0 instead of using the preserved orient size
as expected
fix T4509, T4647, T4830, T4733, T4524
the assumption that this code was making assumptions about elm_box
internals based on a shallow reading of the code was incorrect, and
the resulting "fix" (and subsequent attempts to bandaid it) has left these
gadgets in an unusable state for the past half year.
disappoint.jpg
this reverts the following commits:
f97f8f61acebfa4a97cd50030dc69342aa6be359504706d45ab1f608c5e6b107dc1cdc3fc195cd9f
each poll - check if temp actually changed and only send edje message
if tempt actually did change. saves some cpu while polling in the bg
for these things.
@optimize
this automatically handles the case where enlightenment has commandeered the
cursor temporarily and the active client has not unset+set a new cursor in the
meantime
these later get overridden onto the pointer layer, but setting a layer
here ensures that the pointer surface will always be the client
returned by e_client_top_get()
in the case of internal windows, the client is deleted before any surfaces
are destroyed. this requires a special case to perform cleanups in order to
prevent client objects from leaking
We shouldn't be doing this, but there's a collective memory that
this was put in place to fix stuck modifier bugs.
If we run into stuck modifiers again because of this patch, then we
should be fixing them in a different way.
If anyone bisects to this point, I apologize - assign me a ticket.
this should reduce mem usage by a sub binary and aso solve the sub
shell kill issue too nd still keep the polling of system status out of
the mainloop and keep it unblocked.
so since e_util_defer_object_del used a before idler this would
reverse deletion order vs the order submitted. this may cause issues.
not sure. chasing netstar's "animator stops" issue, but if defered
deletion if disabled seems to stop it from happening.
at least fix order if multiple deferred deletions are queued
@fix
The focus in timer has been firing for deleted clients, this causes a
NULL pointer dereference.
Then again, maybe the timer should've been disabled by now...
_parent_client_contains_pointer() shouldn't return true if there is no
parent client. This could result in leaving stale resources in the
keyboard focus list and crash the compositor.
this occurs when the shell resource dies before all the surfaces/positioners
are destroyed. usually this means the client has aborted, so there's no point in
sending an error or doing anything beyond performing a thorough cleanup
When building enlightement without xwayland, we need to provide
MESA_EGL_NO_X11_HEADERS in the CFLAGS to avoid including X11/Xlib.h.
This define is provided by WAYLAND_EGL_CFLAGS, so add it for E modules
and e_fm build.
Fixes:
In file included from /usr/include/EGL/egl.h:39:0,
from ./src/bin/e.h:108,
from src/modules/mixer/lib/backends/pulseaudio/pulse.c:1:
/usr/include/EGL/eglplatform.h:119:22: erreur fatale : X11/Xlib.h
Signed-off-by: Romain Naour <romain.naour@gmail.com>
This small patch modifies the conf_theme module to use screen dpi from
the compositor canvas (thus getting server screen dpi) for use in
scaling.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Now that the ecore_evas_drm code can return screen dpi, we can use
that rather than using a client API function (ecore_wl2) to get server
screen dpi.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Use this gadget on your desktop for a grid of icons to be used to launch applications. The grid is simply a launcher and doesn't have all of the features that the bar has such as iconify, taskbar, styles, etc... Please make sure to update your efl with this to get the related theme updates.
in the case where warping would not occur and a mouse-based focus policy was
not in use, this would break mouse eventing on wayland when a window lost focus
but the cursor remained inside the window
ref 3e6d6b348f
previously characters such as tab would be injected into the entry when pressed.
this is the same check which is used in various other places in efl for string
validation
As we do not compile-time link with libdrm inside Ecore_Drm2 anymore,
we need to include relivant bits of drm_fourcc header here in order to
define DRM_FORMAT_XRGB8888 else we fail to compile Enlightenment Wayland
Signed-off-by: Chris Michael <cp.michael@samsung.com>
the default profiel is configureed to use dpi to scale. if dpi goes up
so does wizard scaling. setitng to 1.2 forcibly is just wrong. imagine
a uhd screen thats 13" or imagine an 8k display... at least if dpi can
be read correctly things work out find. think the base dpi of 90 is
too high - then adjust that in profile... but not in wizard code.
this has been here a while and i always thought this scaling bumping
was a dpi effect. it wasnt. it was hardcoded. bad bad.
@fix.
If we got more than one volume sink in e_client and we change the volume
of one of them all sink of this e_client are updated to the same volume.
So don't update e_client volume if we got more than 1 sink.
T4821
Similar set of changes to the recent input region changes. They may not
have been quite so broken to begin with, but it's probably less confusing
to treat both types of region the same way.
It was impossible to set an empty input region.
Input regions were being clipped to the size of whatever buffer was
previously attached when they should really be clipped at commit
time to whatever buffer was attached in the commit.
The intersection operation created round off errors and
e_comp_object_input_area_set is clipping anyway, so we can simplify this
and retain precision.
We don't have any idea at this point what the region will be used for,
and tilers clip to their area on ingress. If we're going to use tilers
for wayland regions we need to make them huge and clip them later.
this is usually called before the surface commits, so ensure that the
most likely case is returned as the default until the commit occurs
fixes black rect flickerings around the cursor
I referenced elm scrollable for this when writing it. past me was a moron
for using reference code instead of reading the underlying implementation.
fixes scrolling
on some devices asking the cpu for info like current frequency,
governors etc. seems to be expensive and if done in the mainloop can
block for multiple ms causing framerate hiccups, so move it to a
thread...
this causes the returned coords to be garbage values, likely leading to
the bryce being positioned or animating off to the upper-right corner
of the universe that exists beyond the canvas
This fixes a crash where mousing back into internal windows would
cause a crash (from efl wayland mouse pointers).
Signed-off-by: Chris Michael <cp.michael@samsung.com>