input-panel: validate return value of get_default_view

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
This commit is contained in:
U. Artie Eoff 2014-01-15 14:03:56 -08:00 committed by Kristian Høgsberg
parent 6d6d190b30
commit c4c7a4f921
1 changed files with 6 additions and 2 deletions

View File

@ -116,14 +116,18 @@ input_panel_configure(struct weston_surface *surface, int32_t sx, int32_t sy)
{ {
struct input_panel_surface *ip_surface = surface->configure_private; struct input_panel_surface *ip_surface = surface->configure_private;
struct desktop_shell *shell = ip_surface->shell; struct desktop_shell *shell = ip_surface->shell;
struct weston_view *view;
float x, y; float x, y;
if (surface->width == 0) if (surface->width == 0)
return; return;
if (ip_surface->panel) { if (ip_surface->panel) {
x = get_default_view(shell->text_input.surface)->geometry.x + shell->text_input.cursor_rectangle.x2; view = get_default_view(shell->text_input.surface);
y = get_default_view(shell->text_input.surface)->geometry.y + shell->text_input.cursor_rectangle.y2; if (view == NULL)
return;
x = view->geometry.x + shell->text_input.cursor_rectangle.x2;
y = view->geometry.y + shell->text_input.cursor_rectangle.y2;
} else { } else {
x = ip_surface->output->x + (ip_surface->output->width - surface->width) / 2; x = ip_surface->output->x + (ip_surface->output->width - surface->width) / 2;
y = ip_surface->output->y + ip_surface->output->height - surface->height; y = ip_surface->output->y + ip_surface->output->height - surface->height;