This fixes cycles of init/shutdown/init where ecore event types would
become invalid, since they are now stored in a dynamic array rather than
a statically stored array.
The risk here is that if a module of EFL tends to init/shutdown in a
"normal" scenario then the event type array will grow in a leaking
manner. This could be fixed by resetting those event ID's only when the
loop actually exits (EFL_EVENT_DEL on the main loop). I'm not using
EFL_EVENT_DEL in this patch as this would add too many event callbacks
to the main loop object, which may result in slightly slower event calls
to it, affecting the overall performance.
Test Plan: run on XP
Reviewers: jpeg, cedric, ajwillia.ms
Reviewed By: ajwillia.ms
Subscribers: ajwillia.ms
Differential Revision: https://phab.enlightenment.org/D5245
Summary:
In case if WM_SYSKEYDOWN or WM_SYSKEYUP events are handled in
DefWindowProc - system doesn't init event for a system shortcuts.
For example any EFL application on Windows couldn't be closed by
Alt+F4 combination.
@fix
Test Plan:
Launch Elemenatry_test app.
Try to close by Alt+F4 combination.
Reviewers: vtorri, raster
Reviewed By: raster
Subscribers: an.kroitor, bowonryu, cedric, jpeg, #eflete
Differential Revision: https://phab.enlightenment.org/D4477
If Ctrl+number combination pressed/unpressed function
_ecore_win32_event_keystroke_get return NULL. It happens because
ToUnicode WinAPI func fails to prepare unicode string for given scancode
and the keyboard state.
This commit add exception for the case with digits keys. In case if
there no translate
string, but the digit key processed - will be created a normal event as
usual.
After the support of the X11 cursors on Windows, the cursors were set for the whole
window (even the borders). Now we let the system use the default cursors for the borders
and we use the cursors set by the API for the client area only
This reverts commit 3ce8860dab.
Apply only to mouse wheel case. Button press/release wans't problem actually.
If I correct, this is caused because of different nature of window systems.
Anyway our Ecore_Event_Mouse values should keep consistency among the various systems.
Ecore_Event_Mouse_* x, y values are relative to the current window position
as well as the root x, y, values are relative to the root window.
previously, x,y is started from the root window and root x, y values are invalid.
fix them
@fix
If "keyname" and "key" are NULL an Ecore_Event_Key is allocated
throught calloc. strlen() is called on these variables, which crashes
the program. As it is not correct to return a key event for NULL
keys to ecore, it is preferrable to return NULL and exit the function
before the key event is allocated, which fixes the crash in the same
time.
@fix
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
To avoid flickering, we have to manage WM_ERASEBKGND. This message
is sent because CS_HREDRAW and CS_VREDRAW are used when registering
the window class. So just omit CS_HREDRAW and CS_VREDRAW.