Commit Graph

395 Commits

Author SHA1 Message Date
Derek Foreman 7c6c1a081a ecore_x: Remove XPrint usage
Summary:
Xprint has been deprecated since 2008.

It's recently (August 2015) been removed from debian.

Reviewers: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3150
2015-10-06 13:13:01 -04:00
Ji-Youn Park ff6f6f198b ecore_x_keygrab: fix memory leak 2015-09-24 16:02:03 +08:30
Srivardhan Hebbar 6eefe25dcf ecore_x: remove useless assignment.
Summary:
The assignment of NULL will have no effect on the caller. So removed that statment.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3095

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-09-23 14:22:44 -07:00
Srivardhan Hebbar 205186da16 ecore_x: fixing memory leak on realloc.
Summary:
If realloc fails, it returns NULL. Then whatever the memory the ignore_list was pointing to would be leaked. So freeing it now.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: stefan_schmidt, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3012

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-09-22 00:06:07 +02:00
ChunEon Park bca18f5f93 ecore_x: fix the memory leak.
@fix
2015-09-21 21:00:16 +09:00
ChunEon Park d6890c9ed5 Revert "ecore_x: remove dead code."
This reverts commit 7303fcee4d.

acutally the code was intended for compile warning.
2015-09-21 20:09:15 +09:00
ChunEon Park 7303fcee4d ecore_x: remove dead code.
remove ridiculous code.
2015-09-21 19:59:48 +09:00
ChunEon Park c5671efadb ecore_x: free the allocated memory after used.
XFixesInvertRegion doesn't free the xbound argument inside.

@fix
2015-09-21 19:49:10 +09:00
Carsten Haitzler 5b2baf173e efl - set thread names for internally created threads for debugging
@feature
2015-09-10 15:17:08 +09:00
Carsten Haitzler 66d53e5968 ecore x vsync - add in exynos checks and move kernel v checks inside
this adds asmung exynos driver as a whiteliested drm vsync driver.
this means 3.0 needs to work so move kernel ver checks inot each driver.

@feature
2015-09-08 22:00:33 +09:00
Mike Blumenkrantz 0efc83d64d ecore-x: add property member to Ecore_X_Event_Selection_Notify
@feature
2015-08-12 17:58:58 -04:00
Mike Blumenkrantz 5032cf0df3 ecore-x: provide property state in Ecore_X_Event_Window_Property
this event is not very useful without the state member.

@feature
2015-08-10 13:18:13 -04:00
Stefan Schmidt 6c8e07ff5f ecore_x: Add since 1.15 tag for keygrab API additions 2015-07-23 12:19:13 +02:00
Stefan Schmidt 016f34059c ecore_x: Add since 1.15 tag for keyrouter API additions 2015-07-23 12:19:13 +02:00
Mike Blumenkrantz 0b579f1f49 ecore-x: send last event time along with generic Ecore_X_Event_Client_Message
this won't necessarily be the same time that the client sent the message,
but at least it will provide a better reference point than 0
2015-07-21 18:12:54 -04:00
Carsten Haitzler 589fbd80cd ecore-x fix warning on unused function due to ifdefs 2015-07-09 15:45:15 +09:00
Mike Blumenkrantz 121e7be4b6 Revert "ecore-input: add keysym to Ecore_Event_Key struct"
This reverts commit c3f3c4eba8.

this was audited and found to be impractical due to portability concerns
2015-06-29 13:18:01 -04:00
Mike Blumenkrantz 476ebdc0a1 ecore-x: add ecore_x_keysym_get()
this is a less invasive solution for retrieving a keysym. X keysyms are
not portable, and so this function should not be used for any code which
is meant to run on other platforms.

@feature
2015-06-29 13:18:01 -04:00
Ji-Youn Park 4d41778251 ecore_x_xi2: remove build warning 2015-06-30 00:58:24 +09:00
Ji-Youn Park f74895c6b7 ecore_x_xi2: add small code to check device id
cancel event only can be dealed in touch device.
2015-06-30 00:02:47 +09:00
Ji-Youn Park bd6d7850dc ecore_x_xi2: fix only ecore input handler deals touch cancel event
X gives only one cancel event in one touch device even though several touch point.
move code related with touch cancel to input hander function
2015-06-29 23:09:33 +09:00
Ji-Youn Park 049b397a86 ecore_x_xi2: fix crash if device info is NULL.
_ecore_x_input_device_lookup can return NULL.
@fix
2015-06-26 13:42:56 +09:00
Lukasz Stanislawski 73dc72515c ecore-x: move grabbed_is check to multi_handler
Summary:
Previous implementation used mouse_handler to create mouse events from touch
events if the device was grabbed and no emulated mouse events were emitted by X server.
However the same functionality could be achieved by using multi_handler with
additional condition on grabbed devices.

Test Plan: elementary_test -> Multitouch

Reviewers: cedric, raster, devilhorns

Subscribers: seoz, cedric

Differential Revision: https://phab.enlightenment.org/D2700
2015-06-17 13:45:35 -04:00
Ji-Youn Park 5cb6cdbc5e Ecore_input: Add "ECORE_EVENT_MOUSE_BUTTON_CANCEL" event
If ecore get the mouse cancel event(ex: display off, or window stack change) from below, we need to deal with.
Currently, evas also generates up event using evas_event_feed_mouse_cancel function when window hide is called.
if cancel event occurs, ecore also call evas_event_mouse_feed_cancel like window hide situation.
cancel event means all button or touch event should be canceled, but in the future, if we need to deal each cancel event according to touch point,
we need to add api like evas_event_feed_multi_cancel

@feature
2015-06-16 15:33:43 +09:00
Chris Michael 03acea0a8a ecore-x: Fix compiler warning of unused variable
Summary: XIDeviceEvent variable is only used if we have support for XI2_2.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-09 09:05:01 -04:00
Chris Michael 0d28a11543 ecore-x: Fix warning of defined but unused function
Summary: The _ecore_x_input_grabbed_is function is only used if we
have support for XI2_2, so move the defines around a little to fix a
compiler warning.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-09 09:05:01 -04:00
Chris Michael 5ffcaf605e ecore-x: Fix warning of unused variable
Summary: We only need the 'devid' variable if we have support for XI2_2.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-09 09:05:01 -04:00
Carsten Haitzler 38f4201f6d ecore x - remove warning on unused variable 2015-06-09 17:35:04 +09:00
Ji-Youn Park 0c386dbb16 ecore_x_xi2: remove useless define check XI_TouchXXX.
Summary:
we can use XI_TouchXXX defines after xi2_2. So we don't need check XI_TouchXXX defines.
I think it is simple only using the ECORE_XI2_2 define instead of using XI_TouchXXX defines.
2015-06-09 13:10:59 +09:00
Ji-Youn Park 105cf65c80 ecore_x_xi2: remove useless define check XI_TouchXXX.
Summary:
we can use XI_TouchXXX defines after xi2_2. So we don't need check XI_TouchXXX defines.
I think it is simple only using the ECORE_XI2_2 define instead of using XI_TouchXXX defines.

Reviewers: raster, cedric, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2637
2015-06-08 14:53:01 -04:00
Lukasz Stanislawski 2017c8be95 ecore-x: add new grab touch devices functionality.
Summary:
EFL currently supports pointer grabbing. This patch introduces new API
allowing to grab all slave touch devices registered in X server
Grabbing is performed by XIGrabDevice function from XInput 2.0.

By default ecore_x_input_touch_devices_grab grabs all XISlavePointer devices,
having XITouchInfoClass. Function returns EINA_TRUE if at least one touch device
was successfully grabbed. ecore_x_input_touch_devices_ungrab ungrabs all
previously grabbed devices.

To process events correctly change has been done in x_input_handler to emulate
mouse pointer events. If XITouchEmulatingPointer flag is set on touch events and
device is grabbed framework will generate mouse events. This is required
due to X Server design in which mouse events are no longer send to client when device is
detached (grabbed) from virtual core pointer.

@feature

Reviewers: cedric, raster, devilhorns

Subscribers: seoz, cedric

Differential Revision: https://phab.enlightenment.org/D2568
2015-06-04 13:06:27 -04:00
Mike Blumenkrantz c3f3c4eba8 ecore-input: add keysym to Ecore_Event_Key struct
currently only functional for x11, wl, drm

@feature
2015-05-20 14:50:46 -04:00
Mike Blumenkrantz 8e44652a42 ecore-x: add function to init ecore-x from external Display* object
when using glx it's necessary to share a Display* object, and this object
may be created externally

no tests provided since they would not be run, would require direct linkage to xlib,
and is literally a 2 LoC change from regular ecore_x_init()

@feature
2015-05-18 15:30:55 -04:00
Cedric BAIL 0d6563df6e ecore_x: use portable environment lookup. 2015-05-14 18:41:48 +02:00
Ji-Youn Park 5c3a08433a ecore_x: Add key router feature related with client side.
Currently app only grab key using Xgrabkey.
Keyrouter will support several keygrab mode and apps can use it.
2015-05-13 20:47:36 +09:00
Cedric BAIL ce5ccfb5be ecore: remove the need to order the header correctly for Windows. 2015-05-07 09:53:10 +02:00
Mike Blumenkrantz ae095bb5c5 ecore-x: use async pointer grab mode in ecore_x_window_key_grab()
using a sync grab here causes the device to be frozen in the xserver,
preventing any event processing on the device until the grab ends. it also
prevents new grabs, such as the ones which would be created by xkill when
launched from a keybinding; this means that as long as the grabbed key is
held, the pointer is effectively dead to the world.

I attempted to find the reason for using sync pointer grabs here,
but the original commit message was:

  aaaahmmm.. no.. this.. oops

see https://git.enlightenment.org/legacy/ecore.git/commit/?id=f62faeae288fc8211d5f97b43d3b81de87db0942

fix T2228
2015-04-29 22:05:44 -04:00
Carsten Haitzler efdca32fe8 ecore_x - axis events - if event struct alloc fails, free axis data
this frees the axis data coming in if struct alloc fails - should
basically never happen, but if it does we don't lose axis data as
caller asumes this data will be freed in the event

related to CID 1256115
2015-04-21 10:32:40 +09:00
Carsten Haitzler 9a03009364 ecore x vsync - ensure drm fb is set to close on exec - intended
@fix - minor - fixes T2138 as muc as efl can (dri card0 file)
2015-04-11 09:45:26 +09:00
Jean-Philippe ANDRE 0ef41604e8 Ecore: Use calloc() to initialize Ecore_Event_Key fully
Some fields (eg. data) may not be properly initialized.
Use calloc() instead of malloc() will ensure proper initialization
even if we add more fields.

These fields (data) would even be passed down to Evas as
Evas_Event_Key_Down for instance.
2015-03-25 15:34:23 -07:00
Chris Michael 99e0695e42 ecore-xcb: Fix 'variable set but not used' message
Summary: As we do not use the returned Ecore_Event here, there is no
need to assign it

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-27 09:44:16 -05:00
Stefan Schmidt 5f1ea9403f ecore_x/xcb: Remove xcb-xprint code to get the root window list and use fallback
This was the only user of xcb-xprint and we already have a fallback in place for
it. I talked to Chris about it and he was fine with it before his morning coffee.
More serious this should be ok and we can get rid of this part which starts to
make trouble in distros by now. E.g. gentoo is disabling it completely and many
others just ship upstream which means no pc file. Arch seems to patch it in but
we are on the safe side with just using the fallback.
2015-02-27 15:19:34 +01:00
Chris Michael 5030782290 ecore-x: Port deprecated API and new API function to xcb
Summary: This ports the deprecated screensaver_suspend and new API
screensaver_suspend to work with xcb.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-04 11:28:01 -05:00
Chris Michael 52564251bc ecore-x: Deprecate old misspelled API function and add new one
Summary: This deprecates the old misspelled screensaver_suspend API
function and adds a new one.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-04 11:26:53 -05:00
Chris Michael cf9f64cfc6 ecore-x: Deprecate misspelled screensaver API function
Summary: This API function is misspelled, so after speaking with
Stefan, we've decided to deprecate this function add add a properly
spelled one.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-04 11:26:46 -05:00
Carsten Haitzler e483d25082 ecore-x - undo api/abi break with input selecting before release 2015-02-04 18:58:48 +09:00
Chris Michael 5987b1c702 ecore-xcb: Add missing EINA_UNUSED for function paramater
Summary: Depth is not used in the ecore_x_window_full_new function, so
add missing EINA_UNUSED

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:51 -05:00
Chris Michael 10c4a78281 ecore-xcb: Fix ecore_x_window_full_new function to compile again
Summary: Let's use the proper variable names when assigning return
mask values.

NB: How did all this even get Into git with someone checking it and
compiling it ??

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:50 -05:00
Chris Michael 1ba4cb369f ecore-xcb: Fix function formatting
Summary: No functional changes, just formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:50 -05:00
Chris Michael 583c1300c1 ecore-xcb: Fix compiler build break
Summary: Use proper variable name when when trying to free selections
data

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:50 -05:00
Chris Michael 5b67da7c92 ecore-xcb: Fix unused paramater compiler warning
@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:50 -05:00
Chris Michael 7bf29561e6 ecore-x: Fix build error in xcb
Summary: If we do not get the property we are looking for here, then
reset the Proper variable to 0. This fixes a build break.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:50 -05:00
Chris Michael c466fc7d53 ecore-x: Use proper XCB_ATOM_CARDINAL in call to window_property_get
Summary: XA_CARDINAL is defined for xlib, XCB_ATOM_CARDINAL is defined
for xcb, so let's use the proper one and fix a build break.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:50 -05:00
Chris Michael c971fa845c ecore-x: Remove unused variable in backlight_available code
Summary: We never actually do anything with the _backlight variable
here, so just remove it

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:50 -05:00
Chris Michael 1135469fa4 ecore-x: Add missing EINA_UNUSED for function paramater
@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:50 -05:00
Chris Michael d7765bb21f ecore-x: Fix calls to disable dpms in xcb
Summary: We already have ecore_x_dpms code which handles this
properly, so call it here.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-27 11:04:50 -05:00
Stefan Schmidt 77df600b5d ecore_x: Add since tag for new ecore_x_input_select() API. 2015-01-27 12:00:14 +01:00
Srivardhan Hebbar b411be4be3 ecore: fix memory leak issues.
Summary:
eina_inarray_new returns NULL if malloc fails. This check was not performed. So have added the check for the error case and returning NULL if any of it fails.

@fix

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1807

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-25 21:34:50 +01:00
Carsten Haitzler 38cb8fcbe0 ecore x vsync - disable ecore_x vsync daemon due to unresolved problems 2014-12-24 17:36:03 +09:00
Carsten Haitzler 83a3b45e33 ecore-xi2 - fix issue with ifdefs and moustache nesting
don't ask how this worked at all... it did... until you change some
ifdefs
2014-11-25 18:21:26 +09:00
Carsten Haitzler 8d1b586b90 ecore-x - xi2 - only compile functions when used by xi2 2014-11-25 16:09:28 +09:00
Carsten Haitzler 5bc509a0c0 ecore x - mark unused param as unused (warning--) 2014-11-25 16:07:09 +09:00
Carsten Haitzler 2b3b240951 ecore-x - xi2 support - unbreak build break i added.
this only breaks when you enable xi2.2
2014-11-25 15:37:16 +09:00
Jason Gerecke 26c943bac0 Expose device (e.g. pen) axis information to applications
Summary:
This patch set adds the necessary code to expose device axis state to applications. This was primarily written with graphics tablets in mind, which -- in addition to acting like a mouse -- also provide information about pen pressure, tilt, etc. Other devices could potentially benefit from this API as well: touchscreens, joysticks, knob controllers, "spaceballs", etc.

Whenever an update to the device state is recieved, an "Axis update" event is synthesized. This event contains the updated information, typically scaled and normalized to a particular logical range (e.g. zero to one for pressure, -pi to pi radians for angles, etc.). Information about the tool which generated the event is also stored so that applications can disambiguate events from multiple devices (or in the case of multitouch screens, individual fingers).

This API is only wired up for use with X11 at the moment. Support for other backends (e.g. Wayland) should be easy to add for those familiar them.

**Note**: The following is a list of changes from the "v2" patches originally sent to the mailinglist

//Define and implement new Ecore_Event_Axis_Update events//
 * Harcode axis labels instead of including xserver-properties.h
 * Use C89-style comments
 * Use doxygen comments
 * Update comment text to note axes with unbounded/undefined ranges/units
 * Create "Ecore_Axis" and "Ecore_Axis_Label" typedefs
 * Reference typedef'd instead of raw types
 * Adjust how we count through valuators to support tilt/az
 * Add support for tilt and azimuth
 * Tweak memory management in case number of valuators differ
 * Expand TWIST axis normalization to declared range
 * Only normalize TWIST axis if resolution == 1 (wacom bug)
 * Cache label atoms on first use to minimize round-trips

//Implement EVAS_CALLBACK_AXIS_UPDATE event and friends//
 * Update to doxygen comments
 * Update comment text to note axes with unbounded/undefined ranges/units
 * Typedef 'Evas_Axis_Label', 'Evas_Axis'
 * Move typedef for 'Evas_Event_Axis_Update'
 * Reference typedef'd instead of raw types

//Wire the Ecore and Evas implementations of axis update events together//
 * Expose ecore_event_evas_axis_update in Ecore_Input_Evas.h
 * Move ecore_event_evas_axis_update to more logical position

//DEBUG: Add axis update logging to evas-multi-touch.c//
 * Removed from patch set

//Make evas-multi-touch demo use new axis functionality//
 * Have pressure adjust rectangle brightness instead of size
 * Use more available axis data when rendering rectangle (azimuth, tilt, twist)

Test Plan: The evas-multi-touch demo was updated to support axis update events. A graphics tablet was then used to verify that the pressure, azimuth, tilt, and twist data was coming through correctly.

Reviewers: cedric, raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1514

Conflicts:
	src/lib/ecore_input/Ecore_Input.h

Carsten Haitzler -

** fixed forward enum typedefs (make things unhappy)
** fixed conflict above
** fixed wrong param type for _evas_canvas_event_feed_axis_update()
** fixed @sinces to be 1.13
** fixed formatting/indeting
** fixed order of operation reliance in if's with ()'s to be clear
** fixed functions to be static that should have been
2014-11-25 12:43:15 +09:00
Jean Guyomarc'h 704c448141 warnings: remove 2 "equality comparison with extraneous parentheses"
Reviewers: stefan_schmidt, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1644

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-11-05 00:15:52 +01:00
Carsten Haitzler 779e0829c0 ecore vsync - add debug and files to touch to disable vsync
this makes it just that much more convenient to disable the ecore x
vsync stuff in case you have troubles
2014-10-31 11:28:03 +09:00
Daniel Zaoui 0961dd92d9 dnd/x: fix type set for case there is no type list exists
Summary:
DND does not work in X11 because we cannot set type.
The f8e036d5af causes this.
Since the xdnd type list does not exists at the beginning,
if we always return without setting new property, we cannot set dnd type.
This patch brings dnd work again by correcting the type set operation.

@fix

Test Plan: Try dnd tests in elementary_test.

Reviewers: raster, woohyun, JackDanielZ

Reviewed By: JackDanielZ

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1578
2014-10-27 08:10:11 +02:00
Carsten Haitzler 696346c467 evas gl rgba visual/rendering fix try ... again
so this is a re-try at the evas gl destination alpha fix. this is what
cedric tried, but done RIGHT. it required adding an ecore_x call to
create a window with correct visual/colormap. it requires doing
visuals totally correctly all the way from ecore_evas to the evas
gl_x11 core. nvidia drivers are very picky about visuals. i also had
to vid the egl/gles code too to do the same thing. nvidia gles/egl
drivers are also picky, mesa is not. this all requires a lot of code
changes. it's far from trivial

this isn't backported for a few reasons:

1. verify this fix doesn't break for anyone.

i tested:

nvidia glx + egl/gles
intel glx + egl/gles
radeon glx

it needs wider testing. nouveau, fglrx for starters and maybe
some other gles/egl drivers.

2. have some review time
3. time to settle before blasting to stable branches

@fix
2014-10-26 00:34:40 +09:00
Nicolas Aguirre 3032ebc3e2 ecore_x: add documentation for Ecore_X_Version structure. 2014-10-20 18:01:54 +02:00
Carsten Haitzler 3b794720e8 ecore vsync - enable for radeon - i've tested it to work. 2014-10-05 21:42:00 +09:00
Carsten Haitzler 60bc2cc1ce ecore vsync - fix up dual nvidia + dri/drm driver discovery
this fixes drm vsync discovery when you have both drm and nvidia
drivers seemingly present in /dev but the intel drivers are the dri
ones and nvidiactl is there (who knows if it's used). keep the nvidia
drivers working too with a name/desc check on drm driver as the drm
driver is in fact nvidia's own and set flags appropriately

@fix
2014-09-28 11:34:40 +09:00
Carsten Haitzler 222b49ba7c ecore_x_vsync - fix tiny leaklet of drmversion
@fix
2014-09-24 19:34:40 +09:00
Mike Blumenkrantz 5375e154fe fix config.h inclusion across the tree 2014-09-23 15:56:46 -04:00
Carsten Haitzler 13295d7350 efl - vsync - deal with both broken and non-broken libdrm
@fix
2014-09-23 21:31:54 +09:00
Amitesh Singh 7a02b10573 ecore_x: No need to free NULL value.
NB: This reintroduces the Coverity Resouce Leak detected with CID1039276

Summary:
When ecore_x_window_prop_property_get returns 0, data is already NULL hence
no need to free NULL value. This fault was introduced in 45a2296218
while fixing coverity defects.

Reviewers: seoz, cedric, raster, devilhorns

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D1473
2014-09-22 13:43:10 -04:00
Stefan Schmidt edcee427fd ecore_x_vsync: Remove ahadowign variable.
Also make sure we reset ok to FALSE here to keep the logic below correct.
This was actually a vlaid local shadow problem.
2014-09-04 13:16:30 +02:00
Carsten Haitzler 61efcf37f8 ecore - x vsync - whitelies only intel drm driver
do a version/driver name check and only support intel (as it's the one
i KNOW works - except if you turn on EXA).
2014-09-04 18:13:10 +09:00
Mike Blumenkrantz 3408f1bd6d shutup ecore-x vsync stupid log domain failures
@fix
2014-08-28 14:09:39 -04:00
Carsten Haitzler e4ed80dc1e ecore vsync - work around old kernels by blacklisting them
this is a bug workaround apparently old kernels that seems to get
vsync and timestamps wrong. 3.14 kernels and up only for now

@bug
2014-08-27 18:26:58 +09:00
Carsten Haitzler f8e036d5af ecore-x - handle prop get fail for xdnd type set
fix CID 1039693
2014-08-27 16:33:06 +09:00
Carsten Haitzler 18410e17ef ecore vsync - don't schedule vsync moe than needed - add debug too
this doesn't fix anything, but in going over the code finding driver
bug i notice we schedule once too often and we need more easy to use
debug info
2014-08-27 01:19:22 +09:00
Carsten Haitzler c6193f7497 ecore x vsync - if schedule fails, use fallback timeout to adapt faster 2014-08-24 19:51:42 +09:00
Cedric BAIL 2a51029340 ecore_x: fix debug message and try to shutdown in time. 2014-08-21 12:04:53 +02:00
Julien Isorce d3c56d5c74 xlib: fix undefined behaviour when freeing colormap too early
Summary:
On Ubuntu 14.04 it makes a 32 bit depth window un-responsive
to any XEvent.

Reviewers: cedric, raster

Reviewed By: raster

Subscribers: raster, capOM, cedric

Differential Revision: https://phab.enlightenment.org/D1236
2014-08-21 18:40:02 +09:00
Carsten Haitzler e430ee9467 ecore x vsync - be more conservative about DISPLAY string src
i hope this addresses CID 1229131 - don't trust the DISPLAY var
content much at all - limit it to [a-z][A-Z][0-9][-] only. hopefully
coverity is happier.
2014-08-13 18:10:58 +09:00
Carsten Haitzler 355e96bd64 more versions of vbox mods panic - blacklist all vboxvideo users from vsync 2014-08-11 16:06:54 +09:00
Gustavo Sverzut Barbieri a306c19871 ecore_x_vsync: hack to workaround bug in vboxvideo
there is a kernel oops when using vboxvideo 4.3.14 and one calls
drmWaitVBlank(), then do not init drm when using such driver.

    https://www.virtualbox.org/ticket/13265
2014-08-07 11:31:36 -03:00
Stefan Schmidt ee330fbaed ecore_x: Add missing since to various new ecore_x_screensaver* functions 2014-08-07 11:43:15 +02:00
Carsten Haitzler c12875ccd3 ecore vsync - add getenv env var to disable vsync attempt
this is a quick try to allow testing and fixing of the vbox vsync
kernel panic with ability to turn it off so debugging can be done
2014-08-07 14:27:07 +09:00
Carsten Haitzler 4af9664622 ecore-x - use last modifier mask found, not first to match xserver logic
this makes altgr not conflict as per
https://phab.enlightenment.org/T1273 by using the last, not first
occurance of the key in the mask modifier bits
2014-08-05 11:23:28 +09:00
Cedric BAIL fc159fbcae ecore_x: don't go below 0.
It seems that when things go wrong it does happen that we start with i == 0. It
will then have been walking into info[-1] 'happily'. Changing the test, to first
decrement and then compare should stop that issue.

This should @fix T1467.
2014-08-04 11:56:50 +02:00
Carsten Haitzler 38bed2cd8a fix warning about unused var 2014-08-02 22:54:23 +09:00
Carsten Haitzler 812494ca58 ecore-x vsync tool. fix multi-client handling so ticking continues
a mistaking in using the wrong tick var caused ticking to stop when a
client that is ticking exits while another ticks. this fixes it.
2014-08-02 13:15:14 +09:00
Carsten Haitzler aad0192a89 clean vsync code - use do+while not goto. 2014-08-02 12:54:34 +09:00
Carsten Haitzler b0d4793d6f ecore-x-vsync - rearragnge to move vsync event input to thread
this uses a thread to collect vsync input events and filter them
before forwarding them to the mainloop (as a double timestamp). this
means wakeups only happen for the actual vsync and thus animator and
not for other screens we are filtering out anyway. this should fix the
continual animator wakeups that happen if you have a dri/drm based
driver and > 1 screen.
2014-08-02 12:03:35 +09:00
Carsten Haitzler 0e330cfbe4 fix wakeups to not happen for now until i fix vsync 2014-08-01 19:00:18 +09:00
Carsten Haitzler e54ec867e9 ecore-x vsync nvidia glx tool - handle clients disabling first then enabling 2014-08-01 09:33:16 +09:00
Carsten Haitzler 6e7b42111f ecore_x - vsync nvidia/glx service fix so it connects 1st not 2nd time 2014-08-01 08:47:06 +09:00
Carsten Haitzler 570c1f9692 ecore_x_vsync - protect against silly clients asking for vsync lots
this allows a client to ask multiple times and have to release the
same number of times for vsync events to stop. covers possible misuse
2014-07-31 23:16:40 +09:00
Carsten Haitzler 2be17655fa fix vsync display env var handling to be right 2014-07-30 08:38:21 +09:00
Carsten Haitzler 0010159fe7 ecore-x-vsync - oops - fixed, but debug paths left in - remove.. 2014-07-29 23:22:06 +09:00
Carsten Haitzler acf4e67420 ecore-x-vsync - found issue when vt switchign with nvidia - workaround 2014-07-29 23:19:52 +09:00
Carsten Haitzler aaefbaa43e ecore_x - vsync fix drm support to work again
due to mesa changes to hide dri2 symbols, i have had to work on a fix
that makes this work again by going right to drm. now it works and
animators shoudl be vsynced on drm drivers if possible (only 1 card -
use card 0). already existing nvidia solution that uses a lot more
memory is there. others - no support. timers only
2014-07-29 20:02:33 +09:00
Carsten Haitzler 2d63a70422 ecore x vsync animator support - add a glx based vsync ticker
this adds a slave process that is useful on nvidia drivers as there
isn't another way to get vsync evenys (that i know about). i need to
make another slave process to that includes a dri2 protocol
implementation since mesa has now hidden its dri2 symbols.
2014-07-28 23:00:34 +09:00
Carsten Haitzler 2da95771d4 ecore-evas - enable attempting to turn on dri2 vsync
this enables the x11 dri2 vsync enabling code for x11 ecore-evas
2014-07-25 14:45:50 +09:00
Carsten Haitzler 20c8065da6 fix mouse sticking when xkbmap changes whilst running
this fixes T1415
2014-07-15 20:39:13 +09:00
Carsten Haitzler e42f319d00 ecore-x - add x screensaver activate/reset calls 2014-07-07 23:36:34 +09:00
Carsten Haitzler ad8957c708 fix xcb as well as xlib - match altgr conflict fix
this matches c21120ec96 conflict fix
section (not the rest). T1273 fix
2014-07-04 18:07:15 +09:00
Carsten Haitzler c21120ec96 this fixes crazy french altgr setups that confuse binding masks
this fixes T1273 - @fix
2014-07-04 18:02:10 +09:00
Carsten Haitzler 007dd02c56 ecore_x - add some minor calls to be able to suspend/resume screensaver 2014-07-01 19:40:26 +09:00
Carsten Haitzler 4d8e12089c ecore-x - fix setting protocol atoms for icccm for 64bit
@fix
2014-05-11 09:09:03 +09:00
Mike Blumenkrantz f886c60a0d ecore_x_image_get() should not abort when shm creation fails 2014-05-09 10:18:38 -04:00
Mike Blumenkrantz 60966149ff ...also when shmat() fails 2014-05-09 10:18:29 -04:00
Mike Blumenkrantz 2719d17b17 ecore-x should print an error when shmget fails 2014-05-09 10:15:41 -04:00
Chris Michael 6994cb2a86 ecore-x: Set keycode in ecore_event structure during key press/release events
bugfix@: As we have support in the Ecore_Event structure for storing
keycode on key press/release, let's utilize it. This will simplify
wayland compositor code as we won't have to parse key names to get the
keycode.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-05-09 08:00:26 +01:00
Carsten Haitzler f921af0cb5 formatting - imrove readability of ecore x event table decl 2014-04-10 15:15:47 +09:00
Carsten Haitzler 5cdbcceccb fixes enlightenment working over non-shm paths.
this technically adds a feature - it adds non-mitshm support for
ecore_x image grabbing, but that fixes a bug. it doesn't touch xcb
support though.

this fixes T1127 andshould probably be backported.
2014-03-26 15:54:40 +09:00
Tom Hacohen 6242271e74 Ecore x: Add back the two symbols removed in 1.9.
This fixes ABI that got broken in 1.9.

@fix.
2014-03-13 11:06:57 +00:00
Chris Michael 11d250e5fc ecore-x: Predefine Ecore_X_Atom and Ecore_X_Icon
@fix: Fix building Enlightenment without X support

These changes are needed so that we can build Enlightenment without X
support. Many places in the E code reference
Ecore_X_Atom/Ecore_X_Icon. If we build E without X support, these end
up being undefined, causing build to fail, so we need to predefine them.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 08:42:01 +00:00
Jihoon Kim 449f9b76ba ecore_evas: fix version of APIs to support for window auxiliary hint recently
EFL 1.9 was already out, it's 1.10 phase now.
2014-02-28 08:43:31 +09:00
Gwanglim Lee cbf6f94c80 ecore_evas: Added support for window auxiliary hint
Summary:
The window auxiliary hint is the value which is used to decide
which actions should be made available to the user by the WM. If you
want to set specific hint to your window, then you should check whether
it exists in the supported auxiliary hints that are registered in the
root window by the window manager.

Once you've added an auxiliary hint, you can get a new ID which is used
to change value and delete hint. The window manager sends the response
message to the application on receiving auxiliary hint change event.

A list of auxiliary hint within the Ecore_Evas has this format:

  ID:HINT:VALUE,ID:HINT:VALUE,...

Reviewers: raster, cedric, seoz, Hermet

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D543
2014-02-28 07:20:01 +09:00
Daniel Hirt 3160b044fb ecore_x_selection: fix selection data freeing
This fixes valgrind reporting lost bytes when selecting text (e.g. in entry).
Can be reproduced in any program that has entry:
  Simply run it with valgrind, select any text, and then exit.
Fixed by properly freeing the selection data, since it is either cleared or replaced.
Also, changed argument in sizeof since it didn't match the type of selections[in].
2014-02-09 13:12:39 +02:00
Gwanglim Lee 77092d94d4 ecore_evas: added window manager rotation to manage the rotation of windows by the WM.
Summary: The window manager rotation allows the WM to controls the rotation of application windows. It is designed to support synchronized rotation for the multiple application windows at same time.

Reviewers: raster, seoz, cedric, Hermet

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D529
2014-02-09 09:46:51 +09:00
Jaehwan Kim be4d28be6c ecore_x: fix wrong Atom name. 2014-02-08 12:34:42 +09:00
Carsten Haitzler dc9d37de0b ecore-x xpresent - fix build if you DONT have xpresent there. 2014-02-07 17:33:01 +09:00
Doyoun Kang 50b941f907 ecore_x: added @since comment about ecore_x_e_illume_window_state_send
Reviewers: seoz

CC: zmike, cedric, raster

Differential Revision: https://phab.enlightenment.org/D526
2014-02-07 17:06:22 +09:00
Jaehwan Kim 71c7d0e9ad ecore_x: Add ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_OVER.
This Atom is for accessibility.
In the touch screen, when the finger moves continuously, it is uesd.
2014-02-07 14:51:28 +09:00
Doyoun Kang 541ef547ab ecore_x: Added API - ecore_x_e_illume_window_state_send
Summary:
there exists ecore_x_e_illume_window_state_set and ecore_x_e_illume_window_state_get,
but no ecore_x_e_illume_window_state_send.

Reviewers: raster, seoz, cedric

Reviewed By: seoz

CC: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D512
2014-02-07 13:05:00 +09:00
Mike Blumenkrantz 052fc85cd3 okay, bring back xrandr < 1.4 compat for ecore_x_randr_output_name_get
apparently I read the commit order wrong and this fix went in for 1.4.0, not 1.3.2, which means anyone who has 1.3.2 has been having lots of fun crashes for the past 24 hours
2014-01-21 16:07:38 -05:00
Mike Blumenkrantz 8cbd7c1622 nul terminate string from ecore_x_randr_output_name_get 2014-01-21 14:58:31 -05:00
Mike Blumenkrantz 1feed7a1ae ecore_x_randr_output_name_get fixme removed
this was a fixme which was likely written sometime before July 2010 when the bug was fixed, just prior to the 1.3.1 release. I think it's probably okay to require that release since it's been 3+ years.
2014-01-20 22:16:18 -05:00
Jaehyun Cho 4432cd2e8e [ecore_x] Fix to handle paste null data case.
Summary: Do nothing when null data is pasted.

Reviewers: Hermet, raster

Reviewed By: raster

CC: seoz, raster, cedric

Differential Revision: https://phab.enlightenment.org/D473
2014-01-20 22:15:33 +09:00
Daniel Juyung Seo 2830507661 ecore_x_gesture: Cast maek pointer correctly.
Confirmed by the original author of libxgesture, Sungjin Park.
2014-01-15 20:48:33 +09:00
Sebastian Dransfeld 74bfb950c6 ecore_x: set cursor with xinput2
For some reason XDefineCursor might malfunction when using xinput2. So
when using xinput2, use XIDefineCursor. Also see:

https://bugs.launchpad.net/compiz/+bug/1179155
2014-01-15 08:30:25 +01:00
Seunghun Lee c4010a5da6 ecore ecore_x_e: check 0 and -1 for ecore_x_window_prop_window_get(). According to note for ecore_x_window_prop_window_get() :
Summary:
If the property was successfully fetched the number of items stored in
val is returned, otherwise -1 is returned.
Note: Return value 0 means that the property exists but has no elements.

Reviewers: seoz

Reviewed By: seoz

CC: cedric

Differential Revision: https://phab.enlightenment.org/D457
2014-01-14 18:48:16 +09:00
Mike Blumenkrantz a279e13ecd ecore-x present fixups 2014-01-13 12:14:50 -05:00
Mike Blumenkrantz 131e0e1983 ecore-x now supports XPRESENT
see http://cgit.freedesktop.org/xorg/proto/presentproto/plain/presentproto.txt
2014-01-13 10:19:11 -05:00
Jaehyun Cho 4daf83269a [ecore_x] Set data of selection event for XDND selection
Summary: Add data set case of selection event for XDND selection if selection atom is XDND

Reviewers: raster

Reviewed By: raster

CC: JackDanielZ, woohyun, Hermet, seoz, cedric

Differential Revision: https://phab.enlightenment.org/D446
2014-01-10 15:46:15 +09:00
Carsten Haitzler e8c13118eb fix mingw build for setuid fix/checks 2014-01-08 22:06:41 +09:00
Carsten Haitzler b95ef3801f setuid safeness - ensure if an app that is setuid doesn't do bad things
this makes efl ignore certain env vars for thnigs and entirely removes
user modules (that no one ever used) etc. etc. to ensure that *IF* an
app is setuid, there isn't a priv escalation path that is easy.
2014-01-08 19:46:23 +09:00
Jihoon Kim 8fcedfc017 fix 'found unknown command' warning in generating doxygen 2014-01-06 14:01:15 +09:00
Carsten Haitzler 2ef0f53401 ecore-x - rename new api 2013-12-27 12:02:48 +09:00
Chris Michael 3926b25279 Cleanup ecore_x_window_permanent_create function:
- No need for a separate xcb_connection here as we already have a
connection at this point so let's use that.
  - Fix up formatting.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-12-26 11:40:32 +00:00
Carsten Haitzler eb8b643bf2 ecore-x - add call to create a permanent window that is not deleted on exit 2013-12-26 19:01:23 +09:00
Daniel Juyung Seo 76d8532b54 efl: Unified eina critical manro to CRI.
Being annoyed by different types of eina critical macros - CRI, CRIT,
 CRITICAL -, I concluded to unify them to one. Discussed on IRC and
 finally, CRI was chosen to meet the consistency with other macros -
 ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.
2013-12-26 12:27:13 +09:00
Daniel Juyung Seo 17fe60d0db ecore gesture: removed unused variable. 2013-12-18 23:18:15 +09:00
discomfitor 0f46b8d7ec fix ecore-x shadow warning 2013-12-12 09:31:08 -05:00
Sebastian Dransfeld 50569a69c9 ecore_x: ensure positive malloc size
size_ret is used later as an argument for malloc, so it should be
positive. In addition this should ensure that
ecore_x_window_porp_property_get returns a positive value and is true if
we malloc data.

Hopefully also fixes CID 1135636
2013-12-10 09:10:54 +01:00
Sebastian Dransfeld 4a24b84185 ecore_x: remove double free
We first free'd the data in the else, then at the end.

Now we free old_data just before return, and at the end.

Fixes CID 1135637
2013-12-10 08:30:23 +01:00
Carsten Haitzler 82841fefe3 fix seb "fix" commit that causes lots of segvs.
this fixes 04e0a6d95e which introduced
copy & paste segv's by properly terminating the right buffer.
2013-12-09 18:39:07 +09:00