antognolli pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=e1ebba54bd57819dd1c50347f0a2e5d562505d1a
commit e1ebba54bd57819dd1c50347f0a2e5d562505d1a Author: Rafael Antognolli <rafael.antogno...@intel.com> Date: Tue Oct 29 08:42:41 2013 -0200 elm/win: Put framespace set code in a common place. A little refactory that hopefully will prevent future mistakes when changing this code. --- src/lib/elm_win.c | 45 +++++++++++++++++---------------------------- 1 file changed, 17 insertions(+), 28 deletions(-) diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index 5bfc452..fa41545 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -2199,25 +2199,18 @@ static struct _resize_info _border_corner[4] = #endif static void -_elm_win_frame_obj_move(void *data, - Evas *e __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) +_elm_win_frame_obj_update(Elm_Win_Smart_Data *sd) { - Elm_Win_Smart_Data *sd; int fx, fy, fw, fh; int ox, oy, ow, oh; int sx, sy, sw, sh; int x, y, w, h; - - if (!(sd = data)) return; - if (!sd->client_obj) return; - evas_object_geometry_get(sd->frame_obj, &fx, &fy, &fw, &fh); evas_object_geometry_get(sd->client_obj, &ox, &oy, &ow, &oh); evas_object_geometry_get(sd->spacer_obj, &sx, &sy, &sw, &sh); evas_output_framespace_get(sd->evas, &x, &y, &w, &h); + if ((x != (ox - fx)) || (y != (oy - fy)) || (w != (fw - ow)) || (h != (fh - oh))) { @@ -2231,35 +2224,31 @@ _elm_win_frame_obj_move(void *data, } static void +_elm_win_frame_obj_move(void *data, + Evas *e __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) +{ + Elm_Win_Smart_Data *sd; + + if (!(sd = data)) return; + if (!sd->client_obj) return; + + _elm_win_frame_obj_update(sd); +} + +static void _elm_win_frame_obj_resize(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Elm_Win_Smart_Data *sd; - int fx, fy, fw, fh; - int ox, oy, ow, oh; - int sx, sy, sw, sh; - int x, y, w, h; if (!(sd = data)) return; if (!sd->client_obj) return; - evas_object_geometry_get(sd->frame_obj, &fx, &fy, &fw, &fh); - evas_object_geometry_get(sd->client_obj, &ox, &oy, &ow, &oh); - evas_object_geometry_get(sd->spacer_obj, &sx, &sy, &sw, &sh); - - evas_output_framespace_get(sd->evas, &x, &y, &w, &h); - if ((x != (ox - fx)) || (y != (oy - fy)) || - (w != (fw - ow)) || (h != (fh - oh))) - { - evas_output_framespace_set(sd->evas, (ox - fx), (oy - fy), - (fw - ow), (fh - oh)); - } - -#ifdef HAVE_ELEMENTARY_WAYLAND - ecore_wl_window_opaque_region_set(sd->wl.win, -fx, -(fy - sy), sw, sh); -#endif + _elm_win_frame_obj_update(sd); } static void --