From cfca0a18096108faa69e2a9741622ca29bbc2368 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Thu, 3 Nov 2005 11:34:55 +0000 Subject: [PATCH] use managed calls SVN revision: 18243 --- src/bin/e_border.c | 36 ++++++++++++++++++++++++++++++++++++ src/bin/e_scrollframe.c | 15 ++++++++++++++- src/bin/e_test.c | 8 ++++++-- 3 files changed, 56 insertions(+), 3 deletions(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 935c0f66da..c339683098 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -632,6 +632,10 @@ e_border_move(E_Border *bd, int x, int y) ecore_x_netwm_sync_request_send(bd->client.win, bd->client.netwm.sync.serial++); } #endif + if (bd->internal_ecore_evas) + ecore_evas_managed_move(bd->internal_ecore_evas, + bd->x + bd->client_inset.l, + bd->y + bd->client_inset.t); ecore_x_icccm_move_resize_send(bd->client.win, bd->x + bd->client_inset.l, bd->y + bd->client_inset.t, @@ -686,6 +690,10 @@ e_border_resize(E_Border *bd, int w, int h) bd->client.netwm.sync.wait++; ecore_x_netwm_sync_request_send(bd->client.win, bd->client.netwm.sync.serial++); } + if (bd->internal_ecore_evas) + ecore_evas_managed_move(bd->internal_ecore_evas, + bd->x + bd->client_inset.l, + bd->y + bd->client_inset.t); ecore_x_icccm_move_resize_send(bd->client.win, bd->x + bd->client_inset.l, bd->y + bd->client_inset.t, @@ -744,6 +752,10 @@ e_border_move_resize(E_Border *bd, int x, int y, int w, int h) bd->client.netwm.sync.wait++; ecore_x_netwm_sync_request_send(bd->client.win, bd->client.netwm.sync.serial++); } + if (bd->internal_ecore_evas) + ecore_evas_managed_move(bd->internal_ecore_evas, + bd->x + bd->client_inset.l, + bd->y + bd->client_inset.t); ecore_x_icccm_move_resize_send(bd->client.win, bd->x + bd->client_inset.l, bd->y + bd->client_inset.t, @@ -2294,6 +2306,10 @@ e_border_frame_recalc(E_Border *bd) bd->need_shape_merge = 1; bd->need_shape_export = 1; } + if (bd->internal_ecore_evas) + ecore_evas_managed_move(bd->internal_ecore_evas, + bd->x + bd->client_inset.l, + bd->y + bd->client_inset.t); ecore_x_icccm_move_resize_send(bd->client.win, bd->x + bd->client_inset.l, bd->y + bd->client_inset.t, @@ -5011,6 +5027,10 @@ _e_border_eval(E_Border *bd) bd->placed = 1; } + if (bd->internal_ecore_evas) + ecore_evas_managed_move(bd->internal_ecore_evas, + bd->x + bd->client_inset.l, + bd->y + bd->client_inset.t); ecore_x_icccm_move_resize_send(bd->client.win, bd->x + bd->client_inset.l, bd->y + bd->client_inset.t, @@ -5090,6 +5110,10 @@ _e_border_eval(E_Border *bd) if ((bd->changes.pos) && (bd->changes.size)) { + if (bd->internal_ecore_evas) + ecore_evas_managed_move(bd->internal_ecore_evas, + bd->x + bd->client_inset.l, + bd->y + bd->client_inset.t); // printf("##- BORDER NEEDS POS/SIZE CHANGE 0x%x\n", bd->client.win); if ((bd->shaded) && (!bd->shading)) { @@ -5175,12 +5199,20 @@ _e_border_eval(E_Border *bd) } else if (bd->changes.pos) { + if (bd->internal_ecore_evas) + ecore_evas_managed_move(bd->internal_ecore_evas, + bd->x + bd->client_inset.l, + bd->y + bd->client_inset.t); ecore_x_window_move(bd->win, bd->x, bd->y); e_container_shape_move(bd->shape, bd->x, bd->y); bd->changes.pos = 0; } else if (bd->changes.size) { + if (bd->internal_ecore_evas) + ecore_evas_managed_move(bd->internal_ecore_evas, + bd->x + bd->client_inset.l, + bd->y + bd->client_inset.t); // printf("##- BORDER NEEDS SIZE CHANGE 0x%x\n", bd->client.win); if (bd->shaded && !bd->shading) { @@ -5411,6 +5443,10 @@ _e_border_eval(E_Border *bd) bd->y = y - (bd->client_inset.t >> 1); bd->changed = 1; bd->changes.pos = 1; + if (bd->internal_ecore_evas) + ecore_evas_managed_move(bd->internal_ecore_evas, + bd->x + bd->client_inset.l, + bd->y + bd->client_inset.t); ecore_x_icccm_move_resize_send(bd->client.win, bd->x + bd->client_inset.l, bd->y + bd->client_inset.t, diff --git a/src/bin/e_scrollframe.c b/src/bin/e_scrollframe.c index d52d79f470..e0b1e290c4 100644 --- a/src/bin/e_scrollframe.c +++ b/src/bin/e_scrollframe.c @@ -196,8 +196,21 @@ e_scrollframe_child_pos_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y) void e_scrollframe_child_region_show(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) { + Evas_Coord mx = 0, my = 0, cw = 0, ch = 0, px = 0, py = 0, nx, ny; + API_ENTRY return; - /* FIXME: do this code */ + sd->pan_func.max_get(sd->pan_obj, &mx, &my); + sd->pan_func.child_size_get(sd->pan_obj, &cw, &ch); + sd->pan_func.get(sd->pan_obj, &px, &py); + + nx = px; + if (x < px) nx = x; + else if ((x + w) > (px + (cw - mx))) nx = x + w - (cw - mx); + ny = py; + if (y < py) ny = y; + else if ((y + h) > (py + (ch - my))) ny = y + h - (ch - my); + if ((nx == px) && (ny == py)) return; + e_scrollframe_child_pos_set(obj, nx, ny); } void diff --git a/src/bin/e_test.c b/src/bin/e_test.c index 3b301d5d4c..7c5e48997c 100644 --- a/src/bin/e_test.c +++ b/src/bin/e_test.c @@ -311,10 +311,14 @@ _e_test_internal(E_Container *con) static void _e_test_click(void *data, Evas *e, Evas_Object *obj, void *event_info) { +#if 1 double size; size = (double)(rand() % 1000) / 999; evas_object_resize(obj, size * 1024, size * 768); +#else + e_scrollframe_child_region_show(data, 1024, 768, 100, 100); +#endif } static void @@ -327,13 +331,13 @@ _e_test_internal(E_Container *con) e_dialog_title_set(dia, "A Test Dialog"); o = e_icon_add(dia->win->evas); -// e_icon_file_set(o, "/home/raster/t.png"); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_test_click, NULL); + e_icon_file_set(o, "/home/raster/t.png"); evas_object_resize(o, 1024, 768); evas_object_focus_set(o, 1); evas_object_show(o); o2 = e_scrollframe_add(dia->win->evas); + evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_test_click, o2); // e_scrollframe_custom_theme_set(o2, "base/theme/widgets", "widgets/scrollframe"); evas_object_resize(o2, 200, 300); evas_object_show(o2); -- 2.34.1