Commit Graph

84 Commits

Author SHA1 Message Date
Gwanglim Lee 6f707894a8 fix e cursor invisible after destroying wayland surface
Summary:
E doen't have to remove pointer_image evas object when destroying wayland
surface. The image contents of pointer_image will be replaced default mouse
cursor in pointer_object at idler unless pointer_image is removed in
e_pointer_image_set.

Test Plan: run e with wayland only server -> run elementary test -> close elementary test

Reviewers: raster, devilhorns, zmike

CC: cedric

Differential Revision: https://phab.enlightenment.org/D776
2014-04-24 12:42:03 -04:00
Gwanglim Lee ecb8d21ab6 set blocks to avoid copying cursor contents from evas buffer canvas in idler_before
Summary:
it fixes a bug that cursor is invisible when running a wayland client.
e_pointer_image_set function sets image data of p->pointer_image to
data of E_Pixmap. and then e_pointer_idler_before function changes
raw image data of p->pointer_image to p->pixels. we should enable blocks
to avoid it.

Test Plan: run enlightenment (wayland only) -> run efl app with wayland shm engine

Reviewers: raster, devilhorns, zmike

CC: cedric

Differential Revision: https://phab.enlightenment.org/D769
2014-04-24 12:41:38 -04:00
Mike Blumenkrantz c17d33368c check pixmap_size_get() return in e_pointer
CID 1195448
2014-04-04 15:04:27 -04:00
Stefan Schmidt 04a5a11a8f e_pointer: Fix missing if for else if condition
Fixing devilhorns commit and run commit. If we have a condition we want
to check we need an else if not a simple else. Always compile before push.
Especially the small and simple changes. :)
2014-03-20 15:50:51 +01:00
Chris Michael d0b61e4b88 bugfix: Properly hide/show pointer_image & pointer_object based on if
the pointer is located on an existing canvas

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-20 14:16:42 +00:00
Chris Michael 5ce5d2d90b bugfix: Set pass_events and layer of the pointer image if we are
creating a new one.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-20 14:16:42 +00:00
Chris Michael 5b77c566e6 Use ecore_wl functions to return the pointer location if we are
running as wayland-only

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-20 10:18:44 +00:00
Mike Blumenkrantz c81e649992 fix more wayland crashes 2014-03-18 18:15:24 -04:00
Chris Michael 3d10a3d34e @bugfix: Fix pointer to work in drm and also fix some formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 07:43:04 +00:00
Chris Michael 915f8f0613 @bugfix: Fix building for WAYLAND_ONLY by using the proper define
sed -i 's/WAYLAND_ONLY/HAVE_WAYLAND_ONLY/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 07:43:04 +00:00
Mike Blumenkrantz 6c79b3ea87 only change to image cursor if not using e cursor
T851
2014-01-27 11:18:03 -05:00
Mike Blumenkrantz d4abb904ad fix cursor visibility when working with canvas cursors
wayland cursors no longer override E cursors depending on config, and they also no longer randomly delete your cursor entirely

T851
2014-01-23 17:06:27 -05:00
Mike Blumenkrantz 99a4e5bd27 remove e_pointer_block api
this was a failure idea for a way to block X cursor changes using an api, which turned out to be overengineered
2014-01-23 17:04:41 -05:00
Mike Blumenkrantz 1f25710907 reset pointer type from config when updating size
this fixes switching between X/E cursors without restarting
2014-01-23 17:03:56 -05:00
Mike Blumenkrantz e9c0e2c829 set X cursor color availability based on current compositor's root cursor
internal window cursors now display normally

T785
2014-01-23 16:17:34 -05:00
Mike Blumenkrantz dcdf4bb9f9 don't delete pointers when changing settings, just update size
this fixes a case where cursors would be permanently broken (along with the world) when changing cursor settings
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz 5737103d67 wl pointers done-ish
pointers in E now come in two flavors, one for each protocol that we currently support. each is created from the owner compositor backend:

X pointers still work as usual

Wayland pointers are actually surfaces that we dump image data into periodically to render them as evas images

some small amounts of hack is necessary to make this work, namely blocking X pointers when a Wayland one is in use if we're running a multi-protocol compositor
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz 12d7405a0f huge wl fixup (wayland clients actually working again)
* try to clear up build system for separating out ecore-x

* add #ifdefs for lots of ecore-x stuff

* break out some internal e wl functions for reuse in api

* store wl surface buffers as an inlist

* add protocol-specific client compositor data

** move lots of X client attributes here

* add pixmap type checks to a number of X-specific things, such as grabinput, to block them for non-X clients

* rearrange startup order to work with wayland

* move X screensaver code to e_comp_x

* flag modules still requiring X with -DNEED_X
2014-01-14 20:28:57 -05:00
Carsten Haitzler a4b70e791a fix unsafe list removal while walking it 2013-10-18 21:39:53 +09:00
Mike Blumenkrantz 1eb26ec077 add special happy fun time note for e_pointer_mode function usage 2013-09-26 10:56:57 +01:00
Mike Blumenkrantz 505cec1d91 giant comp rejiggering commit #5:
* border frame/object now drawn directly on compositor canvas

* border shadows now in border theme with edje hint, non-updated themes still receive comp object shadows FOR NOW

* e_border MOVE/RESIZE pointer mode defines are now e_pointer.h enums

* added BD_CHANGED() util macro for setting bd->changed and printing a debug line to assist in finding places where this all-important flag is wrongly set

* bd->bg_win removed entirely

* bd->pointer objects moved to compositor object; now only one pointer object exists for each compositor

* resizing windows now shows a new and totally-intended scaling effect for window contents

* some additional retooling of border deletion/free callbacks

* fixed lurking potential bug where window could recieve focus from autoraise timer after border had been deleted

* more comp shape improvements/rewrites

* desk transitions are now BROKEN(ish)

* various modules updated to not be totally broken with these changes
2013-04-15 08:39:16 +01:00
Mike Blumenkrantz 9e8e755cdf formatting: all at once
SVN revision: 82625
2013-01-11 10:34:29 +00:00
Mike Blumenkrantz ae7ca9105f Hi,
here is a patch.

 1. free() already null-checks the passed argument, so it is not
    necessary to do 'if(x) free(x)'.

 2. Moved some '{free(x); x = NULL}' to E_FREE.

 3. In e_start_main.c, 'buf' is allocated with the size of the
    two arguments + '=', so we don't need to check for lenght;
    we should use sprintf().

 thanks
Maxime Villard


SVN revision: 81364
2012-12-19 14:20:34 +00:00
Christopher Michael 9b465c8a95 Add ECORE_X_CURSOR_EXCHANGE to e_pointer for a 'rotate' cursor.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 79867
2012-11-30 07:26:19 +00:00
Vincent Torri c3b0637802 e17: whitespaces--
SVN revision: 72561
2012-06-21 06:19:43 +00:00
Michael BOUCHAUD 5aae4607ea e: add hand pointer
SVN revision: 67756
2012-02-08 11:26:13 +00:00
Mike Blumenkrantz 8031da1778 prevent early stringshare death
SVN revision: 61620
2011-07-23 19:25:06 +00:00
Mike Blumenkrantz 024ec09c48 ecrustified
SVN revision: 61618
2011-07-23 18:55:23 +00:00
Christopher Michael f89ac1ddf6 E: Add missing returns in e_pointer callbacks.
SVN revision: 60905
2011-07-01 02:59:48 +00:00
Christopher Michael b914c8971d E: Safety checks so we don't segfault if there is no pointer.
SVN revision: 60705
2011-06-26 18:13:08 +00:00
Gustavo Sverzut Barbieri 6f2213cb25 convert init/shutdown to EINTERN, move some to _update().
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
2010-11-22 15:21:32 +00:00
Sebastian Dransfeld 3c12d4daba __UNUSED__ last
SVN revision: 54193
2010-11-05 18:40:31 +00:00
Lucas De Marchi 6638a10e20 FORMATTING
* 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
2010-08-04 16:57:32 +00:00
Cedric BAIL c6a118d738 * e: remove warning due to Ecore API change.
SVN revision: 49833
2010-06-24 16:19:12 +00:00
Sebastian Dransfeld c3a71f394d make clang happy
SVN revision: 45184
2010-01-15 12:01:52 +00:00
Sebastian Dransfeld 78b294c4a8 make clang happy
SVN revision: 45176
2010-01-15 11:29:50 +00:00
Cedric BAIL f8c05999e4 * e: Cleanup use of Eina data structure.
Patch from Peter van de Werken <pwerken-e@a-eskwadraat.nl>.


SVN revision: 41916
2009-08-21 15:08:49 +00:00
Christopher Michael b9a6167841 Remove useless variable and just use a direct object reference.
No need for _type_set to return an 'int' as we never check it anywhere, so
make the function return 'void'.


SVN revision: 41561
2009-08-02 21:10:52 +00:00
Christopher Michael 4371d3e9b8 Removed duplicated code. Use E_FREE to free pointer.
SVN revision: 41560
2009-08-02 20:44:04 +00:00
Christopher Michael 9e0827a761 Formatting & Whitespace Cleanup (No Code Changes).
SVN revision: 41430
2009-07-19 09:13:39 +00:00
Carsten Haitzler a5de46f4c2 use new timer add func - for when u want the timer to be relative to the loop
tick time - not "now".



SVN revision: 39639
2009-03-23 02:14:10 +00:00
Cedric BAIL 46e8efcd8c Let me introduce you to Ecore_Input. The idea is to share as much as possible event
between all ecore graphic engine to ease porting of application and reduce the amount of
specific code per engine. This patch does just that.
	All your application should continu to work has previously, if it's not the case
please report any new behaviour regarding mouse and keyboard.


SVN revision: 39505
2009-03-16 16:24:43 +00:00
Cedric BAIL 1087de2397 Remove Evas list and replace them with Eina list.
No change for ->next and ->data access right now, as the patch is already
big enough.



SVN revision: 36962
2008-10-22 11:49:33 +00:00
Cedric BAIL 3d6749983b Switch to eina_stringshare.
This could also change the usage of string share in E17.



SVN revision: 36679
2008-10-15 15:12:56 +00:00
Carsten Haitzler 1d3533c12a add option to disable cursor and diasble the idle cursor anim.
SVN revision: 36313
2008-09-29 14:01:30 +00:00
Carsten Haitzler b370f8315f remove/comment out printfs and remove fixme (to be removed) fake mouse up funcs
SVN revision: 36229
2008-09-25 01:34:39 +00:00
Carsten Haitzler ebc2951140 fix hotspot in e17 - cedrics deferred edje stuff b0rked it! :(
SVN revision: 35959
2008-09-11 23:31:11 +00:00
Carsten Haitzler 8e632dcb37 my bad! fix.
SVN revision: 35768
2008-09-01 06:23:20 +00:00
Carsten Haitzler 167bc53a57 batery module now playes with e's powersave api :)
SVN revision: 33989
2008-03-12 05:43:36 +00:00
Carsten Haitzler b70f5a0ecc e:
1. configure/build changes to allow cross-compiling painlessly
2. pager module namespace changes - this was still dirty afdter the namespace
cleanup, so clean it up
3. add a powersave subsystem - doesnt have an "automatic" way to turn on and
off right now, this i think is best provided by modules (that do things like
monitor acpi status's (eg close lid of laptop), AC power status etc. etc.
this allows e to nicely defer "power" expensive actions to avoid disk
spinups etc.
4. move to use the new ecore poller system  - discussed long ago as part of
power management/saving issues. now it exists
5. add a canvas idle flush call that helsp cope with the new shm greedy
software x11 engine stuff
6. use the new powersave subsystem where appropriate
7. fix non-zeroed/initted memory access in e_fm_main
8. fix mem leak for e menus
9. remove ipc handlers for changed/removed config values
10. use animaotr not timer for menu scrolls - then menu scrolls obey the fps
config
11. fix up timer/poll happienss of cursor idle stuff
12. remove avoid damage from popups for now - causing problems
13. change battery and temp readouts to b e shorter so they fit
14. pager can emit signals on focus change for mini-windows now
15. temperature module now uses a slave process and uses stdin/out to talk to
it and get output - this makes e smoother as in my expereicne i found getting
the temp on my laptop actually took like 200ms so e "hang" for 200ms while
reading the acpi files - so now the subprocess does it and just writesa back
to e when it gets it.

ecore:
1. add ecore_pollers. see the documentation on them in doxygen comments :)
2. fix timers to only go off when they have to - bug there that made e's
select time out a LOT more than it needed to. defensive coding hid the
problem. now fixed. e should be much more power friendly now.
3. formatting/niceness in ecore_exe stuff
4. some comments on comments with SIGIO ideas vs. select
5. add call to be able to add an idle enterer at the start of the list of
them, not just the end (as has been the default)
6. fix ecore_evas to support auto evas idler calls after 0.5 secs of idle in
all canvases - and to do it right
7. if argb destination - set the shape EVENT shape (to mask out events in
transparent regions much like shape does withotu translucency)
8. in ecore_x add support for the event shape

evas:
1. fix cache to work properly and not just always fill up (as it seemed to
like to think cahce useage dropped below 0 when it didnt and thus just
over-fill)
2. software x11 engine now ONLY uses shm segments - no ximages over the
socket. this ximage hack was there to avoid the 2 round trips involved in
setting up an shm image - now i mitigated that wih an shm image cache pool.
it keeps shm images around and repurposes them for new update regions if
appropriate. this means many fewer shm creates (about 1/100th the number) and
since we recycle the memory less 0 memory page filling by the kernel - in the
end, i recorded about a 10-20% speedup over the old software x11 engine.
simple tests i have seen up to 120% speedups. idle flush now does something -
it frees all the cached shm segments. it has a hard-coded limit of 4mb worth
of shm segments (or 32 segments - whichever comes first) to keep around. once
can never complain much about speedups methinks :). also evas will defer sync
until the NEXT frame is written - this means evas can calculate the next
frame of data while x dma's/copies the images to the screen at the same time
(if you hve a dual core or multi-cpu machnike or your xserver is able to use
DMA to copy image data to the screen/video ram then this should see a decent
speedup).


SVN revision: 33448
2008-01-11 07:33:57 +00:00