[PATCH virt-viewer] Grab the focus when showing the display

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Override the grab_focus() method in the display class. Since both VNC
and Spice displays are the direct child, let's just grab the child.
It can be that this behaviour need to be overriden if Spice or VNC
display become more complex (using sub-childs or different objects)
---
 src/virt-viewer-display.c  |   11 +++++++++++
 src/virt-viewer-notebook.c |    1 +
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/src/virt-viewer-display.c b/src/virt-viewer-display.c
index aa91151..665c4f7 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);
 static void set_zoom_level(VirtViewerDisplay *display, guint zoom);
 
 G_DEFINE_ABSTRACT_TYPE(VirtViewerDisplay, virt_viewer_display, GTK_TYPE_BIN)
@@ -94,6 +95,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;
 
 	class->set_zoom_level = set_zoom_level;
 
@@ -307,6 +309,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));
-- 
1.7.7.6


[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux