[et-mgmt-tools] [PATCH] Send [Ctrl+Alt+Del] and [F8]
Masayuki Sunou
fj1826dm at aa.jp.fujitsu.com
Thu Apr 19 09:13:30 UTC 2007
Hi
Virt-manager does not have a function to send [Ctrl+Alt+Del] and [F8]
which general VNC Viewer has.
Therefore, I add a function to send [Ctrl+Alt+Del] and [F8] to
virt-manager.
When a user passes plural VNC, I think that this function is useful.
Signed-off-by: Masayuki Sunou <fj1826dm at aa.jp.fujitsu.com>
Thanks,
Masayuki Sunou.
-------------------------------------------------------------------------------
diff -r 053429952481 src/virtManager/console.py
--- a/src/virtManager/console.py Mon Apr 16 11:31:48 2007 -0400
+++ b/src/virtManager/console.py Thu Apr 19 11:26:59 2007 +0900
@@ -92,6 +92,8 @@ class vmmConsole(gobject.GObject):
"on_menu_view_details_activate": self.control_vm_details,
"on_menu_view_fullscreen_activate": self.toggle_fullscreen,
"on_menu_view_toolbar_activate": self.toggle_toolbar,
+ "on_menu-view-send-cad_activate": self.send_ctrl_alt_del,
+ "on_menu-view-send-f8_activate": self.send_f8,
"on_menu_vm_close_activate": self.close,
@@ -271,14 +273,20 @@ class vmmConsole(gobject.GObject):
def activate_unavailable_page(self):
self.window.get_widget("console-pages").set_current_page(0)
self.window.get_widget("menu-vm-screenshot").set_sensitive(False)
+ self.window.get_widget("menu-view-send-cad").set_sensitive(False)
+ self.window.get_widget("menu-view-send-f8").set_sensitive(False)
def activate_screenshot_page(self):
self.window.get_widget("console-pages").set_current_page(1)
self.window.get_widget("menu-vm-screenshot").set_sensitive(True)
+ self.window.get_widget("menu-view-send-cad").set_sensitive(False)
+ self.window.get_widget("menu-view-send-f8").set_sensitive(False)
def activate_auth_page(self):
pw = self.config.get_console_password(self.vm)
self.window.get_widget("menu-vm-screenshot").set_sensitive(False)
+ self.window.get_widget("menu-view-send-cad").set_sensitive(False)
+ self.window.get_widget("menu-view-send-f8").set_sensitive(False)
self.window.get_widget("console-auth-password").set_text(pw)
self.window.get_widget("console-auth-password").grab_focus()
if self.config.has_keyring():
@@ -294,6 +302,8 @@ class vmmConsole(gobject.GObject):
def activate_viewer_page(self):
self.window.get_widget("console-pages").set_current_page(3)
self.window.get_widget("menu-vm-screenshot").set_sensitive(True)
+ self.window.get_widget("menu-view-send-cad").set_sensitive(True)
+ self.window.get_widget("menu-view-send-f8").set_sensitive(True)
self.vncViewer.grab_focus()
def control_vm_screenshot(self, src):
@@ -447,6 +457,8 @@ class vmmConsole(gobject.GObject):
if status in [ libvirt.VIR_DOMAIN_SHUTOFF ,libvirt.VIR_DOMAIN_CRASHED ] or vm.is_management_domain():
self.window.get_widget("console-pages").set_current_page(0)
+ self.window.get_widget("menu-view-send-cad").set_sensitive(False)
+ self.window.get_widget("menu-view-send-f8").set_sensitive(False)
else:
if status == libvirt.VIR_DOMAIN_PAUSED:
screenshot = None
@@ -486,4 +498,10 @@ class vmmConsole(gobject.GObject):
self.ignorePause = False
self.ignorePause = False
+ def send_ctrl_alt_del(self, src):
+ self.vncViewer.send_ctrl_alt_del()
+
+ def send_f8(self, src):
+ self.vncViewer.send_f8()
+
gobject.type_register(vmmConsole)
diff -r 053429952481 src/vmm-console.glade
--- a/src/vmm-console.glade Mon Apr 16 11:31:48 2007 -0400
+++ b/src/vmm-console.glade Thu Apr 19 09:12:27 2007 +0900
@@ -162,6 +162,30 @@
<child>
<widget class="GtkSeparatorMenuItem" id="separator5">
+ <property name="visible">True</property>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkMenuItem" id="menu-view-send-cad">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Send Ctrl+Alt+Del</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="on_menu-view-send-cad_activate" last_modification_time="Tue, 17 Apr 2007 08:28:05 GMT"/>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkMenuItem" id="menu-view-send-f8">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Send F8</property>
+ <property name="use_underline">True</property>
+ <signal name="activate" handler="on_menu-view-send-f8_activate" last_modification_time="Thu, 19 Apr 2007 00:12:14 GMT"/>
+ </widget>
+ </child>
+
+ <child>
+ <widget class="GtkSeparatorMenuItem" id="separator8">
<property name="visible">True</property>
</widget>
</child>
diff -r 053429952481 src/vncViewer/vnc.py
--- a/src/vncViewer/vnc.py Mon Apr 16 11:31:48 2007 -0400
+++ b/src/vncViewer/vnc.py Thu Apr 19 11:27:41 2007 +0900
@@ -598,6 +598,20 @@ class GRFBViewer(gtk.DrawingArea):
gc = self.window.new_gc()
self.window.draw_drawable(gc, self.fb.get_pixmap(), event.area.x, event.area.y, event.area.x, event.area.y, event.area.width, event.area.height)
+ def send_ctrl_alt_del(self):
+ if self.client != None:
+ self.client.update_key(1, gtk.gdk.keyval_from_name("Control_L"))
+ self.client.update_key(1, gtk.gdk.keyval_from_name("Alt_L"))
+ self.client.update_key(1, gtk.gdk.keyval_from_name("Delete"))
+ self.client.update_key(0, gtk.gdk.keyval_from_name("Control_L"))
+ self.client.update_key(0, gtk.gdk.keyval_from_name("Alt_L"))
+ self.client.update_key(0, gtk.gdk.keyval_from_name("Delete"))
+
+ def send_f8(self):
+ if self.client != None:
+ self.client.update_key(1, gtk.gdk.keyval_from_name("F8"))
+ self.client.update_key(0, gtk.gdk.keyval_from_name("F8"))
+
gobject.type_register(GRFBViewer)
More information about the et-mgmt-tools
mailing list