Gtk2: do not blindly unmaximize and deiconify GtkWindow. issue #10698

git-svn-id: trunk@34530 -
This commit is contained in:
zeljko 2012-01-01 10:47:45 +00:00
parent d6decbd088
commit 5ca2d85d66

View File

@ -4894,6 +4894,7 @@ var
AWindow: PGdkWindow; AWindow: PGdkWindow;
ACustomForm: TCustomForm; ACustomForm: TCustomForm;
CurWindowState: TWindowState; CurWindowState: TWindowState;
WidgetInfo: PWidgetInfo;
begin begin
if not (Sender is TWinControl) then if not (Sender is TWinControl) then
RaiseWrongClass; RaiseWrongClass;
@ -4985,9 +4986,16 @@ begin
case CurWindowState of case CurWindowState of
wsNormal: wsNormal:
begin begin
WidgetInfo := GetWidgetInfo(SenderWidget);
with WidgetInfo^.FormWindowState do
begin
if new_window_state and GDK_WINDOW_STATE_ICONIFIED <> 0 then
gtk_window_deiconify(PGtkWindow(SenderWidget)); gtk_window_deiconify(PGtkWindow(SenderWidget));
if (new_window_state and GDK_WINDOW_STATE_MAXIMIZED <> 0) or
(new_window_state and GDK_WINDOW_STATE_FULLSCREEN <> 0) then
gtk_window_unmaximize(PGtkWindow(SenderWidget)); gtk_window_unmaximize(PGtkWindow(SenderWidget));
end; end;
end;
wsMaximized: gtk_window_maximize(PGtkWindow(SenderWidget)); wsMaximized: gtk_window_maximize(PGtkWindow(SenderWidget));
wsMinimized: gtk_window_iconify(PGtkWindow(SenderWidget)); wsMinimized: gtk_window_iconify(PGtkWindow(SenderWidget));
end; end;