summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/virt-viewer-display.c11
-rw-r--r--src/virt-viewer-notebook.c1
2 files changed, 12 insertions, 0 deletions
diff --git a/src/virt-viewer-display.c b/src/virt-viewer-display.c
index 8634f81..7f821e5 100644
--- a/src/virt-viewer-display.c
+++ b/src/virt-viewer-display.c
@@ -63,6 +63,7 @@ static void virt_viewer_display_get_property(GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec);
+static void virt_viewer_display_grab_focus(GtkWidget *widget);
G_DEFINE_ABSTRACT_TYPE(VirtViewerDisplay, virt_viewer_display, GTK_TYPE_BIN)
@@ -93,6 +94,7 @@ virt_viewer_display_class_init(VirtViewerDisplayClass *class)
widget_class->size_request = virt_viewer_display_size_request;
#endif
widget_class->size_allocate = virt_viewer_display_size_allocate;
+ widget_class->grab_focus = virt_viewer_display_grab_focus;
g_object_class_install_property(object_class,
PROP_DESKTOP_WIDTH,
@@ -288,6 +290,15 @@ virt_viewer_display_get_property(GObject *object,
}
+static void
+virt_viewer_display_grab_focus(GtkWidget *widget)
+{
+ GtkBin *bin = GTK_BIN(widget);
+
+ gtk_widget_grab_focus(gtk_bin_get_child(bin));
+}
+
+
static gboolean
virt_viewer_display_idle(gpointer opaque)
{
diff --git a/src/virt-viewer-notebook.c b/src/virt-viewer-notebook.c
index fa28593..b4e09ec 100644
--- a/src/virt-viewer-notebook.c
+++ b/src/virt-viewer-notebook.c
@@ -127,6 +127,7 @@ virt_viewer_notebook_show_display(VirtViewerNotebook *self)
display = gtk_notebook_get_nth_page(GTK_NOTEBOOK(self), 1);
g_warn_if_fail(display != NULL);
+ gtk_widget_grab_focus(display);
gtk_notebook_set_current_page(GTK_NOTEBOOK(self), 1);
gtk_widget_show_all(GTK_WIDGET(self));