From afc5b9445b08c7fc54c048a018ef033db27f4cec Mon Sep 17 00:00:00 2001 From: Lukas Märdian Date: Mon, 18 Feb 2013 22:12:43 +0100 Subject: meta-efl: include illume home button fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Include upstream fix for illume home button * Upstream fixed it in SVN revision 76646 Signed-off-by: Lukas Märdian Signed-off-by: Eric Bénard --- .../e17/e-wm/Fix-Illume-Home-Button.diff | 166 +++++++++++++++++++++ meta-efl/recipes-efl/e17/e-wm_svn.bb | 3 +- 2 files changed, 168 insertions(+), 1 deletion(-) create mode 100644 meta-efl/recipes-efl/e17/e-wm/Fix-Illume-Home-Button.diff diff --git a/meta-efl/recipes-efl/e17/e-wm/Fix-Illume-Home-Button.diff b/meta-efl/recipes-efl/e17/e-wm/Fix-Illume-Home-Button.diff new file mode 100644 index 0000000000..09b5feb877 --- /dev/null +++ b/meta-efl/recipes-efl/e17/e-wm/Fix-Illume-Home-Button.diff @@ -0,0 +1,166 @@ +Index: e/src/modules/illume2/policies/illume/policy.c +=================================================================== +--- e/src/modules/illume2/policies/illume/policy.c (revision 67951) ++++ e/src/modules/illume2/policies/illume/policy.c (revision 76646) +@@ -13,4 +13,5 @@ + static void _policy_border_move(E_Border *bd, int x, int y); + static void _policy_border_resize(E_Border *bd, int w, int h); ++static void _policy_border_hide_above(E_Border *bd); + static void _policy_border_hide_below(E_Border *bd); + static void _policy_border_show_below(E_Border *bd); +@@ -124,23 +125,57 @@ + + static void ++_policy_border_hide_above(E_Border *bd) ++{ ++ int pos = 0, layer = 0, i; ++ ++ if (!bd) return; ++ ++ /* determine layering position */ ++ layer = bd->layer; ++ if (layer < 0) layer = 0; ++ pos = 1 + (layer / 50); ++ if (pos > 10) pos = 10; ++ ++ /* Find the windows above this one */ ++ for (i = (pos + 1); i < 11; i++) ++ { ++ Eina_List *l; ++ E_Border *b; ++ ++ EINA_LIST_REVERSE_FOREACH(bd->zone->container->layers[i].clients, l, b) ++ { ++ /* skip if it's the same border */ ++ if (b == bd) continue; ++ ++ /* skip if it's not on this zone */ ++ if (b->zone != bd->zone) continue; ++ ++ /* skip special borders */ ++ if (e_illume_border_is_indicator(b)) continue; ++ if (e_illume_border_is_softkey(b)) continue; ++ if (e_illume_border_is_keyboard(b)) continue; ++ if (e_illume_border_is_quickpanel(b)) continue; ++ if (e_illume_border_is_home(b)) continue; ++ ++ e_border_iconify(b); ++ } ++ } ++} ++ ++static void + _policy_border_hide_below(E_Border *bd) + { +- int pos = 0, i; +- +-// printf("Hide Borders Below: %s %d %d\n", +-// bd->client.icccm.name, bd->x, bd->y); ++ int pos = 0, layer = 0, i; + + if (!bd) return; + + /* determine layering position */ +- if (bd->layer <= 0) pos = 0; +- else if ((bd->layer > 0) && (bd->layer <= 50)) pos = 1; +- else if ((bd->layer > 50) && (bd->layer <= 100)) pos = 2; +- else if ((bd->layer > 100) && (bd->layer <= 150)) pos = 3; +- else if ((bd->layer > 150) && (bd->layer <= 200)) pos = 4; +- else pos = 5; ++ layer = bd->layer; ++ if (layer < 0) layer = 0; ++ pos = 1 + (layer / 50); ++ if (pos > 10) pos = 10; + + /* Find the windows below this one */ +- for (i = pos; i >= 2; i--) ++ for (i = (pos - 1); i >= 0; i--) + { + Eina_List *l; +@@ -184,5 +219,5 @@ + Eina_List *l; + E_Border *prev; +- int pos = 0, i; ++ int pos = 0, layer = 0, i; + + // printf("Show Borders Below: %s %d %d\n", +@@ -201,13 +236,11 @@ + + /* determine layering position */ +- if (bd->layer <= 0) pos = 0; +- else if ((bd->layer > 0) && (bd->layer <= 50)) pos = 1; +- else if ((bd->layer > 50) && (bd->layer <= 100)) pos = 2; +- else if ((bd->layer > 100) && (bd->layer <= 150)) pos = 3; +- else if ((bd->layer > 150) && (bd->layer <= 200)) pos = 4; +- else pos = 5; ++ layer = bd->layer; ++ if (layer < 0) layer = 0; ++ pos = 1 + (layer / 50); ++ if (pos > 10) pos = 10; + + /* Find the windows below this one */ +- for (i = pos; i >= 2; i--) ++ for (i = (pos + 1); i < 11; i++) + { + E_Border *b; +@@ -1039,7 +1072,7 @@ + _policy_border_add(E_Border *bd) + { +-// printf("Border added: %s\n", bd->client.icccm.class); +- + if (!bd) return; ++ ++// printf("\nBorder added: %s\n", bd->client.icccm.class); + + /* NB: this call sets an atom on the window that specifices the zone. +@@ -1159,5 +1192,5 @@ + if ((ind = e_illume_border_indicator_get(bd->zone))) + { +- /* we have the indicator, show it if needed */ ++ /* we have the indicator, hide it if needed */ + if (ind->visible) e_illume_border_hide(ind); + } +@@ -1178,7 +1211,7 @@ + _policy_border_focus_out(E_Border *bd) + { ++ if (!bd) return; ++ + // printf("Border focus out: %s\n", bd->client.icccm.name); +- +- if (!bd) return; + + /* NB: if we got this focus_out event on a deleted border, we check if +@@ -1202,5 +1235,5 @@ + E_Border *sft; + +-// printf("Border Activate: %s\n", bd->client.icccm.name); ++ printf("Border Activate: %s\n", bd->client.icccm.name); + + if (!bd) return; +@@ -1707,5 +1740,18 @@ + if (!zone) return; + if (!(bd = e_illume_border_home_get(zone))) return; +- _policy_border_set_focus(bd); ++ ++ /* if the border was hidden due to layout, we need to unhide */ ++ if (!bd->visible) e_illume_border_show(bd); ++ ++ if ((bd->iconic) && (!bd->lock_user_iconify)) ++ e_border_uniconify(bd); ++ ++ if (!bd->lock_user_stacking) e_border_raise(bd); ++ ++ /* hide the border(s) above this one */ ++ _policy_border_hide_above(bd); ++ ++ /* focus the border */ ++ e_border_focus_set(bd, 1, 1); + } + +@@ -1835,5 +1881,5 @@ + h = kbd->border->h; + +- /* adjust Y for keyboard visibility because keyboard uses fx_offset */ ++ /* adjust for keyboard visibility because keyboard uses fx_offset */ + y = 0; + if (kbd->border->fx.y <= 0) y = kbd->border->y; diff --git a/meta-efl/recipes-efl/e17/e-wm_svn.bb b/meta-efl/recipes-efl/e17/e-wm_svn.bb index a6f56bd72e..af3f9cfe75 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" LIC_FILES_CHKSUM = "file://COPYING;md5=76de290eb3fdda12121830191c152a7d" SRCNAME = "e" PV = "0.16.999.060+svnr${SRCPV}" -PR = "r6" +PR = "r7" SRCREV = "${EFL_SRCREV}" inherit e update-alternatives gettext @@ -14,6 +14,7 @@ SRC_URI = "\ ${E_SVN}/trunk;module=${SRCNAME};protocol=http \ file://enlightenment_start.oe \ file://applications.menu \ + file://Fix-Illume-Home-Button.diff \ " EXTRA_OECONF = "\ -- cgit v1.2.3-54-g00ecf