Skip to content

Commit d78dae4

Browse files
authored
TizenViewElementary: Remove event layer (#356)
If elm_bg set focus_allow, it can add EVAS_CALLBACk_KEY_* event and elm_bg can be a container. So we don't need the event_layer_ that we temporarily added with elm_button. Therefore, give event callback to container_ and remove event_layer_.
1 parent 819a825 commit d78dae4

File tree

2 files changed

+27
-47
lines changed

2 files changed

+27
-47
lines changed

shell/platform/tizen/tizen_view_elementary.cc

Lines changed: 27 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,14 @@ bool TizenViewElementary::CreateView() {
7575
initial_height_ = parent_height;
7676
}
7777

78-
container_ = elm_table_add(parent_);
78+
container_ = elm_bg_add(parent_);
7979
if (!container_) {
8080
FT_LOG(Error) << "Failed to create an Evas object container.";
8181
return false;
8282
}
83-
evas_object_size_hint_weight_set(container_, EVAS_HINT_EXPAND,
84-
EVAS_HINT_EXPAND);
83+
evas_object_size_hint_align_set(container_, EVAS_HINT_FILL, EVAS_HINT_FILL);
8584
EvasObjectResizeWithMinMaxHint(container_, initial_width_, initial_height_);
85+
elm_object_focus_allow_set(container_, EINA_TRUE);
8686

8787
image_ = evas_object_image_filled_add(evas_object_evas_get(container_));
8888
if (!image_) {
@@ -93,29 +93,11 @@ bool TizenViewElementary::CreateView() {
9393
EvasObjectResizeWithMinMaxHint(image_, initial_width_, initial_height_);
9494
evas_object_image_size_set(image_, initial_width_, initial_height_);
9595
evas_object_image_alpha_set(image_, EINA_TRUE);
96-
97-
elm_table_pack(container_, image_, 0, 0, 1, 1);
98-
99-
// FIXME: Button widgets can receive both mouse events and key events. But the
100-
// button widget is temporary. It should be changed to the appropriate object
101-
// that can be used as event layer.
102-
event_layer_ = elm_button_add(container_);
103-
if (!event_layer_) {
104-
FT_LOG(Error) << "Failed to create an event layer.";
105-
return false;
106-
}
107-
evas_object_size_hint_weight_set(event_layer_, EVAS_HINT_EXPAND,
108-
EVAS_HINT_EXPAND);
109-
evas_object_size_hint_align_set(event_layer_, EVAS_HINT_FILL, EVAS_HINT_FILL);
110-
elm_object_style_set(event_layer_, "transparent");
111-
evas_object_color_set(event_layer_, 0, 0, 0, 0);
112-
elm_table_pack(container_, event_layer_, 0, 0, 1, 1);
113-
96+
elm_object_part_content_set(container_, "overlay", image_);
11497
return true;
11598
}
11699

117100
void TizenViewElementary::DestroyView() {
118-
evas_object_del(event_layer_);
119101
evas_object_del(image_);
120102
evas_object_del(container_);
121103
}
@@ -147,7 +129,7 @@ void TizenViewElementary::RegisterEventHandlers() {
147129
[](void* data, Evas* evas, Evas_Object* object, void* event_info) {
148130
auto* self = reinterpret_cast<TizenViewElementary*>(data);
149131
if (self->view_delegate_) {
150-
if (self->event_layer_ == object) {
132+
if (self->container_ == object) {
151133
auto* mouse_event =
152134
reinterpret_cast<Evas_Event_Mouse_Down*>(event_info);
153135
TizenGeometry geometry = self->GetGeometry();
@@ -159,18 +141,18 @@ void TizenViewElementary::RegisterEventHandlers() {
159141
}
160142
};
161143
evas_object_event_callback_add(
162-
event_layer_, EVAS_CALLBACK_MOUSE_DOWN,
144+
container_, EVAS_CALLBACK_MOUSE_DOWN,
163145
evas_object_callbacks_[EVAS_CALLBACK_MOUSE_DOWN], this);
164146

165147
evas_object_callbacks_[EVAS_CALLBACK_MOUSE_UP] = [](void* data, Evas* evas,
166148
Evas_Object* object,
167149
void* event_info) {
168150
auto* self = reinterpret_cast<TizenViewElementary*>(data);
169151
if (self->view_delegate_) {
170-
if (self->event_layer_ == object) {
152+
if (self->container_ == object) {
171153
auto* mouse_event = reinterpret_cast<Evas_Event_Mouse_Up*>(event_info);
172154
if (self->scroll_hold_) {
173-
elm_object_scroll_hold_pop(self->event_layer_);
155+
elm_object_scroll_hold_pop(self->container_);
174156
self->scroll_hold_ = false;
175157
}
176158
TizenGeometry geometry = self->GetGeometry();
@@ -181,7 +163,7 @@ void TizenViewElementary::RegisterEventHandlers() {
181163
}
182164
}
183165
};
184-
evas_object_event_callback_add(event_layer_, EVAS_CALLBACK_MOUSE_UP,
166+
evas_object_event_callback_add(container_, EVAS_CALLBACK_MOUSE_UP,
185167
evas_object_callbacks_[EVAS_CALLBACK_MOUSE_UP],
186168
this);
187169

@@ -190,13 +172,13 @@ void TizenViewElementary::RegisterEventHandlers() {
190172
void* event_info) {
191173
auto* self = reinterpret_cast<TizenViewElementary*>(data);
192174
if (self->view_delegate_) {
193-
if (self->event_layer_ == object) {
175+
if (self->container_ == object) {
194176
auto* mouse_event =
195177
reinterpret_cast<Evas_Event_Mouse_Move*>(event_info);
196178
mouse_event->event_flags = Evas_Event_Flags(mouse_event->event_flags |
197179
EVAS_EVENT_FLAG_ON_HOLD);
198180
if (!self->scroll_hold_) {
199-
elm_object_scroll_hold_push(self->event_layer_);
181+
elm_object_scroll_hold_push(self->container_);
200182
self->scroll_hold_ = true;
201183
}
202184
TizenGeometry geometry = self->GetGeometry();
@@ -208,14 +190,14 @@ void TizenViewElementary::RegisterEventHandlers() {
208190
}
209191
};
210192
evas_object_event_callback_add(
211-
event_layer_, EVAS_CALLBACK_MOUSE_MOVE,
193+
container_, EVAS_CALLBACK_MOUSE_MOVE,
212194
evas_object_callbacks_[EVAS_CALLBACK_MOUSE_MOVE], this);
213195

214196
evas_object_callbacks_[EVAS_CALLBACK_MOUSE_WHEEL] =
215197
[](void* data, Evas* evas, Evas_Object* object, void* event_info) {
216198
auto* self = reinterpret_cast<TizenViewElementary*>(data);
217199
if (self->view_delegate_) {
218-
if (self->event_layer_ == object) {
200+
if (self->container_ == object) {
219201
auto* wheel_event =
220202
reinterpret_cast<Ecore_Event_Mouse_Wheel*>(event_info);
221203
double delta_x = 0.0;
@@ -235,15 +217,15 @@ void TizenViewElementary::RegisterEventHandlers() {
235217
}
236218
};
237219
evas_object_event_callback_add(
238-
event_layer_, EVAS_CALLBACK_MOUSE_WHEEL,
220+
container_, EVAS_CALLBACK_MOUSE_WHEEL,
239221
evas_object_callbacks_[EVAS_CALLBACK_MOUSE_WHEEL], this);
240222

241223
evas_object_callbacks_[EVAS_CALLBACK_KEY_DOWN] = [](void* data, Evas* evas,
242224
Evas_Object* object,
243225
void* event_info) {
244226
auto* self = reinterpret_cast<TizenViewElementary*>(data);
245227
if (self->view_delegate_) {
246-
if (self->event_layer_ == object && self->focused_) {
228+
if (self->container_ == object && self->focused_) {
247229
auto* key_event = reinterpret_cast<Evas_Event_Key_Down*>(event_info);
248230
bool handled = false;
249231
key_event->event_flags =
@@ -261,15 +243,15 @@ void TizenViewElementary::RegisterEventHandlers() {
261243
}
262244
}
263245
};
264-
evas_object_event_callback_add(event_layer_, EVAS_CALLBACK_KEY_DOWN,
246+
evas_object_event_callback_add(container_, EVAS_CALLBACK_KEY_DOWN,
265247
evas_object_callbacks_[EVAS_CALLBACK_KEY_DOWN],
266248
this);
267249

268250
evas_object_callbacks_[EVAS_CALLBACK_KEY_UP] =
269251
[](void* data, Evas* evas, Evas_Object* object, void* event_info) {
270252
auto* self = reinterpret_cast<TizenViewElementary*>(data);
271253
if (self->view_delegate_) {
272-
if (self->event_layer_ == object && self->focused_) {
254+
if (self->container_ == object && self->focused_) {
273255
auto* key_event = reinterpret_cast<Evas_Event_Key_Up*>(event_info);
274256
bool handled = false;
275257
key_event->event_flags = Evas_Event_Flags(key_event->event_flags |
@@ -287,43 +269,43 @@ void TizenViewElementary::RegisterEventHandlers() {
287269
}
288270
}
289271
};
290-
evas_object_event_callback_add(event_layer_, EVAS_CALLBACK_KEY_UP,
272+
evas_object_event_callback_add(container_, EVAS_CALLBACK_KEY_UP,
291273
evas_object_callbacks_[EVAS_CALLBACK_KEY_UP],
292274
this);
293275

294276
focused_callback_ = [](void* data, Evas_Object* object, void* event_info) {
295277
auto* self = reinterpret_cast<TizenViewElementary*>(data);
296278
if (self->view_delegate_) {
297-
if (self->event_layer_ == object) {
279+
if (self->container_ == object) {
298280
self->focused_ = true;
299281
}
300282
}
301283
};
302-
evas_object_smart_callback_add(event_layer_, "focused", focused_callback_,
284+
evas_object_smart_callback_add(container_, "focused", focused_callback_,
303285
this);
304286
}
305287

306288
void TizenViewElementary::UnregisterEventHandlers() {
307289
evas_object_event_callback_del(container_, EVAS_CALLBACK_RESIZE,
308290
evas_object_callbacks_[EVAS_CALLBACK_RESIZE]);
309291
evas_object_event_callback_del(
310-
event_layer_, EVAS_CALLBACK_MOUSE_DOWN,
292+
container_, EVAS_CALLBACK_MOUSE_DOWN,
311293
evas_object_callbacks_[EVAS_CALLBACK_MOUSE_DOWN]);
312294
evas_object_event_callback_del(
313-
event_layer_, EVAS_CALLBACK_MOUSE_UP,
295+
container_, EVAS_CALLBACK_MOUSE_UP,
314296
evas_object_callbacks_[EVAS_CALLBACK_MOUSE_UP]);
315297
evas_object_event_callback_del(
316-
event_layer_, EVAS_CALLBACK_MOUSE_MOVE,
298+
container_, EVAS_CALLBACK_MOUSE_MOVE,
317299
evas_object_callbacks_[EVAS_CALLBACK_MOUSE_MOVE]);
318300
evas_object_event_callback_del(
319-
event_layer_, EVAS_CALLBACK_MOUSE_WHEEL,
301+
container_, EVAS_CALLBACK_MOUSE_WHEEL,
320302
evas_object_callbacks_[EVAS_CALLBACK_MOUSE_WHEEL]);
321303
evas_object_event_callback_del(
322-
event_layer_, EVAS_CALLBACK_KEY_DOWN,
304+
container_, EVAS_CALLBACK_KEY_DOWN,
323305
evas_object_callbacks_[EVAS_CALLBACK_KEY_DOWN]);
324-
evas_object_event_callback_del(event_layer_, EVAS_CALLBACK_KEY_UP,
306+
evas_object_event_callback_del(container_, EVAS_CALLBACK_KEY_UP,
325307
evas_object_callbacks_[EVAS_CALLBACK_KEY_UP]);
326-
evas_object_smart_callback_del(event_layer_, "focused", focused_callback_);
308+
evas_object_smart_callback_del(container_, "focused", focused_callback_);
327309
}
328310

329311
TizenGeometry TizenViewElementary::GetGeometry() {
@@ -355,7 +337,6 @@ uintptr_t TizenViewElementary::GetWindowId() {
355337
void TizenViewElementary::Show() {
356338
evas_object_show(container_);
357339
evas_object_show(image_);
358-
evas_object_show(event_layer_);
359340
}
360341

361342
void TizenViewElementary::PrepareInputMethod() {

shell/platform/tizen/tizen_view_elementary.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ class TizenViewElementary : public TizenView {
5151
Evas_Object* parent_ = nullptr;
5252
Evas_Object* container_ = nullptr;
5353
Evas_Object* image_ = nullptr;
54-
Evas_Object* event_layer_ = nullptr;
5554

5655
std::unordered_map<Evas_Callback_Type, Evas_Object_Event_Cb>
5756
evas_object_callbacks_;

0 commit comments

Comments
 (0)