@@ -3594,75 +3594,52 @@ static void
35943594nemo_icon_container_search_position_func (NemoIconContainer * container ,
35953595 GtkWidget * search_dialog )
35963596{
3597- gint x , y ;
3598- gint cont_x , cont_y ;
3599- gint cont_width , cont_height ;
3600- GdkWindow * cont_window ;
3601- GtkRequisition requisition ;
3602- gint monitor_num ;
3603- GdkRectangle monitor ;
3604-
3605- cont_window = gtk_widget_get_window (GTK_WIDGET (container ));
3606-
3607- monitor_num = nemo_desktop_utils_get_monitor_for_widget (GTK_WIDGET (container ));
3608-
3609- /* FIXME?? _NET_WORKAREA hint only provides accurate workarea geometry for the
3610- * primary monitor. Non-primary will return the full monitor geometry instead.
3597+ gint x , y ;
3598+ gint cont_x , cont_y ;
3599+ gint cont_width , cont_height ;
3600+ GdkWindow * cont_window ;
3601+ GtkRequisition requisition ;
3602+
3603+ /* Desktop containers only: every other container forwards keypresses to the
3604+ * filter bar rather than starting an interactive search, so nothing else
3605+ * reaches here - see nemo_icon_container_key_press_event ().
36113606 */
3612- nemo_desktop_utils_get_monitor_work_rect ( monitor_num , & monitor );
3607+ cont_window = gtk_widget_get_window ( GTK_WIDGET ( container ) );
36133608
3614- gtk_widget_realize (search_dialog );
3609+ gtk_widget_realize (search_dialog );
36153610
36163611 gdk_window_get_origin (cont_window , & cont_x , & cont_y );
36173612 cont_width = gdk_window_get_width (cont_window );
36183613 cont_height = gdk_window_get_height (cont_window );
36193614
3620- gtk_widget_get_preferred_size (search_dialog , & requisition , NULL );
3621-
3622- if (nemo_icon_container_get_is_desktop (container )) {
3623- x = cont_x + cont_width - requisition .width ;
3624- y = cont_y + cont_height - requisition .height ;
3615+ gtk_widget_get_preferred_size (search_dialog , & requisition , NULL );
36253616
3626- if (eel_check_is_wayland ()) {
3627- GtkWidget * toplevel = gtk_widget_get_toplevel (GTK_WIDGET (container ));
3628- GdkWindow * parent_window = gtk_widget_get_window (toplevel );
3629- gint parent_x , parent_y ;
3617+ x = cont_x + cont_width - requisition .width ;
3618+ y = cont_y + cont_height - requisition .height ;
36303619
3631- gdk_window_get_origin (parent_window , & parent_x , & parent_y );
3620+ if (eel_check_is_wayland ()) {
3621+ GtkWidget * toplevel = gtk_widget_get_toplevel (GTK_WIDGET (container ));
3622+ GdkWindow * parent_window = gtk_widget_get_window (toplevel );
3623+ gint parent_x , parent_y ;
36323624
3633- GdkRectangle anchor_rect = {
3634- x - parent_x ,
3635- y - parent_y ,
3636- 1 , 1
3637- };
3625+ gdk_window_get_origin (parent_window , & parent_x , & parent_y );
36383626
3639- gdk_window_move_to_rect (gtk_widget_get_window (search_dialog ),
3640- & anchor_rect ,
3641- GDK_GRAVITY_NORTH_WEST ,
3642- GDK_GRAVITY_NORTH_WEST ,
3643- 0 ,
3644- 0 , 0 );
3645- return ;
3646- }
3647- } else {
3648- if (cont_x + cont_width > monitor .x + monitor .width ) {
3649- x = monitor .x + monitor .width - requisition .width ;
3650- } else if (cont_x + cont_width - requisition .width < 0 ) {
3651- x = 0 ;
3652- } else {
3653- x = cont_x + cont_width - requisition .width ;
3654- }
3627+ GdkRectangle anchor_rect = {
3628+ x - parent_x ,
3629+ y - parent_y ,
3630+ 1 , 1
3631+ };
36553632
3656- if ( cont_y + cont_height + requisition . height > monitor . y + monitor . height ) {
3657- y = monitor . y + monitor . height - requisition . height ;
3658- } else if ( cont_y + cont_height < 0 ) {
3659- y = 0 ;
3660- } else {
3661- y = cont_y + cont_height ;
3662- }
3633+ gdk_window_move_to_rect ( gtk_widget_get_window ( search_dialog ),
3634+ & anchor_rect ,
3635+ GDK_GRAVITY_NORTH_WEST ,
3636+ GDK_GRAVITY_NORTH_WEST ,
3637+ 0 ,
3638+ 0 , 0 ) ;
3639+ return ;
36633640 }
36643641
3665- gdk_window_move (gtk_widget_get_window (search_dialog ), x , y );
3642+ gdk_window_move (gtk_widget_get_window (search_dialog ), x , y );
36663643}
36673644
36683645/* Cut and paste from gtkwindow.c */
0 commit comments