[gnome-notes] settings: Derive from GObject
- From: Isaque Galdino de Araujo <igaldino src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-notes] settings: Derive from GObject
- Date: Mon, 14 Jun 2021 02:40:44 +0000 (UTC)
commit 1209698ac94ee2792bfcb2b5b001504059f43935
Author: Mohammed Sadiq <sadiq sadiqpk org>
Date: Fri Jun 4 12:15:51 2021 +0530
settings: Derive from GObject
and cleanup the code. Also add related APIs to
get/set various properties.
If the object is derived from GSettings, users
may modify the underlying GSettings directly
which may result in undesired states (eg: property
changes may not be notified)
Also adapt to changes
src/bjb-application.c | 43 +++++--
src/bjb-note-view.c | 7 +-
src/bjb-settings-dialog.c | 2 +-
src/bjb-settings.c | 322 ++++++++++++++++++++++++++++++----------------
src/bjb-settings.h | 51 ++++----
src/bjb-window.c | 49 +++----
6 files changed, 293 insertions(+), 181 deletions(-)
---
diff --git a/src/bjb-application.c b/src/bjb-application.c
index 4ac702a0..9d660a98 100644
--- a/src/bjb-application.c
+++ b/src/bjb-application.c
@@ -409,6 +409,34 @@ manager_ready_cb (GObject *source,
bijiben_new_window_internal (self, NULL);
}
+static gboolean
+transform_to (GBinding *binding,
+ const GValue *from_value,
+ GValue *to_value,
+ gpointer user_data)
+{
+ const char *value;
+
+ value = g_value_get_string (from_value);
+ g_value_set_variant (to_value, g_variant_new_string (value));
+
+ return TRUE;
+}
+
+static gboolean
+transform_from (GBinding *binding,
+ const GValue *from_value,
+ GValue *to_value,
+ gpointer user_data)
+{
+ GVariant *value;
+
+ value = g_value_get_variant (from_value);
+ g_value_set_string (to_value, g_variant_get_string (value, NULL));
+
+ return TRUE;
+}
+
static GActionEntry app_entries[] = {
{ "import-notes", on_import_notes_cb, NULL, NULL, NULL },
{ "text-size", NULL, "s", "'medium'", NULL },
@@ -476,15 +504,10 @@ bijiben_startup (GApplication *application)
gdk_rgba_parse (&color, default_color);
self->text_size = g_action_map_lookup_action (G_ACTION_MAP (application), "text-size");
- g_settings_bind_with_mapping (G_SETTINGS (self->settings),
- "text-size",
- self->text_size,
- "state",
- G_SETTINGS_BIND_DEFAULT,
- text_size_mapping_get,
- text_size_mapping_set,
- NULL,
- NULL);
+ g_object_bind_property_full (BJB_SETTINGS (self->settings), "text-size",
+ self->text_size, "state",
+ G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL,
+ transform_to, transform_from, NULL, NULL);
g_application_hold (application);
@@ -492,7 +515,7 @@ bijiben_startup (GApplication *application)
biji_manager_load_providers_async (self->manager, manager_ready_cb, self);
/* Load last opened note item. */
- path = g_settings_get_string (G_SETTINGS (self->settings), "last-opened-item");
+ path = bjb_settings_get_last_opened_item (self->settings);
if (!bijiben_open_path (self, path, NULL))
g_queue_push_head (&self->files_to_open, path);
}
diff --git a/src/bjb-note-view.c b/src/bjb-note-view.c
index 64a4ec36..e592129f 100644
--- a/src/bjb-note-view.c
+++ b/src/bjb-note-view.c
@@ -199,12 +199,7 @@ bjb_note_view_constructed (GObject *obj)
gtk_widget_show (self->view);
/* Apply the gsettings font */
-
- if (bjb_settings_use_system_font (settings))
- default_font = bjb_settings_get_system_font (settings);
-
- else
- default_font = g_strdup (bjb_settings_get_default_font (settings));
+ default_font = bjb_settings_get_font (settings);
if (default_font != NULL)
biji_webkit_editor_set_font (BIJI_WEBKIT_EDITOR (self->view), default_font);
diff --git a/src/bjb-settings-dialog.c b/src/bjb-settings-dialog.c
index 3cb9af5d..a2e2bd4c 100644
--- a/src/bjb-settings-dialog.c
+++ b/src/bjb-settings-dialog.c
@@ -316,7 +316,7 @@ bjb_settings_dialog_constructed (GObject *object)
G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
gtk_font_chooser_set_font (GTK_FONT_CHOOSER (self->font_button),
- bjb_settings_get_default_font (self->settings));
+ bjb_settings_get_custom_font (self->settings));
gdk_rgba_parse (&color, bjb_settings_get_default_color (self->settings));
gtk_color_chooser_set_rgba (self->color_button, &color);
diff --git a/src/bjb-settings.c b/src/bjb-settings.c
index 17c7ae90..10f76a58 100644
--- a/src/bjb-settings.c
+++ b/src/bjb-settings.c
@@ -1,5 +1,7 @@
/* bjb-settings.c
+ *
* Copyright (C) Pierre-Yves LUYTEN 2011 <py luyten fr>
+ * Copyright 2021 Mohammed Sadiq <sadiq sadiqpk org>
*
* bijiben is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -12,62 +14,65 @@
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.*/
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+*/
+
+#define G_LOG_DOMAIN "bjb-settings"
-#include "config.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#include <glib/gi18n.h>
#include <gtk/gtk.h>
-#include "bjb-application.h"
#include "bjb-settings.h"
#include "bjb-settings-dialog.h"
struct _BjbSettings
{
- GSettings parent_instance;
+ GObject parent_instance;
/* Note Appearance settings */
- gboolean use_system_font;
- gchar *font;
- gchar *color;
+ gboolean use_system_font;
+ char *font;
+ char *color;
/* Default Provider */
- gchar *primary;
+ char *primary;
/* org.gnome.desktop */
GSettings *system;
+ /* org.gnome.Notes */
+ GSettings *app_settings;
};
-enum
-{
+enum {
PROP_0,
PROP_USE_SYSTEM_FONT,
PROP_FONT,
PROP_COLOR,
PROP_PRIMARY,
- N_PROPERTIES
+ PROP_TEXT_SIZE,
+ N_PROPS
};
-static GParamSpec *properties[N_PROPERTIES] = { NULL, };
-
-G_DEFINE_TYPE (BjbSettings, bjb_settings, G_TYPE_SETTINGS)
+static GParamSpec *properties[N_PROPS];
-static void
-bjb_settings_init (BjbSettings *self)
-{
-}
+G_DEFINE_TYPE (BjbSettings, bjb_settings, G_TYPE_OBJECT)
static void
bjb_settings_finalize (GObject *object)
{
- BjbSettings *self;
+ BjbSettings *self = BJB_SETTINGS (object);
- self = BJB_SETTINGS (object);
g_object_unref (self->system);
+ g_object_unref (self->app_settings);
g_free (self->font);
g_free (self->color);
@@ -85,7 +90,7 @@ bjb_settings_get_property (GObject *object,
BjbSettings *self = BJB_SETTINGS (object);
switch (prop_id)
- {
+ {
case PROP_USE_SYSTEM_FONT:
g_value_set_boolean (value, self->use_system_font);
break;
@@ -102,10 +107,14 @@ bjb_settings_get_property (GObject *object,
g_value_set_string (value, self->primary);
break;
+ case PROP_TEXT_SIZE:
+ g_value_take_string (value, g_settings_get_string (self->app_settings, "text-size"));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
- }
+ }
}
static void
@@ -115,13 +124,13 @@ bjb_settings_set_property (GObject *object,
GParamSpec *pspec)
{
BjbSettings *self = BJB_SETTINGS (object);
- GSettings *settings = G_SETTINGS (object);
+ GSettings *settings = self->app_settings;
switch (prop_id)
- {
+ {
case PROP_USE_SYSTEM_FONT:
- self->use_system_font = g_value_get_boolean (value);
- g_settings_set_boolean (settings, "use-system-font", self->use_system_font);
+ g_settings_set_boolean (settings, "use-system-font",
+ g_value_get_boolean (value));
break;
case PROP_FONT:
@@ -142,137 +151,232 @@ bjb_settings_set_property (GObject *object,
g_settings_set_string (settings, "default-location", self->primary);
break;
+ case PROP_TEXT_SIZE:
+ g_settings_set_string (settings, "text-size", g_value_get_string (value));
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
- }
+ }
}
-
-static void
-bjb_settings_constructed (GObject *object)
-{
- BjbSettings *self;
- GSettings *settings;
-
- G_OBJECT_CLASS (bjb_settings_parent_class)->constructed (object);
-
- self = BJB_SETTINGS (object);
- settings = G_SETTINGS (object);
- self->system = g_settings_new ("org.gnome.desktop.interface");
-
- self->use_system_font = g_settings_get_boolean (settings, "use-system-font");
- self->font = g_settings_get_string (settings, "font");
- self->color = g_settings_get_string (settings, "color");
- self->primary = g_settings_get_string (settings, "default-location");
-}
-
-
static void
bjb_settings_class_init (BjbSettingsClass *klass)
{
- GObjectClass* object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->constructed = bjb_settings_constructed;
object_class->finalize = bjb_settings_finalize;
object_class->get_property = bjb_settings_get_property;
object_class->set_property = bjb_settings_set_property;
- properties[PROP_USE_SYSTEM_FONT] = g_param_spec_boolean (
- "use-system-font",
- "Use system font",
- "Default System Font for Notes",
- TRUE,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS);
+ properties[PROP_USE_SYSTEM_FONT] =
+ g_param_spec_boolean ("use-system-font",
+ "Use system font",
+ "Default System Font for Notes",
+ TRUE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ properties[PROP_FONT] =
+ g_param_spec_string ("font",
+ "Notes Font",
+ "Font for Notes",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ properties[PROP_COLOR] =
+ g_param_spec_string ("color",
+ "New Notes Color",
+ "Default Color for New Notes",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ properties[PROP_PRIMARY] =
+ g_param_spec_string ("default-location",
+ "Primary Location",
+ "Default Provider for New Notes",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ properties[PROP_TEXT_SIZE] =
+ g_param_spec_string ("text-size",
+ "Text size",
+ "Text size for notes",
+ NULL,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, N_PROPS, properties);
+}
+static void
+bjb_settings_init (BjbSettings *self)
+{
+ self->system = g_settings_new ("org.gnome.desktop.interface");
+ self->app_settings = g_settings_new ("org.gnome.Notes");
- properties[PROP_FONT] = g_param_spec_string (
- "font",
- "Notes Font",
- "Font for Notes",
- NULL,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS);
+ self->font = g_settings_get_string (self->app_settings, "font");
+ self->color = g_settings_get_string (self->app_settings, "color");
+ self->primary = g_settings_get_string (self->app_settings, "default-location");
+}
+BjbSettings *
+bjb_settings_new (void)
+{
+ return g_object_new (BJB_TYPE_SETTINGS, NULL);
+}
- properties[PROP_COLOR] = g_param_spec_string (
- "color",
- "New Notes Color",
- "Default Color for New Notes",
- NULL,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS);
+/**
+ * bjb_settings_get_font:
+ * @self: A #BjbSettings
+ *
+ * Get the font that should be used for notes.
+ * If :use-system-font is set, the name of system wide
+ * document font is returned.
+ *
+ * Returns: (transfer full): The font string
+ */
+char *
+bjb_settings_get_font (BjbSettings *self)
+{
+ g_return_val_if_fail (BJB_IS_SETTINGS (self), NULL);
+ if (g_settings_get_boolean (self->app_settings, "use-system-font"))
+ return g_settings_get_string (self->system, "document-font-name");
- properties[PROP_PRIMARY] = g_param_spec_string (
- "default-location",
- "Primary Location",
- "Default Provider for New Notes",
- NULL,
- G_PARAM_READWRITE |
- G_PARAM_STATIC_STRINGS);
+ return g_strdup (self->font);
+}
+/**
+ * bjb_settings_get_custom_font:
+ * @self: A #BjbSettings
+ *
+ * Get the custom font if set. Use this function
+ * if you want to get the custom font name
+ * regardless of whether :use-system-font is set
+ * or not.
+ * Also see bjb_settings_get_font()
+ *
+ * Returns: (transfer none): The font string
+ */
+const char *
+bjb_settings_get_custom_font (BjbSettings *self)
+{
+ g_return_val_if_fail (BJB_IS_SETTINGS (self), NULL);
- g_object_class_install_properties (object_class, N_PROPERTIES, properties);
+ return self->font;
}
+const char *
+bjb_settings_get_default_color (BjbSettings *self)
+{
+ g_return_val_if_fail (BJB_IS_SETTINGS (self), NULL);
+ return self->color;
+}
-
-BjbSettings *
-bjb_settings_new (void)
+const char *
+bjb_settings_get_default_location (BjbSettings *self)
{
- return g_object_new (BJB_TYPE_SETTINGS, "schema-id", "org.gnome.Notes", NULL);
-}
+ g_return_val_if_fail (BJB_IS_SETTINGS (self), NULL);
+ return self->primary;
+}
-gboolean
-bjb_settings_use_system_font (BjbSettings *self)
+BjbTextSizeType
+bjb_settings_get_text_size (BjbSettings *self)
{
- return self->use_system_font;
-}
+ g_return_val_if_fail (BJB_IS_SETTINGS (self), BJB_TEXT_SIZE_MEDIUM);
+ return g_settings_get_enum (self->app_settings, "text-size");
+}
void
-bjb_settings_set_use_system_font (BjbSettings *self, gboolean value)
+bjb_settings_set_last_opened_item (BjbSettings *self,
+ const char *note_path)
{
- self->use_system_font = value;
-}
+ g_return_if_fail (BJB_IS_SETTINGS (self));
+ g_settings_set_string (self->app_settings, "last-opened-item", note_path);
+}
-const gchar *
-bjb_settings_get_default_font (BjbSettings *self)
+char *
+bjb_settings_get_last_opened_item (BjbSettings *self)
{
- return self->font;
-}
+ g_return_val_if_fail (BJB_IS_SETTINGS (self), NULL);
+ return g_settings_get_string (self->app_settings, "last-opened-item");
+}
-const gchar *
-bjb_settings_get_default_color (BjbSettings *self)
+/**
+ * bjb_settings_get_window_maximized:
+ * @self: A #BjbSettings
+ *
+ * Get the window maximized state as saved in @self.
+ *
+ * Returns: %TRUE if maximized. %FALSE otherwise.
+ */
+gboolean
+bjb_settings_get_window_maximized (BjbSettings *self)
{
- return self->color;
-}
+ g_return_val_if_fail (BJB_IS_SETTINGS (self), FALSE);
+ return g_settings_get_boolean (self->app_settings, "window-maximized");
+}
-const gchar *
-bjb_settings_get_default_location (BjbSettings *self)
+/**
+ * bjb_settings_set_window_maximized:
+ * @self: A #BjbSettings
+ * @maximized: The window state to save
+ *
+ * Set the window maximized state in @self.
+ */
+void
+bjb_settings_set_window_maximized (BjbSettings *self,
+ gboolean maximized)
{
- return self->primary;
-}
+ g_return_if_fail (BJB_IS_SETTINGS (self));
+ g_settings_set_boolean (self->app_settings, "window-maximized", !!maximized);
+}
-gchar *
-bjb_settings_get_system_font (BjbSettings *self)
+/**
+ * bjb_settings_get_window_geometry:
+ * @self: A #BjbSettings
+ * @geometry: (out): A #GdkRectangle
+ *
+ * Get the window geometry as saved in @self.
+ */
+void
+bjb_settings_get_window_geometry (BjbSettings *self,
+ GdkRectangle *geometry)
{
- return g_settings_get_string (self->system,
- "document-font-name");
+ g_return_if_fail (BJB_IS_SETTINGS (self));
+ g_return_if_fail (geometry != NULL);
+
+ g_settings_get (self->app_settings, "window-size", "(ii)",
+ &geometry->width, &geometry->height);
+ g_settings_get (self->app_settings, "window-position", "(ii)",
+ &geometry->x, &geometry->y);
}
-BjbTextSizeType
-bjb_settings_get_text_size (BjbSettings *self)
+/**
+ * bjb_settings_set_window_geometry:
+ * @self: A #BjbSettings
+ * @geometry: A #GdkRectangle
+ *
+ * Set the window geometry in @self.
+ */
+void
+bjb_settings_set_window_geometry (BjbSettings *self,
+ GdkRectangle *geometry)
{
- return g_settings_get_enum (G_SETTINGS (self), "text-size");
+ g_return_if_fail (BJB_IS_SETTINGS (self));
+ g_return_if_fail (geometry != NULL);
+
+ g_settings_set (self->app_settings, "window-size", "(ii)",
+ geometry->width, geometry->height);
+ g_settings_set (self->app_settings, "window-position", "(ii)",
+ geometry->x, geometry->y);
}
void
diff --git a/src/bjb-settings.h b/src/bjb-settings.h
index d06503af..625ada1a 100644
--- a/src/bjb-settings.h
+++ b/src/bjb-settings.h
@@ -1,5 +1,7 @@
/* bjb-settings.h
+ *
* Copyright © 2012, 2013 Pierre-Yves LUYTEN <py luyten fr>
+ * Copyright 2021 Mohammed Sadiq <sadiq sadiqpk org>
*
* bijiben is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -13,19 +15,21 @@
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
*/
#pragma once
#include <glib-object.h>
-
-
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
G_BEGIN_DECLS
#define BJB_TYPE_SETTINGS (bjb_settings_get_type ())
-G_DECLARE_FINAL_TYPE (BjbSettings, bjb_settings, BJB, SETTINGS, GSettings)
+G_DECLARE_FINAL_TYPE (BjbSettings, bjb_settings, BJB, SETTINGS, GObject)
typedef enum {
BJB_TEXT_SIZE_LARGE,
@@ -33,29 +37,22 @@ typedef enum {
BJB_TEXT_SIZE_SMALL
} BjbTextSizeType;
-BjbSettings *bjb_settings_new (void);
-
-
-gboolean bjb_settings_use_system_font (BjbSettings *self);
-
-
-void bjb_settings_set_use_system_font (BjbSettings *self,
- gboolean value);
-
-
-const gchar *bjb_settings_get_default_font (BjbSettings *self);
-
-
-const gchar *bjb_settings_get_default_color (BjbSettings *self);
-
-
-const gchar *bjb_settings_get_default_location (BjbSettings *self);
-
-
-gchar *bjb_settings_get_system_font (BjbSettings *self);
-
-BjbTextSizeType bjb_settings_get_text_size (BjbSettings *self);
-
-void show_bijiben_settings_window (GtkWidget *parent_window);
+BjbSettings *bjb_settings_new (void);
+char *bjb_settings_get_font (BjbSettings *self);
+const char *bjb_settings_get_custom_font (BjbSettings *self);
+const char *bjb_settings_get_default_color (BjbSettings *self);
+const char *bjb_settings_get_default_location (BjbSettings *self);
+BjbTextSizeType bjb_settings_get_text_size (BjbSettings *self);
+void bjb_settings_set_last_opened_item (BjbSettings *self,
+ const char *note_path);
+char *bjb_settings_get_last_opened_item (BjbSettings *self);
+gboolean bjb_settings_get_window_maximized (BjbSettings *self);
+void bjb_settings_set_window_maximized (BjbSettings *self,
+ gboolean maximized);
+void bjb_settings_get_window_geometry (BjbSettings *self,
+ GdkRectangle *geometry);
+void bjb_settings_set_window_geometry (BjbSettings *self,
+ GdkRectangle *geometry);
+void show_bijiben_settings_window (GtkWidget *parent_window);
G_END_DECLS
diff --git a/src/bjb-window.c b/src/bjb-window.c
index 92984226..ba8cd34f 100644
--- a/src/bjb-window.c
+++ b/src/bjb-window.c
@@ -67,10 +67,7 @@ struct _BjbWindow
BijiNoteObj *note;
/* window geometry */
- gint width;
- gint height;
- gint pos_x;
- gint pos_y;
+ GdkRectangle window_geometry;
gboolean is_maximized;
HdyLeaflet *main_leaflet;
@@ -230,16 +227,15 @@ static void
bjb_window_finalize (GObject *object)
{
BjbWindow *self = BJB_WINDOW (object);
- GSettings *settings = G_SETTINGS (self->settings);
BjbNoteView *note_view;
if (self->note != NULL)
- {
- g_settings_set_string (settings, "last-opened-item", biji_note_obj_get_path (self->note));
+ {
+ bjb_settings_set_last_opened_item (self->settings, biji_note_obj_get_path (self->note));
- g_clear_signal_handler (&self->note_deleted, self->note);
- g_clear_signal_handler (&self->note_trashed, self->note);
- }
+ g_clear_signal_handler (&self->note_deleted, self->note);
+ g_clear_signal_handler (&self->note_trashed, self->note);
+ }
note_view = g_object_get_data (object, "note-view");
if (note_view)
@@ -539,21 +535,15 @@ on_action_radio (GSimpleAction *action,
static void
bjb_window_save_geometry (BjbWindow *self)
{
- GSettings *settings = G_SETTINGS (self->settings);
-
- g_settings_set_boolean (settings, "window-maximized", self->is_maximized);
- g_settings_set (settings, "window-size", "(ii)", self->width, self->height);
- g_settings_set (settings, "window-position", "(ii)", self->pos_x, self->pos_y);
+ bjb_settings_set_window_maximized (self->settings, self->is_maximized);
+ bjb_settings_set_window_geometry (self->settings, &self->window_geometry);
}
static void
bjb_window_load_geometry (BjbWindow *self)
{
- GSettings *settings = G_SETTINGS (self->settings);
-
- self->is_maximized = g_settings_get_boolean (settings, "window-maximized");
- g_settings_get (settings, "window-size", "(ii)", &self->width, &self->height);
- g_settings_get (settings, "window-position", "(ii)", &self->pos_x, &self->pos_y);
+ self->is_maximized = bjb_settings_get_window_maximized (self->settings);
+ bjb_settings_get_window_geometry (self->settings, &self->window_geometry);
}
/* Just disconnect to avoid crash, the finalize does the real
@@ -576,8 +566,9 @@ bjb_window_configure_event (GtkWidget *widget,
self->is_maximized = gtk_window_is_maximized (GTK_WINDOW (self));
if (!self->is_maximized)
{
- gtk_window_get_size (GTK_WINDOW (self), &self->width, &self->height);
- gtk_window_get_position (GTK_WINDOW (self), &self->pos_x, &self->pos_y);
+ GdkRectangle *geometry = &self->window_geometry;
+ gtk_window_get_size (GTK_WINDOW (self), &geometry->width, &geometry->height);
+ gtk_window_get_position (GTK_WINDOW (self), &geometry->x, &geometry->y);
}
return GTK_WIDGET_CLASS (bjb_window_parent_class)->configure_event (widget,
@@ -655,6 +646,7 @@ bjb_window_constructed (GObject *obj)
BijiManager *manager;
BjbWindow *self = BJB_WINDOW (obj);
GtkListBox *list_box;
+ GdkRectangle geometry;
G_OBJECT_CLASS (bjb_window_parent_class)->constructed (obj);
@@ -669,12 +661,13 @@ bjb_window_constructed (GObject *obj)
gtk_window_set_title (GTK_WINDOW (self), _(BIJIBEN_MAIN_WIN_TITLE));
bjb_window_load_geometry (self);
- gtk_window_set_default_size (GTK_WINDOW (self), self->width, self->height);
+ geometry = self->window_geometry;
+ gtk_window_set_default_size (GTK_WINDOW (self), geometry.width, geometry.height);
if (self->is_maximized)
gtk_window_maximize (GTK_WINDOW (self));
- else if (self->pos_x >= 0)
- gtk_window_move (GTK_WINDOW (self), self->pos_x, self->pos_y);
+ else if (geometry.x >= 0)
+ gtk_window_move (GTK_WINDOW (self), geometry.x, geometry.y);
self->note_list = bjb_list_view_new ();
@@ -714,9 +707,9 @@ bjb_window_constructed (GObject *obj)
/* If a note is requested at creation, show it
* This is a specific type of window not associated with any view */
if (self->note != NULL)
- {
- bjb_window_set_note (self, self->note);
- }
+ {
+ bjb_window_set_note (self, self->note);
+ }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]