diff options
author | Lukas Märdian <luk@slyon.de> | 2013-02-18 22:12:43 +0100 |
---|---|---|
committer | Eric Bénard <eric@eukrea.com> | 2013-02-19 07:50:58 +0100 |
commit | afc5b9445b08c7fc54c048a018ef033db27f4cec (patch) | |
tree | ad468b393b27116f079312cfc830a5af7bced30e | |
parent | c02834a7cc5fda525c7ebeec545625233bab4cb5 (diff) | |
download | meta-openembedded-afc5b9445b08c7fc54c048a018ef033db27f4cec.tar.gz |
meta-efl: include illume home button fix
* Include upstream fix for illume home button
* Upstream fixed it in SVN revision 76646
Signed-off-by: Lukas Märdian <luk@slyon.de>
Signed-off-by: Eric Bénard <eric@eukrea.com>
-rw-r--r-- | meta-efl/recipes-efl/e17/e-wm/Fix-Illume-Home-Button.diff | 166 | ||||
-rw-r--r-- | meta-efl/recipes-efl/e17/e-wm_svn.bb | 3 |
2 files changed, 168 insertions, 1 deletions
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 000000000..09b5feb87 --- /dev/null +++ b/meta-efl/recipes-efl/e17/e-wm/Fix-Illume-Home-Button.diff | |||
@@ -0,0 +1,166 @@ | |||
1 | Index: e/src/modules/illume2/policies/illume/policy.c | ||
2 | =================================================================== | ||
3 | --- e/src/modules/illume2/policies/illume/policy.c (revision 67951) | ||
4 | +++ e/src/modules/illume2/policies/illume/policy.c (revision 76646) | ||
5 | @@ -13,4 +13,5 @@ | ||
6 | static void _policy_border_move(E_Border *bd, int x, int y); | ||
7 | static void _policy_border_resize(E_Border *bd, int w, int h); | ||
8 | +static void _policy_border_hide_above(E_Border *bd); | ||
9 | static void _policy_border_hide_below(E_Border *bd); | ||
10 | static void _policy_border_show_below(E_Border *bd); | ||
11 | @@ -124,23 +125,57 @@ | ||
12 | |||
13 | static void | ||
14 | +_policy_border_hide_above(E_Border *bd) | ||
15 | +{ | ||
16 | + int pos = 0, layer = 0, i; | ||
17 | + | ||
18 | + if (!bd) return; | ||
19 | + | ||
20 | + /* determine layering position */ | ||
21 | + layer = bd->layer; | ||
22 | + if (layer < 0) layer = 0; | ||
23 | + pos = 1 + (layer / 50); | ||
24 | + if (pos > 10) pos = 10; | ||
25 | + | ||
26 | + /* Find the windows above this one */ | ||
27 | + for (i = (pos + 1); i < 11; i++) | ||
28 | + { | ||
29 | + Eina_List *l; | ||
30 | + E_Border *b; | ||
31 | + | ||
32 | + EINA_LIST_REVERSE_FOREACH(bd->zone->container->layers[i].clients, l, b) | ||
33 | + { | ||
34 | + /* skip if it's the same border */ | ||
35 | + if (b == bd) continue; | ||
36 | + | ||
37 | + /* skip if it's not on this zone */ | ||
38 | + if (b->zone != bd->zone) continue; | ||
39 | + | ||
40 | + /* skip special borders */ | ||
41 | + if (e_illume_border_is_indicator(b)) continue; | ||
42 | + if (e_illume_border_is_softkey(b)) continue; | ||
43 | + if (e_illume_border_is_keyboard(b)) continue; | ||
44 | + if (e_illume_border_is_quickpanel(b)) continue; | ||
45 | + if (e_illume_border_is_home(b)) continue; | ||
46 | + | ||
47 | + e_border_iconify(b); | ||
48 | + } | ||
49 | + } | ||
50 | +} | ||
51 | + | ||
52 | +static void | ||
53 | _policy_border_hide_below(E_Border *bd) | ||
54 | { | ||
55 | - int pos = 0, i; | ||
56 | - | ||
57 | -// printf("Hide Borders Below: %s %d %d\n", | ||
58 | -// bd->client.icccm.name, bd->x, bd->y); | ||
59 | + int pos = 0, layer = 0, i; | ||
60 | |||
61 | if (!bd) return; | ||
62 | |||
63 | /* determine layering position */ | ||
64 | - if (bd->layer <= 0) pos = 0; | ||
65 | - else if ((bd->layer > 0) && (bd->layer <= 50)) pos = 1; | ||
66 | - else if ((bd->layer > 50) && (bd->layer <= 100)) pos = 2; | ||
67 | - else if ((bd->layer > 100) && (bd->layer <= 150)) pos = 3; | ||
68 | - else if ((bd->layer > 150) && (bd->layer <= 200)) pos = 4; | ||
69 | - else pos = 5; | ||
70 | + layer = bd->layer; | ||
71 | + if (layer < 0) layer = 0; | ||
72 | + pos = 1 + (layer / 50); | ||
73 | + if (pos > 10) pos = 10; | ||
74 | |||
75 | /* Find the windows below this one */ | ||
76 | - for (i = pos; i >= 2; i--) | ||
77 | + for (i = (pos - 1); i >= 0; i--) | ||
78 | { | ||
79 | Eina_List *l; | ||
80 | @@ -184,5 +219,5 @@ | ||
81 | Eina_List *l; | ||
82 | E_Border *prev; | ||
83 | - int pos = 0, i; | ||
84 | + int pos = 0, layer = 0, i; | ||
85 | |||
86 | // printf("Show Borders Below: %s %d %d\n", | ||
87 | @@ -201,13 +236,11 @@ | ||
88 | |||
89 | /* determine layering position */ | ||
90 | - if (bd->layer <= 0) pos = 0; | ||
91 | - else if ((bd->layer > 0) && (bd->layer <= 50)) pos = 1; | ||
92 | - else if ((bd->layer > 50) && (bd->layer <= 100)) pos = 2; | ||
93 | - else if ((bd->layer > 100) && (bd->layer <= 150)) pos = 3; | ||
94 | - else if ((bd->layer > 150) && (bd->layer <= 200)) pos = 4; | ||
95 | - else pos = 5; | ||
96 | + layer = bd->layer; | ||
97 | + if (layer < 0) layer = 0; | ||
98 | + pos = 1 + (layer / 50); | ||
99 | + if (pos > 10) pos = 10; | ||
100 | |||
101 | /* Find the windows below this one */ | ||
102 | - for (i = pos; i >= 2; i--) | ||
103 | + for (i = (pos + 1); i < 11; i++) | ||
104 | { | ||
105 | E_Border *b; | ||
106 | @@ -1039,7 +1072,7 @@ | ||
107 | _policy_border_add(E_Border *bd) | ||
108 | { | ||
109 | -// printf("Border added: %s\n", bd->client.icccm.class); | ||
110 | - | ||
111 | if (!bd) return; | ||
112 | + | ||
113 | +// printf("\nBorder added: %s\n", bd->client.icccm.class); | ||
114 | |||
115 | /* NB: this call sets an atom on the window that specifices the zone. | ||
116 | @@ -1159,5 +1192,5 @@ | ||
117 | if ((ind = e_illume_border_indicator_get(bd->zone))) | ||
118 | { | ||
119 | - /* we have the indicator, show it if needed */ | ||
120 | + /* we have the indicator, hide it if needed */ | ||
121 | if (ind->visible) e_illume_border_hide(ind); | ||
122 | } | ||
123 | @@ -1178,7 +1211,7 @@ | ||
124 | _policy_border_focus_out(E_Border *bd) | ||
125 | { | ||
126 | + if (!bd) return; | ||
127 | + | ||
128 | // printf("Border focus out: %s\n", bd->client.icccm.name); | ||
129 | - | ||
130 | - if (!bd) return; | ||
131 | |||
132 | /* NB: if we got this focus_out event on a deleted border, we check if | ||
133 | @@ -1202,5 +1235,5 @@ | ||
134 | E_Border *sft; | ||
135 | |||
136 | -// printf("Border Activate: %s\n", bd->client.icccm.name); | ||
137 | + printf("Border Activate: %s\n", bd->client.icccm.name); | ||
138 | |||
139 | if (!bd) return; | ||
140 | @@ -1707,5 +1740,18 @@ | ||
141 | if (!zone) return; | ||
142 | if (!(bd = e_illume_border_home_get(zone))) return; | ||
143 | - _policy_border_set_focus(bd); | ||
144 | + | ||
145 | + /* if the border was hidden due to layout, we need to unhide */ | ||
146 | + if (!bd->visible) e_illume_border_show(bd); | ||
147 | + | ||
148 | + if ((bd->iconic) && (!bd->lock_user_iconify)) | ||
149 | + e_border_uniconify(bd); | ||
150 | + | ||
151 | + if (!bd->lock_user_stacking) e_border_raise(bd); | ||
152 | + | ||
153 | + /* hide the border(s) above this one */ | ||
154 | + _policy_border_hide_above(bd); | ||
155 | + | ||
156 | + /* focus the border */ | ||
157 | + e_border_focus_set(bd, 1, 1); | ||
158 | } | ||
159 | |||
160 | @@ -1835,5 +1881,5 @@ | ||
161 | h = kbd->border->h; | ||
162 | |||
163 | - /* adjust Y for keyboard visibility because keyboard uses fx_offset */ | ||
164 | + /* adjust for keyboard visibility because keyboard uses fx_offset */ | ||
165 | y = 0; | ||
166 | 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 a6f56bd72..af3f9cfe7 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=76de290eb3fdda12121830191c152a7d" | 4 | LIC_FILES_CHKSUM = "file://COPYING;md5=76de290eb3fdda12121830191c152a7d" |
5 | SRCNAME = "e" | 5 | SRCNAME = "e" |
6 | PV = "0.16.999.060+svnr${SRCPV}" | 6 | PV = "0.16.999.060+svnr${SRCPV}" |
7 | PR = "r6" | 7 | PR = "r7" |
8 | SRCREV = "${EFL_SRCREV}" | 8 | SRCREV = "${EFL_SRCREV}" |
9 | 9 | ||
10 | inherit e update-alternatives gettext | 10 | inherit e update-alternatives gettext |
@@ -14,6 +14,7 @@ SRC_URI = "\ | |||
14 | ${E_SVN}/trunk;module=${SRCNAME};protocol=http \ | 14 | ${E_SVN}/trunk;module=${SRCNAME};protocol=http \ |
15 | file://enlightenment_start.oe \ | 15 | file://enlightenment_start.oe \ |
16 | file://applications.menu \ | 16 | file://applications.menu \ |
17 | file://Fix-Illume-Home-Button.diff \ | ||
17 | " | 18 | " |
18 | 19 | ||
19 | EXTRA_OECONF = "\ | 20 | EXTRA_OECONF = "\ |