Browse Source

[GTK3] Use GTK window state management functions instead of GDK

pull/1189/head
Nikita Tsukanov 9 years ago
parent
commit
1380436b76
  1. 24
      src/Gtk/Avalonia.Gtk3/Interop/Native.cs
  2. 9
      src/Gtk/Avalonia.Gtk3/WindowImpl.cs

24
src/Gtk/Avalonia.Gtk3/Interop/Native.cs

@ -236,17 +236,17 @@ namespace Avalonia.Gtk3.Interop
[UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gdk)] [UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gdk)]
public delegate GdkWindowState gdk_window_get_state(IntPtr window); public delegate GdkWindowState gdk_window_get_state(IntPtr window);
[UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gdk)] [UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gtk)]
public delegate void gdk_window_iconify(IntPtr window); public delegate void gtk_window_iconify(GtkWindow window);
[UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gdk)] [UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gtk)]
public delegate void gdk_window_deiconify(IntPtr window); public delegate void gtk_window_deiconify(GtkWindow window);
[UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gdk)] [UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gtk)]
public delegate void gdk_window_maximize(IntPtr window); public delegate void gtk_window_maximize(GtkWindow window);
[UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gdk)] [UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gtk)]
public delegate void gdk_window_unmaximize(IntPtr window); public delegate void gtk_window_unmaximize(GtkWindow window);
[UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gdk)] [UnmanagedFunctionPointer(CallingConvention.Cdecl), GtkImport(GtkDll.Gdk)]
public delegate void gtk_window_set_geometry_hints(GtkWindow window, IntPtr geometry_widget, ref GdkGeometry geometry, GdkWindowHints geom_mask); public delegate void gtk_window_set_geometry_hints(GtkWindow window, IntPtr geometry_widget, ref GdkGeometry geometry, GdkWindowHints geom_mask);
@ -437,10 +437,10 @@ namespace Avalonia.Gtk3.Interop
public static D.gdk_window_get_origin GdkWindowGetOrigin; public static D.gdk_window_get_origin GdkWindowGetOrigin;
public static D.gdk_window_get_pointer GdkWindowGetPointer; public static D.gdk_window_get_pointer GdkWindowGetPointer;
public static D.gdk_window_get_state GdkWindowGetState; public static D.gdk_window_get_state GdkWindowGetState;
public static D.gdk_window_iconify GdkWindowIconify; public static D.gtk_window_iconify GtkWindowIconify;
public static D.gdk_window_deiconify GdkWindowDeiconify; public static D.gtk_window_deiconify GtkWindowDeiconify;
public static D.gdk_window_maximize GdkWindowMaximize; public static D.gtk_window_maximize GtkWindowMaximize;
public static D.gdk_window_unmaximize GdkWindowUnmaximize; public static D.gtk_window_unmaximize GtkWindowUnmaximize;
public static D.gdk_window_begin_move_drag GdkWindowBeginMoveDrag; public static D.gdk_window_begin_move_drag GdkWindowBeginMoveDrag;
public static D.gdk_window_begin_resize_drag GdkWindowBeginResizeDrag; public static D.gdk_window_begin_resize_drag GdkWindowBeginResizeDrag;
public static D.gdk_event_request_motions GdkEventRequestMotions; public static D.gdk_event_request_motions GdkEventRequestMotions;

9
src/Gtk/Avalonia.Gtk3/WindowImpl.cs

@ -32,15 +32,14 @@ namespace Avalonia.Gtk3
} }
set set
{ {
var w = Native.GtkWidgetGetWindow(GtkWidget);
if (value == WindowState.Minimized) if (value == WindowState.Minimized)
Native.GdkWindowIconify(w); Native.GtkWindowIconify(GtkWidget);
else if (value == WindowState.Maximized) else if (value == WindowState.Maximized)
Native.GdkWindowMaximize(w); Native.GtkWindowMaximize(GtkWidget);
else else
{ {
Native.GdkWindowUnmaximize(w); Native.GtkWindowUnmaximize(GtkWidget);
Native.GdkWindowDeiconify(w); Native.GtkWindowDeiconify(GtkWidget);
} }
} }
} }

Loading…
Cancel
Save