[Xfce4-commits] [apps/xfce4-screensaver] 321/425: Add HiDPI support for lock screen (#148)
noreply at xfce.org
noreply at xfce.org
Mon Oct 15 01:52:48 CEST 2018
This is an automated email from the git hooks/post-receive script.
b l u e s a b r e p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository apps/xfce4-screensaver.
commit c862d81db1e0ae1ce1f62a3aac1d915f5036c81c
Author: Victor Kareh <vkareh at vkareh.net>
Date: Thu Feb 1 09:20:32 2018 -0500
Add HiDPI support for lock screen (#148)
* Password dialog is now scaled
* Background of lock screen is now scaled
---
src/gs-lock-plug.c | 32 +++++++++++++++++++++++++++++---
src/gs-manager.c | 6 ++++--
2 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/src/gs-lock-plug.c b/src/gs-lock-plug.c
index 07993c5..5bea72a 100644
--- a/src/gs-lock-plug.c
+++ b/src/gs-lock-plug.c
@@ -981,6 +981,30 @@ set_face_image (GSLockPlug *plug)
}
static void
+gs_lock_plug_get_preferred_width (GtkWidget *widget, gint *minimum_width, gint *natural_width)
+{
+ gint scale;
+
+ GTK_WIDGET_CLASS (gs_lock_plug_parent_class)->get_preferred_width (widget, minimum_width, natural_width);
+
+ scale = gtk_widget_get_scale_factor (widget);
+ *minimum_width /= scale;
+ *natural_width /= scale;
+}
+
+static void
+gs_lock_plug_get_preferred_height_for_width (GtkWidget *widget, gint width, gint *minimum_height, gint *natural_height)
+{
+ gint scale;
+
+ GTK_WIDGET_CLASS (gs_lock_plug_parent_class)->get_preferred_height_for_width (widget, width, minimum_height, natural_height);
+
+ scale = gtk_widget_get_scale_factor (widget);
+ *minimum_height /= scale;
+ *natural_height /= scale;
+}
+
+static void
gs_lock_plug_show (GtkWidget *widget)
{
GSLockPlug *plug = GS_LOCK_PLUG (widget);
@@ -1251,9 +1275,11 @@ gs_lock_plug_class_init (GSLockPlugClass *klass)
object_class->get_property = gs_lock_plug_get_property;
object_class->set_property = gs_lock_plug_set_property;
- widget_class->style_set = gs_lock_plug_style_set;
- widget_class->show = gs_lock_plug_show;
- widget_class->hide = gs_lock_plug_hide;
+ widget_class->style_set = gs_lock_plug_style_set;
+ widget_class->show = gs_lock_plug_show;
+ widget_class->hide = gs_lock_plug_hide;
+ widget_class->get_preferred_width = gs_lock_plug_get_preferred_width;
+ widget_class->get_preferred_height_for_width = gs_lock_plug_get_preferred_height_for_width;
klass->close = gs_lock_plug_close;
diff --git a/src/gs-manager.c b/src/gs-manager.c
index 130227b..36bb752 100644
--- a/src/gs-manager.c
+++ b/src/gs-manager.c
@@ -1309,6 +1309,7 @@ apply_background_to_window (GSManager *manager,
GdkScreen *screen;
int width;
int height;
+ gint scale;
mate_bg_load_from_preferences (manager->priv->bg);
@@ -1320,8 +1321,9 @@ apply_background_to_window (GSManager *manager,
display = gs_window_get_display (window);
screen = gdk_display_get_default_screen (display);
- width = WidthOfScreen (gdk_x11_screen_get_xscreen (screen));
- height = HeightOfScreen (gdk_x11_screen_get_xscreen (screen));
+ scale = gdk_window_get_scale_factor (gdk_screen_get_root_window (screen));
+ width = WidthOfScreen (gdk_x11_screen_get_xscreen (screen)) / scale;
+ height = HeightOfScreen (gdk_x11_screen_get_xscreen (screen)) / scale;
gs_debug ("Creating background w:%d h:%d", width, height);
surface = mate_bg_create_surface (manager->priv->bg,
gs_window_get_gdk_window (window),
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list