Commit Graph

18712 Commits

Author SHA1 Message Date
Mike Blumenkrantz 39f3215fe7 only center internal windows once
these shouldn't re-center on every resize
2017-04-28 15:41:56 -04:00
Mike Blumenkrantz 8920894de0 force animationless re-maximize when unfullscreening
animating here results in the window resizing to its original (smaller)
size, then growing back to its maximized size
2017-04-28 15:41:56 -04:00
Mike Blumenkrantz 00cf30470e check pixmap size before triggering maximize animation
if pixmap size matches animation size then avoid animation calls since
this will look stupid
2017-04-28 15:41:56 -04:00
Mike Blumenkrantz 26e2a96d1f slightly optimize maximize -> fullscreen protocol comms for wl clients
this is a no-op since a configure will be sent later
2017-04-28 15:41:56 -04:00
Mike Blumenkrantz af66d18d88 force e_client_unmaximize() to complete during fullscreen operation
it doesn't matter if the current client size doesn't match the unmax
size in this case since the size will be changed to fullscreen anyway

fixes maximize -> fullscreen transition
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz 5049ab02b3 always set E_Client->need_fullscreen when fullscreening
provide a method for determining whether a client is about to become
fullscreen during callbacks
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz 3483d045a6 disable client maximize anims when unmaximizing before a fullscreen
this ensures accurate positioning of windows about to be fullscreened
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz 543666790f account for late object setup when adding ssd mouse in/out callbacks
internal windows have a different setup order in which the frame is created
before any of the other internal objects in a comp object
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz bd23b9c19b do not attempt to set window hidden hints on non-internal x11 windows
this causes a BadWindow error
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz 84091de515 block x11 focus eventing under xwayland
ensure that focus changes come from the compositor and not from clients
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz 081ab309cd always feed mouse events for wl client move events
better handling for xwayland case of moving pointer into ssd region
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz a47a9a73a1 use even more accurate wl callbacks for detecting ssd mouse in/out events
ensure that any wl client with ssd hits the ssd mouse eventing path
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz d23584856e do not send mouse events to ssd wl clients if mouse is within ssd region 2017-04-28 15:41:55 -04:00
Mike Blumenkrantz 8bfbf90d13 Revert "Stop sending wayland motion events when the mouse is grabbed"
This reverts commit 0a91a24573.

this should be resolved in a more readable way now
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz 4354a94305 compare against e_client_action_get() for rejecting wl mouse events
signal actions do not set the cur_mouse_action pointer, but the return
of this function will still match the client for a more accurate heuristic
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz 9e06da7e75 set signal move/resize clients as action_client internally
technically action_client is used to indicate that an e_action is
active, but functionally it really just means "this client is moving or
resizing" and the compositor makes certain adjustments based on this
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz 70d5ebb66e send wl client resize edges during focus-in/out send_configure
avoid prematurely terminating resize operations
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz b6d90beee4 add wrappers for elm_win util create functions
avoid deadlocking in gl init by forcing sw
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz 772738d944 set dialog and tooltip flags for internal clients
fixes handling of internal wl windows which are set as dialogs
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz fec6121b02 only re-set comp object position during show if client has been placed
avoid accidentally placing an unplaced client
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz fa1a17cefc handle window icons from elm for internal wins
fixes appearance of icons set with elm_win_icon_name_set()
2017-04-28 15:41:55 -04:00
Mike Blumenkrantz 0b5f65d4a8 always use jobs to create bryce menus
ensure that menus can never be created during a post event callback in
order to avoid crashes

ref T3144
fix T5262
2017-04-28 15:41:54 -04:00
Mike Blumenkrantz 5f0cf3d36b only set toolbar icon min size if icon exists 2017-04-28 15:41:54 -04:00
Mike Blumenkrantz 73bc0bfc52 handle nested compositor delete requests
the previous implementation of this using ee callbacks broke during
elm integration since elm overrides all of those callbacks
2017-04-28 15:41:54 -04:00
Mike Blumenkrantz 451d1253fe only hide wl clients on surface destroy when surface is mapped
fixes some cases where hide animations would not be visible
2017-04-28 15:41:54 -04:00
Al Poole 7e743918d9 E keyboard settings - use the same icon as the keyboard settings dialog
Reviewers: zmike!

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4716
2017-04-28 15:41:54 -04:00
Al Poole 6501c42fd3 Fix compiler type warnings (snprintf)
Reviewers: zmike!

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4715
2017-04-28 15:41:54 -04:00
Al Poole 9eb847977b Fix macro namings in relation to endianness.
Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4714
2017-04-28 15:41:54 -04:00
Mike Blumenkrantz cc0317ac71 don't set minw for keyboard layout dialog
somehow this causes the dialog to size crazily for a couple seconds
before growing to its final size
2017-04-28 15:41:54 -04:00
Mike Blumenkrantz 691fb103b3 handle null E_Comp->screen during randr2 shutdown
some output modules have no screen iface (e.g., buffer, wl_wl, wl_x11)
and so this will always be null
2017-04-28 15:41:54 -04:00
Mike Blumenkrantz f958317bf5 call e_randr2_shutdown in comp shutdown
this should always be called, not just in comp_x
2017-04-28 15:41:54 -04:00
Mike Blumenkrantz ad0b867aae move x11 iconic window init from e_hints -> comp_x initial fetch
this reflects the order in which the client passes through these functions
and fixes handling of iconic clients on startup
2017-04-28 15:41:54 -04:00
Mike Blumenkrantz bc5172b96b force iconic state for iconic x11 clients during shutdown
this may or may not have been set previously if client mirrors are present,
but it should definitely be set during shutdown since there are no mirrors
2017-04-28 15:41:54 -04:00
Mike Blumenkrantz 5870c75a77 call wl/x compositor shutdown functions directly during comp shutdown 2017-04-28 15:41:54 -04:00
Mike Blumenkrantz 1ab1d82904 do not start xwayland repeatedly
ref 0534c7ae6f
2017-04-28 15:41:54 -04:00
Mike Blumenkrantz 45683d3fcd check changes.pos during client maximize/fullscreen and adjust window coords
using these coords when the changes.pos flag is set should result in more accurate
results for positioning when removing the state
2017-04-28 15:41:54 -04:00
Mike Blumenkrantz db62cf1020 only save client size info on maximize/fullscreen when protocol visible
a client which begins in one of these states must set its size again when
removing the state
2017-04-28 15:41:54 -04:00
Mike Blumenkrantz 171aebbff1 perform frame adjustments before applying wm spec hints during unmaximize
e_client_resize_limit removes frame adjustments before performing calcs,
so ensure that the geometry passed is pre-adjusted to account for this
2017-04-28 15:41:54 -04:00
Mike Blumenkrantz 804bf20c72 return during comp object pixels function if client was deleted during render 2017-04-28 15:41:08 -04:00
Mike Blumenkrantz 93b32faabd show x11 parent windows during reparent only if not withdrawn
iconic windows are still shown
2017-04-28 15:41:08 -04:00
Mike Blumenkrantz 6e2d71f132 do not force comp objects to render for their proxies if real_hid is set
this flag indicates that the object cannot be rendered
2017-04-28 15:41:08 -04:00
Mike Blumenkrantz 012a7d492e do not use saved e_randr screens if fake screens have been added 2017-04-28 15:12:05 -04:00
Mike Blumenkrantz 434a3c8d38 add handler for EFREET_EVENT_DESKTOP_CACHE_BUILD to e_order init
it's possible that during startup there will never be a CACHE_UPDATE
event, so ensure that an attempt to read occurs by watching this event too
2017-04-28 15:10:46 -04:00
Mike Blumenkrantz 7d77918f6c set ON_HOLD when activating start gadget 2017-04-28 15:10:41 -04:00
Mike Blumenkrantz dc3e882383 defer menu activation mouse-up feed
ensure that this is not triggered from an evas post event callback

ref T3144
2017-04-28 15:10:25 -04:00
Mike Blumenkrantz de624b7ca4 unset deskmirror client's client pointer upon client deletion
prevent invalid access after client deletion
2017-04-28 15:09:25 -04:00
Mike Blumenkrantz 6b946c897f add all wl client frame callbacks with priority AFTER
ensure that these occur after all other callbacks since they can affect
the lifetime of the client object
2017-04-28 15:07:31 -04:00
Mike Blumenkrantz 5d89a8a993 better protect comp object internals from dereferencing freed clients
animating comp objects persist after the lifetime of their client, so
ensure that functions which are likely to be called after the client's free
will not attempt to access client struct members
2017-04-28 15:07:22 -04:00
Mike Blumenkrantz 2931d01523 comment out inlist member of E_Comp_Object struct
this was unused
2017-04-28 15:07:08 -04:00
Mike Blumenkrantz bb30294f66 hide wl clients before deleting them on surface destroy
==13853== Invalid read of size 8
==13853==    at 0x5C7C56: _e_comp_wl_surface_destroy (e_comp_wl.c:1804)
==13853==    by 0xA999971: destroy_resource (wayland-server.c:611)
==13853==    by 0xA9A06F4: for_each_helper (wayland-util.c:374)
==13853==    by 0xA9A073F: wl_map_for_each (wayland-util.c:387)
==13853==    by 0xA999C87: wl_client_destroy (wayland-server.c:763)
==13853==    by 0xA999216: wl_client_connection_data (wayland-server.c:283)
==13853==    by 0xA99C2B0: wl_event_source_fd_dispatch (event-loop.c:90)
==13853==    by 0xA99CC11: wl_event_loop_dispatch (event-loop.c:423)
==13853==    by 0xA787AC0: _cb_create_data (ecore_wl2_display.c:272)
==13853==    by 0xDBE984D: _ecore_call_fd_cb (ecore_private.h:333)
==13853==    by 0xDBEC01B: _ecore_main_fd_handlers_call (ecore_main.c:1992)
==13853==    by 0xDBEC8A9: _ecore_main_loop_iterate_internal (ecore_main.c:2379)
==13853==    by 0xDBEA672: ecore_main_loop_begin (ecore_main.c:1292)
==13853==    by 0x441DA9: main (e_main.c:1089)
==13853==  Address 0x30ba5d90 is 176 bytes inside a block of size 1,424 free'd
==13853==    at 0x4C2ED4A: free (vg_replace_malloc.c:530)
==13853==    by 0x4603D6: _e_client_free (e_client.c:588)
==13853==    by 0x5475A8: e_object_free (e_object.c:119)
==13853==    by 0x5477C4: e_object_unref (e_object.c:152)
==13853==    by 0x5473D7: e_object_del (e_object.c:60)
==13853==    by 0x5C7C51: _e_comp_wl_surface_destroy (e_comp_wl.c:1803)
==13853==    by 0xA999971: destroy_resource (wayland-server.c:611)
==13853==    by 0xA9A06F4: for_each_helper (wayland-util.c:374)
==13853==    by 0xA9A073F: wl_map_for_each (wayland-util.c:387)
==13853==    by 0xA999C87: wl_client_destroy (wayland-server.c:763)
==13853==    by 0xA999216: wl_client_connection_data (wayland-server.c:283)
==13853==    by 0xA99C2B0: wl_event_source_fd_dispatch (event-loop.c:90)
==13853==    by 0xA99CC11: wl_event_loop_dispatch (event-loop.c:423)
==13853==    by 0xA787AC0: _cb_create_data (ecore_wl2_display.c:272)
==13853==    by 0xDBE984D: _ecore_call_fd_cb (ecore_private.h:333)
==13853==    by 0xDBEC01B: _ecore_main_fd_handlers_call (ecore_main.c:1992)
==13853==    by 0xDBEC8A9: _ecore_main_loop_iterate_internal (ecore_main.c:2379)
==13853==    by 0xDBEA672: ecore_main_loop_begin (ecore_main.c:1292)
==13853==    by 0x441DA9: main (e_main.c:1089)
==13853==  Block was alloc'd at
==13853==    at 0x4C2FA50: calloc (vg_replace_malloc.c:711)
==13853==    by 0x5471A4: e_object_alloc (e_object.c:20)
==13853==    by 0x467AD5: e_client_new (e_client.c:2596)
==13853==    by 0x5C7F11: _e_comp_wl_compositor_cb_surface_create (e_comp_wl.c:1858)
==13853==    by 0xADBDC57: ffi_call_unix64 (in /usr/lib64/libffi.so.6.0.2)
==13853==    by 0xADBD6B9: ffi_call (in /usr/lib64/libffi.so.6.0.2)
==13853==    by 0xA99EEED: wl_closure_invoke (connection.c:935)
==13853==    by 0xA999581: wl_client_connection_data (wayland-server.c:371)
==13853==    by 0xA99C2B0: wl_event_source_fd_dispatch (event-loop.c:90)
==13853==    by 0xA99CC11: wl_event_loop_dispatch (event-loop.c:423)
==13853==    by 0xA787AC0: _cb_create_data (ecore_wl2_display.c:272)
==13853==    by 0xDBE984D: _ecore_call_fd_cb (ecore_private.h:333)
==13853==    by 0xDBEC01B: _ecore_main_fd_handlers_call (ecore_main.c:1992)
==13853==    by 0xDBEC8A9: _ecore_main_loop_iterate_internal (ecore_main.c:2379)
==13853==    by 0xDBEA672: ecore_main_loop_begin (ecore_main.c:1292)
==13853==    by 0x441DA9: main (e_main.c:1089)
2017-04-28 15:07:04 -04:00
Mike Blumenkrantz c28a455ccb include dlfcn.h for e_alert_main.c 2017-03-07 19:33:47 +10:30
Mike Blumenkrantz f220fa8d29 define E_EFL_VERSION_MINIMUM in e_alert_main.c 2017-03-07 19:33:29 +10:30
Mike Blumenkrantz 5e70f64b75 add -ldl to wl build when needed 2017-02-28 11:10:01 -05:00
Mike Blumenkrantz 1ada1b3e73 Revert "e - wl mode - stop consuming 100 percent cpu"
This reverts commit cd3490f35c.

this breaks many windows by preventing deferred resizing from occurring.
a window which is unable to resize at the time of this call must be queued
for a deferred resize, otherwise it may never resize at all and thus will
never be rendered

test case: screenshot dialog
2017-02-27 14:43:12 -05:00
Mike Blumenkrantz 9dff5b81e5 show already-visible comp util objects when changing frame type
ensure internal clipper state matches object visibility state
2017-02-24 14:47:41 -05:00
Mike Blumenkrantz 48437f930a only move new bryces to zone on create, not existing ones
this resolves an issue where not changing any position-related attrs
would stick the bryce in the wrong location until restart
2017-02-24 14:47:41 -05:00
Mike Blumenkrantz 099b50859a save config when toggling option to disable startup splash
broken since 2013
2017-02-24 14:47:41 -05:00
Marcel Hollerbach 50ca940e08 tiling: dont use floating state when toggling
when someone toggles a client he usally doesnt want to have it again in
toggle state, so make sure its vertical or horizontal.
2017-02-24 14:47:41 -05:00
Carsten Haitzler dc99898798 efm - fix nuisance warning about enlightenment 2017-02-24 14:47:41 -05:00
Carsten Haitzler 4ce6757c0d efx - fix unaligned ptr fill that is actually a bug
warning found a bug - filling in chr fileds with an api that expects
ptrs to ints - this is doing really bad things like unaligned writes
and it's overiting adjacent memory. fix
2017-02-24 14:47:41 -05:00
Carsten Haitzler 6749fa3589 tiling module - fix some warnings with casts and alignment
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.
2017-02-24 14:47:41 -05:00
Carsten Haitzler 428454bff2 e comp - quiet some warnings for casts that are ok
add soem void 8 casts for casts that are ok alignment-wise but that
generate warnings
2017-02-24 14:47:41 -05:00
Carsten Haitzler 1cf0555f73 e comp - fix stupid cast to from eina rect* to char* to eina rect* again
just causes warnings and makes no sense...
2017-02-24 14:47:41 -05:00
Carsten Haitzler c07093817c e comp object - fix warning where a void cast is as goos as the old one
we did cast to Evas_Native_Surface * but this just causes warnings due
to the input ptr being char * from memcup. as this will be aligned due
to allocation, we're ok, so use a void * cast instead
2017-02-24 14:47:41 -05:00
Carsten Haitzler 9489d57d91 e mixer pulse backened -f ix warning about use of uninit var
display really isn't uninitialized due to the logic, but compielr is
kind of right in theory... but less warnings is better so we fix the
real problems more easily. fix.
2017-02-24 14:47:41 -05:00
Carsten Haitzler 18f754be0e evry module - fix warning about comparing signed to unsigned
harmless warning - use a cast to keepit quiet.
2017-02-24 14:47:41 -05:00
Carsten Haitzler 279bea35e4 efm - fix warnings for progress time display
the code is right - data is aligned, but gcc doesn't know this, so
silence it with void * cast
2017-02-24 14:47:41 -05:00
Carsten Haitzler a2ce9c054a e notification - silence alignment warning
the code is ok - it's aligned data from evas and we can address it by
int ptrs, but the warning is noise, so simply add a void * cast in there
2017-02-24 14:47:41 -05:00
Carsten Haitzler 1693daeb66 e comp - wl - add void cast to reduce warnings
we're pointer playing anyway so types here are not really useful. we
have to get our ptrs right - including alignment, and these warnings
are not useful and just noise.
2017-02-24 14:47:41 -05:00
Carsten Haitzler c080a171ee e xsettings - fix warnings about unaligned ptr access
this moves access to byte by byte memcpy's to avoid potential
unaligned access.
2017-02-24 14:47:41 -05:00
Carsten Haitzler 0bc055d19c e comp x - fix property fetch to use int ptr from the start
this clears up soem warnings and do the cast on providing the pointer
to ecore_x_window_prop_property_get() which since it has to allocate
the data will be fine for alignment anyway, so a void * cast will do.
2017-02-24 14:47:41 -05:00
Carsten Haitzler 737eabe0c3 efm ipc - fix unaligned int read on ipc decode
warning was right - this is an unaligned read. fix.
2017-02-24 14:47:41 -05:00
Carsten Haitzler f34d5dd159 e ptr cast via void fix to reduce warnings
so we cast a lot of ptrs to other types as that is then the actual
type of the object. all these objects are allocated by malloc nad
friends so this is ok. but gcc on arm is not happy and warns. maybe it
assume this ptr could be to an element in an array of structs of this
type and so on thus will have specific alignment enforced by compiler
but our casting may disturb it? anyway. cast via void first fixes it.
we can focus on other real warnings and errors instead.
2017-02-24 14:47:41 -05:00
Carsten Haitzler b6af56b0b2 e theme conf config - fix casting char fileds to int ptrs
we're casting ptrs to char fields to int * which is actually wrong as
we break alignment guarantees. fix.
2017-02-24 14:47:41 -05:00
Carsten Haitzler 664432e363 e fileman config - fix definite alignment bug with cast char to int ptr
we're casting ptrs to char fields to int * which is actually wrong as
we break alignment guarantees. fix.
2017-02-24 14:47:41 -05:00
Carsten Haitzler d425b38e56 e ervything md5 code - fix warnings about alignment
gcc on arm is actually validly complaining about us using int * ptrs
to point to char * data and thus it likely be unaligned, so work in
reverse. make the data int * aligned and when needed mess with it as
char * data byte by byte. warnings gone.
2017-02-24 14:47:41 -05:00
Mike Blumenkrantz 34eebbb4cc ignore all non-NORMAL type wl windows in e_place
this catches subsurfaces, drags, and popups, which were erroneously being
handled like obstacles during placement
2017-02-24 14:47:41 -05:00
Mike Blumenkrantz a0a9605d30 always set E_Client->placed when successfully moving a comp object
enforce this for all cases
2017-02-24 14:47:41 -05:00
Mike Blumenkrantz 808c0681db future-proof client hook inlist initialization
manually initializing this meant it needed to be kept in sync with the
header, something that I'm unlikely to check every time client hooks are
added/removed
2017-02-24 14:47:41 -05:00
Mike Blumenkrantz 0eeb0607e6 fix return code checking for errors when generating wl key events 2017-02-24 14:47:41 -05:00
Mike Blumenkrantz 3a83c9db9e more correctly handle dnd completion for wl
* always send cancel when drag is !accepted
* always null e_comp_wl->drag_source
2017-02-24 14:47:41 -05:00
Mike Blumenkrantz 10b1ba2b23 simplify _e_comp_wl_data_device_drag_finished() slightly 2017-02-24 14:47:40 -05:00
Mike Blumenkrantz 49c18095c2 move wl data device focus-change handling to data device leave() fn
leave() is always called before enter(), meaning that this will handle
window1 -> window2 as well as window1 -> null
2017-02-24 14:47:40 -05:00
Mike Blumenkrantz 6d14a6492f add specific handling for xwl cursor unsetting on mouse-out to ssd
xwl clients will attempt to unset the cursor when mousing out of the surface,
but this can happen after evas events are triggered for the ssd due to
latency

if the given surface has mouse.in set, but the mouse is not inside the surface
area, assume that the mouse has just entered the compositor canvas

 #TheDisappointer
2017-02-24 14:47:40 -05:00
Mike Blumenkrantz 5a69750ba9 reset compositor pointer cursor if wl surface destroy is the current cursor
this should never happen and is only included as a failsafe

 #TheDisappointer
2017-02-24 14:47:40 -05:00
Mike Blumenkrantz 6616fa2510 Revert "attempt to re-set wl surface pointer when popping back to "default" pointer type"
This reverts commit e42b072f38.

this is broken according to spec, clients should re-set their pointers manually
2017-02-24 14:47:40 -05:00
Mike Blumenkrantz f74862e9ea force mouse-out on wl clients during delete if mouse.in is set
#TheDisappointer
2017-02-24 14:47:40 -05:00
Mike Blumenkrantz 239dad4ec9 only unset current pointer cursor object if new one is being set
#TheDisappointer
2017-02-24 14:47:40 -05:00
Mike Blumenkrantz 2e7e1f0893 start xwayland process 2.0s after module load
this avoids conflicts with efl internals, which will break entirely
when DISPLAY is set under wayland, and xwayland internals, which will
abort immediately when efl tries to connect to it during its init phase
2017-02-24 14:47:40 -05:00
Mike Blumenkrantz b005919ea9 ref clients during exe_inst deletion to avoid invalid access after free
in the case where clients are deleted during the same loop that they are
added to an exe_inst, the client will be destroyed before the instance's
delete event returns

ref T4963
2017-02-24 14:47:40 -05:00
Mike Blumenkrantz 96c2ac0947 add note in doc for "gadget_destroyed" callback re: callback ordering 2017-02-24 14:47:40 -05:00
Carsten Haitzler 60e150aeb8 enlightenment_sys - eina_init BEFORE switching uid - safer
in case eina_init uses env vars, move it to befor setuid() so it can
detect. you normally would setuid only for a limited op and we do it
for "the rest of the running" as e_sys is fairly simple.
2017-02-24 14:47:40 -05:00
Derek Foreman f3e6f98889 Dispatch wayland frame callbacks in the correct order
The protocol says they should be dispatched in the order they're
registered, so switch to list append instead of list prepend.
2017-02-24 14:47:40 -05:00
Mike Blumenkrantz bef7872a01 hide wl client cursors when set_pointer is passed a null surface 2017-02-24 14:47:40 -05:00
Mike Blumenkrantz d257d872dc use 1x1 for unsized (internal) clients
this was a typo
2017-02-24 14:47:40 -05:00
Mike Blumenkrantz 526052c5af simplify mouse-out cursor reset for wl clients
this is handled by e_pointer_object_set()
2017-02-24 14:47:40 -05:00
Mike Blumenkrantz 9a3939d35c make e_pointer_object_set() a no-op when passing the existing cursor 2017-02-24 14:47:40 -05:00
Mike Blumenkrantz 02be57e7e5 Revert "re-enable getting and setting output rotations in wl_drm"
This reverts commit 54ecd5e56b.
2017-02-24 14:47:40 -05:00
Mike Blumenkrantz 72bfd182d1 add conditional updates for latest efl apis
ref dc2bad0fcd
2017-02-03 15:29:38 -05:00
Derek Foreman 17e66ed2b5 Stop sending wayland motion events when the mouse is grabbed
This stops the compositor from sending motion events to internal
windows while they're being moved or resized.
2017-02-03 10:49:54 -05:00
Carsten Haitzler 0a1733ba9a e dialog - fix unreszable dialogs to not be 1x1
so i see non-resizable dialogs end up 1x1... this fixes that.
2017-02-03 10:49:27 -05:00
Mike Blumenkrantz 1abdbe81b5 reset demo gadget id before deleting gadget object during drop operation
ensure that the gadget is marked as usable so that the config isn't deleted
2017-02-03 10:47:34 -05:00
Chris Michael 54ecd5e56b re-enable getting and setting output rotations in wl_drm
Small patch to re-enable the ability to query and set the rotation of
an output.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-03 10:42:09 -05:00
Carsten Haitzler f4243e1f5d 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-02-03 10:41:25 -05:00
Mike Blumenkrantz 7608cebd85 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-02-03 10:41:10 -05:00
Mike Blumenkrantz 1644a7ec0a ensure that gadget internal del callbacks are handled before other callbacks 2017-02-03 10:41:04 -05:00
Mike Blumenkrantz bc9103ec68 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-02-03 10:40:31 -05:00
Mike Blumenkrantz f2bfd957a1 do not perform frame coord adjustments for re_manage wayland clients
prevent mismatch of positions between restarts
2017-02-03 10:40:27 -05:00
Mike Blumenkrantz 5ab0d5be88 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-02-03 10:40:05 -05:00
Chris Michael 0ba8bf56c5 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-02-03 10:39:41 -05:00
Stephen 'Okra' Houston 0b3d519bd9 Enlightenment: Wireless gadget - place the ctxpopup after the size hints are set, not before 2017-02-03 10:39:07 -05:00
Stephen 'Okra' Houston 79342184b9 Enlightenment: Make gadget editor popup scrollable:
This fixes T5077
2017-02-03 10:38:58 -05:00
Carsten Haitzler 287b5ea0d9 ibar - fix seg with ibar icon task menus are up while desktop files change
segv if u go do make installs that install desktop files causing
efreet to recheck desktop files causing e to reset desktop files
causing ibar to refill icons but this causea a segv if a hover menu of
windows for that icon are up at the same time. this fixes that.

@fix
2017-02-03 10:36:28 -05:00
Carsten Haitzler 3c1bf5cc68 appmenu - make appmenu work with click+release and not hide on focus out
appmenu is annoying in that is hides on focus out whish is what
happens when a menu is popped up! fix this and make a qhick
click+release work as well! if we are going to have a global app menu
then let's make it vaguely decent... :)

also get menu positioning right with item geometry itself for the menu
not pointer position AND get menu pop direction correct based on
gadcon orientation.

@fix
2017-02-03 10:36:01 -05:00
Carsten Haitzler 99ecc6ad3d e bindings - fix warnings about possible use of undefined var 2017-02-03 10:35:03 -05:00
Carsten Haitzler 56789ef809 efm - fix ifs to be ifdef as they should be 2017-02-03 10:34:55 -05:00
Carsten Haitzler 2b5ea65981 efm - warning - change invalid #if toe #ifdef as this is right 2017-02-03 10:33:45 -05:00
Carsten Haitzler fa580ee748 tasks - calculate min width properly given a known height of a gadget
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
2017-02-03 10:33:35 -05:00
Mike Blumenkrantz 83f64194ba 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
2017-02-03 10:32:46 -05:00
Derek Foreman 4b29b6aff1 Use a monotonic clock for frame callback times 2017-02-03 10:32:17 -05:00
Mike Blumenkrantz 08d96c67de 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)
2017-02-03 10:31:58 -05:00
Derek Foreman 84da1d45c7 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.
2017-02-03 10:31:44 -05:00
Mike Blumenkrantz d5aceefc91 correctly set E_POINTER_RESIZE_BR mode for client keyboard resizing
typo from when this was refactored

fix T2452, T2579
2017-02-03 10:31:36 -05:00
Mike Blumenkrantz f6292eb235 null out animator pointers in efx stop() operations 2016-12-08 11:21:21 -05:00
Derek Foreman a73d38dfc0 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-07 11:18:28 -05:00
Mike Blumenkrantz 187076a0dd maintain "empty" object's size hints when ibar/ibox resizes
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
2016-12-07 11:18:25 -05:00
Mike Blumenkrantz b586409543 revert all sizing commits to ibar/ibox for the past year
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:

f97f8f61ac
ebfa4a97cd
50030dc693
42aa6be359
504706d45a
b1f608c5e6
b107dc1cdc
3fc195cd9f
2016-12-07 11:18:23 -05:00
Mike Blumenkrantz 923f2e900f use better check for getting wl surface alpha from cursor pixmaps
ref 6ba85cf864
2016-12-07 11:18:17 -05:00
Mike Blumenkrantz 35530a546e fix internal wl windows to exit when border X is clicked 2016-12-07 11:18:03 -05:00
Mike Blumenkrantz 6aba66cee8 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-07 11:17:21 -05:00
Mike Blumenkrantz 28160ad450 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-07 11:17:09 -05:00
Mike Blumenkrantz 8d7cb8201e 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-07 11:17:03 -05:00
Chris Michael 1942f89bf4 remove unused variables in e_comp_wl
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-07 11:16:26 -05:00
Derek Foreman e1120051d0 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-07 11:15:30 -05:00
Carsten Haitzler 6cd108513b 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-07 11:15:13 -05:00
Derek Foreman 51b25ecad4 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-12-07 11:15:06 -05:00
Derek Foreman ea3afd11c1 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-12-07 11:14:48 -05:00
Derek Foreman e2eec45e3b 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-12-07 11:14:34 -05:00
Mike Blumenkrantz a61f64f150 use more accurate determination for applying xdg-shell (un)maximize operations
fixes maximizing again
2016-12-07 11:13:11 -05:00
Mike Blumenkrantz 0eb453f39c stack subsurfaces above their parents upon creation
handles the case where no explicit stacking is set on the subsurface
2016-12-07 11:10:33 -05:00
Mike Blumenkrantz 7b7ba99c4d handle xdg-shell maximize/unmaximize calls correctly 2016-12-07 11:10:16 -05:00
Al Poole 617ef1887e Add temperature support for DragonFly BSD.
Reviewers: zmike!

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4432
2016-11-28 10:59:50 -05:00
Romain Naour 157ab70673 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:59:49 -05:00
Mike Blumenkrantz 1e85ec4174 prevent divide by zero when calculating gadget aspect sizing 2016-11-28 10:59:48 -05:00
Mike Blumenkrantz e6efe45227 revise internal window session recovery blocking to compile with older efl
this is an important fix which should be active where available

ref 9673df56ee
2016-11-28 10:59:01 -05:00
Mike Blumenkrantz 37eb433a41 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:33:50 -05:00
Mike Blumenkrantz 7c38e4edb4 clarify some wl surface checks to require elm wins
these should not apply to role-less surfaces
2016-11-22 11:33:40 -05:00
Mike Blumenkrantz a95d5ebd40 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:33:08 -05:00
Mike Blumenkrantz b4a3dc1f88 make confirm dialogs autoselect the confirm option
esc is already used for cancel, having an easier confirm makes sense (tm)
2016-11-18 11:46:37 -05:00
Mike Blumenkrantz 084aeebaa7 reject non-printable characters from lokker entry
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
2016-11-18 11:46:35 -05:00