Commit Graph

11538 Commits

Author SHA1 Message Date
Carsten Haitzler cd3490f35c e - wl mode - stop consuming 100 percent cpu
so on 1 intel laptop and my rpi i'm seeing 100% cpu usage in wayland
mode. it seems something is resizing to 0x0 and then causing a size
change which causes a property change which causes... another request
to 0x0 and repeat. dont set tyhe size changed flags if size actually
didnt change and this fixes that.
2017-01-15 14:16:31 +09:00
Mike Blumenkrantz 0c56e19a64 validate xdg-shell move/resize requests against latest button serial
these are supposed to match in order to initiate the corresponding action
2017-01-13 11:35:20 -05:00
Mike Blumenkrantz aba6687b30 handle pixmap_refresh() failure cases more accurately under wayland
non-usable pixmaps here are still valid in some cases, such as when
no buffer is attached
2017-01-13 11:35:20 -05:00
Mike Blumenkrantz 27091c510c ensure that gadget internal del callbacks are handled before other callbacks 2017-01-13 11:35:20 -05:00
Mike Blumenkrantz fe2c390861 use geometry from comp object input rect when determining if coords intersect
the rect geometry may be clipped, so use whatever the current geom is
2017-01-13 11:35:20 -05:00
Mike Blumenkrantz 0fbef3b74e use persistent clipping for comp object input rects
it's technically legal to set an input region larger than a surface,
then later expand the surface and expect that the input region will
also expand
2017-01-13 11:35:20 -05:00
Mike Blumenkrantz df414cef65 do not perform frame coord adjustments for re_manage wayland clients
prevent mismatch of positions between restarts
2017-01-13 11:35:20 -05:00
Mike Blumenkrantz e4e8db74d9 do not return sr window remembers if not looking for sr remembers 2017-01-13 11:35:20 -05:00
Mike Blumenkrantz 3af7affa02 free configs for demo gadgets on object free
these are purely for demo purposes and should never be retained

I think this is right...
2017-01-13 11:35:20 -05:00
Mike Blumenkrantz 5aadf3b3ff implement xdg-foreign v1
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2017-01-13 11:34:50 -05:00
Mike Blumenkrantz d1bb23954f break out code to set clients as transients for a parent 2017-01-13 11:33:36 -05:00
Chris Michael 92aa99b97a Use proper coordinate adjustment
This seems like just some copy/paste that was never corrected, however
when calculating coordinate adjustments we should be using the proper
values here. Previous code was using e_comp_canvas_x_root_adjust for
the Y value. This patch uses e_comp_canvas_y_root_adjust for Y
coordinates.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-01-12 10:44:23 -05:00
Carsten Haitzler 45b6536a20 e_icon - remove icon cache code - its disabled anyway with ifdefs
this isnt used so it just adds complexity/code to work on. remove it.
it would need a rewrite anyway as using a single file is hugely
inefficient as eet has to doa full rewrite of the file every
modification... it also duplicated icons in memory and dint load
directly from file etc. so... remove anyway.
2017-01-10 10:32:51 +09:00
Stephen 'Okra' Houston 05f35b4deb Enlightenment: Make gadget editor popup scrollable:
This fixes T5077
2017-01-09 10:39:39 -06:00
Carsten Haitzler 8d6b834d57 e_icon - handle load failure and dont display icon object
also some XXX fixme notes i found along the way
2017-01-09 18:24:25 +09:00
Carsten Haitzler 0b0b6e6fd9 desklock - make blocker transparent again - a theme issue not code
if "theme is transparent" and this is an issue - dont use that theme.
very simple. the theme for a desk LOCK should be solid. it should hide
what is underneath. that is the POINT is can have transition effects
and that is why we shouldnt hide what is under it to allow that to
happen otherwise if you do have such an effect (eg a fade in) you just
get a black screen instantly on ctrl+alt+l for lock for example THEN
it fades in which is not how things SHOULD look.

yes - there is an issue on locking on screen lock where you get an
initial fade in effect for example as desklock is shown LATER like
when screen "unsuspends" from blank rather thanbefore this point. that
is orthogonal. this rect should block events... not pixels. don't use
non-solid themes or images if you dont want to see through...
2017-01-07 14:19:18 +09:00
Carsten Haitzler 3903d44666 e - BLOODY BUILD AGAIN - DAMN FLOAT WARNINGS...
i swear ... all of this shit over a warning that CAUSED more bugs than
it eveer fixed? sersiously...

ARGH!
2017-01-07 14:05:17 +09:00
Mike Blumenkrantz 574bf220d5 mark strftime calls using struct tm in e_slider as safe
disable -Wformat-nonliteral temporarily
2017-01-06 12:57:34 -05:00
Mike Blumenkrantz 86505cd885 add global macros for easily toggling warning flags
in some cases, eg., -Wformat-nonliteral, warnings may be generated for
valid uses of C, but the warning is still useful. this allows certain warnings
to be disabled as necessary
2017-01-06 12:57:34 -05:00
Mike Blumenkrantz c5b3aba6fd specify format string for desk names in desk config
-Wformat=2
2017-01-06 12:57:34 -05:00
Mike Blumenkrantz 40f8e02be8 resolve misc float-equal warnings
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2017-01-06 12:57:34 -05:00
Mike Blumenkrantz 7264ac9e96 resolve binding+action float-equal warnings
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2017-01-06 12:57:34 -05:00
Mike Blumenkrantz ec96143327 resolve client float-equal warnings
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2017-01-06 12:57:34 -05:00
Mike Blumenkrantz faac750727 resolve gadcon-related float-equal warnings
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2017-01-06 12:57:33 -05:00
Mike Blumenkrantz c242029cf7 resolve widget-related float-equal warnings
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2017-01-06 12:57:33 -05:00
Mike Blumenkrantz 989b0cd096 fix selective disabling of -Wunused-parameter under clang in copied weston code
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2017-01-06 12:57:33 -05:00
Mike Blumenkrantz 85589ab2b8 resolve compositor float-equal warnings
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2017-01-06 12:57:33 -05:00
Mike Blumenkrantz 5268ac6500 resolve efx float-equal warnings
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2017-01-06 12:57:33 -05:00
Mike Blumenkrantz aeb8851c9d resolve efm float-equal warnings
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2017-01-06 12:57:33 -05:00
Mike Blumenkrantz 6f1f165d32 resolve certain double/float comparisons in with increased correctness
ref 03d0f1d2dc

Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2017-01-06 12:57:28 -05:00
Mike Blumenkrantz 1c4ee0028c add method for unblocking zones during desklock show/hide 2017-01-06 11:42:21 -06:00
Mike Blumenkrantz 912eb66b70 revert desklock block_rect opacity change
block rects are for blocking view of the desktop. they exist for security,
preventing the desktop from being visible if a transparent lockscreen is
in use.

also split block_rects into per-zone rects for later use

ref c997077c17
2017-01-06 11:42:21 -06:00
Chris Michael c5ad11886c fix shadowed variable declaration
Eina_List *l is already previously defined at the top of this
function. Since we are just using it for list iteration, there is no
need to define it again.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-01-04 08:30:53 -05:00
Carsten Haitzler 3779086a63 e icon - use new skip header async preload to make icon loads async
now they can be trule async hopefully stopping things like application
menu from stalling while loading icons header... which is really nasty
with svg's. this actually makes icons async by default which is really
EXACTLY what you want. this also prepares for later making edje loads
async.

@feature
2017-01-02 09:51:57 +09:00
Carsten Haitzler 227d49e346 e icon header - clean up formatting 2017-01-02 09:51:57 +09:00
Carsten Haitzler c997077c17 desklock - allow for fadein/out effects in theme for locking/unlocking
this allows the theme to now do special effects on showing the
desklock and on hiding it again afterwards so it can look nicer.

@feature
2017-01-02 09:51:57 +09:00
Carsten Haitzler 8b9fee916e e sys - remove system action dialogs as comp actually does this
so we have some dialog saying we're suspending/shutting down etc. etc.
and this is really pointless as comp already does a screen-wide effect
like fading out etc. and these dialogs were added long before we had a
compositor. there isn't much point anymore so remove them and let comp
deal with it.
2017-01-02 09:51:57 +09:00
Carsten Haitzler cc21b2a046 e comp object - fix valid warning of shadowed var (ambiguous) 2016-12-28 20:16:35 +09:00
Carsten Haitzler 7c27959446 e comp object - fix shadow var warning (valid) for ec 2016-12-28 20:16:35 +09:00
Carsten Haitzler a1541f9a40 e bindings - fix warnings about possible use of undefined var 2016-12-28 20:16:29 +09:00
Carsten Haitzler 9ca5ea5817 efm - fix ifs to be ifdef as they should be 2016-12-28 19:55:24 +09:00
Carsten Haitzler 03d0f1d2dc e - fix float warnings cmp where they actually may cause issues 2016-12-28 19:55:20 +09:00
Carsten Haitzler a5faab4fa1 efm - warning - change invalid #if toe #ifdef as this is right 2016-12-28 19:15:58 +09:00
Mike Blumenkrantz 001e08c54a bump modapi
e_client.h changed
2016-12-19 11:04:02 -05:00
Mike Blumenkrantz 30b25f16d1 remove extra SLEEP prints during startup on non-release builds
this was useful for startup profiling, but there are better methods available now

partially reverts 2850c28167
2016-12-19 10:59:14 -05:00
Carsten Haitzler 8b6ba41a66 e window menu now skips stack windows except top one 2016-12-17 15:11:23 +09:00
Carsten Haitzler 652d7e113e e wl - fix build break with wl. 2016-12-16 22:03:17 +09:00
Carsten Haitzler e9de31249a stacks - fix crash for pointer warp when client is null 2016-12-16 19:03:21 +09:00
Carsten Haitzler c6fa2f6457 tasks - add stack "hiding" support and only show top stack item
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...
2016-12-16 18:59:56 +09:00
Carsten Haitzler 6540eddb96 e module - remove duplicate modules at load all time from config
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
2016-12-16 16:18:27 +09:00
Carsten Haitzler aead4d96b4 e config - don't keep adding lunchers until you burst. only if not found
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.
2016-12-16 16:18:27 +09:00
Carsten Haitzler 5c38609e0e client handling - add support for window stacks needed for views/manager
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
2016-12-16 16:17:10 +09:00
Derek Foreman d83e885673 Use a monotonic clock for frame callback times 2016-12-15 09:59:21 -06:00
Stephen 'Okra' Houston 30ba420c6d E_Config: Fix auto load of luncher
This fixes T5007 https://phab.enlightenment.org/T5007
2016-12-15 09:00:35 -06:00
Stephen 'Okra' Houston 46ae444069 E_Config: Auto load luncher if ibar is enabled and bump config. 2016-12-14 11:52:10 -06:00
Mike Blumenkrantz a73ad1b190 plug iterator leak in e_comp_object_render()
==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)
2016-12-14 11:44:58 -05:00
Derek Foreman 0493abf457 Fix wayland frame callback times
ecore_time_unix_get() * 1000 is too big to fit in a uint32, so take the
time we instantiate the wayland pixmap hash and use that as a base.
2016-12-13 13:54:21 -06:00
Mike Blumenkrantz e62423603a correctly set E_POINTER_RESIZE_BR mode for client keyboard resizing
typo from when this was refactored

fix T2452, T2579
2016-12-13 11:10:13 -05:00
Mike Blumenkrantz 485f250880 don't track gadget drop handler objects for deletion
the user should be managing this
2016-12-09 11:59:24 -05:00
Mike Blumenkrantz 4e3ea4f6b3 add some internal functions for triggering fake screen hotplug events
debugging is fun
2016-12-09 11:52:03 -05:00
Mike Blumenkrantz 3bae673848 null out bryce and site pointers when deleting bryce object
fixes handling of bryces when changing screen setup
2016-12-09 11:52:03 -05:00
Mike Blumenkrantz f1c70e626f null out animator pointers in efx stop() operations 2016-12-08 11:20:45 -05:00
Derek Foreman ae9d2904c7 test dmabuf pixmaps properly
If we can't handle a dmabuf format we now properly tell the client instead
of accepting it anyway and falling apart later.
2016-12-06 16:37:35 -06:00
Mike Blumenkrantz 0e4ddaffbe use better check for getting wl surface alpha from cursor pixmaps
ref 6ba85cf864
2016-12-05 11:05:24 -05:00
Mike Blumenkrantz b1037cbc5c Revert "Check for deleted client in e_pixmap_image_is_argb"
This reverts commit 6ba85cf864.

returning false here causes csd regions to become opaque (black) during
close animations
2016-12-05 11:05:24 -05:00
Mike Blumenkrantz 8f39054965 handle pass_event clients in e_comp_object_coords_inside_input_area
fix T4966
2016-12-05 11:05:24 -05:00
Mike Blumenkrantz ca7c77d05e fix internal wl windows to exit when border X is clicked 2016-12-05 10:49:06 -05:00
Mike Blumenkrantz e42b072f38 attempt to re-set wl surface pointer when popping back to "default" pointer type
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
2016-12-02 10:54:06 -05:00
Mike Blumenkrantz 5f246e079b set wl pointer surfaces to E_LAYER_CLIENT_PRIO during setup
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()
2016-12-02 10:54:06 -05:00
Mike Blumenkrantz 647e998b72 do not pop pointer types on client hide events if the client is pass_events
these clients cannot receive events and thus have no pointer to pop
2016-12-02 10:54:06 -05:00
Chris Michael 4aba7e7beb remove unused variables in e_comp_wl
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 10:41:46 -05:00
Derek Foreman 41e60d251e Stop sending key up/down events on focus change under wayland
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.
2016-12-01 10:55:49 -06:00
Mike Blumenkrantz 08ee9293df feed mouse move and canvas mouse up upon breaking a wl surface grab
ensure that the hw pointer location and the cursor location match after grabs

fix T4939
2016-12-01 11:22:42 -05:00
Carsten Haitzler 8934ada4d8 e_util_defer_object_del - ensure order of deferred deletions are right
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
2016-12-01 08:49:33 +09:00
Derek Foreman 60617c82d7 More aggressively prune keyboard focus list
Even if a client is deleted we still need to get its resources off the
keyboard focus list.
2016-11-30 14:48:54 -06:00
Derek Foreman ce34c550e7 Fix crash when exiting an xdg shell application
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...
2016-11-30 14:48:54 -06:00
Derek Foreman 8245c1eb7a Fix keyboard tracking when leaving an xdg shell window
_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.
2016-11-30 14:48:54 -06:00
Mike Blumenkrantz ca5176e6fa handle input detection for wl surface grabs more accurately using stacking
this should more accurately handle cases where mouse movements over grabbed
surfaces are intercepted by overlapping windows
2016-11-30 12:46:54 -05:00
Mike Blumenkrantz f83045dc62 move the comp canvas cursor object during wl surface grabs
the struct member is not guaranteed to be the visible object, so get
the ee cursor and move that
2016-11-30 12:34:30 -05:00
Mike Blumenkrantz a3a239c1d0 use correct coords for determining input region calcs on comp objects 2016-11-30 12:34:30 -05:00
Derek Foreman 6ba85cf864 Check for deleted client in e_pixmap_image_is_argb
Fixes a crash when closing Qt applications.
2016-11-29 11:13:50 -06:00
Mike Blumenkrantz 19a902ec09 stack subsurfaces above their parents upon creation
handles the case where no explicit stacking is set on the subsurface
2016-11-29 10:11:23 -05:00
Romain Naour c8f5f942d0 E: fix Wayland without xwayland build
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>
2016-11-28 10:43:28 -05:00
Mike Blumenkrantz b133dbd35d prevent divide by zero when calculating gadget aspect sizing 2016-11-28 10:43:28 -05:00
Chris Michael 96d517a6f2 use ecore_evas_screen_dpi_get when updating e_scale value
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>
2016-11-28 10:10:28 -05:00
Derek Foreman 9f3de5e346 Fix wayland deferred buffer free crash
We'd sometimes get a stale pointer when doing a deferred buffer free.
2016-11-25 11:14:38 -06:00
Mike Blumenkrantz 8f8b25ae7d make fake mouse-out upon focus-out conditional on pending pointer warp
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
2016-11-22 11:31:22 -05:00
Mike Blumenkrantz e95541635e clarify some wl surface checks to require elm wins
these should not apply to role-less surfaces
2016-11-22 11:31:22 -05:00
Mike Blumenkrantz 7b7e56af0c require an elm win to apply auto-visibility for internal wins in wl surface commit
other internal surfaces could be things like cursors, and these should not be made visible
before setting a role
2016-11-22 11:31:22 -05:00
Mike Blumenkrantz 5497fadce4 xdg6 support 2016-11-22 11:31:22 -05:00
Mike Blumenkrantz 232c73fe83 add e_comp_object_coords_inside_input_area() 2016-11-22 11:31:22 -05:00
Mike Blumenkrantz 5130935284 add e_client_util_top_parent_get() 2016-11-22 11:31:22 -05:00
Mike Blumenkrantz 506317e4ba make confirm dialogs autoselect the confirm option
esc is already used for cancel, having an easier confirm makes sense (tm)
2016-11-18 11:17:14 -05:00
Mike Blumenkrantz 02fc2fffa8 disable bindings during desklock
hopefully nobody noticed this before now...
2016-11-18 10:18:51 -05:00
Chris Michael 0a696f5fa3 fix missing definition of DRM_FORMAT_XRGB8888
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>
2016-11-16 09:17:15 -05:00
Mike Blumenkrantz 573035e262 focus confirmation option in efm delete dialog
fix T4797
2016-11-11 09:58:58 -05:00
Mike Blumenkrantz f7f0cc5b3e only unset cur_mouse_action on client menu delete for the right action
ref 50198ecdde

this still needs improving....
2016-11-10 11:55:10 -05:00
Mike Blumenkrantz 7d29dbf4ec send orientation signal to bryce scroller theme 2016-11-10 11:52:04 -05:00
Mike Blumenkrantz 50198ecdde unset cur_mouse_action upon deleting client menu
fix T4522
2016-11-10 11:14:36 -05:00
Mike Blumenkrantz 7911827a21 keep bryce starting size unscaled 2016-11-09 11:21:15 -05:00