[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