bubblewindow: Point to the entire widget area by default
This way pointing_to is not fully needed, unless you're pointing to an specific rectangle within the widget, passing NULL would unset the region too.
This commit is contained in:
		@ -213,7 +213,7 @@ gtk_bubble_window_get_pointed_to_coords (GtkBubbleWindow       *window,
 | 
				
			|||||||
  cairo_rectangle_int_t rect;
 | 
					  cairo_rectangle_int_t rect;
 | 
				
			||||||
  GtkAllocation window_alloc;
 | 
					  GtkAllocation window_alloc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  rect = priv->pointing_to;
 | 
					  _gtk_bubble_window_get_pointing_to (window, &rect);
 | 
				
			||||||
  gtk_widget_get_allocation (GTK_WIDGET (priv->window), &window_alloc);
 | 
					  gtk_widget_get_allocation (GTK_WIDGET (priv->window), &window_alloc);
 | 
				
			||||||
  gtk_widget_translate_coordinates (priv->widget, GTK_WIDGET (priv->window),
 | 
					  gtk_widget_translate_coordinates (priv->widget, GTK_WIDGET (priv->window),
 | 
				
			||||||
                                    rect.x, rect.y, &rect.x, &rect.y);
 | 
					                                    rect.x, rect.y, &rect.x, &rect.y);
 | 
				
			||||||
@ -493,7 +493,7 @@ gtk_bubble_window_update_position (GtkBubbleWindow *window)
 | 
				
			|||||||
  gtk_widget_get_allocation (GTK_WIDGET (window), &allocation);
 | 
					  gtk_widget_get_allocation (GTK_WIDGET (window), &allocation);
 | 
				
			||||||
  gtk_widget_get_allocation (GTK_WIDGET (priv->window), &window_alloc);
 | 
					  gtk_widget_get_allocation (GTK_WIDGET (priv->window), &window_alloc);
 | 
				
			||||||
  priv->final_position = priv->preferred_position;
 | 
					  priv->final_position = priv->preferred_position;
 | 
				
			||||||
  rect = priv->pointing_to;
 | 
					  _gtk_bubble_window_get_pointing_to (window, &rect);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  gtk_bubble_window_get_pointed_to_coords (window, &x, &y, &rect);
 | 
					  gtk_bubble_window_get_pointed_to_coords (window, &x, &y, &rect);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -883,8 +883,15 @@ gtk_bubble_window_update_pointing_to (GtkBubbleWindow       *window,
 | 
				
			|||||||
  GtkBubbleWindowPrivate *priv;
 | 
					  GtkBubbleWindowPrivate *priv;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  priv = window->priv;
 | 
					  priv = window->priv;
 | 
				
			||||||
  priv->pointing_to = *pointing_to;
 | 
					
 | 
				
			||||||
  priv->has_pointing_to = TRUE;
 | 
					  if (pointing_to)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      priv->pointing_to = *pointing_to;
 | 
				
			||||||
 | 
					      priv->has_pointing_to = TRUE;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    priv->has_pointing_to = FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  g_object_notify (G_OBJECT (window), "pointing-to");
 | 
					  g_object_notify (G_OBJECT (window), "pointing-to");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1015,7 +1022,15 @@ _gtk_bubble_window_get_pointing_to (GtkBubbleWindow       *window,
 | 
				
			|||||||
  priv = window->priv;
 | 
					  priv = window->priv;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (rect)
 | 
					  if (rect)
 | 
				
			||||||
    *rect = priv->pointing_to;
 | 
					    {
 | 
				
			||||||
 | 
					      if (priv->has_pointing_to)
 | 
				
			||||||
 | 
					        *rect = priv->pointing_to;
 | 
				
			||||||
 | 
					      else if (priv->widget)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          gtk_widget_get_allocation (priv->widget, rect);
 | 
				
			||||||
 | 
					          rect->x = rect->y = 0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return priv->has_pointing_to;
 | 
					  return priv->has_pointing_to;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user