Ecore_Evas (win32): add override_set() support

SVN revision: 70366
This commit is contained in:
Vincent Torri 2012-04-20 14:53:06 +00:00
parent a2dfe1c162
commit 2fba71c5be
3 changed files with 34 additions and 9 deletions

View File

@ -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.

View File

@ -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

View File

@ -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))
@ -861,6 +864,24 @@ _ecore_evas_win32_borderless_set(Ecore_Evas *ee, int on)
#endif /* BUILD_ECORE_EVAS_SOFTWARE_GDI */
}
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)
{
@ -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 */