diff options
Diffstat (limited to 'gnome-extra/hamster-applet/files/hamster-applet-2.26.2-pango-layout.patch')
-rw-r--r-- | gnome-extra/hamster-applet/files/hamster-applet-2.26.2-pango-layout.patch | 242 |
1 files changed, 0 insertions, 242 deletions
diff --git a/gnome-extra/hamster-applet/files/hamster-applet-2.26.2-pango-layout.patch b/gnome-extra/hamster-applet/files/hamster-applet-2.26.2-pango-layout.patch deleted file mode 100644 index 03a72c68254a..000000000000 --- a/gnome-extra/hamster-applet/files/hamster-applet-2.26.2-pango-layout.patch +++ /dev/null @@ -1,242 +0,0 @@ -From 47ca98014276fe73314abd10366f1e9b6c835650 Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Toms=20Bau=C4=A3is?= <toms.baugis@gmail.com> -Date: Thu, 11 Jun 2009 13:38:42 +0100 -Subject: [PATCH] use layout to set text instead of the cairo not suggested show_text. fixes bug 585420 - ---- - hamster/charting.py | 111 +++++++++++++++++++++++++++++++-------------------- - 1 files changed, 68 insertions(+), 43 deletions(-) - -diff --git a/hamster/charting.py b/hamster/charting.py -index 657fad6..49b4608 100644 ---- a/hamster/charting.py -+++ b/hamster/charting.py -@@ -53,7 +53,7 @@ Example: - - import gtk - import gobject --import cairo -+import cairo, pango - import copy - import math - -@@ -139,13 +139,19 @@ class Chart(gtk.DrawingArea): - self.animation_timeout = 20 #in miliseconds - - self.current_frame = self.animation_frames -- self.freeze_animation = False -+ self.freeze_animation = False -+ self.layout = None #pango text layout - - def _expose(self, widget, event): # expose is when drawing's going on - context = widget.window.cairo_create() - context.rectangle(event.area.x, event.area.y, event.area.width, event.area.height) - context.clip() - -+ self.layout = context.create_layout() -+ default_font = pango.FontDescription(gtk.Style().font_desc.to_string()) -+ default_font.set_size(8 * pango.SCALE) -+ self.layout.set_font_description(default_font) -+ - if self.orient_vertical: - # for simple bars figure, when there is way too much data for bars - # and go to lines (yay!) -@@ -417,21 +423,27 @@ class Chart(gtk.DrawingArea): - - # scale labels - set_color_gdk(context, self.style.fg[gtk.STATE_NORMAL]); -+ self.layout.set_width(-1) -+ - for i in range(records): -- extent = context.text_extents(data[i]["label"]) #x, y, width, height -- context.move_to(graph_x + (step * i) + (step - extent[2]) / 2.0, -- graph_y + graph_height + 13) -- context.show_text(data[i]["label"]) -+ self.layout.set_text(data[i]["label"]) -+ label_w, label_h = self.layout.get_pixel_size() -+ context.move_to(graph_x + (step * i) + (step - label_w) / 2.0, -+ graph_y + graph_height + 2) -+ -+ self.layout.set_text(data[i]["label"]) -+ -+ context.show_layout(self.layout) - - # values for max min and average - max_label = "%d" % self.max - if self.there_are_floats: - max_label = "%.1f" % self.max - -- extent = context.text_extents(max_label) #x, y, width, height -- -- context.move_to(graph_x - extent[2] - 16, rect.y + 10) -- context.show_text(max_label) -+ self.layout.set_text(max_label) -+ label_w, label_h = self.layout.get_pixel_size() -+ context.move_to(graph_x - label_w - 16, rect.y) -+ context.show_layout(self.layout) - - - #flip the matrix vertically, so we do not have to think upside-down -@@ -474,40 +486,45 @@ class Chart(gtk.DrawingArea): - label = "%.1f" % data[i]["value"] - else: - label = "%d" % data[i]["value"] -- extent = context.text_extents(label) #x, y, width, height -+ -+ self.layout.set_text(label) -+ label_w, label_h = self.layout.get_pixel_size() - - bar_size = graph_height * data[i]["factor"] -- - if self.animate: - bar_size = bar_size * 0.8 - else: - bar_size = bar_size * 0.9 - -- vertical_offset = (step - extent[2]) / 2.0 -+ vertical_offset = (step - label_h) / 2.0 - -- if self.animate or bar_size - vertical_offset < extent[3]: -- graph_y = -bar_size - 3 -+ if self.animate or bar_size - vertical_offset < label_h: -+ graph_y = -bar_size - label_h - else: -- graph_y = -bar_size + extent[3] + vertical_offset -+ graph_y = - bar_size - label_h + vertical_offset + 3 - -- context.move_to(graph_x + (step * i) + (step - extent[2]) / 2.0, -+ context.move_to(graph_x + (step * i) + (step - label_w) / 2.0, - graph_y) -- context.show_text(label) -+ context.show_layout(self.layout) - - - def _ellipsize_text (self, context, text, width): - """try to constrain text into pixels by ellipsizing end - TODO - check if cairo maybe has ability to ellipsize automatically - """ -- extent = context.text_extents(text) #x, y, width, height -- if extent[2] <= width: -+ self.layout.set_text(text) -+ label_w, label_h = self.layout.get_pixel_size() -+ -+ if label_w <= width: - return text - - res = text - while res: - res = res[:-1] -- extent = context.text_extents(res + "…") #x, y, width, height -- if extent[2] <= width: -+ -+ self.layout.set_text(text + "…") -+ label_w, label_h = self.layout.get_pixel_size() -+ if label_w <= width: - return res + "…" - - return text # if can't fit - return what we have -@@ -523,8 +540,9 @@ class Chart(gtk.DrawingArea): - else: - max_extent = 0 - for i in range(records): -- extent = context.text_extents(data[i]["label"]) #x, y, width, height -- max_extent = max(max_extent, extent[2] + 8) -+ self.layout.set_text(data[i]["label"]) -+ label_w, label_h = self.layout.get_pixel_size() -+ max_extent = max(max_extent, label_w + 8) - - - #push graph to the right, so it doesn't overlap, and add little padding aswell -@@ -551,15 +569,18 @@ class Chart(gtk.DrawingArea): - ellipsize_label = lambda(text): 3 - - # now let's put scale labels and align them right -- set_color_gdk(context, self.style.fg[gtk.STATE_NORMAL]); -+ set_color_gdk(context, self.style.fg[gtk.STATE_NORMAL]) - for i in range(records): - label = data[i]["label"] - if self.legend_width: - label = self._ellipsize_text(context, label, max_extent - 8) -- extent = context.text_extents(label) #x, y, width, height -+ -+ self.layout.set_text(label) -+ label_w, label_h = self.layout.get_pixel_size() - -- context.move_to(rect.x + max_extent - extent[2] - 8, rect.y + (step * i) + (step + extent[3]) / 2) -- context.show_text(label) -+ context.move_to(rect.x + max_extent - label_w - 8, -+ rect.y + (step * i) + (step - label_h) / 2) -+ context.show_layout(self.layout) - - context.stroke() - -@@ -624,18 +645,21 @@ class Chart(gtk.DrawingArea): - label = "%.1f" % data[i]["value"] - else: - label = "%d" % data[i]["value"] -- extent = context.text_extents(label) #x, y, width, height -+ -+ self.layout.set_text(label) -+ label_w, label_h = self.layout.get_pixel_size() - - bar_size = max_size * data[i]["factor"] -- horizontal_offset = (step + extent[3]) / 2.0 - extent[3] -+ horizontal_offset = (step - label_h) / 2.0 - -- if bar_size - horizontal_offset < extent[2]: -+ if bar_size - horizontal_offset < label_w: - label_x = graph_x + bar_size + horizontal_offset - else: -- label_x = graph_x + bar_size - extent[2] - horizontal_offset -+ label_x = graph_x + bar_size - label_w - horizontal_offset - -- context.move_to(label_x, graph_y + (step * i) + (step + extent[3]) / 2.0) -- context.show_text(label) -+ context.move_to(label_x, -+ graph_y + (step * i) + (step - label_h) / 2.0) -+ context.show_layout(self.layout) - - else: - # values for max min and average -@@ -645,7 +669,8 @@ class Chart(gtk.DrawingArea): - else: - max_label = "%d" % self.max - -- context.show_text(max_label) -+ self.layout.set_text(max_label) -+ context.show_layout(self.layout) - - - def _area_chart(self, context): -@@ -717,20 +742,20 @@ class Chart(gtk.DrawingArea): - set_color_gdk(context, self.style.fg[gtk.STATE_NORMAL]); - for i in range(records): - if i % 5 == 0: -- context.move_to(graph_x + 5 + (step * i), graph_y + graph_height + 13) -- context.show_text(data[i]["label"]) -+ context.move_to(graph_x + 5 + (step * i), graph_y + graph_height + 3) -+ self.layout.set_text(data[i]["label"]) -+ context.show_layout(self.layout) - - # values for max min and average - if self.there_are_floats: - max_label = "%.1f" % self.max - else: - max_label = "%d" % self.max -- -- extent = context.text_extents(max_label) #x, y, width, height -- -- context.move_to(graph_x - extent[2] - 16, rect.y + 10) -- context.show_text(max_label) -- -+ -+ self.layout.set_text(max_label) -+ label_w, label_h = self.layout.get_pixel_size() -+ context.move_to(graph_x - label_w - 16, rect.y) -+ context.show_layout(self.layout) - - context.rectangle(graph_x, graph_y, graph_width, graph_height + 1) - context.clip() --- -1.6.3.1 - |