Enlightenment CVS committal Author : handyande Project : misc Module : engage
Dir : misc/engage/src Modified Files: dock.c window.c Log Message: tidy of previous composite patches from Hannes =================================================================== RCS file: /cvs/e/misc/engage/src/dock.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- dock.c 9 Aug 2006 21:38:13 -0000 1.21 +++ dock.c 18 Aug 2006 11:47:05 -0000 1.22 @@ -34,7 +34,7 @@ for (i = 0; i < 5; i++) { dock.background[i] = evas_object_image_add(evas); - if (options.mode == OM_ONTOP) + if (options.use_composite || options.mode == OM_ONTOP) evas_object_image_alpha_set(dock.background[i], 0); else evas_object_image_alpha_set(dock.background[i], 1); @@ -123,17 +123,11 @@ void od_dock_redraw(Ecore_Evas * ee) { - - - double time = ecore_time_get(); + double time = ecore_time_get(); - if(time - lasttime < 0.04) - { - // need_redraw = false; // ???? - return; - } - - lasttime = time; + if(time - lasttime < 0.04) return; + + lasttime = time; Evas_List *item = dock.icons; =================================================================== RCS file: /cvs/e/misc/engage/src/window.c,v retrieving revision 1.33 retrieving revision 1.34 diff -u -3 -r1.33 -r1.34 --- window.c 10 Aug 2006 16:34:44 -0000 1.33 +++ window.c 18 Aug 2006 11:47:05 -0000 1.34 @@ -21,6 +21,7 @@ int od_hidden; static Ecore_Timer *mouse_focus_timer = NULL; int fullheight; +int input_shape_full_area = 1; static void handle_pre_render_cb(Ecore_Evas * _ee); static void handle_post_render_cb(Ecore_Evas * _ee); @@ -34,14 +35,14 @@ static void handle_menu_draw(void *data, Evas * e, Evas_Object * obj, void *event); static void od_window_set_hidden(int hidden); -static void window_input_shape_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h); - +static void od_window_input_shape_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h); +static void od_window_input_shape_set_extents(); static void -window_input_shape_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h) +od_window_input_shape_rectangle_set(Ecore_X_Window win, int x, int y, int w, int h) { #ifdef ShapeInput - XRectangle rect; + XRectangle rect; rect.x = x; rect.y = y; @@ -51,6 +52,21 @@ #endif } +static void +od_window_input_shape_set_extents() +{ +#ifdef ShapeInput + Ecore_X_Window win = ecore_evas_software_x11_window_get(ee); + od_window_input_shape_rectangle_set(win, + (int)dock.left_pos, + options.height-options.size, + (int)dock.right_pos - (int)dock.left_pos, + options.size); + + input_shape_full_area = 0; +#endif +} + int od_window_hide_timer_cb(void *data) @@ -107,7 +123,8 @@ if(options.use_composite) { Ecore_X_Window win = ecore_evas_software_x11_window_get(_ee); - window_input_shape_rectangle_set(win,0,0,options.width,options.height); + od_window_input_shape_rectangle_set(win,0,0,options.width,options.height); + input_shape_full_area = 1; } #endif @@ -123,14 +140,6 @@ { if (_ee != ee) return; - -#ifdef ShapeInput - if(options.use_composite) // it should be enough to do this at zoom out, but so it looks less cluttered - { - Ecore_X_Window win = ecore_evas_software_x11_window_get(_ee); - window_input_shape_rectangle_set(win,0,options.height-options.size,options.width,options.size); - } -#endif if (mouse_focus_timer) ecore_timer_del(mouse_focus_timer); @@ -243,25 +252,25 @@ ecore_evas_title_set(ee, "Engage"); ecore_evas_name_class_set(ee, "engage", "engage"); - +#ifdef ShapeInput if(options.use_composite) { -#ifdef ShapeInput ecore_evas_alpha_set(ee, 1); Ecore_X_Window win = ecore_evas_software_x11_window_get(ee); - ecore_x_window_override_set(win,1); - window_input_shape_rectangle_set(win,0,options.height-options.size,options.width,options.size); -#endif + ecore_x_window_override_set(win,1); } else +#endif ecore_evas_borderless_set(ee, 1); - - - - if (options.mode == OM_ONTOP) + + if(options.use_composite) { ecore_evas_avoid_damage_set(ee, 1); - if(!options.use_composite) ecore_evas_shaped_set(ee, 1); + } + else if (options.mode == OM_ONTOP) + { + ecore_evas_avoid_damage_set(ee, 1); + ecore_evas_shaped_set(ee, 1); } else ecore_evas_shaped_set(ee, 0); @@ -293,7 +302,7 @@ // printf("move %d %d\n", (int) ((res_x - options.width) / 2.0 + x), -// (int) (res_y - options.height + y); +// (int) (res_y - options.height + y); ecore_x_window_move(od_window, (int) ((res_x - options.width) / 2.0 + x), @@ -343,7 +352,7 @@ #endif } - if (options.mode == OM_ONTOP) + if (options.use_composite || options.mode == OM_ONTOP) ecore_evas_layer_set(ee, 7); else ecore_evas_layer_set(ee, 2); @@ -354,7 +363,7 @@ ecore_evas_callback_move_set(ee, od_window_move); ecore_evas_callback_resize_set(ee, od_window_resize); - if (options.mode == OM_BELOW) { + if (options.mode == OM_BELOW && !options.use_composite) { #ifdef HAVE_TRANS_BG o = esmart_trans_x11_new(evas); evas_object_layer_set(o, 0); @@ -452,16 +461,12 @@ od_dock_zoom_in(); need_redraw = true; } else if (dock.state == zoomed || dock.state == zooming) - { od_dock_zoom_out(); #ifdef ShapeInput - if(options.use_composite) - { - Ecore_X_Window win = ecore_evas_software_x11_window_get(ee); - window_input_shape_rectangle_set(win, 0, options.height-options.size, options.width, options.size); - } + if(options.use_composite && input_shape_full_area && + (dock.state == unzoomed || dock.state == unzooming)) + od_window_input_shape_set_extents(); #endif - } } static void @@ -470,8 +475,6 @@ Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *) event; #ifdef HAVE_EWL -/* this doesnt work with the override window or composite, dont know, have to look at it... */ -if(!options.use_composite) if (ev->button == 3) od_config_menu_draw(ev->canvas.x, ev->canvas.y); #endif ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs