From 927eeda2d591dea1365514f4a6e4ab60c7cf2104 Mon Sep 17 00:00:00 2001 From: caro Date: Fri, 20 Apr 2012 14:53:06 +0000 Subject: [PATCH] Ecore_Evas (win32): add override_set() support git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@70366 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- ChangeLog | 4 ++++ NEWS | 1 + src/lib/ecore_evas/ecore_evas_win32.c | 38 ++++++++++++++++++++++++++--------- 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3279eb5..a442b88 100644 --- a/ChangeLog +++ b/ChangeLog @@ -620,3 +620,7 @@ 2012-04-16 Shinwoo Kim * Check control charater and convert into printing character on Windows + +2012-04-20 Vincent Torri + + * Add override_set() support in ecore_evas_win32. diff --git a/NEWS b/NEWS index e0071a8..7896e82 100644 --- a/NEWS +++ b/NEWS @@ -50,6 +50,7 @@ Additions: - Add Shm and Egl engines for ecore_evas to draw in Wayland. - Add Socket and Plug to draw other process area. - Ability to set pointer for wayland support + - Add override_set support on Windows XP * ecore_wayland - Add Ecore_Wayland (backend to support Wayland). * ecore_imf diff --git a/src/lib/ecore_evas/ecore_evas_win32.c b/src/lib/ecore_evas/ecore_evas_win32.c index 32132b3..86eb9dc 100644 --- a/src/lib/ecore_evas/ecore_evas_win32.c +++ b/src/lib/ecore_evas/ecore_evas_win32.c @@ -333,14 +333,17 @@ _ecore_evas_win32_event_window_configure(void *data __UNUSED__, int type __UNUSE if (!ee) return 1; /* pass on event */ if ((Ecore_Window)e->window != ee->prop.window) return 1; - if ((ee->x != e->x) || (ee->y != e->y)) + if (ee->prop.override) { - ee->x = e->x; - ee->y = e->y; - ee->req.x = ee->x; - ee->req.y = ee->y; + if ((ee->x != e->x) || (ee->y != e->y)) + { + ee->x = e->x; + ee->y = e->y; + ee->req.x = ee->x; + ee->req.y = ee->y; - if (ee->func.fn_move) ee->func.fn_move(ee); + if (ee->func.fn_move) ee->func.fn_move(ee); + } } if ((ee->w != e->width) || (ee->h != e->height)) @@ -862,6 +865,24 @@ _ecore_evas_win32_borderless_set(Ecore_Evas *ee, int on) } static void +_ecore_evas_win32_override_set(Ecore_Evas *ee, int on) +{ + struct _Ecore_Win32_Window *window; + + INF("ecore evas override set"); + + window = (struct _Ecore_Win32_Window *)ee->prop.window; + + if (ee->prop.override == on) return; + if (ee->should_be_visible) ecore_win32_window_hide(window); + /* FIXME: use borderless_set for now */ + ecore_win32_window_borderless_set(window, on); + if (ee->should_be_visible) ecore_win32_window_show(window); + if (ee->prop.focused) ecore_win32_window_focus(window); + ee->prop.override = on; +} + +static void _ecore_evas_win32_fullscreen_set(Ecore_Evas *ee, int on) { struct _Ecore_Win32_Window *window; @@ -879,8 +900,7 @@ _ecore_evas_win32_fullscreen_set(Ecore_Evas *ee, int on) if (on != 0) { - ecore_win32_window_fullscreen_set((struct _Ecore_Win32_Window *)ee->prop.window, - on); + ecore_win32_window_fullscreen_set(window, on); } else { @@ -966,7 +986,7 @@ static Ecore_Evas_Engine_Func _ecore_win32_engine_func = _ecore_evas_win32_focus_set, _ecore_evas_win32_iconified_set, _ecore_evas_win32_borderless_set, - NULL, /* _ecore_evas_x_override_set */ + _ecore_evas_win32_override_set, NULL, _ecore_evas_win32_fullscreen_set, NULL, /* _ecore_evas_x_avoid_damage_set */ -- 2.7.4