[gnome-contacts] Fix 100% cpu use redrawing
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-contacts] Fix 100% cpu use redrawing
- Date: Thu, 25 Aug 2011 11:40:16 +0000 (UTC)
commit fb1071edf64070fbcfc2c773efff1794a79f55b1
Author: Alexander Larsson <alexl redhat com>
Date: Thu Aug 25 13:39:20 2011 +0200
Fix 100% cpu use redrawing
changing the style from draw caused a loop in the expose handling.
src/contacts-menu-button.vala | 14 ++++++--------
1 files changed, 6 insertions(+), 8 deletions(-)
---
diff --git a/src/contacts-menu-button.vala b/src/contacts-menu-button.vala
index cf4e401..5485dd7 100644
--- a/src/contacts-menu-button.vala
+++ b/src/contacts-menu-button.vala
@@ -98,12 +98,18 @@ public class Contacts.MenuButton : ToggleButton {
}
public override void toggled () {
+ var context = get_style_context ();
if (get_active ()) {
if (!popup_in_progress)
menu.popup (null, null, menu_position, 1, Gtk.get_current_event_time ());
+ context.add_class (STYLE_CLASS_MENUBAR);
+ context.add_class (STYLE_CLASS_MENUITEM);
} else {
+ context.remove_class (STYLE_CLASS_MENUBAR);
+ context.remove_class (STYLE_CLASS_MENUITEM);
menu.popdown ();
}
+ reset_style ();
}
public override bool button_press_event (Gdk.EventButton event) {
@@ -168,15 +174,7 @@ public class Contacts.MenuButton : ToggleButton {
}
public override bool draw (Cairo.Context cr) {
- var context = get_style_context ();
- context.save ();
- if (get_active ()) {
- context.add_class (STYLE_CLASS_MENUBAR);
- context.add_class (STYLE_CLASS_MENUITEM);
- }
- reset_style ();
base.draw (cr);
- context.restore ();
return false;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]