window: Replace widget focus handler with a enter/leave handler pair
diff --git a/clients/desktop-shell.c b/clients/desktop-shell.c
index febac78..9e46cc1 100644
--- a/clients/desktop-shell.c
+++ b/clients/desktop-shell.c
@@ -230,7 +230,15 @@
}
static void
-panel_widget_focus_handler(struct widget *widget, void *data)
+panel_widget_enter_handler(struct widget *widget, struct input *input,
+ uint32_t time, int32_t x, int32_t y, void *data)
+{
+ widget_schedule_redraw(widget);
+}
+
+static void
+panel_widget_leave_handler(struct widget *widget,
+ struct input *input, void *data)
{
widget_schedule_redraw(widget);
}
@@ -300,7 +308,8 @@
widget->panel = panel;
widget->widget = window_add_widget(panel->window, widget);
- widget_set_focus_handler(widget->widget, panel_widget_focus_handler);
+ widget_set_enter_handler(widget->widget, panel_widget_enter_handler);
+ widget_set_leave_handler(widget->widget, panel_widget_leave_handler);
}
static void
@@ -438,7 +447,16 @@
}
static void
-unlock_dialog_widget_focus_handler(struct widget *widget, void *data)
+unlock_dialog_widget_enter_handler(struct widget *widget,
+ struct input *input, uint32_t time,
+ int32_t x, int32_t y, void *data)
+{
+ widget_schedule_redraw(widget);
+}
+
+static void
+unlock_dialog_widget_leave_handler(struct widget *widget,
+ struct input *input, void *data)
{
widget_schedule_redraw(widget);
}
@@ -464,8 +482,10 @@
unlock_dialog_keyboard_focus_handler);
window_set_button_handler(dialog->window, unlock_dialog_button_handler);
dialog->button = window_add_widget(dialog->window, NULL);
- widget_set_focus_handler(dialog->button,
- unlock_dialog_widget_focus_handler);
+ widget_set_enter_handler(dialog->button,
+ unlock_dialog_widget_enter_handler);
+ widget_set_leave_handler(dialog->button,
+ unlock_dialog_widget_leave_handler);
desktop_shell_set_lock_surface(desktop->shell,
window_get_wl_shell_surface(dialog->window));