fix the godawful accelerator pass-through option. Hopefully SCT will stop throwing chairs at my application...
This commit is contained in:
parent
706badc4e9
commit
bfc4bf69b5
|
@ -8173,6 +8173,33 @@ TB</property>
|
|||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="create-host-memory">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">2 GB</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkAlignment" id="alignment124">
|
||||
<property name="visible">True</property>
|
||||
|
@ -8281,33 +8308,6 @@ TB</property>
|
|||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="create-host-memory">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">2 GB</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">3</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="right_attach">3</property>
|
||||
<property name="top_attach">2</property>
|
||||
<property name="bottom_attach">3</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
|
|
|
@ -40,15 +40,14 @@ class vmmConsole(gobject.GObject):
|
|||
self.window = gtk.glade.XML(config.get_glade_file(), "vmm-console")
|
||||
self.config = config
|
||||
self.vm = vm
|
||||
|
||||
|
||||
topwin = self.window.get_widget("vmm-console")
|
||||
topwin.hide()
|
||||
topwin.set_title(vm.get_name() + " " + topwin.get_title())
|
||||
|
||||
self.window.get_widget("control-shutdown").set_icon_widget(gtk.Image())
|
||||
self.window.get_widget("control-shutdown").get_icon_widget().set_from_file(config.get_icon_dir() + "/icon_shutdown.png")
|
||||
|
||||
self.vncViewer = GRFBViewer(autograbkey=True)
|
||||
self.vncViewer = GRFBViewer(topwin, autograbkey=True)
|
||||
self.window.get_widget("console-vnc-align").add(self.vncViewer)
|
||||
self.vncViewer.connect("size-request", self.autosize)
|
||||
self.vncViewer.show()
|
||||
|
|
|
@ -177,7 +177,7 @@ class GRFBViewer(gtk.DrawingArea):
|
|||
"disconnected": (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, [])
|
||||
}
|
||||
|
||||
def __init__(self, autograbkey=False):
|
||||
def __init__(self, topwin, autograbkey=False):
|
||||
gtk.DrawingArea.__init__(self)
|
||||
|
||||
self.fb = GRFBFrameBuffer(self)
|
||||
|
@ -185,6 +185,8 @@ class GRFBViewer(gtk.DrawingArea):
|
|||
self.authenticated = False
|
||||
self.needpw = True
|
||||
self.autograbkey = autograbkey
|
||||
self.topwin = topwin
|
||||
self.accel_groups = gtk.accel_groups_from_object(topwin)
|
||||
self.preferred_encoding = (rfb.ENCODING_RAW, rfb.ENCODING_DESKTOP_RESIZE)
|
||||
# Current impl of draw_solid is *far* too slow to be practical
|
||||
# for Hextile which likes lots of 1x1 pixels solid rectangles
|
||||
|
@ -381,11 +383,15 @@ class GRFBViewer(gtk.DrawingArea):
|
|||
return self.autograbkey
|
||||
|
||||
def grab_keyboard(self):
|
||||
gtk.gdk.keyboard_grab(self.window, 1, long(0))
|
||||
gtk.gdk.keyboard_grab(self.window, False, long(0))
|
||||
for g in self.accel_groups:
|
||||
self.topwin.remove_accel_group(g)
|
||||
self.grabbedKeyboard = True
|
||||
|
||||
def ungrab_keyboard(self):
|
||||
gtk.gdk.keyboard_ungrab()
|
||||
for g in self.accel_groups:
|
||||
self.topwin.add_accel_group(g)
|
||||
self.grabbedKeyboard = False
|
||||
|
||||
def enter_notify(self, win, event):
|
||||
|
@ -524,7 +530,7 @@ def main():
|
|||
vp = gtk.Viewport()
|
||||
pane.add(vp)
|
||||
|
||||
vnc = GRFBViewer(autograbkey=True)
|
||||
vnc = GRFBViewer(win, autograbkey=True)
|
||||
vp.add(vnc)
|
||||
|
||||
win.show_all()
|
||||
|
|
Loading…
Reference in New Issue