[gnome-flashback] common: fix GfPopupWindow style
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-flashback] common: fix GfPopupWindow style
- Date: Tue, 19 Jan 2016 13:19:29 +0000 (UTC)
commit 0172949aa66fb74821f98da4316764ea1aa1442b
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Tue Jan 19 14:14:41 2016 +0200
common: fix GfPopupWindow style
- popup window style fixed for both GTK+ builtin themes.
- better support when using gnome-flashback without compositing
manager.
data/theme/Adwaita/gnome-flashback-dark.css | 11 ++++++
data/theme/Adwaita/gnome-flashback.css | 11 ++++++
data/theme/HighContrast/gnome-flashback-dark.css | 2 +-
data/theme/HighContrast/gnome-flashback.css | 11 ++++++
gnome-flashback/Adwaita.css | 6 ---
gnome-flashback/HighContrast.css | 6 ---
gnome-flashback/libcommon/gf-popup-window.c | 43 +++++++++++++++++++++-
7 files changed, 75 insertions(+), 15 deletions(-)
---
diff --git a/data/theme/Adwaita/gnome-flashback-dark.css b/data/theme/Adwaita/gnome-flashback-dark.css
index 6011e28..b2b3762 100644
--- a/data/theme/Adwaita/gnome-flashback-dark.css
+++ b/data/theme/Adwaita/gnome-flashback-dark.css
@@ -1 +1,12 @@
@import url("resource:///org/gnome/gnome-flashback/Adwaita.css");
+
+gf-popup-window {
+ background-color: #393f3f;
+ border: 1px solid rgba(28, 31, 31, 0.9);
+ border-radius: 10px;
+}
+
+gf-popup-window.solid {
+ border: 1px solid #1f2222;
+ border-radius: 0px;
+}
diff --git a/data/theme/Adwaita/gnome-flashback.css b/data/theme/Adwaita/gnome-flashback.css
index 6011e28..aca1775 100644
--- a/data/theme/Adwaita/gnome-flashback.css
+++ b/data/theme/Adwaita/gnome-flashback.css
@@ -1 +1,12 @@
@import url("resource:///org/gnome/gnome-flashback/Adwaita.css");
+
+gf-popup-window {
+ background-color: #e8e8e7;
+ border: 1px solid rgba(0, 0, 0, 0.23);
+ border-radius: 10px;
+}
+
+gf-popup-window.solid {
+ border: 1px solid #a5a5a1;
+ border-radius: 0px;
+}
diff --git a/data/theme/HighContrast/gnome-flashback-dark.css
b/data/theme/HighContrast/gnome-flashback-dark.css
index 9cb298a..5e442a3 100644
--- a/data/theme/HighContrast/gnome-flashback-dark.css
+++ b/data/theme/HighContrast/gnome-flashback-dark.css
@@ -1,2 +1,2 @@
/* HightContrast theme does not have dark variant. */
- import url("resource:///org/gnome/gnome-flashback/theme/HighContrast/gnome-panel.css");
+ import url("resource:///org/gnome/gnome-flashback/theme/HighContrast/gnome-flashback.css");
diff --git a/data/theme/HighContrast/gnome-flashback.css b/data/theme/HighContrast/gnome-flashback.css
index a63d3e8..82f41bd 100644
--- a/data/theme/HighContrast/gnome-flashback.css
+++ b/data/theme/HighContrast/gnome-flashback.css
@@ -1 +1,12 @@
@import url("resource:///org/gnome/gnome-flashback/HighContrast.css");
+
+gf-popup-window {
+ background-color: #ffffff;
+ border: 1px solid rgba(0, 0, 0, 0.23);
+ border-radius: 10px;
+}
+
+gf-popup-window.solid {
+ border: 1px solid #8d8d8d;
+ border-radius: 0px;
+}
diff --git a/gnome-flashback/Adwaita.css b/gnome-flashback/Adwaita.css
index 794e263..2b4b807 100644
--- a/gnome-flashback/Adwaita.css
+++ b/gnome-flashback/Adwaita.css
@@ -1,9 +1,3 @@
-GfPopupWindow
-{
- border-radius: 20px;
- border: 1px solid rgba(0, 0, 0, 0.23);
-}
-
GfInputSourcePopup #input-source
{
font-size: 22px;
diff --git a/gnome-flashback/HighContrast.css b/gnome-flashback/HighContrast.css
index 794e263..2b4b807 100644
--- a/gnome-flashback/HighContrast.css
+++ b/gnome-flashback/HighContrast.css
@@ -1,9 +1,3 @@
-GfPopupWindow
-{
- border-radius: 20px;
- border: 1px solid rgba(0, 0, 0, 0.23);
-}
-
GfInputSourcePopup #input-source
{
font-size: 22px;
diff --git a/gnome-flashback/libcommon/gf-popup-window.c b/gnome-flashback/libcommon/gf-popup-window.c
index 14384ac..624d4d8 100644
--- a/gnome-flashback/libcommon/gf-popup-window.c
+++ b/gnome-flashback/libcommon/gf-popup-window.c
@@ -21,7 +21,8 @@
typedef struct _GfPopupWindowPrivate GfPopupWindowPrivate;
struct _GfPopupWindowPrivate
{
- guint fade_id;
+ gboolean composited;
+ guint fade_id;
};
enum
@@ -49,7 +50,7 @@ fade_out_cb (gpointer user_data)
opacity = gtk_widget_get_opacity (widget);
opacity -= 0.04;
- if (opacity < 0.00)
+ if (!priv->composited || opacity < 0.00)
{
gtk_widget_set_opacity (widget, 1.0);
@@ -128,6 +129,27 @@ get_background_surface (GtkWidget *widget,
return surface;
}
+static void
+gf_popup_window_composited_changed (GtkWidget *widget)
+{
+ GfPopupWindow *window;
+ GfPopupWindowPrivate *priv;
+ GdkScreen *screen;
+ GtkStyleContext *context;
+
+ window = GF_POPUP_WINDOW (widget);
+ priv = gf_popup_window_get_instance_private (window);
+
+ screen = gtk_widget_get_screen (widget);
+ context = gtk_widget_get_style_context (widget);
+ priv->composited = gdk_screen_is_composited (screen);
+
+ if (priv->composited)
+ gtk_style_context_remove_class (context, "solid");
+ else
+ gtk_style_context_add_class (context, "solid");
+}
+
static gboolean
gf_popup_window_draw (GtkWidget *widget,
cairo_t *cr)
@@ -158,12 +180,26 @@ gf_popup_window_draw (GtkWidget *widget,
static void
gf_popup_window_realize (GtkWidget *widget)
{
+ GfPopupWindow *window;
+ GfPopupWindowPrivate *priv;
GdkScreen *screen;
+ GtkStyleContext *context;
GdkVisual *visual;
+ window = GF_POPUP_WINDOW (widget);
+ priv = gf_popup_window_get_instance_private (window);
+
screen = gtk_widget_get_screen (widget);
+ context = gtk_widget_get_style_context (widget);
+
+ priv->composited = gdk_screen_is_composited (screen);
visual = gdk_screen_get_rgba_visual (screen);
+ if (priv->composited)
+ gtk_style_context_remove_class (context, "solid");
+ else
+ gtk_style_context_add_class (context, "solid");
+
if (visual == NULL)
visual = gdk_screen_get_system_visual (screen);
@@ -183,12 +219,15 @@ gf_popup_window_class_init (GfPopupWindowClass *window_class)
object_class->finalize = gf_popup_window_finalize;
+ widget_class->composited_changed = gf_popup_window_composited_changed;
widget_class->draw = gf_popup_window_draw;
widget_class->realize = gf_popup_window_realize;
signals[SIGNAL_FADE_FINISHED] =
g_signal_new ("fade-finished", G_OBJECT_CLASS_TYPE (window_class),
G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 0);
+
+ gtk_widget_class_set_css_name (widget_class, "gf-popup-window");
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]