Also add a surface argument to the enter event.
}
static void
-text_model_activated(void *data,
- struct text_model *text_model)
+text_model_enter(void *data,
+ struct text_model *text_model,
+ struct wl_surface *surface)
{
struct text_entry *entry = data;
+ if (surface != window_get_wl_surface(entry->window))
+ return;
+
entry->active = 1;
widget_schedule_redraw(entry->widget);
}
static void
-text_model_deactivated(void *data,
- struct text_model *text_model)
+text_model_leave(void *data,
+ struct text_model *text_model)
{
struct text_entry *entry = data;
text_model_selection_replacement,
text_model_direction,
text_model_locale,
- text_model_activated,
- text_model_deactivated
+ text_model_enter,
+ text_model_leave
};
static struct text_entry*
<event name="selection_replacement"/>
<event name="direction"/>
<event name="locale"/>
- <event name="activated">
- <description summary="activated event">
+ <event name="enter">
+ <description summary="enter event">
Notify the model when it is activated. Typically in response to an
activate request.
</description>
+ <arg name="surface" type="object" interface="wl_surface"/>
</event>
- <event name="deactivated">
- <description summary="deactivated event">
+ <event name="leave">
+ <description summary="leave event">
Notify the model when it is deactivated. Either in response to a
deactivate request or when the assigned surface lost focus or was
destroyed.
input_method->model = NULL;
input_method->context = NULL;
wl_signal_emit(&ec->hide_input_panel_signal, ec);
- text_model_send_deactivated(&text_model->resource);
+ text_model_send_leave(&text_model->resource);
}
}
wl_signal_emit(&ec->show_input_panel_signal, ec);
- text_model_send_activated(&text_model->resource);
+ text_model_send_enter(&text_model->resource, &text_model->surface->resource);
}
static void