background: Make BgSource receive a GtkWidget
Instead of a GtkWindow. We don't really depend on GtkWindow itself, just any widget with access to the scale factor.
This commit is contained in:
parent
ad740deeea
commit
5afc292c2b
8 changed files with 24 additions and 24 deletions
|
@ -249,8 +249,8 @@ bg_colors_source_class_init (BgColorsSourceClass *klass)
|
|||
}
|
||||
|
||||
BgColorsSource *
|
||||
bg_colors_source_new (GtkWindow *window)
|
||||
bg_colors_source_new (GtkWidget *widget)
|
||||
{
|
||||
return g_object_new (BG_TYPE_COLORS_SOURCE, "window", window, NULL);
|
||||
return g_object_new (BG_TYPE_COLORS_SOURCE, "widget", widget, NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ G_BEGIN_DECLS
|
|||
#define BG_TYPE_COLORS_SOURCE (bg_colors_source_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (BgColorsSource, bg_colors_source, BG, COLORS_SOURCE, BgSource)
|
||||
|
||||
BgColorsSource *bg_colors_source_new (GtkWindow *window);
|
||||
BgColorsSource *bg_colors_source_new (GtkWidget *widget);
|
||||
|
||||
gboolean bg_colors_source_add (BgColorsSource *self,
|
||||
GdkRGBA *rgba,
|
||||
|
|
|
@ -989,9 +989,9 @@ bg_pictures_source_init (BgPicturesSource *self)
|
|||
}
|
||||
|
||||
BgPicturesSource *
|
||||
bg_pictures_source_new (GtkWindow *window)
|
||||
bg_pictures_source_new (GtkWidget *widget)
|
||||
{
|
||||
return g_object_new (BG_TYPE_PICTURES_SOURCE, "window", window, NULL);
|
||||
return g_object_new (BG_TYPE_PICTURES_SOURCE, "widget", widget, NULL);
|
||||
}
|
||||
|
||||
const char * const *
|
||||
|
|
|
@ -32,7 +32,7 @@ G_BEGIN_DECLS
|
|||
#define BG_TYPE_PICTURES_SOURCE (bg_pictures_source_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (BgPicturesSource, bg_pictures_source, BG, PICTURES_SOURCE, BgSource)
|
||||
|
||||
BgPicturesSource *bg_pictures_source_new (GtkWindow *window);
|
||||
BgPicturesSource *bg_pictures_source_new (GtkWidget *widget);
|
||||
char *bg_pictures_source_get_cache_path (void);
|
||||
char *bg_pictures_source_get_unique_path(const char *uri);
|
||||
gboolean bg_pictures_source_add (BgPicturesSource *bg_source,
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
typedef struct
|
||||
{
|
||||
GtkListStore *store;
|
||||
GtkWidget *window;
|
||||
GtkWidget *widget;
|
||||
gint thumbnail_height;
|
||||
gint thumbnail_width;
|
||||
} BgSourcePrivate;
|
||||
|
@ -39,7 +39,7 @@ G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (BgSource, bg_source, G_TYPE_OBJECT)
|
|||
enum
|
||||
{
|
||||
PROP_LISTSTORE = 1,
|
||||
PROP_WINDOW
|
||||
PROP_WIDGET
|
||||
};
|
||||
|
||||
|
||||
|
@ -52,10 +52,10 @@ bg_source_calculate_thumbnail_dimensions (BgSource *source)
|
|||
priv->thumbnail_height = THUMBNAIL_HEIGHT;
|
||||
priv->thumbnail_width = THUMBNAIL_WIDTH;
|
||||
|
||||
if (priv->window == NULL)
|
||||
if (priv->widget == NULL)
|
||||
return;
|
||||
|
||||
scale_factor = gtk_widget_get_scale_factor (priv->window);
|
||||
scale_factor = gtk_widget_get_scale_factor (priv->widget);
|
||||
if (scale_factor > 1)
|
||||
{
|
||||
priv->thumbnail_height *= scale_factor;
|
||||
|
@ -101,8 +101,8 @@ bg_source_set_property (GObject *object,
|
|||
|
||||
switch (property_id)
|
||||
{
|
||||
case PROP_WINDOW:
|
||||
priv->window = GTK_WIDGET (g_value_get_object (value));
|
||||
case PROP_WIDGET:
|
||||
priv->widget = GTK_WIDGET (g_value_get_object (value));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -139,12 +139,12 @@ bg_source_class_init (BgSourceClass *klass)
|
|||
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
|
||||
g_object_class_install_property (object_class, PROP_LISTSTORE, pspec);
|
||||
|
||||
pspec = g_param_spec_object ("window",
|
||||
"Window",
|
||||
"Toplevel window used to view the source",
|
||||
GTK_TYPE_WINDOW,
|
||||
pspec = g_param_spec_object ("widget",
|
||||
"Widget",
|
||||
"Widget used to view the source",
|
||||
GTK_TYPE_WIDGET,
|
||||
G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
|
||||
g_object_class_install_property (object_class, PROP_WINDOW, pspec);
|
||||
g_object_class_install_property (object_class, PROP_WIDGET, pspec);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -173,7 +173,7 @@ bg_source_get_scale_factor (BgSource *source)
|
|||
g_return_val_if_fail (BG_IS_SOURCE (source), 1);
|
||||
|
||||
priv = bg_source_get_instance_private (source);
|
||||
return gtk_widget_get_scale_factor (priv->window);
|
||||
return gtk_widget_get_scale_factor (priv->widget);
|
||||
}
|
||||
|
||||
gint
|
||||
|
|
|
@ -160,8 +160,8 @@ bg_wallpapers_source_class_init (BgWallpapersSourceClass *klass)
|
|||
}
|
||||
|
||||
BgWallpapersSource *
|
||||
bg_wallpapers_source_new (GtkWindow *window)
|
||||
bg_wallpapers_source_new (GtkWidget *widget)
|
||||
{
|
||||
return g_object_new (BG_TYPE_WALLPAPERS_SOURCE, "window", window, NULL);
|
||||
return g_object_new (BG_TYPE_WALLPAPERS_SOURCE, "widget", widget, NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ G_BEGIN_DECLS
|
|||
#define BG_TYPE_WALLPAPERS_SOURCE (bg_wallpapers_source_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (BgWallpapersSource, bg_wallpapers_source, BG, WALLPAPERS_SOURCE, BgSource)
|
||||
|
||||
BgWallpapersSource *bg_wallpapers_source_new (GtkWindow *window);
|
||||
BgWallpapersSource *bg_wallpapers_source_new (GtkWidget *widget);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
|
|
@ -445,9 +445,9 @@ cc_background_chooser_dialog_init (CcBackgroundChooserDialog *chooser)
|
|||
g_autofree gchar *pictures_dir_uri = NULL;
|
||||
GtkTargetList *target_list;
|
||||
|
||||
chooser->wallpapers_source = bg_wallpapers_source_new (GTK_WINDOW (chooser));
|
||||
chooser->pictures_source = bg_pictures_source_new (GTK_WINDOW (chooser));
|
||||
chooser->colors_source = bg_colors_source_new (GTK_WINDOW (chooser));
|
||||
chooser->wallpapers_source = bg_wallpapers_source_new (GTK_WIDGET (chooser));
|
||||
chooser->pictures_source = bg_pictures_source_new (GTK_WIDGET (chooser));
|
||||
chooser->colors_source = bg_colors_source_new (GTK_WIDGET (chooser));
|
||||
|
||||
gtk_window_set_modal (GTK_WINDOW (chooser), TRUE);
|
||||
gtk_window_set_resizable (GTK_WINDOW (chooser), FALSE);
|
||||
|
|
Loading…
Add table
Reference in a new issue