diff options
author | Giovanni Panozzo <giovanni@panozzo.it> | 2022-11-08 00:58:20 +0300 |
---|---|---|
committer | Giovanni Panozzo <giovanni@panozzo.it> | 2022-11-08 01:10:09 +0300 |
commit | 6f52ca0db41af9cfb10656af9d4f9b03d94c24c0 (patch) | |
tree | 93660f019b150584678625a0c98cf8c2d4eb9725 | |
parent | e435939403baa90e7478c7e5527a8fdb37396b2e (diff) |
Fix floating toolbar not disappearing when in fullscreen and keyboard grabbed, possible fix for issue #2710
-rw-r--r-- | src/rcw.c | 27 |
1 files changed, 19 insertions, 8 deletions
@@ -2754,14 +2754,6 @@ static void rcw_set_toolbar_visibility(RemminaConnectionWindow *cnnwin) } } -static gboolean rcw_floating_toolbar_on_enter(GtkWidget *widget, GdkEventCrossing *event, - RemminaConnectionWindow *cnnwin) -{ - TRACE_CALL(__func__); - rcw_floating_toolbar_show(cnnwin, TRUE); - return TRUE; -} - #if DEBUG_KB_GRABBING static void print_crossing_event(GdkEventCrossing *event) { printf("DEBUG_KB_GRABBING: --- Crossing event detail: "); @@ -2792,6 +2784,24 @@ static void print_crossing_event(GdkEventCrossing *event) { } #endif +static gboolean rcw_floating_toolbar_on_enter(GtkWidget *widget, GdkEventCrossing *event, + RemminaConnectionWindow *cnnwin) +{ + TRACE_CALL(__func__); + rcw_floating_toolbar_show(cnnwin, TRUE); + return TRUE; +} + +static gboolean rcw_floating_toolbar_on_leave(GtkWidget *widget, GdkEventCrossing *event, + RemminaConnectionWindow *cnnwin) +{ + TRACE_CALL(__func__); + if (event->detail != GDK_NOTIFY_INFERIOR) + rcw_floating_toolbar_show(cnnwin, FALSE); + return TRUE; +} + + static gboolean rcw_on_enter_notify_event(GtkWidget *widget, GdkEventCrossing *event, gpointer user_data) { @@ -3886,6 +3896,7 @@ static void rcw_create_overlay_ftb_overlay(RemminaConnectionWindow *cnnwin) rcw_floating_toolbar_show(cnnwin, TRUE); g_signal_connect(G_OBJECT(priv->overlay_ftb_overlay), "enter-notify-event", G_CALLBACK(rcw_floating_toolbar_on_enter), cnnwin); + g_signal_connect(G_OBJECT(priv->overlay_ftb_overlay), "leave-notify-event", G_CALLBACK(rcw_floating_toolbar_on_leave), cnnwin); g_signal_connect(G_OBJECT(priv->overlay_ftb_overlay), "scroll-event", G_CALLBACK(rcw_floating_toolbar_on_scroll), cnnwin); gtk_widget_add_events( GTK_WIDGET(priv->overlay_ftb_overlay), |