@@ -326,6 +326,7 @@ icon_set_position (CajaIcon *icon,
326326 int item_width , item_height ;
327327 int height_above , width_left ;
328328 int min_x , max_x , min_y , max_y ;
329+ int scale ;
329330
330331 if (icon -> x == x && icon -> y == y )
331332 {
@@ -354,12 +355,13 @@ icon_set_position (CajaIcon *icon,
354355
355356 For now, we have a cheesy workaround:
356357 */
358+ scale = gtk_widget_get_scale_factor (GTK_WIDGET (container ));
357359 container_x = 0 ;
358360 container_y = 0 ;
359- container_width = WidthOfScreen (gdk_x11_screen_get_xscreen (gdk_screen_get_default ())) - container_x
361+ container_width = WidthOfScreen (gdk_x11_screen_get_xscreen (gdk_screen_get_default ())) / scale - container_x
360362 - container -> details -> left_margin
361363 - container -> details -> right_margin ;
362- container_height = HeightOfScreen (gdk_x11_screen_get_xscreen (gdk_screen_get_default ())) - container_y
364+ container_height = HeightOfScreen (gdk_x11_screen_get_xscreen (gdk_screen_get_default ())) / scale - container_y
363365 - container -> details -> top_margin
364366 - container -> details -> bottom_margin ;
365367 pixels_per_unit = EEL_CANVAS (container )-> pixels_per_unit ;
@@ -5239,6 +5241,7 @@ caja_icon_container_search_position_func (CajaIconContainer *container,
52395241 gint x , y ;
52405242 gint cont_x , cont_y ;
52415243 gint cont_width , cont_height ;
5244+ gint scale ;
52425245 GdkWindow * cont_window ;
52435246 GdkScreen * screen ;
52445247 GtkRequisition requisition ;
@@ -5247,6 +5250,7 @@ caja_icon_container_search_position_func (CajaIconContainer *container,
52475250
52485251
52495252 cont_window = gtk_widget_get_window (GTK_WIDGET (container ));
5253+ scale = gtk_widget_get_scale_factor (GTK_WIDGET (container ));
52505254 screen = gdk_window_get_screen (cont_window );
52515255
52525256 monitor_num = gdk_display_get_monitor_at_window (gdk_screen_get_display (screen ),
@@ -5262,9 +5266,9 @@ caja_icon_container_search_position_func (CajaIconContainer *container,
52625266
52635267 gtk_widget_get_preferred_size (search_dialog , & requisition , NULL );
52645268
5265- if (cont_x + cont_width - requisition .width > WidthOfScreen (gdk_x11_screen_get_xscreen (screen )))
5269+ if (cont_x + cont_width - requisition .width > WidthOfScreen (gdk_x11_screen_get_xscreen (screen )) / scale )
52665270 {
5267- x = WidthOfScreen (gdk_x11_screen_get_xscreen (screen )) - requisition .width ;
5271+ x = WidthOfScreen (gdk_x11_screen_get_xscreen (screen )) / scale - requisition .width ;
52685272 }
52695273 else if (cont_x + cont_width - requisition .width < 0 )
52705274 {
@@ -6025,6 +6029,7 @@ key_press_event (GtkWidget *widget,
60256029 GdkScreen * screen ;
60266030 gboolean text_modified ;
60276031 gulong popup_menu_id ;
6032+ gint scale ;
60286033
60296034 caja_icon_container_ensure_interactive_directory (container );
60306035
@@ -6040,9 +6045,10 @@ key_press_event (GtkWidget *widget,
60406045
60416046 /* Move the entry off screen */
60426047 screen = gtk_widget_get_screen (GTK_WIDGET (container ));
6048+ scale = gtk_widget_get_scale_factor (GTK_WIDGET (container ));
60436049 gtk_window_move (GTK_WINDOW (container -> details -> search_window ),
6044- WidthOfScreen (gdk_x11_screen_get_xscreen (screen )) + 1 ,
6045- HeightOfScreen (gdk_x11_screen_get_xscreen (screen )) + 1 );
6050+ WidthOfScreen (gdk_x11_screen_get_xscreen (screen )) / scale + 1 ,
6051+ HeightOfScreen (gdk_x11_screen_get_xscreen (screen )) / scale + 1 );
60466052 gtk_widget_show (container -> details -> search_window );
60476053
60486054 /* Send the event to the window. If the preedit_changed signal is emitted
0 commit comments