Replace "expose-event" signal by a new "draw" signal
GtkWidget "expose-event" signal has been replaced by a new "draw" signal [1]. The context is already clipped [2], so do not base it on the values returned by get_allocation like before. [1] http://developer.gnome.org/gtk3/3.0/ch25s02.html#id1467092 [2] http://developer.gnome.org/gtk3/3.0/GtkWidget.html#GtkWidget-draw Signed-off-by: Simon Schampijer <simon@schampijer.de> [squashed with a patch by Benjamin Berg <benjamin@sipsolutions.net>; removed useless additions] Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
This commit is contained in:
parent
157124af5b
commit
1b9af6f6d5
@ -351,10 +351,9 @@ class _TimeoutIcon(Gtk.Alignment):
|
|||||||
self._text.set_attributes(attrlist)
|
self._text.set_attributes(attrlist)
|
||||||
self.add(self._text)
|
self.add(self._text)
|
||||||
self._text.show()
|
self._text.show()
|
||||||
self.connect("expose_event", self.__expose_cb)
|
self.connect('draw', self.__draw_cb)
|
||||||
|
|
||||||
def __expose_cb(self, widget, event):
|
def __draw_cb(self, widget, context):
|
||||||
context = widget.get_window().cairo_create()
|
|
||||||
self._draw(context)
|
self._draw(context)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@ -364,13 +363,15 @@ class _TimeoutIcon(Gtk.Alignment):
|
|||||||
self._text.size_request()
|
self._text.size_request()
|
||||||
|
|
||||||
def _draw(self, context):
|
def _draw(self, context):
|
||||||
rect = self.get_allocation()
|
w = self.get_allocated_width()
|
||||||
x = rect.x + rect.width * 0.5
|
h = self.get_allocated_height()
|
||||||
y = rect.y + rect.height * 0.5
|
x = w * 0.5
|
||||||
radius = rect.width / 2
|
y = h * 0.5
|
||||||
|
radius = w / 2
|
||||||
context.arc(x, y, radius, 0, 2 * math.pi)
|
context.arc(x, y, radius, 0, 2 * math.pi)
|
||||||
widget_style = self.get_style()
|
widget_style = self.get_style()
|
||||||
context.set_source_color(widget_style.bg[self.get_state()])
|
color = widget_style.bg[self.get_state()]
|
||||||
|
context.set_source_rgb(color.red, color.green, color.blue)
|
||||||
context.fill_preserve()
|
context.fill_preserve()
|
||||||
|
|
||||||
def set_text(self, text):
|
def set_text(self, text):
|
||||||
|
@ -385,7 +385,7 @@ class Icon(Gtk.Image):
|
|||||||
width = 0
|
width = 0
|
||||||
return (width, width)
|
return (width, width)
|
||||||
|
|
||||||
def do_expose_event(self, event):
|
def do_draw(self, cr):
|
||||||
"""
|
"""
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
@ -414,8 +414,6 @@ class Icon(Gtk.Image):
|
|||||||
y = math.floor(ypad +
|
y = math.floor(ypad +
|
||||||
(allocation.height - requisition.height) * yalign)
|
(allocation.height - requisition.height) * yalign)
|
||||||
|
|
||||||
cr = self.get_window().cairo_create()
|
|
||||||
|
|
||||||
if self._scale != 1.0:
|
if self._scale != 1.0:
|
||||||
cr.scale(self._scale, self._scale)
|
cr.scale(self._scale, self._scale)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user