Commit Graph

141 Commits

Author SHA1 Message Date
Chris Michael bb2dab1a5d bugfix: Set pointer timer & poller members to NULL after we delete the
timer/poller

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-05 11:40:00 -04:00
Chris Michael 1f439893f1 bugfix: handle case of pointer_xy_get being called if we are not
wayland-only and also not working with an X client.

bugfix: Fix case of pointers_size_set not adjusting pointer structure
fields with new size when rendering wayland pointers.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-04 15:51:46 -04:00
Chris Michael 3edef4a1a8 remove call to show pointer during canvas_new function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 12:10:09 -04:00
Chris Michael 63b5da69f0 fix pointer for stupid X11...but this breaks pointers in wayland (for
now) :(

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-28 11:10:07 -04:00
Chris Michael 01fd44e485 add new e_pointer files
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:37 -04:00
Chris Michael f1bf03e87b remove old e_pointer code
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:37 -04:00
Chris Michael c308904e9b fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
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
Christopher Michael 02330b094a Add support for themeing X cursor type "plus".
SVN revision: 33266
2007-12-27 22:53:30 +00:00
Carsten Haitzler b7fae6decb pointer gets more singals now - needed this for my new theme for e17 - it
works like a charm though! it's really slick!


SVN revision: 32333
2007-11-04 04:13:59 +00:00
Carsten Haitzler e72bcc1b8b printf--
SVN revision: 31971
2007-10-05 04:54:45 +00:00
Carsten Haitzler bba9407f40 ummm playing - part of evas smart stuff
SVN revision: 31969
2007-10-05 04:52:27 +00:00
rephorm 462bda0f22 another chunk
all group names prefaced by e/
its entirely possible i missed a few small places in this, so there may be some growing pains in the next day or two

also, spectrum content -> e.swallow.content


SVN revision: 25057
2006-08-23 03:39:02 +00:00
rephorm a5c71890d4 ****** MAJOR THEME REWORKING -- BREAKAGE *********
Almost every signal and required part name has changed. This means that ALL themes other than the default one are now broken. Sorry, but this had to happen.

I have a list of mappings from old to new at http://rephorm.com/files/dump/e_theme_map.txt

There will probably be a little more cleanup on this in the coming days. Then I'll write it all up in a nice theme spec.


SVN revision: 25033
2006-08-22 07:39:11 +00:00
sebastid 71b883624d Add return value.
SVN revision: 24990
2006-08-21 15:11:07 +00:00
Carsten Haitzler 90c133e32f fixingup of pointer code to fallback a bit simpler - on demand buffer canvas
creation now and deletion - and entry widget displays "entry" cursor :)


SVN revision: 24928
2006-08-20 06:42:20 +00:00
Carsten Haitzler 0a5e26b82b jamse brown ... errr... gadman is dead.
basically if moduels wish to put objects on a desktop - they now will have to
DIY and look after themselves. until we have gadcons with "free" layout that
do similar stuff - but this simply means module authors need to d a bit more
work. gadman code is unmaintained and a burden - thus removed.

also borders and e_win's have their own pointers now - this should nuke the
stuck pointer bug... :)


SVN revision: 24925
2006-08-20 04:48:27 +00:00
stffrdhrn 218717c8dc Clean up compile warnings:
* char * -> const char * for stringshare strings
 * char * -> const char * where needed in functions
 * remove unused vars in some places


SVN revision: 20912
2006-03-02 12:03:48 +00:00
e-taro d6d5cde980 Free data when pointer info is popped off the stack (and a little simplification)
SVN revision: 20771
2006-02-25 06:28:50 +00:00
sebastid 6a638a7806 Fix EAPI warnings.
SVN revision: 19597
2006-01-07 10:39:46 +00:00
Carsten Haitzler eff5eeeac7 fix several bugs (cursors for example)... found some more... :)
SVN revision: 19555
2006-01-06 13:56:46 +00:00
Carsten Haitzler a3d5f5c28d a lot more use of stringshare.
SVN revision: 18823
2005-12-04 12:03:59 +00:00
sebastid 65cb576257 Add resize pointer for all mouse,down resize signals.
Just pop one element from the stack if type is given.


SVN revision: 17429
2005-10-11 05:51:03 +00:00
sebastid 8c07c1f5d3 x cursor uses size, not pixels. Scaling by 3/4 seems ok :)
SVN revision: 17380
2005-10-10 08:18:35 +00:00
sebastid d357dc1899 Set x cursor size.
SVN revision: 17379
2005-10-10 07:58:24 +00:00
sebastid 32a4c428a6 Use arrow as fallback.
SVN revision: 17356
2005-10-09 18:20:20 +00:00
sebastid 44a9034b6e Oops! Don't segv!
SVN revision: 17355
2005-10-09 18:14:05 +00:00
sebastid c0096e11c0 Don't change pointer if it is equal.
SVN revision: 17354
2005-10-09 18:11:10 +00:00
sebastid 0c3b477cc6 pointer stack work.
SVN revision: 17352
2005-10-09 18:02:17 +00:00
sebastid f1b815305e Pointer changes on context. Please comment! Will work more on it soon.
SVN revision: 17344
2005-10-09 08:54:24 +00:00
sebastid 192e1feeb8 Add a type pointer to remember what kind the pointer is, a stack to
add extra pointer info, and check all alloc calls.
Return a pointer object when using x cursor too, so we have a reference
to play with.


SVN revision: 17334
2005-10-08 20:38:07 +00:00
sebastid 4b5f28eb16 Move pointer to manager.
Update pointer when changing by ipc.


SVN revision: 17034
2005-09-28 13:30:49 +00:00
sebastid b7ec896ab8 Move cursor logic to e_pointer.c
SVN revision: 16988
2005-09-27 10:18:52 +00:00
sebastid f5e90c9069 Update cursor size.
SVN revision: 16462
2005-09-02 08:28:12 +00:00
Carsten Haitzler 120960c191 rename pointer images, different edje group names (better namespace i guess),
rationalise pointer usage down to 1 for init, 1 for everything else.


SVN revision: 16304
2005-08-24 04:22:52 +00:00
sebastid 5519da900c More work on themeable cursor.
SVN revision: 16261
2005-08-21 23:37:28 +00:00
sebastid 549154cd7d Themeable pointers.
SVN revision: 16218
2005-08-17 01:35:48 +00:00
Carsten Haitzler f618831ce9 fix memory leaks! no more leaks!
SVN revision: 14934
2005-05-25 08:08:44 +00:00
Carsten Haitzler 4f54c588e1 seb's patch...
SVN revision: 13222
2005-02-07 13:51:09 +00:00
xcomputerman 7bf106161c Missing object check
SVN revision: 12965
2005-01-14 19:24:57 +00:00
Carsten Haitzler 48dc5b9a11 smoother/nicer cursor now..
SVN revision: 12736
2005-01-04 14:07:59 +00:00
Carsten Haitzler 5e2388c886 _ _ _ _ _____ ___
| | | | ___| | | |  ___| __ ___  ___ _______  ___   / _ \__   _____ _ __
| |_| |/ _ \ | | | |_ | '__/ _ \/ _ \_  / _ \/ __| | | | \ \ / / _ \ '__|
|  _  |  __/ | | |  _|| | |  __/  __// /  __/\__ \ | |_| |\ V /  __/ |
|_| |_|\___|_|_| |_|  |_|  \___|\___/___\___||___/  \___/  \_/ \___|_|


I put E17's wm code into cvs. Hell is freezing over. Duke Nukem Forever will
be out next week. Snowballls take up residence in Hell. The Fat Lady sings.
The End is nigh...

:)


SVN revision: 12247
2004-11-25 03:37:45 +00:00