<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inkscape.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Gdl</id>
	<title>Gdl - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inkscape.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Gdl"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Gdl&amp;action=history"/>
	<updated>2026-04-22T22:07:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Gdl&amp;diff=107571&amp;oldid=prev</id>
		<title>Tavmjong: Created page with &quot; Inkscape used the [https://developer.gnome.org/gdl/stable/ Gnome Docking Library] to support docking dialogs either in the main window or in floating windows.  To create a do...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Gdl&amp;diff=107571&amp;oldid=prev"/>
		<updated>2017-12-21T13:06:51Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; Inkscape used the [https://developer.gnome.org/gdl/stable/ Gnome Docking Library] to support docking dialogs either in the main window or in floating windows.  To create a do...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
Inkscape used the [https://developer.gnome.org/gdl/stable/ Gnome Docking Library] to support docking dialogs either in the main window or in floating windows.&lt;br /&gt;
&lt;br /&gt;
To create a docked dialog see the &amp;quot;Prototype Dialog&amp;quot; which is a simple example of deriving from the Inkscape::UI::Widget::Panel widget. Dialogs must be registered in dialog-manager.cpp.&lt;br /&gt;
&lt;br /&gt;
Dialogs are never destructed.&lt;br /&gt;
&lt;br /&gt;
Functionality is very confusing!&lt;br /&gt;
&lt;br /&gt;
GDL code: https://git.gnome.org//browse/gdl&lt;br /&gt;
&lt;br /&gt;
==Bugs==&lt;br /&gt;
&lt;br /&gt;
===Gtk Error Messages===&lt;br /&gt;
&lt;br /&gt;
To break at warning:&lt;br /&gt;
  $ G_DEBUG=fatal_warnings gdb inkscape&lt;br /&gt;
&lt;br /&gt;
* Gtk-CRITICAL **: gtk_box_gadget_distribute: assertion 'size &amp;gt;= 0' failed in GdlSwitcher&lt;br /&gt;
* Gtk-WARNING **:: Allocating size to GdlDock 0x..... without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?&lt;br /&gt;
* Gdk-Message: Window 0x..... is a temporary window without a parent, application will not be able to postion it on screen.  (WAYLAND)&lt;br /&gt;
&lt;br /&gt;
===Wayland===&lt;br /&gt;
&lt;br /&gt;
Wayland cannot position windows relative to each other: https://blog.gtk.org/2016/07/15/future-of-relative-window-positioning/&lt;br /&gt;
This screws drag-n-drop of dialogs.&lt;br /&gt;
&lt;br /&gt;
===Widget Tree===&lt;br /&gt;
&lt;br /&gt;
To see the tree:&lt;br /&gt;
  $ GTK_DEBUG=interactive inkscape&lt;br /&gt;
&lt;br /&gt;
With the &amp;quot;Objects Tab&amp;quot;, click on the &amp;quot;Target&amp;quot; icon in the upper left corner and the select a widget in the Inkscape window; then click on the icon next to the &amp;quot;Target&amp;quot; icon to show the tree.&lt;br /&gt;
&lt;br /&gt;
Tree:&lt;br /&gt;
: gtkmm_GtkPaned: Canvas_and_Dock&lt;br /&gt;
:: gtkmm__GtkScrolledWindow: DockScrolledWindow:  Scrollbar only appears if pane is too small for dialog.&lt;br /&gt;
::: GtkViewport: Unnamed: Auto created by scrolled window?&lt;br /&gt;
:::: gtkmm__GtkBox: DockBox&lt;br /&gt;
::::: gtkmm__GtkPaned: DockBoxPane: Why is this needed. Can't we just add GdlDock with Gtk::PACK_SHRINK?&lt;br /&gt;
:::::: GdlDock&lt;br /&gt;
::::::: GdkDockItem&lt;br /&gt;
:::::::: GdlDockItemGrip&lt;br /&gt;
:::::::: gtkmm__GtkFrame: : Why? Adds shadow.&lt;br /&gt;
::::::::: gtkmm__GtkVBox: : Why?&lt;br /&gt;
:::::::::: gtkmm__GtkBox: InkscapePanel (vertical)&lt;br /&gt;
::::::::::: gtkmm__GtkHBox: PanelTopBar&lt;br /&gt;
:::::::::::: gtkmm__GtkLabel: : Panel name&lt;br /&gt;
::::::::::: gtkmm__GtkHBox: PanelBoxY&lt;br /&gt;
:::::::::::: gtkmm__GtkVBox: PanelContents&lt;br /&gt;
::::::::::::: Different depending on panel&lt;br /&gt;
:::::::::::: gtkmm__GtkVBox: PanelRightBar &lt;br /&gt;
:::::: filler: DockBoxFiller: An empty box to fill the pane.&lt;br /&gt;
&lt;br /&gt;
When there is more than one panel a GdlDockNotebook-&amp;gt;GdlSwitcher is inserted between GdlDock and GdlDockItem. More than one GdlDockNotebook can exist grouping different panels.&lt;/div&gt;</summary>
		<author><name>Tavmjong</name></author>
	</entry>
</feed>