// Suspends X11 errors. Used when we expect errors but they are not fatal
// for us.
-extern "C" {
+extern "C"
+{
+ typedef int (*wxX11ErrorHandler)(Display *, XErrorEvent *);
+
static int wxX11ErrorsSuspender_handler(Display*, XErrorEvent*) { return 0; }
}
+
class wxX11ErrorsSuspender
{
public:
private:
Display *m_display;
- int (*m_old)(Display*, XErrorEvent *);
+ wxX11ErrorHandler m_old;
};
// implements, KDE will support it from version 3.2. At toolkits level,
// GTK+ >= 2.1.2 uses it as the only method of making windows fullscreen
// (that's why wxGTK will *not* switch to using gtk_window_fullscreen
-// unless it has better compatiblity with older WMs).
+// unless it has better compatibility with older WMs).
//
//
// This is what wxWidgets does in wxSetFullScreenStateX11:
lng = 1;
}
- // it is neccessary to unmap the window, otherwise kwin will ignore us:
+ // it is necessary to unmap the window, otherwise kwin will ignore us:
XSync(display, False);
bool wasMapped = IsMapped(display, w);
if (!fullscreen)
{
- // NB: like many other WMs, kwin ignores first request for window
+ // NB: like many other WMs, kwin ignores the first request for a window
// position change after the window was mapped. This additional
// move+resize event will ensure that the window is restored in
- // exactly same position as before it was made fullscreen (because
- // wxTopLevelWindow::ShowFullScreen will call SetSize, thus
- // setting the position for second time).
+ // exactly the same position as before it was made fullscreen
+ // (because wxTopLevelWindow::ShowFullScreen will call SetSize, thus
+ // setting the position for the second time).
XMoveResizeWindow(display, w,
origRect->x, origRect->y,
origRect->width, origRect->height);