diff options
| author | Martin Jansa <Martin.Jansa@gmail.com> | 2012-02-19 23:12:38 +0100 |
|---|---|---|
| committer | Martin Jansa <Martin.Jansa@gmail.com> | 2012-02-26 08:56:05 +0100 |
| commit | 7f37409e0a7f528df15eef0d44f78ecae0b20f6c (patch) | |
| tree | 0f263dde96288102b85bd22550fe10c666dae92f | |
| parent | 1772d999c27106a9e4e3be5a0893d11261c7e789 (diff) | |
| download | meta-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.patch | 135 | ||||
| -rw-r--r-- | meta-efl/recipes-efl/e17/e-wm_svn.bb | 3 |
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 0000000000..c4a18d09a7 --- /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 @@ | |||
| 1 | From c7f54838d09cc94dd23ed060889bae780758c391 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
| 3 | Date: Sun, 19 Feb 2012 23:09:07 +0100 | ||
| 4 | Subject: [PATCH] Revert "Illume: Remove the popup. It's not needed now." | ||
| 5 | |||
| 6 | This 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 | |||
| 12 | diff --git a/src/modules/illume-indicator/e_mod_ind_win.c b/src/modules/illume-indicator/e_mod_ind_win.c | ||
| 13 | index 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 | } | ||
| 121 | diff --git a/src/modules/illume-indicator/e_mod_ind_win.h b/src/modules/illume-indicator/e_mod_ind_win.h | ||
| 122 | index 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 | -- | ||
| 134 | 1.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 e9319670cd..25aa865b98 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" | |||
| 4 | LIC_FILES_CHKSUM = "file://COPYING;md5=2667a0f4120372ea91f7467cdff4095f" | 4 | LIC_FILES_CHKSUM = "file://COPYING;md5=2667a0f4120372ea91f7467cdff4095f" |
| 5 | SRCNAME = "e" | 5 | SRCNAME = "e" |
| 6 | PV = "0.16.999.060+svnr${SRCPV}" | 6 | PV = "0.16.999.060+svnr${SRCPV}" |
| 7 | PR = "r23" | 7 | PR = "r24" |
| 8 | SRCREV = "${EFL_SRCREV}" | 8 | SRCREV = "${EFL_SRCREV}" |
| 9 | 9 | ||
| 10 | inherit e update-alternatives gettext | 10 | inherit e update-alternatives gettext |
| @@ -12,6 +12,7 @@ S = "${WORKDIR}/${SRCNAME}" | |||
| 12 | 12 | ||
| 13 | SRC_URI = "\ | 13 | SRC_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 | " |
