[geary] Set background of the URL overlay in the composer



commit 17c32870389efdeed863eaba8ef9fa5afe5d8169
Author: Robert Schroll <rschroll gmail com>
Date:   Mon May 19 18:15:13 2014 -0700

    Set background of the URL overlay in the composer
    
    This is based on the code currently in the conversation viewer.

 src/client/composer/composer-widget.vala |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/src/client/composer/composer-widget.vala b/src/client/composer/composer-widget.vala
index 2c2327d..77f8991 100644
--- a/src/client/composer/composer-widget.vala
+++ b/src/client/composer/composer-widget.vala
@@ -341,6 +341,7 @@ public class ComposerWidget : Gtk.EventBox {
         message_overlay_label.ellipsize = Pango.EllipsizeMode.MIDDLE;
         message_overlay_label.halign = Gtk.Align.START;
         message_overlay_label.valign = Gtk.Align.END;
+        message_overlay_label.realize.connect(on_message_overlay_label_realize);
         message_overlay.add_overlay(message_overlay_label);
         
         subject_entry.changed.connect(on_subject_changed);
@@ -1551,6 +1552,30 @@ public class ComposerWidget : Gtk.EventBox {
         }
     }
     
+    private void update_message_overlay_label_style() {
+        Gdk.RGBA window_background = container.top_window.get_style_context()
+            .get_background_color(Gtk.StateFlags.NORMAL);
+        Gdk.RGBA label_background = message_overlay_label.get_style_context()
+            .get_background_color(Gtk.StateFlags.NORMAL);
+        
+        if (label_background == window_background)
+            return;
+        
+        message_overlay_label.get_style_context().changed.disconnect(
+            on_message_overlay_label_style_changed);
+        message_overlay_label.override_background_color(Gtk.StateFlags.NORMAL, window_background);
+        message_overlay_label.get_style_context().changed.connect(
+            on_message_overlay_label_style_changed);
+    }
+    
+    private void on_message_overlay_label_realize() {
+        update_message_overlay_label_style();
+    }
+    
+    private void on_message_overlay_label_style_changed() {
+        update_message_overlay_label_style();
+    }
+    
     private void on_spell_check_changed() {
         editor.settings.enable_spell_checking = GearyApplication.instance.config.spell_check;
     }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]