summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/virt-viewer-timed-revealer.c41
1 files changed, 21 insertions, 20 deletions
diff --git a/src/virt-viewer-timed-revealer.c b/src/virt-viewer-timed-revealer.c
index acc55fc..4ee053d 100644
--- a/src/virt-viewer-timed-revealer.c
+++ b/src/virt-viewer-timed-revealer.c
@@ -81,38 +81,39 @@ virt_viewer_timed_revealer_grab_notify(VirtViewerTimedRevealer *self,
}
static gboolean
-virt_viewer_timed_revealer_enter_leave_notify(VirtViewerTimedRevealer *self,
- GdkEventCrossing *event,
- gpointer user_data G_GNUC_UNUSED)
+virt_viewer_timed_revealer_enter_notify(VirtViewerTimedRevealer *self,
+ GdkEventCrossing *event G_GNUC_UNUSED,
+ gpointer user_data G_GNUC_UNUSED)
{
VirtViewerTimedRevealerPrivate *priv = self->priv;
- GdkDevice *device;
- GtkAllocation allocation;
- gint x, y;
- gboolean entered;
if (!priv->fullscreen)
return FALSE;
- device = gdk_event_get_device((GdkEvent *)event);
+ virt_viewer_timed_revealer_unregister_timeout(self);
+ if (!gtk_revealer_get_reveal_child(GTK_REVEALER(priv->revealer))) {
+ gtk_revealer_set_reveal_child(GTK_REVEALER(priv->revealer), TRUE);
+ }
+
+ return FALSE;
+}
- gdk_window_get_device_position(event->window, device, &x, &y, 0);
- gtk_widget_get_allocation(GTK_WIDGET(self), &allocation);
+static gboolean
+virt_viewer_timed_revealer_leave_notify(VirtViewerTimedRevealer *self,
+ GdkEventCrossing *event G_GNUC_UNUSED,
+ gpointer user_data G_GNUC_UNUSED)
+{
+ VirtViewerTimedRevealerPrivate *priv = self->priv;
- entered = !!(x >= 0 && y >= 0 && x < allocation.width && y < allocation.height);
+ if (!priv->fullscreen)
+ return FALSE;
/*
* Pointer exited the toolbar, and toolbar is revealed. Schedule
* a timeout to close it, if one isn't already scheduled.
*/
- if (!entered && gtk_revealer_get_reveal_child(GTK_REVEALER(priv->revealer))) {
+ if (gtk_revealer_get_reveal_child(GTK_REVEALER(priv->revealer))) {
virt_viewer_timed_revealer_schedule_unreveal_timeout(self, 1000);
- return FALSE;
- }
-
- virt_viewer_timed_revealer_unregister_timeout(self);
- if (entered && !gtk_revealer_get_reveal_child(GTK_REVEALER(priv->revealer))) {
- gtk_revealer_set_reveal_child(GTK_REVEALER(priv->revealer), TRUE);
}
return FALSE;
@@ -183,11 +184,11 @@ virt_viewer_timed_revealer_new(GtkWidget *toolbar)
NULL);
g_signal_connect(self,
"enter-notify-event",
- G_CALLBACK(virt_viewer_timed_revealer_enter_leave_notify),
+ G_CALLBACK(virt_viewer_timed_revealer_enter_notify),
NULL);
g_signal_connect(self,
"leave-notify-event",
- G_CALLBACK(virt_viewer_timed_revealer_enter_leave_notify),
+ G_CALLBACK(virt_viewer_timed_revealer_leave_notify),
NULL);
return self;