Ensure video is realized before showing live video
This commit is contained in:
parent
748275ca00
commit
7ce21d47bd
@ -148,14 +148,21 @@ class LiveVideoSlot(gtk.EventBox):
|
||||
gtk.EventBox.__init__(self)
|
||||
|
||||
self.imagesink = None
|
||||
self.playa = None
|
||||
self._width = width
|
||||
self._height = height
|
||||
|
||||
self.unset_flags(gtk.DOUBLE_BUFFERED)
|
||||
self.connect('focus-in-event', self.focus_in)
|
||||
self.connect('focus-out-event', self.focus_out)
|
||||
self.connect("button-press-event", self._button_press_event_cb)
|
||||
self.connect("expose-event", self._expose_event_cb)
|
||||
|
||||
self.playa = Glive(self, width, height)
|
||||
self.playa.connect('new-picture', self._new_picture_cb)
|
||||
self.playa.connect('sink', self._new_sink_cb)
|
||||
def _expose_event_cb(self, widget, event):
|
||||
if not self.playa:
|
||||
self.playa = Glive(self, self._width, self._height)
|
||||
self.playa.connect('new-picture', self._new_picture_cb)
|
||||
self.playa.connect('sink', self._new_sink_cb)
|
||||
|
||||
def _new_picture_cb(self, playa, pixbuf):
|
||||
self.emit('pixbuf', pixbuf)
|
||||
|
@ -32,8 +32,8 @@ from sugar.graphics import iconbutton
|
||||
|
||||
import colorpicker
|
||||
|
||||
_VIDEO_WIDTH = 320
|
||||
_VIDEO_HEIGHT = 240
|
||||
_VIDEO_WIDTH = 640
|
||||
_VIDEO_HEIGHT = 480
|
||||
|
||||
|
||||
class IntroImage(gtk.EventBox):
|
||||
@ -113,7 +113,7 @@ class VideoBox(hippo.CanvasBox, hippo.CanvasItem):
|
||||
self._video_widget = hippo.CanvasWidget()
|
||||
self._video_widget.props.widget = self._video
|
||||
self.append(self._video_widget)
|
||||
self._video.play()
|
||||
gobject.idle_add(self._video.play)
|
||||
|
||||
self._img = IntroImage()
|
||||
self._img.set_size_request(_VIDEO_WIDTH, _VIDEO_HEIGHT)
|
||||
@ -207,15 +207,15 @@ class IntroBox(hippo.CanvasBox, hippo.CanvasItem):
|
||||
|
||||
self._video_box = VideoBox(xalign=hippo.ALIGNMENT_CENTER,
|
||||
yalign=hippo.ALIGNMENT_START,
|
||||
padding_bottom=units.grid_to_pixels(1))
|
||||
padding_bottom=units.grid_to_pixels(0.5))
|
||||
self.append(self._video_box)
|
||||
|
||||
self._entry_box = EntryBox(xalign=hippo.ALIGNMENT_CENTER,
|
||||
padding_bottom=units.grid_to_pixels(1))
|
||||
padding_bottom=units.grid_to_pixels(0.5))
|
||||
self.append(self._entry_box)
|
||||
|
||||
self._color_box = ColorBox(xalign=hippo.ALIGNMENT_CENTER,
|
||||
padding_bottom=units.grid_to_pixels(1))
|
||||
padding_bottom=units.grid_to_pixels(0.5))
|
||||
self.append(self._color_box)
|
||||
|
||||
self._ok = iconbutton.IconButton(icon_name="theme:stock-forward",
|
||||
@ -252,7 +252,7 @@ class IntroWindow(gtk.Window):
|
||||
self._intro_box.connect('ok', self._ok_cb)
|
||||
self._canvas.set_root(self._intro_box)
|
||||
self.add(self._canvas)
|
||||
self._canvas.show()
|
||||
self._canvas.show_all()
|
||||
|
||||
def _ok_cb(self, widget, pixbuf, name, color):
|
||||
self.hide()
|
||||
|
Loading…
Reference in New Issue
Block a user