From eced417086f861c3541c13ebd21357915077b908 Mon Sep 17 00:00:00 2001 From: handyande Date: Mon, 10 Jan 2005 18:59:05 +0000 Subject: [PATCH] Pager updates - a few patches, leak fixes - reset click detection for desk selection - should be better behaved now - added a small bit of themeing SVN revision: 12868 --- data/themes/images/e17_pager_desk.png | Bin 188 -> 202 bytes data/themes/images/e17_pager_screen.png | Bin 255 -> 275 bytes data/themes/images/e17_pager_window.png | Bin 190 -> 244 bytes src/modules/pager/e_mod_main.c | 30 ++++++++++++++---------- src/modules/pager/e_mod_main.h | 3 +++ 5 files changed, 21 insertions(+), 12 deletions(-) diff --git a/data/themes/images/e17_pager_desk.png b/data/themes/images/e17_pager_desk.png index ae9246d002126b829920a7f4ac30f5e355815966..51e856b9dfb3011cd6128307409bc68988800e46 100644 GIT binary patch delta 87 zcmdnPc#3gC5C@l#4#$^GRaq0GbX@d3T^vI+&L^iNBxocm2yZX|f;|-6y8V3@Glvb|F%+TFB2OYX=l cNzId?3=PGMr|y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2h{-z5-Tog{%KH=S}cEfNkl#9b3P*KlIBGK8!+>}S^;=~&X^^a8pg2!5P%P$R;o^clXGiWAVV_(`v=x)rRuPt zx`ln>@FlM(s2?tbZDRhC%h;Sl6q{q%sb`7XpTBAc$i5}xsTmGc!2kdN07*qoM6N<$ Ef`s}`r~m)} delta 181 zcmbQt^q+BprXd3e{B+)352QE?JR*x37`TN&n2}-D90{Nxdx@v7EBjSOPC*OSEpZ1- zCr0U1rg*wIhG?8mPDx1kao#~Kq4Co7lNVNVUOtnMm{&JFB39jRUWnVanTUhF34ax)p9`KGI-ryo1BWlK)OY diff --git a/data/themes/images/e17_pager_window.png b/data/themes/images/e17_pager_window.png index dc6824dbd24dffab0b6b081b57143d8ab1a5719f..12d8c42103d1e1b2b3a10083650e42a846e518f7 100644 GIT binary patch delta 129 zcmdnT_=Ryo5C@l#tOjRetiZ%5oxDg-7sn8d^T{a*2`ds5gf|!f!Jq&2QyPKb;pK@- zEkyI~)%PD%&1GbM{#K0*1nO>Q^7t5dI!SG0bnBY?_t8=ANv2*N9tv}O`6RB|7@2H7 d5X5cCz|gc>gssrz`5p!!@O1TaS?83{1OORFF2Dc) delta 75 zcmeyuxQ}r{5C^B2h!m^FhSw9LbS#uTT^vI+&L^iNBconf); E_CONFIG_DD_FREE(e->conf_edd); + evas_object_hide(e->base); evas_object_free(e->base); + evas_object_hide(e->screen); evas_object_free(e->screen); while(e->desks) @@ -208,7 +210,6 @@ _pager_config_menu_new(Pager *e) mi = e_menu_item_new(mn); e_menu_item_label_set(mi, "(Unused)"); -/* e_menu_item_callback_set(mi, _pager_cb_scale, e);*/ e->config_menu = mn; return mn; @@ -243,7 +244,7 @@ _pager_refresh(Pager *e) Evas_List *clients; Evas_Object *desk_obj, *win_obj; - int desks_x, desks_y, x, y; + int desks_x, desks_y, x, y, top, toptmp; Evas_Coord px, py, pw, ph, ww, hh; double scalex, scaley; @@ -280,8 +281,6 @@ _pager_refresh(Pager *e) desk = e_desk_at_xy_get(zone, x, y); px = e->fx + (x * pw); py = e->fy + (y * ph); - if (desk == current) - evas_object_move(e->screen, px, py); desk_obj = edje_object_add(e->evas); edje_object_file_set(desk_obj, /* FIXME: "default.eet" needs to come from conf */ @@ -292,6 +291,7 @@ _pager_refresh(Pager *e) evas_object_move(desk_obj, px, py); evas_object_show(desk_obj); + top = evas_object_layer_get(desk_obj); e->desks = evas_list_append(e->desks, desk_obj); clients = desk->clients; @@ -314,10 +314,18 @@ _pager_refresh(Pager *e) evas_object_move(win_obj, px + winx, py + winy); evas_object_show(win_obj); + toptmp = evas_object_layer_get(win_obj); + if (toptmp > top) + top = toptmp; e->wins = evas_list_append(e->wins, win_obj); clients = clients->next; } + if (desk == current) + { + evas_object_move(e->screen, px, py); + evas_object_layer_set(e->screen, top + 1); + } } } @@ -345,6 +353,8 @@ _pager_cb_down(void *data, Evas *e, Evas_Object *obj, void *event_info) p->move = 1; } evas_pointer_canvas_xy_get(p->evas, &p->xx, &p->yy); + p->clickhackx = p->xx; + p->clickhacky = p->yy; } static void @@ -352,18 +362,14 @@ _pager_cb_up(void *data, Evas *e, Evas_Object *obj, void *event_info) { Evas_Event_Mouse_Up *ev; Pager *p; - Evas_Coord ww, hh; - double newx, newy; + Evas_Coord xx, yy, ww, hh; ev = event_info; p = data; evas_output_viewport_get(p->evas, NULL, NULL, &ww, &hh); /* if we clicked, not moved - FIXME, this is a hack */ - newx = (double)p->fx / (double)(ww - p->fw); - newy = (double)p->fy / (double)(hh - p->fh); -printf("saving %g, %g\n", newx, newy); - if (p->move && (p->conf->x == newx) && (p->conf->y == newy)) + if (p->move && (p->xx == p->clickhackx) && (p->yy == p->clickhacky)) { int x, y, w, h, xcount, ycount, cx, cy; E_Zone *zone; @@ -397,8 +403,8 @@ printf("saving %g, %g\n", newx, newy); p->conf->width = p->fw; p->conf->height = p->fh; - p->conf->x = newx; - p->conf->y = newy; + p->conf->x = (double)p->fx / (double)(ww - p->fw); + p->conf->y = (double)p->fy / (double)(hh - p->fh); e_config_save_queue(); } diff --git a/src/modules/pager/e_mod_main.h b/src/modules/pager/e_mod_main.h index d05049cca..233628e9d 100644 --- a/src/modules/pager/e_mod_main.h +++ b/src/modules/pager/e_mod_main.h @@ -25,6 +25,9 @@ struct _Pager Ecore_Event_Handler *ev_handler_container_resize; Evas_Coord fx, fy, fw, fh; Evas_Coord xx, yy; + + /* FIXME: want to fix click detection once leftdrag is not used */ + Evas_Coord clickhackx, clickhacky; }; EAPI void *init (E_Module *m);