Commit c862d81d authored by Victor Kareh's avatar Victor Kareh Committed by Martin Wimpress

Add HiDPI support for lock screen (#148)

* Password dialog is now scaled
* Background of lock screen is now scaled
parent 64d47ad9
......@@ -980,6 +980,30 @@ set_face_image (GSLockPlug *plug)
return TRUE;
}
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)
{
......@@ -1254,6 +1278,8 @@ gs_lock_plug_class_init (GSLockPlugClass *klass)
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;
......
......@@ -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),
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment