diff options
author | Vincent Torri <vincent.torri@gmail.com> | 2018-01-14 22:33:10 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2018-01-14 22:33:34 +0900 |
commit | 487f2a5f81c4c05cc5cd30f7c3630f772623d0f8 (patch) | |
tree | dbc3de65ddcbc639a26613b654d07f97df0af19d | |
parent | 0179d34f0fe1ca879906c24d56ad717f23587431 (diff) | |
download | efl-487f2a5f81c4c05cc5cd30f7c3630f772623d0f8.tar.gz |
Ecore_Win32: move monitor window initialization to earlier in init func
Summary: This monitor window is just used to receive events when mutiple
monitors are available. it should not be managed by the ecore loop
(creation and destruction events), so initting it earlier means
ecore_win32 attaches less memory/overhead to it as it's just being
used for notifications for devices.
Test Plan: DrMemory to check used memory
Reviewers: cedric
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D5736
-rw-r--r-- | src/lib/ecore_win32/ecore_win32.c | 8 | ||||
-rw-r--r-- | src/lib/ecore_win32/ecore_win32_event.c | 6 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/lib/ecore_win32/ecore_win32.c b/src/lib/ecore_win32/ecore_win32.c index ec9738ee1b..3801015b8f 100644 --- a/src/lib/ecore_win32/ecore_win32.c +++ b/src/lib/ecore_win32/ecore_win32.c @@ -527,6 +527,8 @@ ecore_win32_init() goto shutdown_ecore_event; } + ecore_win32_monitor_init(); + icon = LoadImage(_ecore_win32_instance, MAKEINTRESOURCE(IDI_ICON), IMAGE_ICON, @@ -589,8 +591,6 @@ ecore_win32_init() for (i = 0; i < 77; i++) _ecore_win32_cursor_x[i] = _ecore_win32_cursor_x11_shaped_new(i); - ecore_win32_monitor_init(); - return _ecore_win32_init_count; unregister_class: @@ -625,8 +625,6 @@ ecore_win32_shutdown() if (--_ecore_win32_init_count != 0) return _ecore_win32_init_count; - ecore_win32_monitor_shutdown(); - for (i = 0; i < 77; i++) ecore_win32_cursor_free(_ecore_win32_cursor_x[i]); @@ -651,6 +649,8 @@ ecore_win32_shutdown() if (!UnregisterClass(ECORE_WIN32_WINDOW_CLASS, _ecore_win32_instance)) INF("UnregisterClass() failed"); + ecore_win32_monitor_shutdown(); + if (!FreeLibrary(_ecore_win32_instance)) INF("FreeLibrary() failed"); diff --git a/src/lib/ecore_win32/ecore_win32_event.c b/src/lib/ecore_win32/ecore_win32_event.c index a22fbed992..e6ab091945 100644 --- a/src/lib/ecore_win32/ecore_win32_event.c +++ b/src/lib/ecore_win32/ecore_win32_event.c @@ -1776,6 +1776,9 @@ _ecore_win32_event_handle_create_notify(Ecore_Win32_Callback_Data *msg) { Ecore_Win32_Event_Window_Create *e; + if (msg->window == ecore_win32_monitor_window) + return; + INF("window create notify"); e = calloc(1, sizeof(Ecore_Win32_Event_Window_Create)); @@ -1793,6 +1796,9 @@ _ecore_win32_event_handle_destroy_notify(Ecore_Win32_Callback_Data *msg) { Ecore_Win32_Event_Window_Destroy *e; + if (msg->window == ecore_win32_monitor_window) + return; + INF("window destroy notify"); e = calloc(1, sizeof(Ecore_Win32_Event_Window_Destroy)); |