forked from AuroraMiddleware/gtk
entrycompletion: Realize popup after setting screen
Realization is done as a side effect of calling _gtk_entry_completion_resize_popup(), but if this is done before the GdkScreen of the GtkWindow is set up correctly, it may result in the widget being unrealized when the screen is updated. This may happen when the file dialog parent window is not using the default GdkDisplay. To avoid this issue, realize the popup after the screen has been properly set up. Fixes #83 in gtk4
This commit is contained in:
parent
417e8d6ca4
commit
a48eaa1954
@ -1514,8 +1514,6 @@ gtk_entry_completion_popup (GtkEntryCompletion *completion)
|
|||||||
/* default on no match */
|
/* default on no match */
|
||||||
completion->priv->current_selected = -1;
|
completion->priv->current_selected = -1;
|
||||||
|
|
||||||
_gtk_entry_completion_resize_popup (completion);
|
|
||||||
|
|
||||||
toplevel = gtk_widget_get_toplevel (completion->priv->entry);
|
toplevel = gtk_widget_get_toplevel (completion->priv->entry);
|
||||||
if (GTK_IS_WINDOW (toplevel))
|
if (GTK_IS_WINDOW (toplevel))
|
||||||
{
|
{
|
||||||
@ -1529,6 +1527,8 @@ gtk_entry_completion_popup (GtkEntryCompletion *completion)
|
|||||||
gtk_widget_get_display (completion->priv->entry));
|
gtk_widget_get_display (completion->priv->entry));
|
||||||
gtk_widget_realize (completion->priv->popup_window);
|
gtk_widget_realize (completion->priv->popup_window);
|
||||||
|
|
||||||
|
_gtk_entry_completion_resize_popup (completion);
|
||||||
|
|
||||||
if (completion->priv->device)
|
if (completion->priv->device)
|
||||||
{
|
{
|
||||||
gtk_grab_add (completion->priv->popup_window);
|
gtk_grab_add (completion->priv->popup_window);
|
||||||
|
Loading…
Reference in New Issue
Block a user