summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2012-02-19 23:12:38 +0100
committerMartin Jansa <Martin.Jansa@gmail.com>2012-02-26 08:56:05 +0100
commit7f37409e0a7f528df15eef0d44f78ecae0b20f6c (patch)
tree0f263dde96288102b85bd22550fe10c666dae92f
parent1772d999c27106a9e4e3be5a0893d11261c7e789 (diff)
downloadmeta-openembedded-7f37409e0a7f528df15eef0d44f78ecae0b20f6c.tar.gz
e-wm: fix memory usage with illume causing OOM
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-rw-r--r--meta-efl/recipes-efl/e17/e-wm/0001-Revert-Illume-Remove-the-popup.-It-s-not-needed-now.patch135
-rw-r--r--meta-efl/recipes-efl/e17/e-wm_svn.bb3
2 files changed, 137 insertions, 1 deletions
diff --git a/meta-efl/recipes-efl/e17/e-wm/0001-Revert-Illume-Remove-the-popup.-It-s-not-needed-now.patch b/meta-efl/recipes-efl/e17/e-wm/0001-Revert-Illume-Remove-the-popup.-It-s-not-needed-now.patch
new file mode 100644
index 000000000..c4a18d09a
--- /dev/null
+++ b/meta-efl/recipes-efl/e17/e-wm/0001-Revert-Illume-Remove-the-popup.-It-s-not-needed-now.patch
@@ -0,0 +1,135 @@
1From c7f54838d09cc94dd23ed060889bae780758c391 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sun, 19 Feb 2012 23:09:07 +0100
4Subject: [PATCH] Revert "Illume: Remove the popup. It's not needed now."
5
6This reverts commit cba0bc9833689900930272fa5c4a2cd2529d3028.
7---
8 src/modules/illume-indicator/e_mod_ind_win.c | 23 ++++++++++++++++++++---
9 src/modules/illume-indicator/e_mod_ind_win.h | 1 +
10 2 files changed, 21 insertions(+), 3 deletions(-)
11
12diff --git a/src/modules/illume-indicator/e_mod_ind_win.c b/src/modules/illume-indicator/e_mod_ind_win.c
13index d3657d6..4a593fd 100644
14--- a/src/modules/illume-indicator/e_mod_ind_win.c
15+++ b/src/modules/illume-indicator/e_mod_ind_win.c
16@@ -57,6 +57,11 @@ e_mod_ind_win_new(E_Zone *zone)
17 /* set this window to not accept or take focus */
18 ecore_x_icccm_hints_set(iwin->win->evas_win, 0, 0, 0, 0, 0, 0, 0);
19
20+ /* create the popup */
21+ iwin->popup = e_popup_new(zone, 0, 0, zone->w, h);
22+ e_popup_name_set(iwin->popup, "indicator");
23+ e_popup_layer_set(iwin->popup, 200);
24+
25 /* create our event rectangle */
26 iwin->o_event = evas_object_rectangle_add(iwin->win->evas);
27 evas_object_color_set(iwin->o_event, 0, 0, 0, 0);
28@@ -85,6 +90,8 @@ e_mod_ind_win_new(E_Zone *zone)
29 evas_object_move(iwin->o_base, 0, 0);
30 evas_object_show(iwin->o_base);
31
32+ e_popup_edje_bg_object_set(iwin->popup, iwin->o_base);
33+
34 /* create our gadget container */
35 iwin->gadcon = e_gadcon_swallowed_new("illume-indicator", zone->id,
36 iwin->o_base, "e.swallow.content");
37@@ -133,12 +140,15 @@ e_mod_ind_win_new(E_Zone *zone)
38
39 /* set minimum size of this window & popup */
40 e_win_size_min_set(iwin->win, zone->w, h);
41+ ecore_evas_size_min_set(iwin->popup->ecore_evas, zone->w, h);
42
43 /* position and resize this window */
44 e_win_move_resize(iwin->win, zone->x, zone->y, zone->w, h);
45+ e_popup_move_resize(iwin->popup, zone->x, zone->y, zone->w, h);
46
47 /* show the window */
48 e_win_show(iwin->win);
49+ e_popup_show(iwin->popup);
50
51 /* set this window on proper zone */
52 e_border_zone_set(iwin->win->border, zone);
53@@ -188,6 +198,9 @@ _e_mod_ind_win_cb_free(Ind_Win *iwin)
54 /* tell conformant apps our position and size */
55 ecore_x_e_illume_indicator_geometry_set(iwin->zone->black_win, 0, 0, 0, 0);
56
57+ if (iwin->popup) e_object_del(E_OBJECT(iwin->popup));
58+ iwin->popup = NULL;
59+
60 /* delete the window */
61 if (iwin->win) e_object_del(E_OBJECT(iwin->win));
62 iwin->win = NULL;
63@@ -214,6 +227,7 @@ _e_mod_ind_win_cb_win_prop(void *data, int type __UNUSED__, void *event)
64
65 /* set minimum size of this window */
66 e_win_size_min_set(iwin->win, iwin->zone->w, h);
67+ ecore_evas_size_min_set(iwin->popup->ecore_evas, iwin->zone->w, h);
68
69 /* NB: Not sure why, but we need to tell this border to fetch icccm
70 * size position hints now :( (NOTE: This was not needed a few days ago)
71@@ -222,6 +236,7 @@ _e_mod_ind_win_cb_win_prop(void *data, int type __UNUSED__, void *event)
72
73 /* resize this window */
74 e_win_resize(iwin->win, iwin->zone->w, h);
75+ e_popup_resize(iwin->popup, iwin->zone->w, h);
76
77 /* tell conformant apps our position and size */
78 ecore_x_e_illume_indicator_geometry_set(iwin->zone->black_win,
79@@ -246,6 +261,7 @@ _e_mod_ind_win_cb_zone_resize(void *data, int type __UNUSED__, void *event)
80
81 /* set minimum size of this window to match zone size */
82 e_win_size_min_set(iwin->win, ev->zone->w, h);
83+ ecore_evas_size_min_set(iwin->popup->ecore_evas, ev->zone->w, h);
84
85 return ECORE_CALLBACK_PASS_ON;
86 }
87@@ -256,6 +272,7 @@ _e_mod_ind_win_cb_resize(E_Win *win)
88 Ind_Win *iwin;
89
90 if (!(iwin = win->data)) return;
91+ if (iwin->popup) e_popup_resize(iwin->popup, win->w, win->h);
92 if (iwin->o_event) evas_object_resize(iwin->o_event, win->w, win->h);
93 if (iwin->o_base) evas_object_resize(iwin->o_base, win->w, win->h);
94 if (iwin->gadcon->o_container)
95@@ -427,7 +444,7 @@ _e_mod_ind_win_cb_mouse_move(void *data, Evas *evas __UNUSED__, Evas_Object *obj
96 bd->y = ny;
97 bd->changes.pos = 1;
98 bd->changed = 1;
99- e_win_move(iwin->win, iwin->win->x, ny);
100+ e_popup_move(iwin->popup, iwin->popup->x, ny);
101 }
102 }
103 }
104@@ -553,7 +570,7 @@ _e_mod_ind_win_cb_border_hide(void *data, int type __UNUSED__, void *event)
105 if (!(iwin = data)) return ECORE_CALLBACK_PASS_ON;
106 ev = event;
107 if (ev->border != iwin->win->border) return ECORE_CALLBACK_PASS_ON;
108- e_win_hide(iwin->win);
109+ e_popup_hide(iwin->popup);
110 return ECORE_CALLBACK_PASS_ON;
111 }
112
113@@ -566,6 +583,6 @@ _e_mod_ind_win_cb_border_show(void *data, int type __UNUSED__, void *event)
114 if (!(iwin = data)) return ECORE_CALLBACK_PASS_ON;
115 ev = event;
116 if (ev->border != iwin->win->border) return ECORE_CALLBACK_PASS_ON;
117- e_win_show(iwin->win);
118+ e_popup_show(iwin->popup);
119 return ECORE_CALLBACK_PASS_ON;
120 }
121diff --git a/src/modules/illume-indicator/e_mod_ind_win.h b/src/modules/illume-indicator/e_mod_ind_win.h
122index aa2dd1c..d41a861 100644
123--- a/src/modules/illume-indicator/e_mod_ind_win.h
124+++ b/src/modules/illume-indicator/e_mod_ind_win.h
125@@ -14,6 +14,7 @@ struct _Ind_Win
126 Eina_List *hdls;
127
128 E_Win *win;
129+ E_Popup *popup;
130 Evas_Object *o_base, *o_event;
131 E_Gadcon *gadcon;
132 E_Menu *menu;
133--
1341.7.8.4
135
diff --git a/meta-efl/recipes-efl/e17/e-wm_svn.bb b/meta-efl/recipes-efl/e17/e-wm_svn.bb
index e9319670c..25aa865b9 100644
--- a/meta-efl/recipes-efl/e17/e-wm_svn.bb
+++ b/meta-efl/recipes-efl/e17/e-wm_svn.bb
@@ -4,7 +4,7 @@ LICENSE = "MIT BSD"
4LIC_FILES_CHKSUM = "file://COPYING;md5=2667a0f4120372ea91f7467cdff4095f" 4LIC_FILES_CHKSUM = "file://COPYING;md5=2667a0f4120372ea91f7467cdff4095f"
5SRCNAME = "e" 5SRCNAME = "e"
6PV = "0.16.999.060+svnr${SRCPV}" 6PV = "0.16.999.060+svnr${SRCPV}"
7PR = "r23" 7PR = "r24"
8SRCREV = "${EFL_SRCREV}" 8SRCREV = "${EFL_SRCREV}"
9 9
10inherit e update-alternatives gettext 10inherit e update-alternatives gettext
@@ -12,6 +12,7 @@ S = "${WORKDIR}/${SRCNAME}"
12 12
13SRC_URI = "\ 13SRC_URI = "\
14 ${E_SVN}/trunk;module=${SRCNAME};proto=http \ 14 ${E_SVN}/trunk;module=${SRCNAME};proto=http \
15 file://0001-Revert-Illume-Remove-the-popup.-It-s-not-needed-now.patch \
15 file://enlightenment_start.oe \ 16 file://enlightenment_start.oe \
16 file://applications.menu \ 17 file://applications.menu \
17" 18"