#region Local Variables
// General
static volatile XplatUIX11 Instance;
- private static int RefCount;
- private static object XlibLock; // Our locking object
- private static bool themes_enabled;
+ static int RefCount;
+ static object XlibLock; // Our locking object
+ static bool themes_enabled;
// General X11
- private static IntPtr DisplayHandle; // X11 handle to display
- private static int ScreenNo; // Screen number used
- private static IntPtr DefaultColormap; // Colormap for screen
- private static IntPtr CustomVisual; // Visual for window creation
- private static IntPtr CustomColormap; // Colormap for window creation
- private static IntPtr RootWindow; // Handle of the root window for the screen/display
- private static IntPtr FosterParent; // Container to hold child windows until their parent exists
- private static XErrorHandler ErrorHandler; // Error handler delegate
- private static bool ErrorExceptions; // Throw exceptions on X errors
- private int render_major_opcode;
- private int render_first_event;
- private int render_first_error;
+ static IntPtr DisplayHandle; // X11 handle to display
+ static int ScreenNo; // Screen number used
+ static IntPtr DefaultColormap; // Colormap for screen
+ static IntPtr CustomVisual; // Visual for window creation
+ static IntPtr CustomColormap; // Colormap for window creation
+ static IntPtr RootWindow; // Handle of the root window for the screen/display
+ static IntPtr FosterParent; // Container to hold child windows until their parent exists
+ static XErrorHandler ErrorHandler; // Error handler delegate
+ static bool ErrorExceptions; // Throw exceptions on X errors
+ int render_major_opcode;
+ int render_first_event;
+ int render_first_error;
// Clipboard
- private static IntPtr ClipMagic;
- private static ClipboardData Clipboard; // Our clipboard
+ static IntPtr ClipMagic;
+ static ClipboardData Clipboard; // Our clipboard
// Communication
- private static IntPtr PostAtom; // PostMessage atom
- private static IntPtr AsyncAtom; // Support for async messages
+ static IntPtr PostAtom; // PostMessage atom
+ static IntPtr AsyncAtom; // Support for async messages
// Message Loop
- private static Hashtable MessageQueues; // Holds our thread-specific XEventQueues
- private static ArrayList unattached_timer_list; // holds timers that are enabled but not attached to a window.
+ static Hashtable MessageQueues; // Holds our thread-specific XEventQueues
+ static ArrayList unattached_timer_list; // holds timers that are enabled but not attached to a window.
#if __MonoCS__ //
- private static Pollfd[] pollfds; // For watching the X11 socket
- private static bool wake_waiting;
- private static object wake_waiting_lock = new object ();
+ static Pollfd[] pollfds; // For watching the X11 socket
+ static bool wake_waiting;
+ static object wake_waiting_lock = new object ();
#endif //
- private static X11Keyboard Keyboard; //
- private static X11Dnd Dnd;
- private static Socket listen; //
- private static Socket wake; //
- private static Socket wake_receive; //
- private static byte[] network_buffer; //
- private static bool detectable_key_auto_repeat;
+ static X11Keyboard Keyboard; //
+ static X11Dnd Dnd;
+ static Socket listen; //
+ static Socket wake; //
+ static Socket wake_receive; //
+ static byte[] network_buffer; //
+ static bool detectable_key_auto_repeat;
// Focus tracking
- private static IntPtr ActiveWindow; // Handle of the active window
- private static IntPtr FocusWindow; // Handle of the window with keyboard focus (if any)
+ static IntPtr ActiveWindow; // Handle of the active window
+ static IntPtr FocusWindow; // Handle of the window with keyboard focus (if any)
// Modality support
- private static Stack ModalWindows; // Stack of our modal windows
+ static Stack ModalWindows; // Stack of our modal windows
// Systray
- private static IntPtr SystrayMgrWindow; // Handle of the Systray Manager window
+ static IntPtr SystrayMgrWindow; // Handle of the Systray Manager window
// Cursors
- private static IntPtr LastCursorWindow; // The last window we set the cursor on
- private static IntPtr LastCursorHandle; // The handle that was last set on LastCursorWindow
- private static IntPtr OverrideCursorHandle; // The cursor that is set to override any other cursors
+ static IntPtr LastCursorWindow; // The last window we set the cursor on
+ static IntPtr LastCursorHandle; // The handle that was last set on LastCursorWindow
+ static IntPtr OverrideCursorHandle; // The cursor that is set to override any other cursors
// Caret
- private static CaretStruct Caret; //
+ static CaretStruct Caret; //
// Last window containing the pointer
- private static IntPtr LastPointerWindow; // The last window containing the pointer
+ static IntPtr LastPointerWindow; // The last window containing the pointer
// Our atoms
- private static IntPtr WM_PROTOCOLS;
- private static IntPtr WM_DELETE_WINDOW;
- private static IntPtr WM_TAKE_FOCUS;
- //private static IntPtr _NET_SUPPORTED;
- //private static IntPtr _NET_CLIENT_LIST;
- //private static IntPtr _NET_NUMBER_OF_DESKTOPS;
- private static IntPtr _NET_DESKTOP_GEOMETRY;
- //private static IntPtr _NET_DESKTOP_VIEWPORT;
- private static IntPtr _NET_CURRENT_DESKTOP;
- //private static IntPtr _NET_DESKTOP_NAMES;
- private static IntPtr _NET_ACTIVE_WINDOW;
- private static IntPtr _NET_WORKAREA;
- //private static IntPtr _NET_SUPPORTING_WM_CHECK;
- //private static IntPtr _NET_VIRTUAL_ROOTS;
- //private static IntPtr _NET_DESKTOP_LAYOUT;
- //private static IntPtr _NET_SHOWING_DESKTOP;
- //private static IntPtr _NET_CLOSE_WINDOW;
- //private static IntPtr _NET_MOVERESIZE_WINDOW;
- private static IntPtr _NET_WM_MOVERESIZE;
- //private static IntPtr _NET_RESTACK_WINDOW;
- //private static IntPtr _NET_REQUEST_FRAME_EXTENTS;
- private static IntPtr _NET_WM_NAME;
- //private static IntPtr _NET_WM_VISIBLE_NAME;
- //private static IntPtr _NET_WM_ICON_NAME;
- //private static IntPtr _NET_WM_VISIBLE_ICON_NAME;
- //private static IntPtr _NET_WM_DESKTOP;
- private static IntPtr _NET_WM_WINDOW_TYPE;
- private static IntPtr _NET_WM_STATE;
- //private static IntPtr _NET_WM_ALLOWED_ACTIONS;
- //private static IntPtr _NET_WM_STRUT;
- //private static IntPtr _NET_WM_STRUT_PARTIAL;
- //private static IntPtr _NET_WM_ICON_GEOMETRY;
- private static IntPtr _NET_WM_ICON;
- //private static IntPtr _NET_WM_PID;
- //private static IntPtr _NET_WM_HANDLED_ICONS;
- private static IntPtr _NET_WM_USER_TIME;
- private static IntPtr _NET_FRAME_EXTENTS;
- //private static IntPtr _NET_WM_PING;
- //private static IntPtr _NET_WM_SYNC_REQUEST;
- private static IntPtr _NET_SYSTEM_TRAY_S;
- //private static IntPtr _NET_SYSTEM_TRAY_ORIENTATION;
- private static IntPtr _NET_SYSTEM_TRAY_OPCODE;
- private static IntPtr _NET_WM_STATE_MAXIMIZED_HORZ;
- private static IntPtr _NET_WM_STATE_MAXIMIZED_VERT;
- private static IntPtr _XEMBED;
- private static IntPtr _XEMBED_INFO;
- private static IntPtr _MOTIF_WM_HINTS;
- private static IntPtr _NET_WM_STATE_SKIP_TASKBAR;
- private static IntPtr _NET_WM_STATE_ABOVE;
- private static IntPtr _NET_WM_STATE_MODAL;
- private static IntPtr _NET_WM_STATE_HIDDEN;
- private static IntPtr _NET_WM_CONTEXT_HELP;
- private static IntPtr _NET_WM_WINDOW_OPACITY;
- //private static IntPtr _NET_WM_WINDOW_TYPE_DESKTOP;
- //private static IntPtr _NET_WM_WINDOW_TYPE_DOCK;
- //private static IntPtr _NET_WM_WINDOW_TYPE_TOOLBAR;
- //private static IntPtr _NET_WM_WINDOW_TYPE_MENU;
- private static IntPtr _NET_WM_WINDOW_TYPE_UTILITY;
- //private static IntPtr _NET_WM_WINDOW_TYPE_SPLASH;
- // private static IntPtr _NET_WM_WINDOW_TYPE_DIALOG;
- private static IntPtr _NET_WM_WINDOW_TYPE_NORMAL;
- private static IntPtr CLIPBOARD;
- private static IntPtr PRIMARY;
- //private static IntPtr DIB;
- private static IntPtr OEMTEXT;
- private static IntPtr UTF8_STRING;
- private static IntPtr UTF16_STRING;
- private static IntPtr RICHTEXTFORMAT;
- private static IntPtr TARGETS;
+ static IntPtr WM_PROTOCOLS;
+ static IntPtr WM_DELETE_WINDOW;
+ static IntPtr WM_TAKE_FOCUS;
+ //static IntPtr _NET_SUPPORTED;
+ //static IntPtr _NET_CLIENT_LIST;
+ //static IntPtr _NET_NUMBER_OF_DESKTOPS;
+ static IntPtr _NET_DESKTOP_GEOMETRY;
+ //static IntPtr _NET_DESKTOP_VIEWPORT;
+ static IntPtr _NET_CURRENT_DESKTOP;
+ //static IntPtr _NET_DESKTOP_NAMES;
+ static IntPtr _NET_ACTIVE_WINDOW;
+ static IntPtr _NET_WORKAREA;
+ //static IntPtr _NET_SUPPORTING_WM_CHECK;
+ //static IntPtr _NET_VIRTUAL_ROOTS;
+ //static IntPtr _NET_DESKTOP_LAYOUT;
+ //static IntPtr _NET_SHOWING_DESKTOP;
+ //static IntPtr _NET_CLOSE_WINDOW;
+ //static IntPtr _NET_MOVERESIZE_WINDOW;
+ static IntPtr _NET_WM_MOVERESIZE;
+ //static IntPtr _NET_RESTACK_WINDOW;
+ //static IntPtr _NET_REQUEST_FRAME_EXTENTS;
+ static IntPtr _NET_WM_NAME;
+ //static IntPtr _NET_WM_VISIBLE_NAME;
+ //static IntPtr _NET_WM_ICON_NAME;
+ //static IntPtr _NET_WM_VISIBLE_ICON_NAME;
+ //static IntPtr _NET_WM_DESKTOP;
+ static IntPtr _NET_WM_WINDOW_TYPE;
+ static IntPtr _NET_WM_STATE;
+ //static IntPtr _NET_WM_ALLOWED_ACTIONS;
+ //static IntPtr _NET_WM_STRUT;
+ //static IntPtr _NET_WM_STRUT_PARTIAL;
+ //static IntPtr _NET_WM_ICON_GEOMETRY;
+ static IntPtr _NET_WM_ICON;
+ //static IntPtr _NET_WM_PID;
+ //static IntPtr _NET_WM_HANDLED_ICONS;
+ static IntPtr _NET_WM_USER_TIME;
+ static IntPtr _NET_FRAME_EXTENTS;
+ //static IntPtr _NET_WM_PING;
+ //static IntPtr _NET_WM_SYNC_REQUEST;
+ static IntPtr _NET_SYSTEM_TRAY_S;
+ //static IntPtr _NET_SYSTEM_TRAY_ORIENTATION;
+ static IntPtr _NET_SYSTEM_TRAY_OPCODE;
+ static IntPtr _NET_WM_STATE_MAXIMIZED_HORZ;
+ static IntPtr _NET_WM_STATE_MAXIMIZED_VERT;
+ static IntPtr _XEMBED;
+ static IntPtr _XEMBED_INFO;
+ static IntPtr _MOTIF_WM_HINTS;
+ static IntPtr _NET_WM_STATE_SKIP_TASKBAR;
+ static IntPtr _NET_WM_STATE_ABOVE;
+ static IntPtr _NET_WM_STATE_MODAL;
+ static IntPtr _NET_WM_STATE_HIDDEN;
+ static IntPtr _NET_WM_CONTEXT_HELP;
+ static IntPtr _NET_WM_WINDOW_OPACITY;
+ //static IntPtr _NET_WM_WINDOW_TYPE_DESKTOP;
+ //static IntPtr _NET_WM_WINDOW_TYPE_DOCK;
+ //static IntPtr _NET_WM_WINDOW_TYPE_TOOLBAR;
+ //static IntPtr _NET_WM_WINDOW_TYPE_MENU;
+ static IntPtr _NET_WM_WINDOW_TYPE_UTILITY;
+ //static IntPtr _NET_WM_WINDOW_TYPE_SPLASH;
+ // static IntPtr _NET_WM_WINDOW_TYPE_DIALOG;
+ static IntPtr _NET_WM_WINDOW_TYPE_NORMAL;
+ static IntPtr CLIPBOARD;
+ static IntPtr PRIMARY;
+ //static IntPtr DIB;
+ static IntPtr OEMTEXT;
+ static IntPtr UTF8_STRING;
+ static IntPtr UTF16_STRING;
+ static IntPtr RICHTEXTFORMAT;
+ static IntPtr TARGETS;
// mouse hover message generation
- private static HoverStruct HoverState; //
+ static HoverStruct HoverState; //
// double click message generation
- private static ClickStruct ClickPending; //
+ static ClickStruct ClickPending; //
// Support for mouse grab
- private static GrabStruct Grab; //
+ static GrabStruct Grab; //
// State
Point mouse_position; // Last position of mouse, in screen coords
internal static MouseButtons MouseState; // Last state of mouse buttons
internal static bool in_doevents;
// 'Constants'
- private static int DoubleClickInterval; // msec; max interval between clicks to count as double click
+ static int DoubleClickInterval; // msec; max interval between clicks to count as double click
const EventMask SelectInputMask = (EventMask.ButtonPressMask |
EventMask.ButtonReleaseMask |
#endregion // Local Variables
#region Constructors
- private XplatUIX11() {
+ XplatUIX11()
+ {
// Handle singleton stuff first
RefCount = 0;
in_doevents = false;
#endregion // XExceptionClass
#region Internal Methods
- internal void SetDisplay(IntPtr display_handle) {
+ internal void SetDisplay(IntPtr display_handle)
+ {
if (display_handle != IntPtr.Zero) {
Hwnd hwnd;
wake = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
wake.Connect(listen.LocalEndPoint);
+
+ // Make this non-blocking, so it doesn't
+ // deadlock if too many wakes are sent
+ // before the wake_receive end is polled
+ wake.Blocking = false;
+
wake_receive = listen.Accept();
#if __MonoCS__
}
#endregion // Internal Methods
- #region Private Methods
- private int unixtime() {
+ #region Methods
+ [Conditional ("DriverDebug")]
+ static void DriverDebug (string format, params object [] args)
+ {
+ Console.WriteLine (String.Format (format, args));
+ }
+
+ int unixtime() {
TimeSpan t = (DateTime.UtcNow - new DateTime(1970, 1, 1));
return (int) t.TotalSeconds;
}
- private static void SetupAtoms() {
+ static void SetupAtoms() {
// make sure this array stays in sync with the statements below
string [] atom_names = new string[] {
"WM_PROTOCOLS",
_NET_SYSTEM_TRAY_S = XInternAtom (DisplayHandle, "_NET_SYSTEM_TRAY_S" + ScreenNo.ToString(), false);
}
- private void GetSystrayManagerWindow() {
+ void GetSystrayManagerWindow() {
XGrabServer(DisplayHandle);
SystrayMgrWindow = XGetSelectionOwner(DisplayHandle, _NET_SYSTEM_TRAY_S);
XUngrabServer(DisplayHandle);
XFlush(DisplayHandle);
}
- private void SendNetWMMessage(IntPtr window, IntPtr message_type, IntPtr l0, IntPtr l1, IntPtr l2) {
+ void SendNetWMMessage(IntPtr window, IntPtr message_type, IntPtr l0, IntPtr l1, IntPtr l2) {
SendNetWMMessage (window, message_type, l0, l1, l2, IntPtr.Zero);
}
- private void SendNetWMMessage(IntPtr window, IntPtr message_type, IntPtr l0, IntPtr l1, IntPtr l2, IntPtr l3) {
+ void SendNetWMMessage(IntPtr window, IntPtr message_type, IntPtr l0, IntPtr l1, IntPtr l2, IntPtr l3) {
XEvent xev;
xev = new XEvent();
XSendEvent(DisplayHandle, RootWindow, false, new IntPtr ((int) (EventMask.SubstructureRedirectMask | EventMask.SubstructureNotifyMask)), ref xev);
}
- private void SendNetClientMessage(IntPtr window, IntPtr message_type, IntPtr l0, IntPtr l1, IntPtr l2) {
+ void SendNetClientMessage(IntPtr window, IntPtr message_type, IntPtr l0, IntPtr l1, IntPtr l2) {
XEvent xev;
xev = new XEvent();
return new Point (x, y);
}
- private void DeriveStyles(int Style, int ExStyle, out FormBorderStyle border_style, out bool border_static, out TitleStyle title_style, out int caption_height, out int tool_caption_height) {
+ void DeriveStyles(int Style, int ExStyle, out FormBorderStyle border_style, out bool border_static, out TitleStyle title_style, out int caption_height, out int tool_caption_height) {
caption_height = 0;
tool_caption_height = 19;
}
}
- private void SetHwndStyles(Hwnd hwnd, CreateParams cp) {
+ void SetHwndStyles(Hwnd hwnd, CreateParams cp) {
DeriveStyles(cp.Style, cp.ExStyle, out hwnd.border_style, out hwnd.border_static, out hwnd.title_style, out hwnd.caption_height, out hwnd.tool_caption_height);
}
- private void SetWMStyles(Hwnd hwnd, CreateParams cp) {
+ void SetWMStyles(Hwnd hwnd, CreateParams cp) {
MotifWmHints mwmHints;
MotifFunctions functions;
MotifDecorations decorations;
mwmHints.functions = (IntPtr)functions;
mwmHints.decorations = (IntPtr)decorations;
-#if debug
- Console.WriteLine ("SetWMStyles ({0}, {1}) functions = {2}, decorations = {3}", hwnd, cp, functions, decorations);
-#endif
+ DriverDebug ("SetWMStyles ({0}, {1}) functions = {2}, decorations = {3}", hwnd, cp, functions, decorations);
if (cp.IsSet (WindowExStyles.WS_EX_TOOLWINDOW)) {
// needed! map toolwindows to _NET_WM_WINDOW_TYPE_UTILITY to make newer metacity versions happy
}
}
- private void SetIcon(Hwnd hwnd, Icon icon)
+ void SetIcon(Hwnd hwnd, Icon icon)
{
if (icon == null) {
// XXX
}
}
- private void WakeupMain () {
- wake.Send (new byte [] { 0xFF });
+ void WakeupMain () {
+ try {
+ wake.Send (new byte [] { 0xFF });
+ } catch (SocketException ex) {
+ if (ex.SocketErrorCode != SocketError.WouldBlock) {
+ throw;
+ }
+ }
}
- private XEventQueue ThreadQueue(Thread thread) {
+ XEventQueue ThreadQueue(Thread thread) {
XEventQueue queue;
queue = (XEventQueue)MessageQueues[thread];
return queue;
}
- private void TranslatePropertyToClipboard(IntPtr property) {
+ void TranslatePropertyToClipboard(IntPtr property) {
IntPtr actual_atom;
int actual_format;
IntPtr nitems;
if ((long)nitems > 0) {
if (property == (IntPtr)Atom.XA_STRING) {
- Clipboard.Item = Marshal.PtrToStringAnsi(prop);
+ // Xamarin-5116: PtrToStringAnsi expects to get UTF-8, but we might have
+ // Latin-1 instead.
+ var s = Marshal.PtrToStringAnsi (prop);
+ if (string.IsNullOrEmpty (s)) {
+ var sb = new StringBuilder ();
+ for (int i = 0; i < (int)nitems; i++) {
+ var b = Marshal.ReadByte (prop, i);
+ sb.Append ((char)b);
+ }
+ s = sb.ToString ();
+ }
+ // Some X managers/apps pass unicode chars as escaped strings, so
+ // we may need to unescape them.
+ Clipboard.Item = UnescapeUnicodeFromAnsi (s);
} else if (property == (IntPtr)Atom.XA_BITMAP) {
// FIXME - convert bitmap to image
} else if (property == (IntPtr)Atom.XA_PIXMAP) {
// FIXME - convert pixmap to image
} else if (property == OEMTEXT) {
- Clipboard.Item = Marshal.PtrToStringAnsi(prop);
+ Clipboard.Item = UnescapeUnicodeFromAnsi (Marshal.PtrToStringAnsi(prop));
} else if (property == UTF8_STRING) {
byte [] buffer = new byte [(int)nitems];
for (int i = 0; i < (int)nitems; i++)
}
}
- private void AddExpose (Hwnd hwnd, bool client, int x, int y, int width, int height) {
+ string UnescapeUnicodeFromAnsi (string value)
+ {
+ if (value == null || value.IndexOf ("\\u") == -1)
+ return value;
+
+ StringBuilder sb = new StringBuilder (value.Length);
+ int start, pos;
+
+ start = pos = 0;
+ while (start < value.Length) {
+ pos = value.IndexOf ("\\u", start);
+ if (pos == -1)
+ break;
+
+ sb.Append (value, start, pos - start);
+ pos += 2;
+ start = pos;
+
+ int length = 0;
+ while (pos < value.Length) {
+ if (!ValidHexDigit (value [pos]))
+ break;
+ length++;
+ pos++;
+ }
+
+ int res;
+ if (!Int32.TryParse (value.Substring (start, length), System.Globalization.NumberStyles.HexNumber,
+ null, out res))
+ return value; // Error, return the unescaped original value.
+
+ sb.Append ((char)res);
+ start = pos;
+ }
+
+ // Append any remaining data.
+ if (start < value.Length)
+ sb.Append (value, start, value.Length - start);
+
+ return sb.ToString ();
+ }
+
+ private static bool ValidHexDigit (char e)
+ {
+ return Char.IsDigit (e) || (e >= 'A' && e <= 'F') || (e >= 'a' && e <= 'f');
+ }
+
+ void AddExpose (Hwnd hwnd, bool client, int x, int y, int width, int height) {
// Don't waste time
if ((hwnd == null) || (x > hwnd.Width) || (y > hwnd.Height) || ((x + width) < 0) || ((y + height) < 0)) {
return;
}
}
- private static Hwnd.Borders FrameExtents (IntPtr window)
+ static Hwnd.Borders FrameExtents (IntPtr window)
{
IntPtr actual_atom;
int actual_format;
return rect;
}
- private void AddConfigureNotify (XEvent xevent) {
+ void AddConfigureNotify (XEvent xevent) {
Hwnd hwnd;
hwnd = Hwnd.GetObjectFromWindow(xevent.ConfigureEvent.window);
hwnd.height = TranslatedSize.Height;
hwnd.ClientRect = Rectangle.Empty;
-#if debug
- Console.WriteLine ("AddConfigureNotify (hwnd.Handle = {1}, final hwnd.rect = {0}, reported rect={2})", new Rectangle (hwnd.x, hwnd.y, hwnd.width, hwnd.height), hwnd.Handle, new Rectangle (xevent.ConfigureEvent.x, xevent.ConfigureEvent.y, xevent.ConfigureEvent.width, xevent.ConfigureEvent.width));
-#endif
+ DriverDebug ("AddConfigureNotify (hwnd.Handle = {1}, final hwnd.rect = {0}, reported rect={2})",
+ new Rectangle (hwnd.x, hwnd.y, hwnd.width, hwnd.height), hwnd.Handle,
+ new Rectangle (xevent.ConfigureEvent.x, xevent.ConfigureEvent.y, xevent.ConfigureEvent.width, xevent.ConfigureEvent.width));
lock (hwnd.configure_lock) {
if (!hwnd.configure_pending) {
hwnd.Queue.EnqueueLocked (xevent);
// We drop configure events for Client windows
}
- private void ShowCaret() {
+ void ShowCaret() {
if ((Caret.gc == IntPtr.Zero) || Caret.On) {
return;
}
}
}
- private void HideCaret() {
+ void HideCaret() {
if ((Caret.gc == IntPtr.Zero) || !Caret.On) {
return;
}
}
}
- private int NextTimeout (ArrayList timers, DateTime now) {
+ int NextTimeout (ArrayList timers, DateTime now) {
int timeout = 0;
foreach (Timer timer in timers) {
return timeout;
}
- private void CheckTimers (ArrayList timers, DateTime now) {
+ void CheckTimers (ArrayList timers, DateTime now) {
int count;
count = timers.Count;
}
}
- private void WaitForHwndMessage (Hwnd hwnd, Msg message) {
+ void WaitForHwndMessage (Hwnd hwnd, Msg message) {
WaitForHwndMessage (hwnd, message, false);
}
- private void WaitForHwndMessage (Hwnd hwnd, Msg message, bool process) {
+ void WaitForHwndMessage (Hwnd hwnd, Msg message, bool process) {
MSG msg = new MSG ();
XEventQueue queue;
}
- private void MapWindow(Hwnd hwnd, WindowType windows) {
+ void MapWindow(Hwnd hwnd, WindowType windows) {
if (!hwnd.mapped) {
Form f = Control.FromHandle(hwnd.Handle) as Form;
if (f != null) {
if (hwnd.zombie)
return;
- if ((windows & WindowType.Whole) != 0) {
- XMapWindow(DisplayHandle, hwnd.whole_window);
- }
- if ((windows & WindowType.Client) != 0) {
- XMapWindow(DisplayHandle, hwnd.client_window);
+ if (hwnd.topmost) {
+ // Most window managers will respect the _NET_WM_STATE property.
+ // If not, use XMapRaised to map the window at the top level as
+ // a last ditch effort.
+ if ((windows & WindowType.Whole) != 0) {
+ XMapRaised(DisplayHandle, hwnd.whole_window);
+ }
+ if ((windows & WindowType.Client) != 0) {
+ XMapRaised(DisplayHandle, hwnd.client_window);
+ }
+ } else {
+ if ((windows & WindowType.Whole) != 0) {
+ XMapWindow(DisplayHandle, hwnd.whole_window);
+ }
+ if ((windows & WindowType.Client) != 0) {
+ XMapWindow(DisplayHandle, hwnd.client_window);
+ }
}
hwnd.mapped = true;
}
}
- private void UnmapWindow(Hwnd hwnd, WindowType windows) {
+ void UnmapWindow(Hwnd hwnd, WindowType windows) {
if (hwnd.mapped) {
Form f = null;
if (Control.FromHandle(hwnd.Handle) is Form) {
}
}
- private void UpdateMessageQueue (XEventQueue queue) {
+ void UpdateMessageQueue (XEventQueue queue) {
+ UpdateMessageQueue(queue, true);
+ }
+
+ void UpdateMessageQueue (XEventQueue queue, bool allowIdle) {
DateTime now;
int pending;
Hwnd hwnd;
pending = XPending (DisplayHandle);
}
- if (pending == 0) {
+ if (pending == 0 && allowIdle) {
if ((queue == null || queue.DispatchIdle) && Idle != null) {
Idle (this, EventArgs.Empty);
}
if (hwnd == null)
continue;
-#if debug
- Console.WriteLine ("UpdateMessageQueue (), got Event: {0}", xevent.ToString ());
-#else
DebugHelper.WriteLine ("UpdateMessageQueue got Event: " + xevent.ToString ());
-#endif
+
switch (xevent.type) {
case XEventName.Expose:
AddExpose (hwnd, xevent.ExposeEvent.window == hwnd.ClientWindow, xevent.ExposeEvent.x, xevent.ExposeEvent.y, xevent.ExposeEvent.width, xevent.ExposeEvent.height);
XDeleteProperty(DisplayHandle, FosterParent, (IntPtr)xevent.SelectionEvent.property);
if (!Clipboard.Formats.Contains(xevent.SelectionEvent.property)) {
Clipboard.Formats.Add(xevent.SelectionEvent.property);
- #if DriverDebugExtra
- Console.WriteLine("Got supported clipboard atom format: {0}", xevent.SelectionEvent.property);
- #endif
+ DriverDebug("Got supported clipboard atom format: {0}", xevent.SelectionEvent.property);
}
}
} else if (Clipboard.Retrieving) {
break;
case XEventName.PropertyNotify:
-#if debug
- Console.WriteLine ("UpdateMessageQueue (), got Event: {0}", xevent.ToString ());
-#endif
+ DriverDebug ("UpdateMessageQueue (), got Event: {0}", xevent.ToString ());
if (xevent.PropertyEvent.atom == _NET_ACTIVE_WINDOW) {
IntPtr actual_atom;
int actual_format;
}
}
- private IntPtr GetMousewParam(int Delta) {
+ IntPtr GetMousewParam(int Delta) {
int result = 0;
if ((MouseState & MouseButtons.Left) != 0) {
return (IntPtr)result;
}
- private IntPtr XGetParent(IntPtr handle) {
+ IntPtr XGetParent(IntPtr handle) {
IntPtr Root;
IntPtr Parent;
IntPtr Children;
return Parent;
}
- private int HandleError (IntPtr display, ref XErrorEvent error_event)
+ int HandleError (IntPtr display, ref XErrorEvent error_event)
{
// we need to workaround a problem with the
// ordering of destruction of Drawables and
return 0;
}
- private void AccumulateDestroyedHandles (Control c, ArrayList list)
+ void AccumulateDestroyedHandles (Control c, ArrayList list)
{
DebugHelper.Enter ();
if (c != null) {
if (c.IsHandleCreated && !c.IsDisposed) {
Hwnd hwnd = Hwnd.ObjectFromHandle(c.Handle);
- #if DriverDebug || DriverDebugDestroy
- Console.WriteLine (" + adding {0} to the list of zombie windows", XplatUI.Window (hwnd.Handle));
- Console.WriteLine (" + parent X window is {0:X}", XGetParent (hwnd.whole_window).ToInt32());
- #endif
+ DriverDebug (" + adding {0} to the list of zombie windows", XplatUI.Window (hwnd.Handle));
+ DriverDebug (" + parent X window is {0:X}", XGetParent (hwnd.whole_window).ToInt32());
list.Add (hwnd);
CleanupCachedWindows (hwnd);
DestroyCaret (hwnd.Handle);
}
- private void PerformNCCalc(Hwnd hwnd) {
+ void PerformNCCalc(Hwnd hwnd) {
XplatUIWin32.NCCALCSIZE_PARAMS ncp;
IntPtr ptr;
Rectangle rect;
AddExpose (hwnd, hwnd.WholeWindow == hwnd.ClientWindow, 0, 0, hwnd.Width, hwnd.Height);
}
- #endregion // Private Methods
+ #endregion // Methods
#region Callbacks
- private void MouseHover(object sender, EventArgs e) {
+ void MouseHover(object sender, EventArgs e) {
XEvent xevent;
Hwnd hwnd;
}
}
- private void CaretCallback(object sender, EventArgs e) {
+ void CaretCallback(object sender, EventArgs e) {
if (Caret.Paused) {
return;
}
XFree(prop);
XGetWindowProperty(DisplayHandle, RootWindow, _NET_WORKAREA, IntPtr.Zero, new IntPtr (256), false, (IntPtr)Atom.XA_CARDINAL, out actual_atom, out actual_format, out nitems, out bytes_after, ref prop);
- if ((long)nitems < 4 * current_desktop) {
+ if ((long)nitems < 4 * (current_desktop + 1)) {
goto failsafe;
}
Idle (this, e);
}
- internal override IntPtr InitializeDriver() {
+ internal override IntPtr InitializeDriver()
+ {
lock (this) {
if (DisplayHandle==IntPtr.Zero) {
SetDisplay(XOpenDisplay(IntPtr.Zero));
return IntPtr.Zero;
}
- internal override void ShutdownDriver(IntPtr token) {
+ internal override void ShutdownDriver(IntPtr token)
+ {
lock (this) {
if (DisplayHandle!=IntPtr.Zero) {
XCloseDisplay(DisplayHandle);
}
}
- internal override void EnableThemes() {
+ internal override void EnableThemes()
+ {
themes_enabled = true;
}
- internal override void Activate(IntPtr handle) {
+ internal override void Activate(IntPtr handle)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
}
}
- internal override void AudibleAlert(AlertType alert) {
+ internal override void AudibleAlert(AlertType alert)
+ {
XBell(DisplayHandle, 0);
return;
}
- internal override void CaretVisible(IntPtr handle, bool visible) {
+ internal override void CaretVisible(IntPtr handle, bool visible)
+ {
if (Caret.Hwnd == handle) {
if (visible) {
if (!Caret.Visible) {
}
}
- internal override bool CalculateWindowRect(ref Rectangle ClientRect, CreateParams cp, Menu menu, out Rectangle WindowRect) {
+ internal override bool CalculateWindowRect(ref Rectangle ClientRect, CreateParams cp, Menu menu, out Rectangle WindowRect)
+ {
WindowRect = Hwnd.GetWindowRectangle (cp, menu, ClientRect);
return true;
}
- internal override void ClientToScreen(IntPtr handle, ref int x, ref int y) {
+ internal override void ClientToScreen(IntPtr handle, ref int x, ref int y)
+ {
int dest_x_return;
int dest_y_return;
IntPtr child;
y = dest_y_return;
}
- internal override int[] ClipboardAvailableFormats(IntPtr handle) {
+ internal override int[] ClipboardAvailableFormats(IntPtr handle)
+ {
DataFormats.Format f;
int[] result;
Clipboard.Enumerating = true;
while (Clipboard.Enumerating) {
- UpdateMessageQueue(null);
+ UpdateMessageQueue(null, false);
}
f = f.Next;
}
return result;
}
- internal override void ClipboardClose(IntPtr handle) {
+ internal override void ClipboardClose(IntPtr handle)
+ {
if (handle != ClipMagic) {
throw new ArgumentException("handle is not a valid clipboard handle");
}
return;
}
- internal override int ClipboardGetID(IntPtr handle, string format) {
+ internal override int ClipboardGetID(IntPtr handle, string format)
+ {
if (handle != ClipMagic) {
throw new ArgumentException("handle is not a valid clipboard handle");
}
return XInternAtom(DisplayHandle, format, false).ToInt32();
}
- internal override IntPtr ClipboardOpen(bool primary_selection) {
+ internal override IntPtr ClipboardOpen(bool primary_selection)
+ {
if (!primary_selection)
ClipMagic = CLIPBOARD;
else
return ClipMagic;
}
- internal override object ClipboardRetrieve(IntPtr handle, int type, XplatUI.ClipboardToObject converter) {
+ internal override object ClipboardRetrieve(IntPtr handle, int type, XplatUI.ClipboardToObject converter)
+ {
XConvertSelection(DisplayHandle, handle, (IntPtr)type, (IntPtr)type, FosterParent, IntPtr.Zero);
Clipboard.Retrieving = true;
while (Clipboard.Retrieving) {
- UpdateMessageQueue(null);
+ UpdateMessageQueue(null, false);
}
return Clipboard.Item;
}
- internal override void ClipboardStore(IntPtr handle, object obj, int type, XplatUI.ObjectToClipboard converter) {
+ internal override void ClipboardStore (IntPtr handle, object obj, int type, XplatUI.ObjectToClipboard converter, bool copy)
+ {
Clipboard.Converter = converter;
if (obj != null) {
Clipboard.AddSource (type, obj);
- XSetSelectionOwner(DisplayHandle, CLIPBOARD, FosterParent, IntPtr.Zero);
+ XSetSelectionOwner (DisplayHandle, CLIPBOARD, FosterParent, IntPtr.Zero);
+
+ if (copy) {
+ try {
+ var clipboardAtom = gdk_atom_intern ("CLIPBOARD", true);
+ var clipboard = gtk_clipboard_get (clipboardAtom);
+ if (clipboard != null) {
+ // for now we only store text
+ var text = Clipboard.GetRtfText ();
+ if (string.IsNullOrEmpty (text))
+ text = Clipboard.GetPlainText ();
+ if (!string.IsNullOrEmpty (text)) {
+ gtk_clipboard_set_text (clipboard, text, text.Length);
+ gtk_clipboard_store (clipboard);
+ }
+ }
+ } catch {
+ // ignore any errors - most likely because gtk isn't installed?
+ }
+ }
} else {
// Clearing the selection
Clipboard.ClearSources ();
- XSetSelectionOwner(DisplayHandle, CLIPBOARD, IntPtr.Zero, IntPtr.Zero);
+ XSetSelectionOwner (DisplayHandle, CLIPBOARD, IntPtr.Zero, IntPtr.Zero);
}
}
hwnd.WholeWindow = WholeWindow;
hwnd.ClientWindow = ClientWindow;
- #if DriverDebug || DriverDebugCreate
- Console.WriteLine("Created window {0:X} / {1:X} parent {2:X}, Style {3}, ExStyle {4}", ClientWindow.ToInt32(), WholeWindow.ToInt32(), hwnd.parent != null ? hwnd.parent.Handle.ToInt32() : 0, (WindowStyles)cp.Style, (WindowExStyles)cp.ExStyle);
- #endif
+ DriverDebug("Created window {0:X} / {1:X} parent {2:X}, Style {3}, ExStyle {4}", ClientWindow.ToInt32(), WholeWindow.ToInt32(), hwnd.parent != null ? hwnd.parent.Handle.ToInt32() : 0, (WindowStyles)cp.Style, (WindowExStyles)cp.ExStyle);
if (!StyleSet (cp.Style, WindowStyles.WS_CHILD)) {
if ((X != unchecked((int)0x80000000)) && (Y != unchecked((int)0x80000000))) {
XSelectInput(DisplayHandle, hwnd.client_window, new IntPtr ((int)(SelectInputMask | EventMask.StructureNotifyMask | Keyboard.KeyEventMask)));
}
- if (ExStyleSet (cp.ExStyle, WindowExStyles.WS_EX_TOPMOST)) {
- atoms = new int[2];
- atoms[0] = _NET_WM_WINDOW_TYPE_NORMAL.ToInt32();
- XChangeProperty(DisplayHandle, hwnd.whole_window, _NET_WM_WINDOW_TYPE, (IntPtr)Atom.XA_ATOM, 32, PropertyMode.Replace, atoms, 1);
-
- XSetTransientForHint (DisplayHandle, hwnd.whole_window, RootWindow);
- }
+ if (ExStyleSet (cp.ExStyle, WindowExStyles.WS_EX_TOPMOST))
+ SetTopmost(hwnd.whole_window, true);
SetWMStyles(hwnd, cp);
return hwnd.Handle;
}
- internal override IntPtr CreateWindow(IntPtr Parent, int X, int Y, int Width, int Height) {
+ internal override IntPtr CreateWindow(IntPtr Parent, int X, int Y, int Width, int Height)
+ {
CreateParams create_params = new CreateParams();
create_params.Caption = "";
create_params.Width = Width;
create_params.Height = Height;
- create_params.ClassName=XplatUI.DefaultClassName;
+ create_params.ClassName=XplatUI.GetDefaultClassName (GetType ());
create_params.ClassStyle = 0;
create_params.ExStyle=0;
create_params.Parent=IntPtr.Zero;
return CreateWindow(create_params);
}
- internal override IntPtr DefineCursor(Bitmap bitmap, Bitmap mask, Color cursor_pixel, Color mask_pixel, int xHotSpot, int yHotSpot) {
+ internal override IntPtr DefineCursor(Bitmap bitmap, Bitmap mask, Color cursor_pixel, Color mask_pixel, int xHotSpot, int yHotSpot)
+ {
IntPtr cursor;
Bitmap cursor_bitmap;
Bitmap cursor_mask;
return cursor;
}
- internal override Bitmap DefineStdCursorBitmap (StdCursor id) {
+ internal override Bitmap DefineStdCursorBitmap (StdCursor id)
+ {
CursorFontShape shape;
string name;
IntPtr theme;
size = XcursorGetDefaultSize (DisplayHandle);
theme = XcursorGetTheme (DisplayHandle);
IntPtr images_ptr = XcursorLibraryLoadImages (name, theme, size);
-#if debug
- Console.WriteLine ("DefineStdCursorBitmap, id={0}, #id={1}, name{2}, size={3}, theme: {4}, images_ptr={5}", id, (int) id, name, size, Marshal.PtrToStringAnsi (theme), images_ptr);
-#endif
+ DriverDebug ("DefineStdCursorBitmap, id={0}, #id={1}, name{2}, size={3}, theme: {4}, images_ptr={5}", id, (int) id, name, size, Marshal.PtrToStringAnsi (theme), images_ptr);
if (images_ptr == IntPtr.Zero) {
return null;
}
XcursorImages images = (XcursorImages) Marshal.PtrToStructure (images_ptr, typeof (XcursorImages));
-#if debug
- Console.WriteLine ("DefineStdCursorBitmap, cursor has {0} images", images.nimage);
-#endif
+ DriverDebug ("DefineStdCursorBitmap, cursor has {0} images", images.nimage);
if (images.nimage > 0) {
// We only care about the first image.
XcursorImage image = (XcursorImage)Marshal.PtrToStructure (Marshal.ReadIntPtr (images.images), typeof (XcursorImage));
-#if debug
- Console.WriteLine ("DefineStdCursorBitmap, loaded image <size={0}, height={1}, width={2}, xhot={3}, yhot={4}, pixels={5}", image.size, image.height, image.width, image.xhot, image.yhot, image.pixels);
-#endif
+ DriverDebug ("DefineStdCursorBitmap, loaded image <size={0}, height={1}, width={2}, xhot={3}, yhot={4}, pixels={5}", image.size, image.height, image.width, image.xhot, image.yhot, image.pixels);
// A sanity check
if (image.width <= short.MaxValue && image.height <= short.MaxValue) {
int [] pixels = new int [image.width * image.height];
}
- internal override IntPtr DefineStdCursor(StdCursor id) {
+ internal override IntPtr DefineStdCursor(StdCursor id)
+ {
CursorFontShape shape;
IntPtr cursor;
return cursor;
}
- internal static CursorFontShape StdCursorToFontShape (StdCursor id) {
+ internal static CursorFontShape StdCursorToFontShape (StdCursor id)
+ {
CursorFontShape shape;
// FIXME - define missing shapes
return shape;
}
- internal override IntPtr DefWndProc(ref Message msg) {
+ internal override IntPtr DefWndProc(ref Message msg)
+ {
switch ((Msg)msg.Msg) {
case Msg.WM_IME_COMPOSITION:
return IntPtr.Zero;
}
- internal override void DestroyCaret(IntPtr handle) {
+ internal override void DestroyCaret(IntPtr handle)
+ {
if (Caret.Hwnd == handle) {
if (Caret.Visible) {
HideCaret ();
}
}
- internal override void DestroyCursor(IntPtr cursor) {
+ internal override void DestroyCursor(IntPtr cursor)
+ {
lock (XlibLock) {
XFreeCursor(DisplayHandle, cursor);
}
}
- internal override void DestroyWindow(IntPtr handle) {
+ internal override void DestroyWindow(IntPtr handle)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
// wait until it's completely dead before returning from
// "destroying" calls, but just in case....
if (hwnd == null || hwnd.zombie) {
- #if DriverDebug || DriverDebugDestroy
- Console.WriteLine("window {0:X} already destroyed", handle.ToInt32());
- #endif
+ DriverDebug ("window {0:X} already destroyed", handle.ToInt32());
return;
}
- #if DriverDebug || DriverDebugDestroy
- Console.WriteLine("Destroying window {0}", XplatUI.Window(hwnd.client_window));
- #endif
+ DriverDebug ("Destroying window {0}", XplatUI.Window(hwnd.client_window));
SendParentNotify (hwnd.Handle, Msg.WM_DESTROY, int.MaxValue, int.MaxValue);
lock (XlibLock) {
if (hwnd.whole_window != IntPtr.Zero) {
- #if DriverDebug || DriverDebugDestroy
- Console.WriteLine ("XDestroyWindow (whole_window = {0:X})", hwnd.whole_window.ToInt32());
- #endif
+ DriverDebug ("XDestroyWindow (whole_window = {0:X})", hwnd.whole_window.ToInt32());
Keyboard.DestroyICForWindow (hwnd.whole_window);
XDestroyWindow(DisplayHandle, hwnd.whole_window);
}
else if (hwnd.client_window != IntPtr.Zero) {
- #if DriverDebug || DriverDebugDestroy
- Console.WriteLine ("XDestroyWindow (client_window = {0:X})", hwnd.client_window.ToInt32());
- #endif
+ DriverDebug ("XDestroyWindow (client_window = {0:X})", hwnd.client_window.ToInt32());
Keyboard.DestroyICForWindow (hwnd.client_window);
XDestroyWindow(DisplayHandle, hwnd.client_window);
}
}
}
- internal override IntPtr DispatchMessage(ref MSG msg) {
+ internal override IntPtr DispatchMessage(ref MSG msg)
+ {
return NativeWindow.WndProc(msg.hwnd, msg.message, msg.wParam, msg.lParam);
}
XFreeGC(DisplayHandle, gc);
}
- internal override void DoEvents() {
+ internal override void DoEvents()
+ {
DebugHelper.Enter ();
MSG msg = new MSG ();
DebugHelper.Leave ();
}
- internal override void EnableWindow(IntPtr handle, bool Enable) {
+ internal override void EnableWindow(IntPtr handle, bool Enable)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
}
}
- internal override void EndLoop(Thread thread) {
+ internal override void EndLoop(Thread thread)
+ {
// This is where we one day will shut down the loop for the thread
}
- internal override IntPtr GetActive() {
+ internal override IntPtr GetActive()
+ {
IntPtr actual_atom;
int actual_format;
IntPtr nitems;
if (((long)nitems > 0) && (prop != IntPtr.Zero)) {
active = (IntPtr)Marshal.ReadInt32(prop);
XFree(prop);
+ } else {
+ // The window manager does not support _NET_ACTIVE_WINDOW. Fall back to XGetInputFocus.
+ IntPtr revert_to = IntPtr.Zero;
+ XGetInputFocus(DisplayHandle, out active, out revert_to);
}
if (active != IntPtr.Zero) {
return active;
}
- internal override Region GetClipRegion(IntPtr handle) {
+ internal override Region GetClipRegion(IntPtr handle)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
return null;
}
- internal override void GetCursorInfo(IntPtr cursor, out int width, out int height, out int hotspot_x, out int hotspot_y) {
+ internal override void GetCursorInfo(IntPtr cursor, out int width, out int height, out int hotspot_x, out int hotspot_y)
+ {
width = 20;
height = 20;
hotspot_x = 0;
hotspot_y = 0;
}
- internal override void GetDisplaySize(out Size size) {
+ internal override void GetDisplaySize(out Size size)
+ {
XWindowAttributes attributes=new XWindowAttributes();
lock (XlibLock) {
size = new Size(attributes.width, attributes.height);
}
- internal override SizeF GetAutoScaleSize(Font font) {
+ internal override SizeF GetAutoScaleSize(Font font)
+ {
Graphics g;
float width;
string magic_string = "The quick brown fox jumped over the lazy dog.";
return new SizeF(width, font.Height);
}
- internal override IntPtr GetParent(IntPtr handle) {
+ internal override IntPtr GetParent(IntPtr handle)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
}
// This is a nop on win32 and x11
- internal override IntPtr GetPreviousWindow(IntPtr handle) {
+ internal override IntPtr GetPreviousWindow(IntPtr handle)
+ {
return handle;
}
- internal override void GetCursorPos(IntPtr handle, out int x, out int y) {
+ internal override void GetCursorPos(IntPtr handle, out int x, out int y)
+ {
IntPtr use_handle;
IntPtr root;
IntPtr child;
}
}
- internal override IntPtr GetFocus() {
+ internal override IntPtr GetFocus()
+ {
return FocusWindow;
}
- internal override bool GetFontMetrics(Graphics g, Font font, out int ascent, out int descent) {
+ internal override bool GetFontMetrics(Graphics g, Font font, out int ascent, out int descent)
+ {
FontFamily ff = font.FontFamily;
ascent = ff.GetCellAscent (font.Style);
descent = ff.GetCellDescent (font.Style);
return true;
}
- internal override Point GetMenuOrigin(IntPtr handle) {
+ internal override Point GetMenuOrigin(IntPtr handle)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
}
[MonoTODO("Implement filtering")]
- internal override bool GetMessage(Object queue_id, ref MSG msg, IntPtr handle, int wFilterMin, int wFilterMax) {
+ internal override bool GetMessage(Object queue_id, ref MSG msg, IntPtr handle, int wFilterMin, int wFilterMax)
+ {
XEvent xevent;
bool client;
Hwnd hwnd;
// client_window, and that'll result in BadWindow errors if there's some lag
// between the XDestroyWindow call and the DestroyNotify event.
if (hwnd == null || hwnd.zombie && xevent.AnyEvent.type != XEventName.ClientMessage) {
- #if DriverDebug || DriverDebugDestroy
- Console.WriteLine("GetMessage(): Got message {0} for non-existent or already destroyed window {1:X}", xevent.type, xevent.AnyEvent.window.ToInt32());
- #endif
+ DriverDebug("GetMessage(): Got message {0} for non-existent or already destroyed window {1:X}", xevent.type, xevent.AnyEvent.window.ToInt32());
goto ProcessNextMessage;
}
case XEventName.MotionNotify: {
if (client) {
- #if DriverDebugExtra
- Console.WriteLine("GetMessage(): Window {0:X} MotionNotify x={1} y={2}", client ? hwnd.client_window.ToInt32() : hwnd.whole_window.ToInt32(), xevent.MotionEvent.x, xevent.MotionEvent.y);
- #endif
+ DriverDebug("GetMessage(): Window {0:X} MotionNotify x={1} y={2}",
+ client ? hwnd.client_window.ToInt32() : hwnd.whole_window.ToInt32(),
+ xevent.MotionEvent.x, xevent.MotionEvent.y);
if (Grab.Hwnd != IntPtr.Zero) {
msg.hwnd = Grab.Hwnd;
HitTest ht;
IntPtr dummy;
- #if DriverDebugExtra
- Console.WriteLine("GetMessage(): non-client area {0:X} MotionNotify x={1} y={2}", client ? hwnd.client_window.ToInt32() : hwnd.whole_window.ToInt32(), xevent.MotionEvent.x, xevent.MotionEvent.y);
- #endif
+ DriverDebug("GetMessage(): non-client area {0:X} MotionNotify x={1} y={2}",
+ client ? hwnd.client_window.ToInt32() : hwnd.whole_window.ToInt32(),
+ xevent.MotionEvent.x, xevent.MotionEvent.y);
msg.message = Msg.WM_NCMOUSEMOVE;
if (!hwnd.Enabled) {
case XEventName.ConfigureNotify: {
if (!client && (xevent.ConfigureEvent.xevent == xevent.ConfigureEvent.window)) { // Ignore events for children (SubstructureNotify) and client areas
- #if DriverDebugExtra
- Console.WriteLine("GetMessage(): Window {0:X} ConfigureNotify x={1} y={2} width={3} height={4}", hwnd.client_window.ToInt32(), xevent.ConfigureEvent.x, xevent.ConfigureEvent.y, xevent.ConfigureEvent.width, xevent.ConfigureEvent.height);
- #endif
+ DriverDebug("GetMessage(): Window {0:X} ConfigureNotify x={1} y={2} width={3} height={4}",
+ hwnd.client_window.ToInt32(), xevent.ConfigureEvent.x,
+ xevent.ConfigureEvent.y, xevent.ConfigureEvent.width, xevent.ConfigureEvent.height);
lock (hwnd.configure_lock) {
Form form = Control.FromHandle (hwnd.client_window) as Form;
}
goto ProcessNextMessage;
}
- SendMessage(FocusWindow, Msg.WM_SETFOCUS, IntPtr.Zero, IntPtr.Zero);
Keyboard.FocusIn (FocusWindow);
+ SendMessage(FocusWindow, Msg.WM_SETFOCUS, IntPtr.Zero, IntPtr.Zero);
goto ProcessNextMessage;
}
break;
}
}
- #if DriverDebugExtra
- Console.WriteLine("GetMessage(): Window {0:X} Exposed non-client area {1},{2} {3}x{4}", hwnd.client_window.ToInt32(), xevent.ExposeEvent.x, xevent.ExposeEvent.y, xevent.ExposeEvent.width, xevent.ExposeEvent.height);
- #endif
+ DriverDebug("GetMessage(): Window {0:X} Exposed non-client area {1},{2} {3}x{4}",
+ hwnd.client_window.ToInt32(), xevent.ExposeEvent.x, xevent.ExposeEvent.y,
+ xevent.ExposeEvent.width, xevent.ExposeEvent.height);
Rectangle rect = new Rectangle (xevent.ExposeEvent.x, xevent.ExposeEvent.y, xevent.ExposeEvent.width, xevent.ExposeEvent.height);
Region region = new Region (rect);
msg.refobject = region;
break;
}
- #if DriverDebugExtra
- Console.WriteLine("GetMessage(): Window {0:X} Exposed area {1},{2} {3}x{4}", hwnd.client_window.ToInt32(), xevent.ExposeEvent.x, xevent.ExposeEvent.y, xevent.ExposeEvent.width, xevent.ExposeEvent.height);
- #endif
+ DriverDebug("GetMessage(): Window {0:X} Exposed area {1},{2} {3}x{4}",
+ hwnd.client_window.ToInt32(), xevent.ExposeEvent.x, xevent.ExposeEvent.y,
+ xevent.ExposeEvent.width, xevent.ExposeEvent.height);
if (Caret.Visible == true) {
Caret.Paused = true;
HideCaret();
if ((hwnd != null) && (hwnd.client_window == xevent.DestroyWindowEvent.window)) {
CleanupCachedWindows (hwnd);
- #if DriverDebugDestroy
- Console.WriteLine("Received X11 Destroy Notification for {0}", XplatUI.Window(hwnd.client_window));
- #endif
+ DriverDebug("Received X11 Destroy Notification for {0}", XplatUI.Window(hwnd.client_window));
msg.hwnd = hwnd.client_window;
msg.message=Msg.WM_DESTROY;
return true;
}
- private HitTest NCHitTest (Hwnd hwnd, int x, int y)
+ HitTest NCHitTest (Hwnd hwnd, int x, int y)
{
// The hit test is sent in screen coordinates
IntPtr dummy;
(IntPtr) 1); // left button
}
- internal override bool GetText(IntPtr handle, out string text) {
+ internal override bool GetText(IntPtr handle, out string text)
+ {
lock (XlibLock) {
IntPtr actual_atom;
}
}
- internal override void GetWindowPos(IntPtr handle, bool is_toplevel, out int x, out int y, out int width, out int height, out int client_width, out int client_height) {
+ internal override void GetWindowPos(IntPtr handle, bool is_toplevel, out int x, out int y, out int width, out int height, out int client_width, out int client_height)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
client_height = 0;
}
- internal override FormWindowState GetWindowState(IntPtr handle) {
+ internal override FormWindowState GetWindowState(IntPtr handle)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
return hwnd.cached_window_state;
}
- private FormWindowState UpdateWindowState (IntPtr handle) {
+ FormWindowState UpdateWindowState (IntPtr handle) {
IntPtr actual_atom;
int actual_format;
IntPtr nitems;
return FormWindowState.Normal;
}
- internal override void GrabInfo(out IntPtr handle, out bool GrabConfined, out Rectangle GrabArea) {
+ internal override void GrabInfo(out IntPtr handle, out bool GrabConfined, out Rectangle GrabArea)
+ {
handle = Grab.Hwnd;
GrabConfined = Grab.Confined;
GrabArea = Grab.Area;
}
- internal override void GrabWindow(IntPtr handle, IntPtr confine_to_handle) {
+ internal override void GrabWindow(IntPtr handle, IntPtr confine_to_handle)
+ {
Hwnd hwnd;
IntPtr confine_to_window;
}
}
- internal override void UngrabWindow(IntPtr hwnd) {
+ internal override void UngrabWindow(IntPtr hwnd)
+ {
lock (XlibLock) {
XUngrabPointer(DisplayHandle, IntPtr.Zero);
XFlush(DisplayHandle);
WindowUngrabbed (hwnd);
}
- private void WindowUngrabbed (IntPtr hwnd) {
+ void WindowUngrabbed (IntPtr hwnd) {
bool was_grabbed = Grab.Hwnd != IntPtr.Zero;
Grab.Hwnd = IntPtr.Zero;
}
}
- internal override void HandleException(Exception e) {
+ internal override void HandleException(Exception e)
+ {
StackTrace st = new StackTrace(e, true);
Console.WriteLine("Exception '{0}'", e.Message+st.ToString());
Console.WriteLine("{0}{1}", e.Message, st.ToString());
}
- internal override void Invalidate(IntPtr handle, Rectangle rc, bool clear) {
+ internal override void Invalidate(IntPtr handle, Rectangle rc, bool clear)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
}
}
- internal override void InvalidateNC (IntPtr handle) {
+ internal override void InvalidateNC (IntPtr handle)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
AddExpose (hwnd, hwnd.WholeWindow == hwnd.ClientWindow, 0, 0, hwnd.Width, hwnd.Height);
}
- internal override bool IsEnabled(IntPtr handle) {
+ internal override bool IsEnabled(IntPtr handle)
+ {
Hwnd hwnd = Hwnd.ObjectFromHandle (handle);
return (hwnd != null && hwnd.Enabled);
}
- internal override bool IsVisible(IntPtr handle) {
+ internal override bool IsVisible(IntPtr handle)
+ {
Hwnd hwnd = Hwnd.ObjectFromHandle (handle);
return (hwnd != null && hwnd.visible);
}
- internal override void KillTimer(Timer timer) {
+ internal override void KillTimer(Timer timer)
+ {
XEventQueue queue = (XEventQueue) MessageQueues [timer.thread];
if (queue == null) {
queue.timer_list.Remove (timer);
}
- internal override void MenuToScreen(IntPtr handle, ref int x, ref int y) {
+ internal override void MenuToScreen(IntPtr handle, ref int x, ref int y)
+ {
int dest_x_return;
int dest_y_return;
IntPtr child;
OverrideCursorHandle = cursor;
}
- internal override PaintEventArgs PaintEventStart(ref Message msg, IntPtr handle, bool client) {
+ internal override PaintEventArgs PaintEventStart(ref Message msg, IntPtr handle, bool client)
+ {
PaintEventArgs paint_event;
Hwnd hwnd;
Hwnd paint_hwnd;
clip_region.MakeEmpty();
foreach (Rectangle r in hwnd.ClipRectangles) {
- clip_region.Union (r);
+ /* Expand the region slightly.
+ * See bug 464464.
+ */
+ Rectangle r2 = Rectangle.FromLTRB (r.Left, r.Top, r.Right, r.Bottom + 1);
+ clip_region.Union (r2);
}
if (hwnd.UserClip != null) {
}
}
- internal override void PaintEventEnd(ref Message msg, IntPtr handle, bool client) {
+ internal override void PaintEventEnd(ref Message msg, IntPtr handle, bool client)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle (msg.HWnd);
}
[MonoTODO("Implement filtering and PM_NOREMOVE")]
- internal override bool PeekMessage(Object queue_id, ref MSG msg, IntPtr hWnd, int wFilterMin, int wFilterMax, uint flags) {
+ internal override bool PeekMessage(Object queue_id, ref MSG msg, IntPtr hWnd, int wFilterMin, int wFilterMax, uint flags)
+ {
XEventQueue queue = (XEventQueue) queue_id;
bool pending;
return GetMessage(queue_id, ref msg, hWnd, wFilterMin, wFilterMax);
}
- internal override bool PostMessage (IntPtr handle, Msg message, IntPtr wparam, IntPtr lparam) {
+ internal override bool PostMessage (IntPtr handle, Msg message, IntPtr wparam, IntPtr lparam)
+ {
XEvent xevent = new XEvent ();
Hwnd hwnd = Hwnd.ObjectFromHandle(handle);
return true;
}
- internal override void PostQuitMessage(int exitCode) {
+ internal override void PostQuitMessage(int exitCode)
+ {
ApplicationContext ctx = Application.MWFThread.Current.Context;
Form f = ctx != null ? ctx.MainForm : null;
if (f != null)
// TODO
}
- internal override void RequestNCRecalc(IntPtr handle) {
+ internal override void RequestNCRecalc(IntPtr handle)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
InvalidateNC(handle);
}
- internal override void ResetMouseHover(IntPtr handle) {
+ internal override void ResetMouseHover(IntPtr handle)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
}
- internal override void ScreenToClient(IntPtr handle, ref int x, ref int y) {
+ internal override void ScreenToClient(IntPtr handle, ref int x, ref int y)
+ {
int dest_x_return;
int dest_y_return;
IntPtr child;
y = dest_y_return;
}
- internal override void ScreenToMenu(IntPtr handle, ref int x, ref int y) {
+ internal override void ScreenToMenu(IntPtr handle, ref int x, ref int y)
+ {
int dest_x_return;
int dest_y_return;
IntPtr child;
}
}
- internal override void ScrollWindow(IntPtr handle, Rectangle area, int XAmount, int YAmount, bool with_children) {
+ internal override void ScrollWindow(IntPtr handle, Rectangle area, int XAmount, int YAmount, bool with_children)
+ {
Hwnd hwnd;
IntPtr gc;
XGCValues gc_values;
XFreeGC(DisplayHandle, gc);
}
- internal override void ScrollWindow(IntPtr handle, int XAmount, int YAmount, bool with_children) {
+ internal override void ScrollWindow(IntPtr handle, int XAmount, int YAmount, bool with_children)
+ {
Hwnd hwnd;
Rectangle rect;
return visible_area;
}
- internal override void SendAsyncMethod (AsyncMethodData method) {
+ internal override void SendAsyncMethod (AsyncMethodData method)
+ {
Hwnd hwnd;
XEvent xevent = new XEvent ();
data.Result = result;
SendAsyncMethod (data);
- #if DriverDebug || DriverDebugThreads
- Console.WriteLine ("Sending {0} message across.", message);
- #endif
+ DriverDebug("Sending {0} message across.", message);
return IntPtr.Zero;
}
return NativeWindow.WndProc(hwnd, message, wParam, lParam);
}
- internal override int SendInput(IntPtr handle, Queue keys) {
+ internal override int SendInput(IntPtr handle, Queue keys)
+ {
if (handle == IntPtr.Zero)
return 0;
return Dnd.StartDrag (hwnd.client_window, data, allowed_effects);
}
- internal override void SetBorderStyle(IntPtr handle, FormBorderStyle border_style) {
+ internal override void SetBorderStyle(IntPtr handle, FormBorderStyle border_style)
+ {
Form form = Control.FromHandle (handle) as Form;
if (form != null && form.window_manager == null) {
CreateParams cp = form.GetCreateParams ();
RequestNCRecalc(handle);
}
- internal override void SetCaretPos(IntPtr handle, int x, int y) {
+ internal override void SetCaretPos(IntPtr handle, int x, int y)
+ {
if (Caret.Hwnd == handle) {
Caret.Timer.Stop();
HideCaret();
}
}
- internal override void SetClipRegion(IntPtr handle, Region region) {
+ internal override void SetClipRegion(IntPtr handle, Region region)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
hwnd.UserClip = region;
}
- internal override void SetCursor(IntPtr handle, IntPtr cursor) {
+ internal override void SetCursor(IntPtr handle, IntPtr cursor)
+ {
Hwnd hwnd;
if (OverrideCursorHandle == IntPtr.Zero) {
}
}
- private void QueryPointer (IntPtr display, IntPtr w, out IntPtr root, out IntPtr child,
+ void QueryPointer (IntPtr display, IntPtr w, out IntPtr root, out IntPtr child,
out int root_x, out int root_y, out int child_x, out int child_y,
out int mask)
{
child = child_last;
}
- internal override void SetCursorPos(IntPtr handle, int x, int y) {
+ internal override void SetCursorPos(IntPtr handle, int x, int y)
+ {
if (handle == IntPtr.Zero) {
lock (XlibLock) {
IntPtr root, child;
}
}
- internal override void SetFocus(IntPtr handle) {
+ internal override void SetFocus(IntPtr handle)
+ {
Hwnd hwnd;
IntPtr prev_focus_window;
if (prev_focus_window != IntPtr.Zero) {
SendMessage(prev_focus_window, Msg.WM_KILLFOCUS, FocusWindow, IntPtr.Zero);
- }
- SendMessage(FocusWindow, Msg.WM_SETFOCUS, prev_focus_window, IntPtr.Zero);
+ }
Keyboard.FocusIn (FocusWindow);
+ SendMessage(FocusWindow, Msg.WM_SETFOCUS, prev_focus_window, IntPtr.Zero);
//XSetInputFocus(DisplayHandle, Hwnd.ObjectFromHandle(handle).client_window, RevertTo.None, IntPtr.Zero);
}
- internal override void SetIcon(IntPtr handle, Icon icon) {
+ internal override void SetIcon(IntPtr handle, Icon icon)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
}
}
- internal override void SetMenu(IntPtr handle, Menu menu) {
+ internal override void SetMenu(IntPtr handle, Menu menu)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
RequestNCRecalc(handle);
}
- internal override void SetModal(IntPtr handle, bool Modal) {
+ internal override void SetModal(IntPtr handle, bool Modal)
+ {
if (Modal) {
ModalWindows.Push(handle);
} else {
SetWMStyles (hwnd, ctrl.GetCreateParams ());
}
- internal override IntPtr SetParent(IntPtr handle, IntPtr parent) {
+ internal override IntPtr SetParent(IntPtr handle, IntPtr parent)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
hwnd.parent = Hwnd.ObjectFromHandle(parent);
lock (XlibLock) {
- #if DriverDebug || DriverDebugParent
- Console.WriteLine("Parent for window {0} = {1}", XplatUI.Window(hwnd.Handle), XplatUI.Window(hwnd.parent != null ? hwnd.parent.Handle : IntPtr.Zero));
- #endif
+ DriverDebug("Parent for window {0} = {1}", XplatUI.Window(hwnd.Handle), XplatUI.Window(hwnd.parent != null ? hwnd.parent.Handle : IntPtr.Zero));
XReparentWindow(DisplayHandle, hwnd.whole_window, hwnd.parent == null ? FosterParent : hwnd.parent.client_window, hwnd.x, hwnd.y);
}
return IntPtr.Zero;
}
- internal override void SetTimer (Timer timer) {
+ internal override void SetTimer (Timer timer)
+ {
XEventQueue queue = (XEventQueue) MessageQueues [timer.thread];
if (queue == null) {
WakeupMain ();
}
- internal override bool SetTopmost(IntPtr handle, bool enabled) {
+ internal override bool SetTopmost(IntPtr handle, bool enabled)
+ {
Hwnd hwnd = Hwnd.ObjectFromHandle(handle);
+ hwnd.topmost = enabled;
if (enabled) {
lock (XlibLock) {
return true;
}
- internal override bool SetOwner(IntPtr handle, IntPtr handle_owner) {
+ internal override bool SetOwner(IntPtr handle, IntPtr handle_owner)
+ {
Hwnd hwnd;
Hwnd hwnd_owner;
return true;
}
- internal override void SetWindowMinMax(IntPtr handle, Rectangle maximized, Size min, Size max) {
+ internal override void SetWindowMinMax(IntPtr handle, Rectangle maximized, Size min, Size max)
+ {
Control ctrl = Control.FromHandle (handle);
SetWindowMinMax (handle, maximized, min, max, ctrl != null ? ctrl.GetCreateParams () : null);
}
}
- internal override void SetWindowPos(IntPtr handle, int x, int y, int width, int height) {
+ internal override void SetWindowPos(IntPtr handle, int x, int y, int width, int height)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
hwnd.ClientRect = Rectangle.Empty;
}
- internal override void SetWindowState(IntPtr handle, FormWindowState state) {
+ internal override void SetWindowState(IntPtr handle, FormWindowState state)
+ {
FormWindowState current_state;
Hwnd hwnd;
}
}
- internal override void SetWindowStyle(IntPtr handle, CreateParams cp) {
+ internal override void SetWindowStyle(IntPtr handle, CreateParams cp)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
return 1.0;
}
- internal override void SetWindowTransparency(IntPtr handle, double transparency, Color key) {
+ internal override void SetWindowTransparency(IntPtr handle, double transparency, Color key)
+ {
Hwnd hwnd;
IntPtr opacity;
XChangeProperty(DisplayHandle, w, _NET_WM_WINDOW_OPACITY, (IntPtr)Atom.XA_CARDINAL, 32, PropertyMode.Replace, ref opacity, 1);
}
- internal override bool SetZOrder(IntPtr handle, IntPtr after_handle, bool top, bool bottom) {
+ internal override bool SetZOrder(IntPtr handle, IntPtr after_handle, bool top, bool bottom)
+ {
Hwnd hwnd = Hwnd.ObjectFromHandle(handle);
if (!hwnd.mapped) {
return false;
}
- internal override void ShowCursor(bool show) {
+ internal override void ShowCursor(bool show)
+ {
; // FIXME - X11 doesn't 'hide' the cursor. we could create an empty cursor
}
- internal override object StartLoop(Thread thread) {
+ internal override object StartLoop(Thread thread)
+ {
XEventQueue q = ThreadQueue(thread);
return q;
}
- internal override TransparencySupport SupportsTransparency() {
+ internal override TransparencySupport SupportsTransparency()
+ {
// We need to check if the x compositing manager is running
return TransparencySupport.Set;
}
- internal override bool SystrayAdd(IntPtr handle, string tip, Icon icon, out ToolTip tt) {
+ internal override bool SystrayAdd(IntPtr handle, string tip, Icon icon, out ToolTip tt)
+ {
GetSystrayManagerWindow();
if (SystrayMgrWindow != IntPtr.Zero) {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
- #if DriverDebug
- Console.WriteLine("Adding Systray Whole:{0:X}, Client:{1:X}", hwnd.whole_window.ToInt32(), hwnd.client_window.ToInt32());
- #endif
+ DriverDebug("Adding Systray Whole:{0:X}, Client:{1:X}", hwnd.whole_window.ToInt32(), hwnd.client_window.ToInt32());
// Oh boy.
if (hwnd.client_window != hwnd.whole_window) {
hwnd.Queue.Paint.Remove (hwnd);
}
+ // We are going to be directly mapped by the system tray, so mark as mapped
+ // so we can later properly unmap it.
+ hwnd.mapped = true;
+
size_hints = new XSizeHints();
size_hints.flags = (IntPtr)(XSizeHintsFlags.PMinSize | XSizeHintsFlags.PMaxSize | XSizeHintsFlags.PBaseSize);
return false;
}
- internal override bool SystrayChange(IntPtr handle, string tip, Icon icon, ref ToolTip tt) {
+ internal override bool SystrayChange(IntPtr handle, string tip, Icon icon, ref ToolTip tt)
+ {
Control control;
control = Control.FromHandle(handle);
}
}
- internal override void SystrayRemove(IntPtr handle, ref ToolTip tt) {
+ internal override void SystrayRemove(IntPtr handle, ref ToolTip tt)
+ {
SetVisible (handle, false, false);
tt.Dispose();
tt = null;
}
+ // Close any balloon window *we* fired.
+ ThemeEngine.Current.HideBalloonWindow (handle);
}
-#if NET_2_0
internal override void SystrayBalloon(IntPtr handle, int timeout, string title, string text, ToolTipIcon icon)
{
ThemeEngine.Current.ShowBalloonWindow (handle, timeout, title, text, icon);
SendMessage(handle, Msg.WM_USER, IntPtr.Zero, (IntPtr) Msg.NIN_BALLOONSHOW);
}
-#endif
- internal override bool Text(IntPtr handle, string text) {
+ internal override bool Text(IntPtr handle, string text)
+{
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
return true;
}
- internal override bool TranslateMessage(ref MSG msg) {
+ internal override bool TranslateMessage(ref MSG msg)
+ {
return Keyboard.TranslateMessage (ref msg);
}
- internal override void UpdateWindow(IntPtr handle) {
+ internal override void UpdateWindow(IntPtr handle)
+ {
Hwnd hwnd;
hwnd = Hwnd.ObjectFromHandle(handle);
[DllImport ("libX11", EntryPoint="XCreateWindow")]
internal extern static IntPtr _XCreateWindow(IntPtr display, IntPtr parent, int x, int y, int width, int height, int border_width, int depth, int xclass, IntPtr visual, UIntPtr valuemask, ref XSetWindowAttributes attributes);
- internal static IntPtr XCreateWindow(IntPtr display, IntPtr parent, int x, int y, int width, int height, int border_width, int depth, int xclass, IntPtr visual, UIntPtr valuemask, ref XSetWindowAttributes attributes) {
+ internal static IntPtr XCreateWindow(IntPtr display, IntPtr parent, int x, int y, int width, int height, int border_width, int depth, int xclass, IntPtr visual, UIntPtr valuemask, ref XSetWindowAttributes attributes)
+ {
DebugHelper.TraceWriteLine ("XCreateWindow");
return _XCreateWindow(display, parent, x, y, width, height,
border_width, depth, xclass, visual, valuemask, ref attributes);
}
[DllImport ("libX11", EntryPoint="XCreateSimpleWindow")]
internal extern static IntPtr _XCreateSimpleWindow(IntPtr display, IntPtr parent, int x, int y, int width, int height, int border_width, UIntPtr border, UIntPtr background);
- internal static IntPtr XCreateSimpleWindow(IntPtr display, IntPtr parent, int x, int y, int width, int height, int border_width, UIntPtr border, UIntPtr background) {
+ internal static IntPtr XCreateSimpleWindow(IntPtr display, IntPtr parent, int x, int y, int width, int height, int border_width, UIntPtr border, UIntPtr background)
+ {
DebugHelper.TraceWriteLine ("XCreateSimpleWindow");
return _XCreateSimpleWindow(display, parent, x, y, width, height, border_width, border, background);
}
[DllImport ("libX11", EntryPoint="XMapWindow")]
internal extern static int _XMapWindow(IntPtr display, IntPtr window);
- internal static int XMapWindow(IntPtr display, IntPtr window) {
+ internal static int XMapWindow(IntPtr display, IntPtr window)
+ {
DebugHelper.TraceWriteLine ("XMapWindow");
return _XMapWindow(display, window);
}
+ [DllImport ("libX11", EntryPoint="XMapRaised")]
+ internal extern static int _XMapRaised(IntPtr display, IntPtr window);
+ internal static int XMapRaised(IntPtr display, IntPtr window)
+ {
+ DebugHelper.TraceWriteLine ("XMapRaised");
+ return _XMapRaised(display, window);
+ }
[DllImport ("libX11", EntryPoint="XUnmapWindow")]
internal extern static int _XUnmapWindow(IntPtr display, IntPtr window);
- internal static int XUnmapWindow(IntPtr display, IntPtr window) {
+ internal static int XUnmapWindow(IntPtr display, IntPtr window)
+ {
DebugHelper.TraceWriteLine ("XUnmapWindow");
return _XUnmapWindow(display, window);
}
[DllImport ("libX11", EntryPoint="XMapSubwindows")]
internal extern static int _XMapSubindows(IntPtr display, IntPtr window);
- internal static int XMapSubindows(IntPtr display, IntPtr window) {
+ internal static int XMapSubindows(IntPtr display, IntPtr window)
+ {
DebugHelper.TraceWriteLine ("XMapSubindows");
return _XMapSubindows(display, window);
}
[DllImport ("libX11", EntryPoint="XUnmapSubwindows")]
internal extern static int _XUnmapSubwindows(IntPtr display, IntPtr window);
- internal static int XUnmapSubwindows(IntPtr display, IntPtr window) {
+ internal static int XUnmapSubwindows(IntPtr display, IntPtr window)
+ {
DebugHelper.TraceWriteLine ("XUnmapSubwindows");
return _XUnmapSubwindows(display, window);
}
[DllImport ("libX11", EntryPoint="XRootWindow")]
internal extern static IntPtr _XRootWindow(IntPtr display, int screen_number);
- internal static IntPtr XRootWindow(IntPtr display, int screen_number) {
+ internal static IntPtr XRootWindow(IntPtr display, int screen_number)
+ {
DebugHelper.TraceWriteLine ("XRootWindow");
return _XRootWindow(display, screen_number);
}
[DllImport ("libX11", EntryPoint="XNextEvent")]
internal extern static IntPtr _XNextEvent(IntPtr display, ref XEvent xevent);
- internal static IntPtr XNextEvent(IntPtr display, ref XEvent xevent) {
+ internal static IntPtr XNextEvent(IntPtr display, ref XEvent xevent)
+ {
DebugHelper.TraceWriteLine ("XNextEvent");
return _XNextEvent(display, ref xevent);
}
[DllImport ("libX11", EntryPoint="XConnectionNumber")]
internal extern static int _XConnectionNumber (IntPtr display);
- internal static int XConnectionNumber (IntPtr display) {
+ internal static int XConnectionNumber (IntPtr display)
+ {
DebugHelper.TraceWriteLine ("XConnectionNumber");
return _XConnectionNumber (display);
}
[DllImport ("libX11", EntryPoint="XPending")]
internal extern static int _XPending (IntPtr display);
- internal static int XPending (IntPtr display) {
+ internal static int XPending (IntPtr display)
+ {
DebugHelper.TraceWriteLine ("XPending");
DebugHelper.DumpCallers (3);
return _XPending (display);
}
[DllImport ("libX11", EntryPoint="XSelectInput")]
internal extern static IntPtr _XSelectInput(IntPtr display, IntPtr window, IntPtr mask);
- internal static IntPtr XSelectInput(IntPtr display, IntPtr window, IntPtr mask) {
+ internal static IntPtr XSelectInput(IntPtr display, IntPtr window, IntPtr mask)
+ {
DebugHelper.TraceWriteLine ("XSelectInput");
return _XSelectInput(display, window, mask);
}
[DllImport ("libX11", EntryPoint="XDestroyWindow")]
internal extern static int _XDestroyWindow(IntPtr display, IntPtr window);
- internal static int XDestroyWindow(IntPtr display, IntPtr window) {
+ internal static int XDestroyWindow(IntPtr display, IntPtr window)
+ {
DebugHelper.TraceWriteLine ("XDestroyWindow 0x{0:x}", window.ToInt32());
return _XDestroyWindow(display, window);
}
[DllImport ("libX11", EntryPoint="XReparentWindow")]
internal extern static int _XReparentWindow(IntPtr display, IntPtr window, IntPtr parent, int x, int y);
- internal static int XReparentWindow(IntPtr display, IntPtr window, IntPtr parent, int x, int y) {
+ internal static int XReparentWindow(IntPtr display, IntPtr window, IntPtr parent, int x, int y)
+ {
DebugHelper.TraceWriteLine ("XReparentWindow");
return _XReparentWindow(display, window, parent, x, y);
}
[DllImport ("libX11", EntryPoint="XMoveResizeWindow")]
- private extern static int _XMoveResizeWindow(IntPtr display, IntPtr window, int x, int y, int width, int height);
- private static int XMoveResizeWindow(IntPtr display, IntPtr window, int x, int y, int width, int height) {
+ extern static int _XMoveResizeWindow(IntPtr display, IntPtr window, int x, int y, int width, int height);
+ static int XMoveResizeWindow(IntPtr display, IntPtr window, int x, int y, int width, int height) {
DebugHelper.TraceWriteLine ("XMoveResizeWindow");
return _XMoveResizeWindow(display, window, x, y, width, height);
}
[DllImport ("libX11", EntryPoint="XResizeWindow")]
internal extern static int _XResizeWindow(IntPtr display, IntPtr window, int width, int height);
- internal static int XResizeWindow(IntPtr display, IntPtr window, int width, int height) {
+ internal static int XResizeWindow(IntPtr display, IntPtr window, int width, int height)
+ {
DebugHelper.TraceWriteLine ("XResizeWindow");
return _XResizeWindow(display, window, width, height);
}
[DllImport ("libX11", EntryPoint="XGetWindowAttributes")]
internal extern static int _XGetWindowAttributes(IntPtr display, IntPtr window, ref XWindowAttributes attributes);
- internal static int XGetWindowAttributes(IntPtr display, IntPtr window, ref XWindowAttributes attributes) {
+ internal static int XGetWindowAttributes(IntPtr display, IntPtr window, ref XWindowAttributes attributes)
+ {
DebugHelper.TraceWriteLine ("XGetWindowAttributes");
return _XGetWindowAttributes(display, window, ref attributes);
}
[DllImport ("libX11", EntryPoint="XFlush")]
internal extern static int _XFlush(IntPtr display);
- internal static int XFlush(IntPtr display) {
+ internal static int XFlush(IntPtr display)
+ {
DebugHelper.TraceWriteLine ("XFlush");
return _XFlush(display);
}
[DllImport ("libX11", EntryPoint="XSetWMName")]
internal extern static int _XSetWMName(IntPtr display, IntPtr window, ref XTextProperty text_prop);
- internal static int XSetWMName(IntPtr display, IntPtr window, ref XTextProperty text_prop) {
+ internal static int XSetWMName(IntPtr display, IntPtr window, ref XTextProperty text_prop)
+ {
DebugHelper.TraceWriteLine ("XSetWMName");
return _XSetWMName(display, window, ref text_prop);
}
[DllImport ("libX11", EntryPoint="XStoreName")]
internal extern static int _XStoreName(IntPtr display, IntPtr window, string window_name);
- internal static int XStoreName(IntPtr display, IntPtr window, string window_name) {
+ internal static int XStoreName(IntPtr display, IntPtr window, string window_name)
+ {
DebugHelper.TraceWriteLine ("XStoreName");
return _XStoreName(display, window, window_name);
}
[DllImport ("libX11", EntryPoint="XFetchName")]
internal extern static int _XFetchName(IntPtr display, IntPtr window, ref IntPtr window_name);
- internal static int XFetchName(IntPtr display, IntPtr window, ref IntPtr window_name) {
+ internal static int XFetchName(IntPtr display, IntPtr window, ref IntPtr window_name)
+ {
DebugHelper.TraceWriteLine ("XFetchName");
return _XFetchName(display, window, ref window_name);
}
[DllImport ("libX11", EntryPoint="XSendEvent")]
internal extern static int _XSendEvent(IntPtr display, IntPtr window, bool propagate, IntPtr event_mask, ref XEvent send_event);
- internal static int XSendEvent(IntPtr display, IntPtr window, bool propagate, IntPtr event_mask, ref XEvent send_event) {
+ internal static int XSendEvent(IntPtr display, IntPtr window, bool propagate, IntPtr event_mask, ref XEvent send_event)
+ {
DebugHelper.TraceWriteLine ("XSendEvent");
return _XSendEvent(display, window, propagate, event_mask, ref send_event);
}
[DllImport ("libX11", EntryPoint="XQueryTree")]
internal extern static int _XQueryTree(IntPtr display, IntPtr window, out IntPtr root_return, out IntPtr parent_return, out IntPtr children_return, out int nchildren_return);
- internal static int XQueryTree(IntPtr display, IntPtr window, out IntPtr root_return, out IntPtr parent_return, out IntPtr children_return, out int nchildren_return) {
+ internal static int XQueryTree(IntPtr display, IntPtr window, out IntPtr root_return, out IntPtr parent_return, out IntPtr children_return, out int nchildren_return)
+ {
DebugHelper.TraceWriteLine ("XQueryTree");
return _XQueryTree(display, window, out root_return, out parent_return, out children_return, out nchildren_return);
}
[DllImport ("libX11", EntryPoint="XFree")]
internal extern static int _XFree(IntPtr data);
- internal static int XFree(IntPtr data) {
+ internal static int XFree(IntPtr data)
+ {
DebugHelper.TraceWriteLine ("XFree");
return _XFree(data);
}
[DllImport ("libX11", EntryPoint="XRaiseWindow")]
internal extern static int _XRaiseWindow(IntPtr display, IntPtr window);
- internal static int XRaiseWindow(IntPtr display, IntPtr window) {
+ internal static int XRaiseWindow(IntPtr display, IntPtr window)
+ {
DebugHelper.TraceWriteLine ("XRaiseWindow");
return _XRaiseWindow(display, window);
}
[DllImport ("libX11", EntryPoint="XLowerWindow")]
internal extern static uint _XLowerWindow(IntPtr display, IntPtr window);
- internal static uint XLowerWindow(IntPtr display, IntPtr window) {
+ internal static uint XLowerWindow(IntPtr display, IntPtr window)
+ {
DebugHelper.TraceWriteLine ("XLowerWindow");
return _XLowerWindow(display, window);
}
[DllImport ("libX11", EntryPoint="XConfigureWindow")]
internal extern static uint _XConfigureWindow(IntPtr display, IntPtr window, ChangeWindowFlags value_mask, ref XWindowChanges values);
- internal static uint XConfigureWindow(IntPtr display, IntPtr window, ChangeWindowFlags value_mask, ref XWindowChanges values) {
+ internal static uint XConfigureWindow(IntPtr display, IntPtr window, ChangeWindowFlags value_mask, ref XWindowChanges values)
+ {
DebugHelper.TraceWriteLine ("XConfigureWindow");
return _XConfigureWindow(display, window, value_mask, ref values);
}
[DllImport ("libX11", EntryPoint="XInternAtom")]
internal extern static IntPtr _XInternAtom(IntPtr display, string atom_name, bool only_if_exists);
- internal static IntPtr XInternAtom(IntPtr display, string atom_name, bool only_if_exists) {
+ internal static IntPtr XInternAtom(IntPtr display, string atom_name, bool only_if_exists)
+ {
DebugHelper.TraceWriteLine ("XInternAtom");
return _XInternAtom(display, atom_name, only_if_exists);
}
[DllImport ("libX11", EntryPoint="XInternAtoms")]
internal extern static int _XInternAtoms(IntPtr display, string[] atom_names, int atom_count, bool only_if_exists, IntPtr[] atoms);
- internal static int XInternAtoms(IntPtr display, string[] atom_names, int atom_count, bool only_if_exists, IntPtr[] atoms) {
+ internal static int XInternAtoms(IntPtr display, string[] atom_names, int atom_count, bool only_if_exists, IntPtr[] atoms)
+ {
DebugHelper.TraceWriteLine ("XInternAtoms");
return _XInternAtoms(display, atom_names, atom_count, only_if_exists, atoms);
}
[DllImport ("libX11", EntryPoint="XSetWMProtocols")]
internal extern static int _XSetWMProtocols(IntPtr display, IntPtr window, IntPtr[] protocols, int count);
- internal static int XSetWMProtocols(IntPtr display, IntPtr window, IntPtr[] protocols, int count) {
+ internal static int XSetWMProtocols(IntPtr display, IntPtr window, IntPtr[] protocols, int count)
+ {
DebugHelper.TraceWriteLine ("XSetWMProtocols");
return _XSetWMProtocols(display, window, protocols, count);
}
[DllImport ("libX11", EntryPoint="XGrabPointer")]
internal extern static int _XGrabPointer(IntPtr display, IntPtr window, bool owner_events, EventMask event_mask, GrabMode pointer_mode, GrabMode keyboard_mode, IntPtr confine_to, IntPtr cursor, IntPtr timestamp);
- internal static int XGrabPointer(IntPtr display, IntPtr window, bool owner_events, EventMask event_mask, GrabMode pointer_mode, GrabMode keyboard_mode, IntPtr confine_to, IntPtr cursor, IntPtr timestamp) {
+ internal static int XGrabPointer(IntPtr display, IntPtr window, bool owner_events, EventMask event_mask, GrabMode pointer_mode, GrabMode keyboard_mode, IntPtr confine_to, IntPtr cursor, IntPtr timestamp)
+ {
DebugHelper.TraceWriteLine ("XGrabPointer");
return _XGrabPointer(display, window, owner_events, event_mask, pointer_mode, keyboard_mode, confine_to, cursor, timestamp);
}
[DllImport ("libX11", EntryPoint="XUngrabPointer")]
internal extern static int _XUngrabPointer(IntPtr display, IntPtr timestamp);
- internal static int XUngrabPointer(IntPtr display, IntPtr timestamp) {
+ internal static int XUngrabPointer(IntPtr display, IntPtr timestamp)
+ {
DebugHelper.TraceWriteLine ("XUngrabPointer");
return _XUngrabPointer(display, timestamp);
}
[DllImport ("libX11", EntryPoint="XQueryPointer")]
internal extern static bool _XQueryPointer(IntPtr display, IntPtr window, out IntPtr root, out IntPtr child, out int root_x, out int root_y, out int win_x, out int win_y, out int keys_buttons);
- internal static bool XQueryPointer(IntPtr display, IntPtr window, out IntPtr root, out IntPtr child, out int root_x, out int root_y, out int win_x, out int win_y, out int keys_buttons) {
+ internal static bool XQueryPointer(IntPtr display, IntPtr window, out IntPtr root, out IntPtr child, out int root_x, out int root_y, out int win_x, out int win_y, out int keys_buttons)
+ {
DebugHelper.TraceWriteLine ("XQueryPointer");
return _XQueryPointer(display, window, out root, out child, out root_x, out root_y, out win_x, out win_y, out keys_buttons);
}
[DllImport ("libX11", EntryPoint="XTranslateCoordinates")]
internal extern static bool _XTranslateCoordinates (IntPtr display, IntPtr src_w, IntPtr dest_w, int src_x, int src_y, out int intdest_x_return, out int dest_y_return, out IntPtr child_return);
- internal static bool XTranslateCoordinates (IntPtr display, IntPtr src_w, IntPtr dest_w, int src_x, int src_y, out int intdest_x_return, out int dest_y_return, out IntPtr child_return) {
+ internal static bool XTranslateCoordinates (IntPtr display, IntPtr src_w, IntPtr dest_w, int src_x, int src_y, out int intdest_x_return, out int dest_y_return, out IntPtr child_return)
+ {
DebugHelper.TraceWriteLine ("XTranslateCoordinates");
return _XTranslateCoordinates (display, src_w, dest_w, src_x, src_y, out intdest_x_return, out dest_y_return, out child_return);
}
[DllImport ("libX11", EntryPoint="XGetGeometry")]
internal extern static bool _XGetGeometry(IntPtr display, IntPtr window, out IntPtr root, out int x, out int y, out int width, out int height, out int border_width, out int depth);
- internal static bool XGetGeometry(IntPtr display, IntPtr window, out IntPtr root, out int x, out int y, out int width, out int height, out int border_width, out int depth) {
+ internal static bool XGetGeometry(IntPtr display, IntPtr window, out IntPtr root, out int x, out int y, out int width, out int height, out int border_width, out int depth)
+ {
DebugHelper.TraceWriteLine ("XGetGeometry");
return _XGetGeometry(display, window, out root, out x, out y, out width, out height, out border_width, out depth);
}
[DllImport ("libX11", EntryPoint="XGetGeometry")]
internal extern static bool _XGetGeometry(IntPtr display, IntPtr window, IntPtr root, out int x, out int y, out int width, out int height, IntPtr border_width, IntPtr depth);
- internal static bool XGetGeometry(IntPtr display, IntPtr window, IntPtr root, out int x, out int y, out int width, out int height, IntPtr border_width, IntPtr depth) {
+ internal static bool XGetGeometry(IntPtr display, IntPtr window, IntPtr root, out int x, out int y, out int width, out int height, IntPtr border_width, IntPtr depth)
+ {
DebugHelper.TraceWriteLine ("XGetGeometry");
return _XGetGeometry(display, window, root, out x, out y, out width, out height, border_width, depth);
}
[DllImport ("libX11", EntryPoint="XGetGeometry")]
internal extern static bool _XGetGeometry(IntPtr display, IntPtr window, IntPtr root, out int x, out int y, IntPtr width, IntPtr height, IntPtr border_width, IntPtr depth);
- internal static bool XGetGeometry(IntPtr display, IntPtr window, IntPtr root, out int x, out int y, IntPtr width, IntPtr height, IntPtr border_width, IntPtr depth) {
+ internal static bool XGetGeometry(IntPtr display, IntPtr window, IntPtr root, out int x, out int y, IntPtr width, IntPtr height, IntPtr border_width, IntPtr depth)
+ {
DebugHelper.TraceWriteLine ("XGetGeometry");
return _XGetGeometry(display, window, root, out x, out y, width, height, border_width, depth);
}
[DllImport ("libX11", EntryPoint="XGetGeometry")]
internal extern static bool _XGetGeometry(IntPtr display, IntPtr window, IntPtr root, IntPtr x, IntPtr y, out int width, out int height, IntPtr border_width, IntPtr depth);
- internal static bool XGetGeometry(IntPtr display, IntPtr window, IntPtr root, IntPtr x, IntPtr y, out int width, out int height, IntPtr border_width, IntPtr depth) {
+ internal static bool XGetGeometry(IntPtr display, IntPtr window, IntPtr root, IntPtr x, IntPtr y, out int width, out int height, IntPtr border_width, IntPtr depth)
+ {
DebugHelper.TraceWriteLine ("XGetGeometry");
return _XGetGeometry(display, window, root, x, y, out width, out height, border_width, depth);
}
[DllImport ("libX11", EntryPoint="XWarpPointer")]
internal extern static uint _XWarpPointer(IntPtr display, IntPtr src_w, IntPtr dest_w, int src_x, int src_y, uint src_width, uint src_height, int dest_x, int dest_y);
- internal static uint XWarpPointer(IntPtr display, IntPtr src_w, IntPtr dest_w, int src_x, int src_y, uint src_width, uint src_height, int dest_x, int dest_y) {
+ internal static uint XWarpPointer(IntPtr display, IntPtr src_w, IntPtr dest_w, int src_x, int src_y, uint src_width, uint src_height, int dest_x, int dest_y)
+ {
DebugHelper.TraceWriteLine ("XWarpPointer");
return _XWarpPointer(display, src_w, dest_w, src_x, src_y, src_width, src_height, dest_x, dest_y);
}
[DllImport ("libX11", EntryPoint="XClearWindow")]
internal extern static int _XClearWindow(IntPtr display, IntPtr window);
- internal static int XClearWindow(IntPtr display, IntPtr window) {
+ internal static int XClearWindow(IntPtr display, IntPtr window)
+ {
DebugHelper.TraceWriteLine ("XClearWindow");
return _XClearWindow(display, window);
}
[DllImport ("libX11", EntryPoint="XClearArea")]
internal extern static int _XClearArea(IntPtr display, IntPtr window, int x, int y, int width, int height, bool exposures);
- internal static int XClearArea(IntPtr display, IntPtr window, int x, int y, int width, int height, bool exposures) {
+ internal static int XClearArea(IntPtr display, IntPtr window, int x, int y, int width, int height, bool exposures)
+ {
DebugHelper.TraceWriteLine ("XClearArea");
return _XClearArea(display, window, x, y, width, height, exposures);
}
// Colormaps
[DllImport ("libX11", EntryPoint="XDefaultScreenOfDisplay")]
internal extern static IntPtr _XDefaultScreenOfDisplay(IntPtr display);
- internal static IntPtr XDefaultScreenOfDisplay(IntPtr display) {
+ internal static IntPtr XDefaultScreenOfDisplay(IntPtr display)
+ {
DebugHelper.TraceWriteLine ("XDefaultScreenOfDisplay");
return _XDefaultScreenOfDisplay(display);
}
[DllImport ("libX11", EntryPoint="XScreenNumberOfScreen")]
internal extern static int _XScreenNumberOfScreen(IntPtr display, IntPtr Screen);
- internal static int XDefaultScreenOfDisplay(IntPtr display, IntPtr Screen) {
+ internal static int XDefaultScreenOfDisplay(IntPtr display, IntPtr Screen)
+ {
DebugHelper.TraceWriteLine ("XDefaultScreenOfDisplay");
return _XScreenNumberOfScreen(display, Screen);
}
[DllImport ("libX11", EntryPoint="XDefaultVisual")]
internal extern static IntPtr _XDefaultVisual(IntPtr display, int screen_number);
- internal static IntPtr XDefaultScreenOfDisplay(IntPtr display, int screen_number) {
+ internal static IntPtr XDefaultScreenOfDisplay(IntPtr display, int screen_number)
+ {
DebugHelper.TraceWriteLine ("XDefaultScreenOfDisplay");
return _XDefaultVisual(display, screen_number);
}
[DllImport ("libX11", EntryPoint="XDefaultDepth")]
internal extern static uint _XDefaultDepth(IntPtr display, int screen_number);
- internal static uint XDefaultDepth(IntPtr display, int screen_number) {
+ internal static uint XDefaultDepth(IntPtr display, int screen_number)
+ {
DebugHelper.TraceWriteLine ("XDefaultDepth");
return _XDefaultDepth(display, screen_number);
}
[DllImport ("libX11", EntryPoint="XDefaultScreen")]
internal extern static int _XDefaultScreen(IntPtr display);
- internal static int XDefaultScreen(IntPtr display) {
+ internal static int XDefaultScreen(IntPtr display)
+ {
DebugHelper.TraceWriteLine ("XDefaultScreen");
return _XDefaultScreen(display);
}
[DllImport ("libX11", EntryPoint="XDefaultColormap")]
internal extern static IntPtr _XDefaultColormap(IntPtr display, int screen_number);
- internal static IntPtr XDefaultColormap(IntPtr display, int screen_number) {
+ internal static IntPtr XDefaultColormap(IntPtr display, int screen_number)
+ {
DebugHelper.TraceWriteLine ("XDefaultColormap");
return _XDefaultColormap(display, screen_number);
}
[DllImport ("libX11", EntryPoint="XLookupColor")]
internal extern static int _XLookupColor(IntPtr display, IntPtr Colormap, string Coloranem, ref XColor exact_def_color, ref XColor screen_def_color);
- internal static int XLookupColor(IntPtr display, IntPtr Colormap, string Coloranem, ref XColor exact_def_color, ref XColor screen_def_color) {
+ internal static int XLookupColor(IntPtr display, IntPtr Colormap, string Coloranem, ref XColor exact_def_color, ref XColor screen_def_color)
+ {
DebugHelper.TraceWriteLine ("XLookupColor");
return _XLookupColor(display, Colormap, Coloranem, ref exact_def_color, ref screen_def_color);
}
[DllImport ("libX11", EntryPoint="XAllocColor")]
internal extern static int _XAllocColor(IntPtr display, IntPtr Colormap, ref XColor colorcell_def);
- internal static int XAllocColor(IntPtr display, IntPtr Colormap, ref XColor colorcell_def) {
+ internal static int XAllocColor(IntPtr display, IntPtr Colormap, ref XColor colorcell_def)
+ {
DebugHelper.TraceWriteLine ("XAllocColor");
return _XAllocColor(display, Colormap, ref colorcell_def);
}
[DllImport ("libX11", EntryPoint="XSetTransientForHint")]
internal extern static int _XSetTransientForHint(IntPtr display, IntPtr window, IntPtr prop_window);
- internal static int XSetTransientForHint(IntPtr display, IntPtr window, IntPtr prop_window) {
+ internal static int XSetTransientForHint(IntPtr display, IntPtr window, IntPtr prop_window)
+ {
DebugHelper.TraceWriteLine ("XSetTransientForHint");
return _XSetTransientForHint(display, window, prop_window);
}
[DllImport ("libX11", EntryPoint="XChangeProperty")]
internal extern static int _XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, ref MotifWmHints data, int nelements);
- internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, ref MotifWmHints data, int nelements) {
+ internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, ref MotifWmHints data, int nelements)
+ {
DebugHelper.TraceWriteLine ("XChangeProperty");
return _XChangeProperty(display, window, property, type, format, mode, ref data, nelements);
}
[DllImport ("libX11", EntryPoint="XChangeProperty")]
internal extern static int _XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, ref uint value, int nelements);
- internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, ref uint value, int nelements) {
+ internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, ref uint value, int nelements)
+ {
DebugHelper.TraceWriteLine ("XChangeProperty");
return _XChangeProperty(display, window, property, type, format, mode, ref value, nelements);
}
[DllImport ("libX11", EntryPoint="XChangeProperty")]
internal extern static int _XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, ref IntPtr value, int nelements);
- internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, ref IntPtr value, int nelements) {
+ internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, ref IntPtr value, int nelements)
+ {
DebugHelper.TraceWriteLine ("XChangeProperty");
return _XChangeProperty(display, window, property, type, format, mode, ref value, nelements);
}
[DllImport ("libX11", EntryPoint="XChangeProperty")]
internal extern static int _XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, uint[] data, int nelements);
- internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, uint[] data, int nelements) {
+ internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, uint[] data, int nelements)
+ {
DebugHelper.TraceWriteLine ("XChangeProperty");
return _XChangeProperty(display, window, property, type, format, mode, data, nelements);
}
[DllImport ("libX11", EntryPoint="XChangeProperty")]
internal extern static int _XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, int[] data, int nelements);
- internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, int[] data, int nelements) {
+ internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, int[] data, int nelements)
+ {
DebugHelper.TraceWriteLine ("XChangeProperty");
return _XChangeProperty(display, window, property, type, format, mode, data, nelements);
}
[DllImport ("libX11", EntryPoint="XChangeProperty")]
internal extern static int _XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, IntPtr[] data, int nelements);
- internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, IntPtr[] data, int nelements) {
+ internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, IntPtr[] data, int nelements)
+ {
DebugHelper.TraceWriteLine ("XChangeProperty");
return _XChangeProperty(display, window, property, type, format, mode, data, nelements);
}
[DllImport ("libX11", EntryPoint="XChangeProperty")]
internal extern static int _XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, IntPtr atoms, int nelements);
- internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, IntPtr atoms, int nelements) {
+ internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, IntPtr atoms, int nelements)
+ {
DebugHelper.TraceWriteLine ("XChangeProperty");
return _XChangeProperty(display, window, property, type, format, mode, atoms, nelements);
}
[DllImport ("libX11", EntryPoint="XChangeProperty", CharSet=CharSet.Ansi)]
internal extern static int _XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, string text, int text_length);
- internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, string text, int text_length) {
+ internal static int XChangeProperty(IntPtr display, IntPtr window, IntPtr property, IntPtr type, int format, PropertyMode mode, string text, int text_length)
+ {
DebugHelper.TraceWriteLine ("XChangeProperty");
return _XChangeProperty(display, window, property, type, format, mode, text, text_length);
}
[DllImport ("libX11", EntryPoint="XDeleteProperty")]
internal extern static int _XDeleteProperty(IntPtr display, IntPtr window, IntPtr property);
- internal static int XDeleteProperty(IntPtr display, IntPtr window, IntPtr property) {
+ internal static int XDeleteProperty(IntPtr display, IntPtr window, IntPtr property)
+ {
DebugHelper.TraceWriteLine ("XDeleteProperty");
return _XDeleteProperty(display, window, property);
}
// Drawing
[DllImport ("libX11", EntryPoint="XCreateGC")]
internal extern static IntPtr _XCreateGC(IntPtr display, IntPtr window, IntPtr valuemask, ref XGCValues values);
- internal static IntPtr XCreateGC(IntPtr display, IntPtr window, IntPtr valuemask, ref XGCValues values) {
+ internal static IntPtr XCreateGC(IntPtr display, IntPtr window, IntPtr valuemask, ref XGCValues values)
+ {
DebugHelper.TraceWriteLine ("XCreateGC");
return _XCreateGC(display, window, valuemask, ref values);
}
[DllImport ("libX11", EntryPoint="XFreeGC")]
internal extern static int _XFreeGC(IntPtr display, IntPtr gc);
- internal static int XFreeGC(IntPtr display, IntPtr gc) {
+ internal static int XFreeGC(IntPtr display, IntPtr gc)
+ {
DebugHelper.TraceWriteLine ("XFreeGC");
return _XFreeGC(display, gc);
}
[DllImport ("libX11", EntryPoint="XSetFunction")]
internal extern static int _XSetFunction(IntPtr display, IntPtr gc, GXFunction function);
- internal static int XSetFunction(IntPtr display, IntPtr gc, GXFunction function) {
+ internal static int XSetFunction(IntPtr display, IntPtr gc, GXFunction function)
+ {
DebugHelper.TraceWriteLine ("XSetFunction");
return _XSetFunction(display, gc, function);
}
[DllImport ("libX11", EntryPoint="XSetLineAttributes")]
internal extern static int _XSetLineAttributes(IntPtr display, IntPtr gc, int line_width, GCLineStyle line_style, GCCapStyle cap_style, GCJoinStyle join_style);
- internal static int XSetLineAttributes(IntPtr display, IntPtr gc, int line_width, GCLineStyle line_style, GCCapStyle cap_style, GCJoinStyle join_style) {
+ internal static int XSetLineAttributes(IntPtr display, IntPtr gc, int line_width, GCLineStyle line_style, GCCapStyle cap_style, GCJoinStyle join_style)
+ {
DebugHelper.TraceWriteLine ("XSetLineAttributes");
return _XSetLineAttributes(display, gc, line_width, line_style, cap_style, join_style);
}
[DllImport ("libX11", EntryPoint="XDrawLine")]
internal extern static int _XDrawLine(IntPtr display, IntPtr drawable, IntPtr gc, int x1, int y1, int x2, int y2);
- internal static int XDrawLine(IntPtr display, IntPtr drawable, IntPtr gc, int x1, int y1, int x2, int y2) {
+ internal static int XDrawLine(IntPtr display, IntPtr drawable, IntPtr gc, int x1, int y1, int x2, int y2)
+ {
DebugHelper.TraceWriteLine ("XDrawLine");
return _XDrawLine(display, drawable, gc, x1, y1, x2, y2);
}
[DllImport ("libX11", EntryPoint="XDrawRectangle")]
internal extern static int _XDrawRectangle(IntPtr display, IntPtr drawable, IntPtr gc, int x1, int y1, int width, int height);
- internal static int XDrawRectangle(IntPtr display, IntPtr drawable, IntPtr gc, int x1, int y1, int width, int height) {
+ internal static int XDrawRectangle(IntPtr display, IntPtr drawable, IntPtr gc, int x1, int y1, int width, int height)
+ {
DebugHelper.TraceWriteLine ("XDrawRectangle");
return _XDrawRectangle(display, drawable, gc, x1, y1, width, height);
}
[DllImport ("libX11", EntryPoint="XFillRectangle")]
internal extern static int _XFillRectangle(IntPtr display, IntPtr drawable, IntPtr gc, int x1, int y1, int width, int height);
- internal static int XFillRectangle(IntPtr display, IntPtr drawable, IntPtr gc, int x1, int y1, int width, int height) {
+ internal static int XFillRectangle(IntPtr display, IntPtr drawable, IntPtr gc, int x1, int y1, int width, int height)
+ {
DebugHelper.TraceWriteLine ("XFillRectangle");
return _XFillRectangle(display, drawable, gc, x1, y1, width, height);
}
[DllImport ("libX11", EntryPoint="XSetWindowBackground")]
internal extern static int _XSetWindowBackground(IntPtr display, IntPtr window, IntPtr background);
- internal static int XSetWindowBackground(IntPtr display, IntPtr window, IntPtr background) {
+ internal static int XSetWindowBackground(IntPtr display, IntPtr window, IntPtr background)
+ {
DebugHelper.TraceWriteLine ("XSetWindowBackground");
return _XSetWindowBackground(display, window, background);
}
[DllImport ("libX11", EntryPoint="XCopyArea")]
internal extern static int _XCopyArea(IntPtr display, IntPtr src, IntPtr dest, IntPtr gc, int src_x, int src_y, int width, int height, int dest_x, int dest_y);
- internal static int XCopyArea(IntPtr display, IntPtr src, IntPtr dest, IntPtr gc, int src_x, int src_y, int width, int height, int dest_x, int dest_y) {
+ internal static int XCopyArea(IntPtr display, IntPtr src, IntPtr dest, IntPtr gc, int src_x, int src_y, int width, int height, int dest_x, int dest_y)
+ {
DebugHelper.TraceWriteLine ("XCopyArea");
return _XCopyArea(display, src, dest, gc, src_x, src_y, width, height, dest_x, dest_y);
}
[DllImport ("libX11", EntryPoint="XGetWindowProperty")]
internal extern static int _XGetWindowProperty(IntPtr display, IntPtr window, IntPtr atom, IntPtr long_offset, IntPtr long_length, bool delete, IntPtr req_type, out IntPtr actual_type, out int actual_format, out IntPtr nitems, out IntPtr bytes_after, ref IntPtr prop);
- internal static int XGetWindowProperty(IntPtr display, IntPtr window, IntPtr atom, IntPtr long_offset, IntPtr long_length, bool delete, IntPtr req_type, out IntPtr actual_type, out int actual_format, out IntPtr nitems, out IntPtr bytes_after, ref IntPtr prop) {
+ internal static int XGetWindowProperty(IntPtr display, IntPtr window, IntPtr atom, IntPtr long_offset, IntPtr long_length, bool delete, IntPtr req_type, out IntPtr actual_type, out int actual_format, out IntPtr nitems, out IntPtr bytes_after, ref IntPtr prop)
+ {
DebugHelper.TraceWriteLine ("XGetWindowProperty");
return _XGetWindowProperty(display, window, atom, long_offset, long_length, delete, req_type, out actual_type, out actual_format, out nitems, out bytes_after, ref prop);
}
[DllImport ("libX11", EntryPoint="XSetInputFocus")]
internal extern static int _XSetInputFocus(IntPtr display, IntPtr window, RevertTo revert_to, IntPtr time);
- internal static int XSetInputFocus(IntPtr display, IntPtr window, RevertTo revert_to, IntPtr time) {
+ internal static int XSetInputFocus(IntPtr display, IntPtr window, RevertTo revert_to, IntPtr time)
+ {
DebugHelper.TraceWriteLine ("XSetInputFocus");
return _XSetInputFocus(display, window, revert_to, time);
}
[DllImport ("libX11", EntryPoint="XIconifyWindow")]
internal extern static int _XIconifyWindow(IntPtr display, IntPtr window, int screen_number);
- internal static int XIconifyWindow(IntPtr display, IntPtr window, int screen_number) {
+ internal static int XIconifyWindow(IntPtr display, IntPtr window, int screen_number)
+ {
DebugHelper.TraceWriteLine ("XIconifyWindow");
return _XIconifyWindow(display, window, screen_number);
}
[DllImport ("libX11", EntryPoint="XDefineCursor")]
internal extern static int _XDefineCursor(IntPtr display, IntPtr window, IntPtr cursor);
- internal static int XDefineCursor(IntPtr display, IntPtr window, IntPtr cursor) {
+ internal static int XDefineCursor(IntPtr display, IntPtr window, IntPtr cursor)
+ {
DebugHelper.TraceWriteLine ("XDefineCursor");
return _XDefineCursor(display, window, cursor);
}
[DllImport ("libX11", EntryPoint="XUndefineCursor")]
internal extern static int _XUndefineCursor(IntPtr display, IntPtr window);
- internal static int XUndefineCursor(IntPtr display, IntPtr window) {
+ internal static int XUndefineCursor(IntPtr display, IntPtr window)
+ {
DebugHelper.TraceWriteLine ("XUndefineCursor");
return _XUndefineCursor(display, window);
}
[DllImport ("libX11", EntryPoint="XFreeCursor")]
internal extern static int _XFreeCursor(IntPtr display, IntPtr cursor);
- internal static int XFreeCursor(IntPtr display, IntPtr cursor) {
+ internal static int XFreeCursor(IntPtr display, IntPtr cursor)
+ {
DebugHelper.TraceWriteLine ("XFreeCursor");
return _XFreeCursor(display, cursor);
}
[DllImport ("libX11", EntryPoint="XCreateFontCursor")]
internal extern static IntPtr _XCreateFontCursor(IntPtr display, CursorFontShape shape);
- internal static IntPtr XCreateFontCursor(IntPtr display, CursorFontShape shape) {
+ internal static IntPtr XCreateFontCursor(IntPtr display, CursorFontShape shape)
+ {
DebugHelper.TraceWriteLine ("XCreateFontCursor");
return _XCreateFontCursor(display, shape);
}
[DllImport ("libX11", EntryPoint="XCreatePixmapCursor")]
internal extern static IntPtr _XCreatePixmapCursor(IntPtr display, IntPtr source, IntPtr mask, ref XColor foreground_color, ref XColor background_color, int x_hot, int y_hot);
- internal static IntPtr XCreatePixmapCursor(IntPtr display, IntPtr source, IntPtr mask, ref XColor foreground_color, ref XColor background_color, int x_hot, int y_hot) {
+ internal static IntPtr XCreatePixmapCursor(IntPtr display, IntPtr source, IntPtr mask, ref XColor foreground_color, ref XColor background_color, int x_hot, int y_hot)
+ {
DebugHelper.TraceWriteLine ("XCreatePixmapCursor");
return _XCreatePixmapCursor(display, source, mask, ref foreground_color, ref background_color, x_hot, y_hot);
}
[DllImport ("libX11", EntryPoint="XCreatePixmapFromBitmapData")]
internal extern static IntPtr _XCreatePixmapFromBitmapData(IntPtr display, IntPtr drawable, byte[] data, int width, int height, IntPtr fg, IntPtr bg, int depth);
- internal static IntPtr XCreatePixmapFromBitmapData(IntPtr display, IntPtr drawable, byte[] data, int width, int height, IntPtr fg, IntPtr bg, int depth) {
+ internal static IntPtr XCreatePixmapFromBitmapData(IntPtr display, IntPtr drawable, byte[] data, int width, int height, IntPtr fg, IntPtr bg, int depth)
+ {
DebugHelper.TraceWriteLine ("XCreatePixmapFromBitmapData");
return _XCreatePixmapFromBitmapData(display, drawable, data, width, height, fg, bg, depth);
}
[DllImport ("libX11", EntryPoint="XCreatePixmap")]
internal extern static IntPtr _XCreatePixmap(IntPtr display, IntPtr d, int width, int height, int depth);
- internal static IntPtr XCreatePixmap(IntPtr display, IntPtr d, int width, int height, int depth) {
+ internal static IntPtr XCreatePixmap(IntPtr display, IntPtr d, int width, int height, int depth)
+ {
DebugHelper.TraceWriteLine ("XCreatePixmap");
return _XCreatePixmap(display, d, width, height, depth);
}
[DllImport ("libX11", EntryPoint="XFreePixmap")]
internal extern static IntPtr _XFreePixmap(IntPtr display, IntPtr pixmap);
- internal static IntPtr XFreePixmap(IntPtr display, IntPtr pixmap) {
+ internal static IntPtr XFreePixmap(IntPtr display, IntPtr pixmap)
+ {
DebugHelper.TraceWriteLine ("XFreePixmap");
return _XFreePixmap(display, pixmap);
}
[DllImport ("libX11", EntryPoint="XQueryBestCursor")]
internal extern static int _XQueryBestCursor(IntPtr display, IntPtr drawable, int width, int height, out int best_width, out int best_height);
- internal static int XQueryBestCursor(IntPtr display, IntPtr drawable, int width, int height, out int best_width, out int best_height) {
+ internal static int XQueryBestCursor(IntPtr display, IntPtr drawable, int width, int height, out int best_width, out int best_height)
+ {
DebugHelper.TraceWriteLine ("XQueryBestCursor");
return _XQueryBestCursor(display, drawable, width, height, out best_width, out best_height);
}
[DllImport ("libX11", EntryPoint="XQueryExtension")]
internal extern static int _XQueryExtension(IntPtr display, string extension_name, ref int major, ref int first_event, ref int first_error);
- internal static int XQueryExtension(IntPtr display, string extension_name, ref int major, ref int first_event, ref int first_error) {
+ internal static int XQueryExtension(IntPtr display, string extension_name, ref int major, ref int first_event, ref int first_error)
+ {
DebugHelper.TraceWriteLine ("XQueryExtension");
return _XQueryExtension(display, extension_name, ref major, ref first_event, ref first_error);
}
[DllImport ("libX11", EntryPoint="XWhitePixel")]
internal extern static IntPtr _XWhitePixel(IntPtr display, int screen_no);
- internal static IntPtr XWhitePixel(IntPtr display, int screen_no) {
+ internal static IntPtr XWhitePixel(IntPtr display, int screen_no)
+ {
DebugHelper.TraceWriteLine ("XWhitePixel");
return _XWhitePixel(display, screen_no);
}
[DllImport ("libX11", EntryPoint="XBlackPixel")]
internal extern static IntPtr _XBlackPixel(IntPtr display, int screen_no);
- internal static IntPtr XBlackPixel(IntPtr display, int screen_no) {
+ internal static IntPtr XBlackPixel(IntPtr display, int screen_no)
+ {
DebugHelper.TraceWriteLine ("XBlackPixel");
return _XBlackPixel(display, screen_no);
}
[DllImport ("libX11", EntryPoint="XGrabServer")]
internal extern static void _XGrabServer(IntPtr display);
- internal static void XGrabServer(IntPtr display) {
+ internal static void XGrabServer(IntPtr display)
+ {
DebugHelper.TraceWriteLine ("XGrabServer");
_XGrabServer(display);
}
[DllImport ("libX11", EntryPoint="XUngrabServer")]
internal extern static void _XUngrabServer(IntPtr display);
- internal static void XUngrabServer(IntPtr display) {
+ internal static void XUngrabServer(IntPtr display)
+ {
DebugHelper.TraceWriteLine ("XUngrabServer");
_XUngrabServer(display);
}
[DllImport ("libX11", EntryPoint="XGetWMNormalHints")]
internal extern static void _XGetWMNormalHints(IntPtr display, IntPtr window, ref XSizeHints hints, out IntPtr supplied_return);
- internal static void XGetWMNormalHints(IntPtr display, IntPtr window, ref XSizeHints hints, out IntPtr supplied_return) {
+ internal static void XGetWMNormalHints(IntPtr display, IntPtr window, ref XSizeHints hints, out IntPtr supplied_return)
+ {
DebugHelper.TraceWriteLine ("XGetWMNormalHints");
_XGetWMNormalHints(display, window, ref hints, out supplied_return);
}
[DllImport ("libX11", EntryPoint="XSetWMNormalHints")]
internal extern static void _XSetWMNormalHints(IntPtr display, IntPtr window, ref XSizeHints hints);
- internal static void XSetWMNormalHints(IntPtr display, IntPtr window, ref XSizeHints hints) {
+ internal static void XSetWMNormalHints(IntPtr display, IntPtr window, ref XSizeHints hints)
+ {
DebugHelper.TraceWriteLine ("XSetWMNormalHints");
_XSetWMNormalHints(display, window, ref hints);
}
[DllImport ("libX11", EntryPoint="XSetZoomHints")]
internal extern static void _XSetZoomHints(IntPtr display, IntPtr window, ref XSizeHints hints);
- internal static void XSetZoomHints(IntPtr display, IntPtr window, ref XSizeHints hints) {
+ internal static void XSetZoomHints(IntPtr display, IntPtr window, ref XSizeHints hints)
+ {
DebugHelper.TraceWriteLine ("XSetZoomHints");
_XSetZoomHints(display, window, ref hints);
}
[DllImport ("libX11", EntryPoint="XSetWMHints")]
internal extern static void _XSetWMHints(IntPtr display, IntPtr window, ref XWMHints wmhints);
- internal static void XSetWMHints(IntPtr display, IntPtr window, ref XWMHints wmhints) {
+ internal static void XSetWMHints(IntPtr display, IntPtr window, ref XWMHints wmhints)
+ {
DebugHelper.TraceWriteLine ("XSetWMHints");
_XSetWMHints(display, window, ref wmhints);
}
[DllImport ("libX11", EntryPoint="XGetIconSizes")]
internal extern static int _XGetIconSizes(IntPtr display, IntPtr window, out IntPtr size_list, out int count);
- internal static int XGetIconSizes(IntPtr display, IntPtr window, out IntPtr size_list, out int count) {
+ internal static int XGetIconSizes(IntPtr display, IntPtr window, out IntPtr size_list, out int count)
+ {
DebugHelper.TraceWriteLine ("XGetIconSizes");
return _XGetIconSizes(display, window, out size_list, out count);
}
[DllImport ("libX11", EntryPoint="XSetErrorHandler")]
internal extern static IntPtr _XSetErrorHandler(XErrorHandler error_handler);
- internal static IntPtr XSetErrorHandler(XErrorHandler error_handler) {
+ internal static IntPtr XSetErrorHandler(XErrorHandler error_handler)
+ {
DebugHelper.TraceWriteLine ("XSetErrorHandler");
return _XSetErrorHandler(error_handler);
}
[DllImport ("libX11", EntryPoint="XGetErrorText")]
internal extern static IntPtr _XGetErrorText(IntPtr display, byte code, StringBuilder buffer, int length);
- internal static IntPtr XGetErrorText(IntPtr display, byte code, StringBuilder buffer, int length) {
+ internal static IntPtr XGetErrorText(IntPtr display, byte code, StringBuilder buffer, int length)
+ {
DebugHelper.TraceWriteLine ("XGetErrorText");
return _XGetErrorText(display, code, buffer, length);
}
[DllImport ("libX11", EntryPoint="XInitThreads")]
internal extern static int _XInitThreads();
- internal static int XInitThreads() {
+ internal static int XInitThreads()
+ {
DebugHelper.TraceWriteLine ("XInitThreads");
return _XInitThreads();
}
[DllImport ("libX11", EntryPoint="XConvertSelection")]
internal extern static int _XConvertSelection(IntPtr display, IntPtr selection, IntPtr target, IntPtr property, IntPtr requestor, IntPtr time);
- internal static int XConvertSelection(IntPtr display, IntPtr selection, IntPtr target, IntPtr property, IntPtr requestor, IntPtr time) {
+ internal static int XConvertSelection(IntPtr display, IntPtr selection, IntPtr target, IntPtr property, IntPtr requestor, IntPtr time)
+ {
DebugHelper.TraceWriteLine ("XConvertSelection");
return _XConvertSelection(display, selection, target, property, requestor, time);
}
[DllImport ("libX11", EntryPoint="XGetSelectionOwner")]
internal extern static IntPtr _XGetSelectionOwner(IntPtr display, IntPtr selection);
- internal static IntPtr XGetSelectionOwner(IntPtr display, IntPtr selection) {
+ internal static IntPtr XGetSelectionOwner(IntPtr display, IntPtr selection)
+ {
DebugHelper.TraceWriteLine ("XGetSelectionOwner");
return _XGetSelectionOwner(display, selection);
}
[DllImport ("libX11", EntryPoint="XSetSelectionOwner")]
internal extern static int _XSetSelectionOwner(IntPtr display, IntPtr selection, IntPtr owner, IntPtr time);
- internal static int XSetSelectionOwner(IntPtr display, IntPtr selection, IntPtr owner, IntPtr time) {
+ internal static int XSetSelectionOwner(IntPtr display, IntPtr selection, IntPtr owner, IntPtr time)
+ {
DebugHelper.TraceWriteLine ("XSetSelectionOwner");
return _XSetSelectionOwner(display, selection, owner, time);
}
[DllImport ("libX11", EntryPoint="XSetPlaneMask")]
internal extern static int _XSetPlaneMask(IntPtr display, IntPtr gc, IntPtr mask);
- internal static int XSetPlaneMask(IntPtr display, IntPtr gc, IntPtr mask) {
+ internal static int XSetPlaneMask(IntPtr display, IntPtr gc, IntPtr mask)
+ {
DebugHelper.TraceWriteLine ("XSetPlaneMask");
return _XSetPlaneMask(display, gc, mask);
}
[DllImport ("libX11", EntryPoint="XSetForeground")]
internal extern static int _XSetForeground(IntPtr display, IntPtr gc, UIntPtr foreground);
- internal static int XSetForeground(IntPtr display, IntPtr gc, UIntPtr foreground) {
+ internal static int XSetForeground(IntPtr display, IntPtr gc, UIntPtr foreground)
+ {
DebugHelper.TraceWriteLine ("XSetForeground");
return _XSetForeground(display, gc, foreground);
}
[DllImport ("libX11", EntryPoint="XSetBackground")]
internal extern static int _XSetBackground(IntPtr display, IntPtr gc, UIntPtr background);
- internal static int XSetBackground(IntPtr display, IntPtr gc, UIntPtr background) {
+ internal static int XSetBackground(IntPtr display, IntPtr gc, UIntPtr background)
+ {
DebugHelper.TraceWriteLine ("XSetBackground");
return _XSetBackground(display, gc, background);
}
[DllImport ("libX11", EntryPoint="XBell")]
internal extern static int _XBell(IntPtr display, int percent);
- internal static int XBell(IntPtr display, int percent) {
+ internal static int XBell(IntPtr display, int percent)
+ {
DebugHelper.TraceWriteLine ("XBell");
return _XBell(display, percent);
}
[DllImport ("libX11", EntryPoint="XChangeActivePointerGrab")]
internal extern static int _XChangeActivePointerGrab (IntPtr display, EventMask event_mask, IntPtr cursor, IntPtr time);
- internal static int XChangeActivePointerGrab (IntPtr display, EventMask event_mask, IntPtr cursor, IntPtr time) {
+ internal static int XChangeActivePointerGrab (IntPtr display, EventMask event_mask, IntPtr cursor, IntPtr time)
+ {
DebugHelper.TraceWriteLine ("XChangeActivePointerGrab");
return _XChangeActivePointerGrab (display, event_mask, cursor, time);
}
[DllImport ("libX11", EntryPoint="XFilterEvent")]
internal extern static bool _XFilterEvent(ref XEvent xevent, IntPtr window);
- internal static bool XFilterEvent(ref XEvent xevent, IntPtr window) {
+ internal static bool XFilterEvent(ref XEvent xevent, IntPtr window)
+ {
DebugHelper.TraceWriteLine ("XFilterEvent");
return _XFilterEvent(ref xevent, window);
}
[DllImport ("libX11", EntryPoint="XkbSetDetectableAutoRepeat")]
internal extern static void _XkbSetDetectableAutoRepeat (IntPtr display, bool detectable, IntPtr supported);
- internal static void XkbSetDetectableAutoRepeat (IntPtr display, bool detectable, IntPtr supported) {
+ internal static void XkbSetDetectableAutoRepeat (IntPtr display, bool detectable, IntPtr supported)
+ {
DebugHelper.TraceWriteLine ("XkbSetDetectableAutoRepeat");
_XkbSetDetectableAutoRepeat (display, detectable, supported);
}
[DllImport ("libX11", EntryPoint="XPeekEvent")]
internal extern static void _XPeekEvent (IntPtr display, ref XEvent xevent);
- internal static void XPeekEvent (IntPtr display, ref XEvent xevent) {
+ internal static void XPeekEvent (IntPtr display, ref XEvent xevent)
+ {
DebugHelper.TraceWriteLine ("XPeekEvent");
_XPeekEvent (display, ref xevent);
}
[DllImport ("libX11", EntryPoint="XIfEvent")]
internal extern static void _XIfEvent (IntPtr display, ref XEvent xevent, Delegate event_predicate, IntPtr arg);
- internal static void XIfEvent (IntPtr display, ref XEvent xevent, Delegate event_predicate, IntPtr arg) {
+ internal static void XIfEvent (IntPtr display, ref XEvent xevent, Delegate event_predicate, IntPtr arg)
+ {
DebugHelper.TraceWriteLine ("XIfEvent");
_XIfEvent (display, ref xevent, event_predicate, arg);
}
[DllImport ("libX11", EntryPoint="XMapWindow")]
internal extern static int XMapWindow(IntPtr display, IntPtr window);
+ [DllImport ("libX11", EntryPoint="XMapRaised")]
+ internal extern static int XMapRaised(IntPtr display, IntPtr window);
+
[DllImport ("libX11", EntryPoint="XUnmapWindow")]
internal extern static int XUnmapWindow(IntPtr display, IntPtr window);
internal extern static int XReparentWindow(IntPtr display, IntPtr window, IntPtr parent, int x, int y);
[DllImport ("libX11", EntryPoint="XMoveResizeWindow")]
- private extern static int XMoveResizeWindow(IntPtr display, IntPtr window, int x, int y, int width, int height);
+ extern static int XMoveResizeWindow(IntPtr display, IntPtr window, int x, int y, int width, int height);
internal static int MoveResizeWindow(IntPtr display, IntPtr window, int x, int y, int width, int height)
{
int ret = XMoveResizeWindow (display, window, x, y, width, height);
[DllImport ("libX11", EntryPoint="XIfEvent")]
internal extern static void XIfEvent (IntPtr display, ref XEvent xevent, Delegate event_predicate, IntPtr arg);
+
+ [DllImport ("libX11", EntryPoint="XGetInputFocus")]
+ internal extern static void XGetInputFocus (IntPtr display, out IntPtr focus, out IntPtr revert_to);
#endregion
+#region Gtk/Gdk imports
+ [DllImport("libgdk-x11-2.0")]
+ internal extern static IntPtr gdk_atom_intern (string atomName, bool onlyIfExists);
+
+ [DllImport("libgtk-x11-2.0")]
+ internal extern static IntPtr gtk_clipboard_get (IntPtr atom);
+
+ [DllImport("libgtk-x11-2.0")]
+ internal extern static void gtk_clipboard_store (IntPtr clipboard);
+
+ [DllImport("libgtk-x11-2.0")]
+ internal extern static void gtk_clipboard_set_text (IntPtr clipboard, string text, int len);
+#endregion
+
#endif
}
}