THIS IS AN AUTOMATED MESSAGE, DO NOT REPLY. The following task has a new comment added:
FS#1296 - Updated signal causes total relayout User who did this - Uli Schlachter (psychon) ---------- Sorry for spamming. I tested a 45 degree rotation and quite some code broke. Here is the code for the rotation: local custom = base.make_widget() function custom:fit(width, height) return width, height end function custom:draw() end custom.before_draw_children = custom.draw custom.after_draw_children = custom.draw function custom:layout() local m = cairo.Matrix.create_translate(30, 30) m:rotate(math.pi / 4) m:translate(0, -30) return { base.place_widget(f, m, 30, 10), } end And here are the needed fixes: function wibox:damage_area(x, y, width, height) local rect = cairo.RectangleInt({ x = math.floor(x), y = math.floor(y), width = math.ceil(width), height = math.ceil(height) }) self._dirty_area:union_rectangle(rect) end function wibox:_widget_needs_redraw(widget_state) -- We have to transform this widget's geometry into global coordinates local m = cairo.Matrix.create_identity() local state = widget_state while state ~= nil do m:multiply(m, state.matrix) state = state.parent end -- XXX: How can this be done nicer? local x1, y1 = m:transform_point(0, 0) local x2, y2 = m:transform_point(0, widget_state.height) local x3, y3 = m:transform_point(widget_state.width, widget_state.height) local x4, y4 = m:transform_point(widget_state.width, 0) local x = math.min(x1, x2, x3, x4) local y = math.min(y1, y2, y3, y4) local width = math.max(x1, x2, x3, x4) - x local height = math.max(y1, y2, y3, y4) - y self:damage_area(x, y, width, height) end ---------- More information can be found at the following URL: https://awesome.naquadah.org/bugs/index.php?do=details&task_id=1296#comment4158 You are receiving this message because you have requested it from the Flyspray bugtracking system. If you did not expect this message or don't want to receive mails in future, you can change your notification settings at the URL shown above. -- To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.