summaryrefslogtreecommitdiff
path: root/mate-panel/panel-util.h
diff options
context:
space:
mode:
authorSamuel Thibault <[email protected]>2018-08-30 18:11:29 +0200
committerlukefromdc <[email protected]>2018-09-26 00:18:03 -0400
commitf0f4c5e1217eefd46edf9f98633fb32967c67461 (patch)
treecf66d12ba747544370762d077417409a2064a01d /mate-panel/panel-util.h
parent4c30c52e4857da9d23e284aa75b12c8ab62e2ee4 (diff)
downloadmate-panel-f0f4c5e1217eefd46edf9f98633fb32967c67461.tar.bz2
mate-panel-f0f4c5e1217eefd46edf9f98633fb32967c67461.tar.xz
menu-bar: transfer focus correctly on alt-F1
The background is in https://gitlab.gnome.org/GNOME/gtk/issues/85 . One of the conclusions, in https://gitlab.gnome.org/GNOME/gtk/issues/85#note_264804 , is that mate-panel needs to properly transfer focus on alt-F1 keyboard shortcut. It used to work only by luck before, only because gtk used to deactivate itself during a keyboard grab. But as discussed in https://gitlab.gnome.org/GNOME/gtk/issues/85 that behavior poses accessibility feedback issues, is not coherent, and keyboard grab feedback will not be available in wayland anyway. Thus @ebassi saying in https://gitlab.gnome.org/GNOME/gtk/issues/85#note_264804 that not transferring focus properly is the actual bug. This change explictly switches to the menu bar after saving which X Window had the focus, and on menu bar deactivation restores focus to that X Window. Fixes #851
Diffstat (limited to 'mate-panel/panel-util.h')
-rw-r--r--mate-panel/panel-util.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/mate-panel/panel-util.h b/mate-panel/panel-util.h
index 8d9fb2ef..fb1303a3 100644
--- a/mate-panel/panel-util.h
+++ b/mate-panel/panel-util.h
@@ -3,6 +3,7 @@
#include <gio/gio.h>
#include <gtk/gtk.h>
+#include <X11/Xlib.h>
#ifdef __cplusplus
extern "C" {
@@ -66,6 +67,10 @@ void panel_util_set_tooltip_text (GtkWidget *widget,
GFile *panel_util_get_file_optional_homedir (const char *location);
+Window panel_util_get_current_active_window (GtkWidget *toplevel);
+
+void panel_util_set_current_active_window (GtkWidget *toplevel,
+ Window window);
#ifdef __cplusplus
}
#endif