From 9ea3b711a6a24d4b68231711129982a34938479b Mon Sep 17 00:00:00 2001 From: Victor Kareh Date: Wed, 4 Apr 2018 07:27:14 -0400 Subject: sidebar: Respect sidebar dimensions on HiDPI --- src/caja-navigation-window.c | 8 +++++++- src/caja-sidebar-title.c | 4 +++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/caja-navigation-window.c b/src/caja-navigation-window.c index 531c9ae0..a21e1595 100644 --- a/src/caja-navigation-window.c +++ b/src/caja-navigation-window.c @@ -362,9 +362,12 @@ side_pane_size_allocate_callback (GtkWidget *widget, gpointer user_data) { CajaNavigationWindow *window; + gint scale; window = CAJA_NAVIGATION_WINDOW (user_data); + scale = gtk_widget_get_scale_factor (widget); + allocation->width = allocation->width / scale; if (allocation->width != window->details->side_pane_width) { window->details->side_pane_width = allocation->width; @@ -377,11 +380,14 @@ side_pane_size_allocate_callback (GtkWidget *widget, static void setup_side_pane_width (CajaNavigationWindow *window) { + gint scale; + g_return_if_fail (window->sidebar != NULL); + scale = gtk_widget_get_scale_factor (GTK_WIDGET (window->sidebar)); window->details->side_pane_width = g_settings_get_int (caja_window_state, - CAJA_WINDOW_STATE_SIDEBAR_WIDTH); + CAJA_WINDOW_STATE_SIDEBAR_WIDTH) * scale; gtk_paned_set_position (GTK_PANED (window->details->content_paned), window->details->side_pane_width); diff --git a/src/caja-sidebar-title.c b/src/caja-sidebar-title.c index 3b257230..2c2cebe1 100644 --- a/src/caja-sidebar-title.c +++ b/src/caja-sidebar-title.c @@ -731,9 +731,11 @@ caja_sidebar_title_size_allocate (GtkWidget *widget, CajaSidebarTitle *sidebar_title; guint16 old_width; guint best_icon_size; + gint scale; GtkAllocation old_allocation, new_allocation; sidebar_title = CAJA_SIDEBAR_TITLE (widget); + scale = gtk_widget_get_scale_factor (widget); gtk_widget_get_allocation (widget, &old_allocation); old_width = old_allocation.width; @@ -744,7 +746,7 @@ caja_sidebar_title_size_allocate (GtkWidget *widget, if (old_width != new_allocation.width) { - best_icon_size = get_best_icon_size (sidebar_title); + best_icon_size = get_best_icon_size (sidebar_title) / scale; if (best_icon_size != sidebar_title->details->best_icon_size) { sidebar_title->details->best_icon_size = best_icon_size; -- cgit v1.2.1