1. The bug can't be reproduced when the dialog behavior is set to 'Floating' in the preferences (Interface>Windows>Dialog behavior in 0.49), but only when the preference is set to 'Docked' and when the dialog is undocked.
2.1. When closing the dialog (X icon or Ctrl+W), Inkscape calls Inkscape::UI::Dialog::Dialog::save_geometry(), which then calls Inkscape::UI::Dialog::DockBehavior::get_position(int &x, int &y). The returned position is related to a Widget::DockItem and is not correct.
2.2. When closing the application with the dialog open, save_geometry() then calls Inkscape::UI::Dialog::FloatingBehavior::get_position(int &x, int &y). The returned position is related to a Gtk::Dialog and is correct (that's the reason why the dialog's position is correct when you restart Inkscape).
Some findings:
1. The bug can't be reproduced when the dialog behavior is set to 'Floating' in the preferences (Interface> Windows> Dialog behavior in 0.49), but only when the preference is set to 'Docked' and when the dialog is undocked.
2.1. When closing the dialog (X icon or Ctrl+W), Inkscape calls Inkscape: :UI::Dialog: :Dialog: :save_geometry( ), which then calls Inkscape: :UI::Dialog: :DockBehavior: :get_position( int &x, int &y). The returned position is related to a Widget::DockItem and is not correct. :UI::Dialog: :FloatingBehavi or::get_ position( int &x, int &y). The returned position is related to a Gtk::Dialog and is correct (that's the reason why the dialog's position is correct when you restart Inkscape).
2.2. When closing the application with the dialog open, save_geometry() then calls Inkscape: