[geary] Set background color of embeded composer: Bug #730491



commit e4e3dc41db2d4c9124c632949612307830c08337
Author: Robert Schroll <rschroll gmail com>
Date:   Thu May 29 00:05:06 2014 -0400

    Set background color of embeded composer: Bug #730491
    
    ComposerEmbed is switched to an EventBox so that it has a Gdk.Window
    whose background can be set.

 src/client/composer/composer-embed.vala |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)
---
diff --git a/src/client/composer/composer-embed.vala b/src/client/composer/composer-embed.vala
index 2f143ff..e195d4d 100644
--- a/src/client/composer/composer-embed.vala
+++ b/src/client/composer/composer-embed.vala
@@ -4,7 +4,7 @@
  * (version 2.1 or later).  See the COPYING file in this distribution.
  */
 
-public class ComposerEmbed : Gtk.Bin, ComposerContainer {
+public class ComposerEmbed : Gtk.EventBox, ComposerContainer {
     
     private ComposerWidget composer;
     private ConversationViewer conversation_viewer;
@@ -49,6 +49,7 @@ public class ComposerEmbed : Gtk.Bin, ComposerContainer {
         }
         
         add(composer);
+        realize.connect(update_style);
         composer.editor.focus_in_event.connect(on_focus_in);
         composer.editor.focus_out_event.connect(on_focus_out);
         conversation_viewer.compose_overlay.add_overlay(this);
@@ -56,6 +57,19 @@ public class ComposerEmbed : Gtk.Bin, ComposerContainer {
         present();
     }
     
+    private void update_style() {
+        Gdk.RGBA window_background = top_window.get_style_context()
+            .get_background_color(Gtk.StateFlags.NORMAL);
+        Gdk.RGBA background = get_style_context().get_background_color(Gtk.StateFlags.NORMAL);
+        
+        if (background == window_background)
+            return;
+        
+        get_style_context().changed.disconnect(update_style);
+        override_background_color(Gtk.StateFlags.NORMAL, window_background);
+        get_style_context().changed.connect(update_style);
+    }
+    
     public void on_detach() {
         composer.state = ComposerWidget.ComposerState.DETACHED;
         if (composer.editor.has_focus)


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