summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Märdian <luk@slyon.de>2013-02-18 22:12:43 +0100
committerEric Bénard <eric@eukrea.com>2013-02-19 07:50:58 +0100
commitafc5b9445b08c7fc54c048a018ef033db27f4cec (patch)
treead468b393b27116f079312cfc830a5af7bced30e
parentc02834a7cc5fda525c7ebeec545625233bab4cb5 (diff)
downloadmeta-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.diff166
-rw-r--r--meta-efl/recipes-efl/e17/e-wm_svn.bb3
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 @@
1Index: 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"
4LIC_FILES_CHKSUM = "file://COPYING;md5=76de290eb3fdda12121830191c152a7d" 4LIC_FILES_CHKSUM = "file://COPYING;md5=76de290eb3fdda12121830191c152a7d"
5SRCNAME = "e" 5SRCNAME = "e"
6PV = "0.16.999.060+svnr${SRCPV}" 6PV = "0.16.999.060+svnr${SRCPV}"
7PR = "r6" 7PR = "r7"
8SRCREV = "${EFL_SRCREV}" 8SRCREV = "${EFL_SRCREV}"
9 9
10inherit e update-alternatives gettext 10inherit 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
19EXTRA_OECONF = "\ 20EXTRA_OECONF = "\