Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiovanni Panozzo <giovanni@panozzo.it>2022-11-08 00:58:20 +0300
committerGiovanni Panozzo <giovanni@panozzo.it>2022-11-08 01:10:09 +0300
commit6f52ca0db41af9cfb10656af9d4f9b03d94c24c0 (patch)
tree93660f019b150584678625a0c98cf8c2d4eb9725
parente435939403baa90e7478c7e5527a8fdb37396b2e (diff)
Fix floating toolbar not disappearing when in fullscreen and keyboard grabbed, possible fix for issue #2710
-rw-r--r--src/rcw.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/src/rcw.c b/src/rcw.c
index 57dc16423..45053412e 100644
--- a/src/rcw.c
+++ b/src/rcw.c
@@ -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),