From 77e26d9daa6c28cf3ed7df7fae4e2bfed64b6565 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Thu, 17 Jul 2008 14:01:36 +0000 Subject: [PATCH] add a way to force e to not remember a window of its own . SVN revision: 35139 --- src/bin/e_border.c | 4 +++- src/bin/e_border.h | 1 + src/bin/e_win.c | 9 +++++++++ src/bin/e_win.h | 2 ++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index f68cf3cc7..548fbd316 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -6232,7 +6232,9 @@ _e_border_eval(E_Border *bd) bd->placed = 1; } - if ((bd->internal) && (!bd->remember) && (e_config->remember_internal_windows)) + if ((bd->internal) && (!bd->remember) && + (e_config->remember_internal_windows) && + (!bd->internal_no_remember)) { E_Remember *rem; diff --git a/src/bin/e_border.h b/src/bin/e_border.h index b2e7d7dda..936dc7e76 100644 --- a/src/bin/e_border.h +++ b/src/bin/e_border.h @@ -418,6 +418,7 @@ struct _E_Border unsigned int lock_life : 1; /*DONE*/ unsigned int internal : 1; + unsigned int internal_no_remember : 1; unsigned int stolen : 1; Ecore_Evas *internal_ecore_evas; diff --git a/src/bin/e_win.c b/src/bin/e_win.c index bdbbab815..1522968fb 100644 --- a/src/bin/e_win.c +++ b/src/bin/e_win.c @@ -94,6 +94,7 @@ e_win_show(E_Win *win) win->border->re_manage = 0; win->border->internal = 1; win->border->internal_ecore_evas = win->ecore_evas; + if (win->state.no_remember) win->border->internal_no_remember = 1; } _e_win_prop_update(win); e_border_show(win->border); @@ -350,6 +351,14 @@ e_win_dialog_set(E_Win *win, int dialog) } } +EAPI void +e_win_no_remember_set(E_Win *win, int no_remember) +{ + E_OBJECT_CHECK(win); + E_OBJECT_TYPE_CHECK(win, E_WIN_TYPE); + win->state.no_remember = no_remember; +} + EAPI E_Win * e_win_evas_object_win_get(Evas_Object *obj) { diff --git a/src/bin/e_win.h b/src/bin/e_win.h index 522c14abc..ae1e204a3 100644 --- a/src/bin/e_win.h +++ b/src/bin/e_win.h @@ -34,6 +34,7 @@ struct _E_Win struct { unsigned char centered : 1; unsigned char dialog : 1; + unsigned char no_remember : 1; } state; E_Pointer *pointer; @@ -69,6 +70,7 @@ EAPI void e_win_border_icon_set (E_Win *win, const char *icon); EAPI void e_win_border_icon_key_set(E_Win *win, const char *key); EAPI void e_win_centered_set (E_Win *win, int centered); EAPI void e_win_dialog_set (E_Win *win, int dialog); +EAPI void e_win_no_remember_set (E_Win *win, int no_remember); EAPI E_Win *e_win_evas_object_win_get(Evas_Object *obj);