From: Enlightenment C. <no...@cv...> - 2006-10-20 05:52:04
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/engines/evas_buffer Modified Files: ewl_engine_evas_buffer.c Log Message: Shuffle around the buffer setup code in the buffer engine. Override the render call so we can notify widgets in a different evas of a buffer repaint. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/engines/evas_buffer/ewl_engine_evas_buffer.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- ewl_engine_evas_buffer.c 17 Oct 2006 05:00:00 -0000 1.4 +++ ewl_engine_evas_buffer.c 20 Oct 2006 05:51:59 -0000 1.5 @@ -8,6 +8,7 @@ static void ee_canvas_setup(Ewl_Window *win, int debug); static void ee_canvas_output_set(Ewl_Embed *embed, int x, int y, int width, int height); +static void ee_canvas_render(Ewl_Embed *emb); static int ee_init(Ewl_Engine *engine); static void ee_shutdown(Ewl_Engine *engine); @@ -15,7 +16,7 @@ { ee_canvas_setup, ee_canvas_output_set, - NULL, NULL, NULL + ee_canvas_render, NULL, NULL }; Ecore_DList * @@ -141,6 +142,10 @@ evas = emb->evas; + evas_output_size_set(evas, width, height); + evas_output_viewport_set(evas, x, y, width, height); + evas_damage_rectangle_add(evas, 0, 0, width, height); + info = evas_engine_info_get(evas); if (!info) { @@ -154,10 +159,24 @@ bufinfo->info.dest_buffer = realloc(bufinfo->info.dest_buffer, bufinfo->info.dest_buffer_row_bytes * height); - emb->evas_window = bufinfo->info.dest_buffer; evas_engine_info_set(evas, info); - evas_output_size_set(evas, width, height); - evas_output_viewport_set(evas, x, y, width, height); + + emb->evas_window = bufinfo->info.dest_buffer; DLEAVE_FUNCTION(DLEVEL_STABLE); } + +static void +ee_canvas_render(Ewl_Embed *embed) +{ + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR("embed", embed); + + if (embed->evas) + evas_render(embed->evas); + + ewl_callback_call(EWL_WIDGET(embed), EWL_CALLBACK_VALUE_CHANGED); + + DRETURN(DLEVEL_STABLE); +} + |