[almanah] UI: Fixed some issues
- From: Álvaro Peña <alvaropg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [almanah] UI: Fixed some issues
- Date: Mon, 19 Oct 2015 16:45:34 +0000 (UTC)
commit 43cd522c4e42a73425152cc567bb12d072787b7a
Author: Álvaro Peña <alvaropg gmail com>
Date: Sat Oct 17 20:02:17 2015 +0200
UI: Fixed some issues
https://bugzilla.gnome.org/show_bug.cgi?id=754842
src/main-window.c | 31 +++++++++++++++++--------------
src/ui/almanah.ui | 2 +-
2 files changed, 18 insertions(+), 15 deletions(-)
---
diff --git a/src/main-window.c b/src/main-window.c
index 32df3b6..925826b 100644
--- a/src/main-window.c
+++ b/src/main-window.c
@@ -90,7 +90,7 @@ void mw_events_tree_view_row_activated_cb (GtkTreeView *tree_view, GtkTreePath *
/* Other callbacks */
void mw_calendar_day_selected_cb (AlmanahCalendarButton *calendar, AlmanahMainWindow *main_window);
void mw_calendar_select_date_clicked_cb (AlmanahCalendarButton *calendar, AlmanahMainWindow *main_window);
-void mw_desktop_interface_settings_changed (GSettings *settings, gchar *key, gpointer user_data);
+void mw_desktop_interface_settings_changed (GSettings *settings, const gchar *key, gpointer user_data);
struct _AlmanahMainWindowPrivate {
GtkWidget *header_bar;
@@ -114,6 +114,7 @@ struct _AlmanahMainWindowPrivate {
guint save_entry_timeout_id; /* source ID for timer to save current entry periodically */
GSettings *desktop_interface_settings;
+ GtkCssProvider *css_provider;
#ifdef ENABLE_SPELL_CHECKING
GSettings *settings;
@@ -164,7 +165,8 @@ almanah_main_window_init (AlmanahMainWindow *self)
gtk_window_set_titlebar (GTK_WINDOW (self), self->priv->header_bar);
gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (self->priv->header_bar), TRUE);
- self->priv->desktop_interface_settings;
+ self->priv->desktop_interface_settings = NULL;
+ self->priv->css_provider = NULL;
}
static void
@@ -180,6 +182,7 @@ almanah_main_window_dispose (GObject *object)
set_current_entry (ALMANAH_MAIN_WINDOW (object), NULL);
g_clear_object (&priv->desktop_interface_settings);
+ g_clear_object (&priv->css_provider);
#ifdef ENABLE_SPELL_CHECKING
if (priv->settings != NULL) {
@@ -1364,8 +1367,6 @@ mw_setup_size_text_view (AlmanahMainWindow *self)
{
gchar *font_name = NULL;
gchar *css_font = NULL;
- GtkStyleContext *style_context;
- GtkCssProvider *css_provider;
int fixed_width;
g_return_if_fail (ALMANAH_IS_MAIN_WINDOW (self));
@@ -1379,18 +1380,19 @@ mw_setup_size_text_view (AlmanahMainWindow *self)
}
font_name = g_settings_get_string (self->priv->desktop_interface_settings,
ALMANAH_MAIN_WINDOW_DOCUMENT_FONT_KEY_NAME);
css_font = g_strdup_printf (".almanah-mw-entry-view { font: %s; }", font_name);
- css_provider = gtk_css_provider_get_default ();
- gtk_css_provider_load_from_data (css_provider, css_font, strlen(css_font), NULL);
- style_context = gtk_widget_get_style_context (GTK_WIDGET (self->priv->entry_view));
- gtk_style_context_add_provider (style_context, GTK_STYLE_PROVIDER (css_provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
+ if (self->priv->css_provider == NULL) {
+ GtkStyleContext *style_context;
+
+ self->priv->css_provider = gtk_css_provider_new ();
+ style_context = gtk_widget_get_style_context (GTK_WIDGET (self->priv->entry_view));
+ gtk_style_context_add_provider (style_context, GTK_STYLE_PROVIDER (self->priv->css_provider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
+ }
+ gtk_css_provider_load_from_data (self->priv->css_provider, css_font, strlen(css_font), NULL);
/* Setting up entry GtkTextView size based on font size plus a margin */
fixed_width = mw_get_font_width (GTK_WIDGET (self->priv->entry_view), font_name) +
ALMANAH_MAIN_WINDOW_FIXED_MARGIN_FONT;
/* The ScrolledWindow (parent container for the text view) must be at
least the new width plus the text view margin */
- gtk_widget_set_size_request(GTK_WIDGET (self->priv->entry_scrolled),
- fixed_width + gtk_widget_get_margin_start (GTK_WIDGET
(self->priv->entry_view)) + gtk_widget_get_margin_end (GTK_WIDGET (self->priv->entry_view)),
- -1);
gtk_widget_set_size_request(GTK_WIDGET (self->priv->entry_view), fixed_width, -1);
g_free (font_name);
@@ -1398,7 +1400,7 @@ mw_setup_size_text_view (AlmanahMainWindow *self)
}
-int
+static int
mw_get_font_width (GtkWidget *widget, const gchar *font_name)
{
int width, height;
@@ -1416,15 +1418,16 @@ mw_get_font_width (GtkWidget *widget, const gchar *font_name)
pango_layout_get_pixel_size (layout, &width, &height);
g_object_unref (layout);
+ pango_font_description_free (desc);
return width;
}
void
-mw_desktop_interface_settings_changed (__attribute__ ((unused)) GSettings *settings, gchar *key, gpointer
user_data)
+mw_desktop_interface_settings_changed (G_GNUC_UNUSED GSettings *settings, const gchar *key, gpointer
user_data)
{
- if (g_ascii_strcasecmp (ALMANAH_MAIN_WINDOW_DOCUMENT_FONT_KEY_NAME, key) != 0)
+ if (strcmp (ALMANAH_MAIN_WINDOW_DOCUMENT_FONT_KEY_NAME, key) != 0)
return;
mw_setup_size_text_view (ALMANAH_MAIN_WINDOW (user_data));
diff --git a/src/ui/almanah.ui b/src/ui/almanah.ui
index 668f74e..83e4281 100644
--- a/src/ui/almanah.ui
+++ b/src/ui/almanah.ui
@@ -106,7 +106,7 @@
<child>
<object class="GtkScrolledWindow"
id="almanah_mw_main_content_scrolled_window">
<property name="can-focus">True</property>
- <property
name="hscrollbar-policy">GTK_POLICY_AUTOMATIC</property>
+ <property
name="hscrollbar-policy">GTK_POLICY_NEVER</property>
<property
name="vscrollbar-policy">GTK_POLICY_AUTOMATIC</property>
<property
name="shadow-type">GTK_SHADOW_IN</property>
<property name="hexpand">True</property>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]