first step in removing container win (compositor can replace it al

with its own objects directly and expose comp canvas to gadgets/fm and
so on just like container canvas does now. a lot of e's code can be
simplified if we went totally compositing... worry about that for e18,
but for now put in hooks).



SVN revision: 58112
This commit is contained in:
Carsten Haitzler 2011-03-27 02:24:19 +00:00
parent cd9583cd4d
commit e1070cc338
3 changed files with 20 additions and 4 deletions

View File

@ -891,6 +891,8 @@ e_config_init(void)
E_CONFIG_VAL(D, T, exec.show_run_dialog, UCHAR);
E_CONFIG_VAL(D, T, exec.show_exit_dialog, UCHAR);
E_CONFIG_VAL(D, T, null_container_win, UCHAR);
e_config_load();
e_config_save_queue();
@ -1298,6 +1300,8 @@ e_config_load(void)
E_CONFIG_LIMIT(e_config->exec.show_run_dialog, 0, 1);
E_CONFIG_LIMIT(e_config->exec.show_exit_dialog, 0, 1);
E_CONFIG_LIMIT(e_config->null_container_win, 0, 1);
/* FIXME: disabled auto apply because it causes problems */
e_config->cfgdlg_auto_apply = 0;
/* FIXME: desklock personalized password id disabled for security reasons */

View File

@ -338,6 +338,8 @@ struct _E_Config
Eina_Bool show_run_dialog;
Eina_Bool show_exit_dialog;
} exec;
unsigned char null_container_win;
};
struct _E_Config_Syscon_Action

View File

@ -83,7 +83,7 @@ e_container_new(E_Manager *man)
0, 0, con->w, con->h, 1, 1,
&(con->bg_win));
e_canvas_add(con->bg_ecore_evas);
con->event_win = ecore_x_window_input_new(con->bg_win, 0, 0, con->w, con->h);
con->event_win = ecore_x_window_input_new(con->win, 0, 0, con->w, con->h);
ecore_x_window_show(con->event_win);
con->bg_evas = ecore_evas_get(con->bg_ecore_evas);
ecore_evas_name_class_set(con->bg_ecore_evas, "E", "Background_Window");
@ -189,12 +189,18 @@ e_container_show(E_Container *con)
E_OBJECT_TYPE_CHECK(con, E_CONTAINER_TYPE);
if (con->visible) return;
ecore_evas_show(con->bg_ecore_evas);
if (!e_config->null_container_win)
ecore_evas_show(con->bg_ecore_evas);
ecore_x_window_configure(con->bg_win,
ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING |
ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
0, 0, 0, 0, 0,
con->layers[0].win, ECORE_X_WINDOW_STACK_BELOW);
ecore_x_window_configure(con->event_win,
ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING |
ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
0, 0, 0, 0, 0,
con->layers[0].win, ECORE_X_WINDOW_STACK_BELOW);
if (con->win != con->manager->win)
ecore_x_window_show(con->win);
ecore_x_icccm_state_set(con->bg_win, ECORE_X_WINDOW_STATE_HINT_NORMAL);
@ -272,7 +278,9 @@ e_container_resize(E_Container *con, int w, int h)
con->h = h;
if (con->win != con->manager->win)
ecore_x_window_resize(con->win, con->w, con->h);
ecore_evas_resize(con->bg_ecore_evas, con->w, con->h);
ecore_x_window_resize(con->event_win, con->w, con->h);
if (!e_config->null_container_win)
ecore_evas_resize(con->bg_ecore_evas, con->w, con->h);
evas_object_resize(con->bg_blank_object, con->w, con->h);
_e_container_resize_handle(con);
}
@ -289,7 +297,9 @@ e_container_move_resize(E_Container *con, int x, int y, int w, int h)
con->h = h;
if (con->win != con->manager->win)
ecore_x_window_move_resize(con->win, con->x, con->y, con->w, con->h);
ecore_evas_resize(con->bg_ecore_evas, con->w, con->h);
ecore_x_window_move_resize(con->event_win, con->x, con->y, con->w, con->h);
if (!e_config->null_container_win)
ecore_evas_resize(con->bg_ecore_evas, con->w, con->h);
evas_object_move(con->bg_blank_object, con->x, con->y);
evas_object_resize(con->bg_blank_object, con->w, con->h);
_e_container_resize_handle(con);