[Lazarus] Taskbar button for modal forms
cobines
cobines at gmail.com
Mon Dec 27 02:23:41 CET 2010
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
More information about the Lazarus
mailing list