I looked at some GTK2 programs and they usually create modal dialogs through gtk_dialog_new() which sets GDK_WINDOW_TYPE_HINT_DIALOG for the window, which in turn causes _NET_WM_WINDOW_TYPE_DIALOG X11 property to be set for such a window. This is causing the taskbar button not to appear. In LCLGTK2 all forms have type hint set as GDK_WINDOW_TYPE_HINT_NORMAL, so they don't get _NET_WM_WINDOW_TYPE_DIALOG property. Some message boxes and user prompts in LCLGTK2 are created with gtk_dialog_new() so they are fine and don't have the taskbar button.
Maybe in GTK 2.12 if you call gtk_window_set_modal() it is enough, I don't have sources so I couldn't check. To remedy this, whenever modal form is being shown there should be a call to gtk_window_set_type_hint(window, GDK_WINDOW_TYPE_HINT_DIALOG) or a direct call to gtk_window_set_skip_taskbar_hint(window, FALSE) (which sets _NET_WM_STATE_SKIP_TASKBAR property). LCLQT does this too by calling QWidget_setWindowFlags(Widget.Widget, QtDialog) in TQtWSCustomForm.ShowHide. I have opened issue http://bugs.freepascal.org/view.php?id=18323. -- cobines -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
