Gtk2: fixed modal forms behaviour under compositing window managers.Patch by Cedric. issue #27007

git-svn-id: trunk@47057 -
This commit is contained in:
zeljko 2014-12-02 08:39:14 +00:00
parent 49d77cd1cc
commit d13b57a679
2 changed files with 8 additions and 2 deletions

View File

@ -3490,6 +3490,9 @@ begin
{$IFDEF VerboseTransient}
DebugLn('DestroyCommonDialogAddOns ',DbgSName(ADialog));
{$ENDIF}
{$IFDEF HASX}
gtk_window_set_modal(PGtkWindow(DlgWindow),false);
{$ENDIF}
gtk_window_set_transient_for(PGtkWindow(DlgWindow),nil);
if ADialog is TOpenDialog then begin
FileSelWidget:=GTK_FILE_CHOOSER(DlgWindow);

View File

@ -748,10 +748,13 @@ begin
end else begin
// hiding/showing normal form
// clear former mods, e.g. when a modal form becomes a normal form, see bug 23876
// hide before disable modal see bug 27070
Gtk2WidgetSet.SetVisible(AWinControl, AForm.HandleObjectShouldBeVisible);
{$IFDEF HASX}
gtk_window_set_modal(GtkWindow, False);
gtk_window_set_transient_for(GtkWindow, nil); //untransient
{$ELSE}
gtk_window_set_transient_for(GtkWindow, nil); //untransient
gtk_window_set_modal(GtkWindow, False);
{$ENDIF}
end;
{$IFDEF HASX}