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
path: root/src
diff options
context:
space:
mode:
authorGiovanni Panozzo <giovanni@panozzo.it>2022-10-27 15:53:53 +0300
committerGiovanni Panozzo <giovanni@panozzo.it>2022-10-27 23:23:32 +0300
commit15148bfef09542d3f85980c6b83670dceb718b74 (patch)
tree910284555edd6a0bfc2704128592b2f84806d81c /src
parentbca0fcf5b9eb5dc37a6d85c7be76d9f329cdae53 (diff)
Ehnance keyboard ungrab debugging
Diffstat (limited to 'src')
-rw-r--r--src/rcw.c97
1 files changed, 41 insertions, 56 deletions
diff --git a/src/rcw.c b/src/rcw.c
index 28e4e5f37..4099ea3a9 100644
--- a/src/rcw.c
+++ b/src/rcw.c
@@ -2743,31 +2743,65 @@ static gboolean rcw_floating_toolbar_on_enter(GtkWidget *widget, GdkEventCrossin
return TRUE;
}
+#if DEBUG_KB_GRABBING
+static void print_crossing_event(GdkEventCrossing *event) {
+ printf("DEBUG_KB_GRABBING: --- Crossing event detail: ");
+ switch (event->detail) {
+ case GDK_NOTIFY_ANCESTOR: printf("GDK_NOTIFY_ANCESTOR"); break;
+ case GDK_NOTIFY_VIRTUAL: printf("GDK_NOTIFY_VIRTUAL"); break;
+ case GDK_NOTIFY_NONLINEAR: printf("GDK_NOTIFY_NONLINEAR"); break;
+ case GDK_NOTIFY_NONLINEAR_VIRTUAL: printf("GDK_NOTIFY_NONLINEAR_VIRTUAL"); break;
+ case GDK_NOTIFY_UNKNOWN: printf("GDK_NOTIFY_UNKNOWN"); break;
+ case GDK_NOTIFY_INFERIOR: printf("GDK_NOTIFY_INFERIOR"); break;
+ default: printf("unknown");
+ }
+ printf("\n");
+ printf("DEBUG_KB_GRABBING: --- Crossing event mode=");
+ switch (event->mode) {
+ case GDK_CROSSING_NORMAL: printf("GDK_CROSSING_NORMAL"); break;
+ case GDK_CROSSING_GRAB: printf("GDK_CROSSING_GRAB"); break;
+ case GDK_CROSSING_UNGRAB: printf("GDK_CROSSING_UNGRAB"); break;
+ case GDK_CROSSING_GTK_GRAB: printf("GDK_CROSSING_GTK_GRAB"); break;
+ case GDK_CROSSING_GTK_UNGRAB: printf("GDK_CROSSING_GTK_UNGRAB"); break;
+ case GDK_CROSSING_STATE_CHANGED: printf("GDK_CROSSING_STATE_CHANGED"); break;
+ case GDK_CROSSING_TOUCH_BEGIN: printf("GDK_CROSSING_TOUCH_BEGIN"); break;
+ case GDK_CROSSING_TOUCH_END: printf("GDK_CROSSING_TOUCH_END"); break;
+ case GDK_CROSSING_DEVICE_SWITCH: printf("GDK_CROSSING_DEVICE_SWITCH"); break;
+ default: printf("unknown");
+ }
+ printf("\n");
+}
+#endif
+
static gboolean rcw_on_enter_notify_event(GtkWidget *widget, GdkEventCrossing *event,
gpointer user_data)
{
TRACE_CALL(__func__);
#if DEBUG_KB_GRABBING
printf("DEBUG_KB_GRABBING: enter-notify-event on rcw received\n");
+ print_crossing_event(event);
#endif
return FALSE;
}
+
+
static gboolean rcw_on_leave_notify_event(GtkWidget *widget, GdkEventCrossing *event,
gpointer user_data)
{
TRACE_CALL(__func__);
RemminaConnectionWindow *cnnwin = (RemminaConnectionWindow *)widget;
+#if DEBUG_KB_GRABBING
+ printf("DEBUG_KB_GRABBING: leave-notify-event on rcw received\n");
+ print_crossing_event(event);
+#endif
+
if (cnnwin->priv->delayed_grab_eventsourceid) {
g_source_remove(cnnwin->priv->delayed_grab_eventsourceid);
cnnwin->priv->delayed_grab_eventsourceid = 0;
}
-#if DEBUG_KB_GRABBING
- printf("DEBUG_KB_GRABBING: leave-notify-event on rcw received\n");
-#endif
-
rcw_kp_ungrab(cnnwin);
rcw_pointer_ungrab(cnnwin);
@@ -2781,32 +2815,8 @@ static gboolean rco_leave_protocol_widget(GtkWidget *widget, GdkEventCrossing *e
TRACE_CALL(__func__);
#if DEBUG_KB_GRABBING
- printf("DEBUG_KB_GRABBING: received leave event on RCO. detail=");
- switch (event->detail) {
- case GDK_NOTIFY_ANCESTOR: printf("GDK_NOTIFY_ANCESTOR"); break;
- case GDK_NOTIFY_VIRTUAL: printf("GDK_NOTIFY_VIRTUAL"); break;
- case GDK_NOTIFY_NONLINEAR: printf("GDK_NOTIFY_NONLINEAR"); break;
- case GDK_NOTIFY_NONLINEAR_VIRTUAL: printf("GDK_NOTIFY_NONLINEAR_VIRTUAL"); break;
- case GDK_NOTIFY_UNKNOWN: printf("GDK_NOTIFY_UNKNOWN"); break;
- case GDK_NOTIFY_INFERIOR: printf("GDK_NOTIFY_INFERIOR"); break;
- default: printf("unknown");
- }
- printf("\n");
- printf("DEBUG_KB_GRABBING: leave event mode=");
- switch (event->mode) {
- case GDK_CROSSING_NORMAL: printf("GDK_CROSSING_NORMAL"); break;
- case GDK_CROSSING_GRAB: printf("GDK_CROSSING_GRAB"); break;
- case GDK_CROSSING_UNGRAB: printf("GDK_CROSSING_UNGRAB"); break;
- case GDK_CROSSING_GTK_GRAB: printf("GDK_CROSSING_GTK_GRAB"); break;
- case GDK_CROSSING_GTK_UNGRAB: printf("GDK_CROSSING_GTK_UNGRAB"); break;
- case GDK_CROSSING_STATE_CHANGED: printf("GDK_CROSSING_STATE_CHANGED"); break;
- case GDK_CROSSING_TOUCH_BEGIN: printf("GDK_CROSSING_TOUCH_BEGIN"); break;
- case GDK_CROSSING_TOUCH_END: printf("GDK_CROSSING_TOUCH_END"); break;
- case GDK_CROSSING_DEVICE_SWITCH: printf("GDK_CROSSING_DEVICE_SWITCH"); break;
-
- default: printf("unknown");
- }
- printf("\n");
+ printf("DEBUG_KB_GRABBING: received leave event on RCO.");
+ print_crossing_event(event);
#endif
if (cnnobj->cnnwin->priv->delayed_grab_eventsourceid) {
@@ -2832,32 +2842,7 @@ gboolean rco_enter_protocol_widget(GtkWidget *widget, GdkEventCrossing *event,
#if DEBUG_KB_GRABBING
printf("DEBUG_KB_GRABBING: %s: enter on protocol widget event received\n", __func__);
- printf("DEBUG_KB_GRABBING: enter event detail=");
- switch (event->detail) {
- case GDK_NOTIFY_ANCESTOR: printf("GDK_NOTIFY_ANCESTOR"); break;
- case GDK_NOTIFY_VIRTUAL: printf("GDK_NOTIFY_VIRTUAL"); break;
- case GDK_NOTIFY_NONLINEAR: printf("GDK_NOTIFY_NONLINEAR"); break;
- case GDK_NOTIFY_NONLINEAR_VIRTUAL: printf("GDK_NOTIFY_NONLINEAR_VIRTUAL"); break;
- case GDK_NOTIFY_UNKNOWN: printf("GDK_NOTIFY_UNKNOWN"); break;
- case GDK_NOTIFY_INFERIOR: printf("GDK_NOTIFY_INFERIOR"); break;
- default: printf("unknown");
- }
- printf("\n");
- printf("DEBUG_KB_GRABBING: enter event mode=");
- switch (event->mode) {
- case GDK_CROSSING_NORMAL: printf("GDK_CROSSING_NORMAL"); break;
- case GDK_CROSSING_GRAB: printf("GDK_CROSSING_GRAB"); break;
- case GDK_CROSSING_UNGRAB: printf("GDK_CROSSING_UNGRAB"); break;
- case GDK_CROSSING_GTK_GRAB: printf("GDK_CROSSING_GTK_GRAB"); break;
- case GDK_CROSSING_GTK_UNGRAB: printf("GDK_CROSSING_GTK_UNGRAB"); break;
- case GDK_CROSSING_STATE_CHANGED: printf("GDK_CROSSING_STATE_CHANGED"); break;
- case GDK_CROSSING_TOUCH_BEGIN: printf("GDK_CROSSING_TOUCH_BEGIN"); break;
- case GDK_CROSSING_TOUCH_END: printf("GDK_CROSSING_TOUCH_END"); break;
- case GDK_CROSSING_DEVICE_SWITCH: printf("GDK_CROSSING_DEVICE_SWITCH"); break;
-
- default: printf("unknown");
- }
- printf("\n");
+ print_crossing_event(event);
#endif
RemminaConnectionWindowPriv *priv = cnnobj->cnnwin->priv;