summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Torri <vincent.torri@gmail.com>2018-01-14 22:33:10 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2018-01-14 22:33:34 +0900
commit487f2a5f81c4c05cc5cd30f7c3630f772623d0f8 (patch)
treedbc3de65ddcbc639a26613b654d07f97df0af19d
parent0179d34f0fe1ca879906c24d56ad717f23587431 (diff)
downloadefl-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.c8
-rw-r--r--src/lib/ecore_win32/ecore_win32_event.c6
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));