Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setting a layer-shell window as parent of a dialog breaks positioning of combo box lists #177

Open
Tamaranch opened this issue Mar 25, 2024 · 0 comments

Comments

@Tamaranch
Copy link

Tamaranch commented Mar 25, 2024

I've just noticed this with the preferences dialogs of some xfce4-panel plugins that contain combo boxes, and which for a long time on X11 have set the panel as dialog parent.

It's reproducible on Wayland, independent of the compositor as far as I can see, with this piece of code:

gint main (gint argc, gchar **argv)
{
  gtk_init (&argc, &argv);

  GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_layer_init_for_window (GTK_WINDOW (window));
  gtk_layer_set_anchor (GTK_WINDOW (window), GTK_LAYER_SHELL_EDGE_BOTTOM, TRUE);
  gtk_widget_set_size_request (window, 200, 40);
  gtk_widget_show (window);

  GtkWidget *dialog = gtk_dialog_new_with_buttons ("dialog", GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, NULL, NULL);
  GtkWidget *area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
  GtkWidget *combo = gtk_combo_box_text_new ();
  gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "text1");
  gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "text2");
  gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), "text3");
  gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
  gtk_container_add (GTK_CONTAINER (area), combo);
  gtk_widget_set_size_request (dialog, 200, -1);
  gtk_widget_show_all (dialog);

  GMainLoop *loop = g_main_loop_new (NULL, FALSE);
  g_signal_connect_swapped (dialog, "destroy", G_CALLBACK (g_main_loop_quit), loop);
  g_main_loop_run (loop);
  g_main_loop_unref (loop);
}

When the combo box is clicked, the list of entries is displayed in the layer-shell window instead of in the combo box.

I don't think there's much point, or sense, in setting the panel as parent of these dialogs (perhaps it was done at the time to avoid a GTK warning). So I could certainly modify the code of these plugins, but I'd like to know if it wouldn't be a bug in gtk-layer-shell before doing that.

gtk-layer-shell 0.8.2
gtk 3.24.41

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant