Only use X11-specific GDK functions inside "#ifdef GDK_WINDOWING_X11" checks.
Closes #14044.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70701
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
#include <hildon/hildon.h>
#endif // wxUSE_LIBHILDON2
#include <hildon/hildon.h>
#endif // wxUSE_LIBHILDON2
+#ifdef GDK_WINDOWING_X11
//-----------------------------------------------------------------------------
// link GnomeVFS
//-----------------------------------------------------------------------------
// link GnomeVFS
#include "wx/gtk/dcscreen.h"
#include <gtk/gtk.h>
#include "wx/gtk/dcscreen.h"
#include <gtk/gtk.h>
+#ifdef GDK_WINDOWING_X11
//-----------------------------------------------------------------------------
// wxScreenDCImpl
//-----------------------------------------------------------------------------
// wxScreenDCImpl
bool wxTaskBarIconBase::IsAvailable()
{
bool wxTaskBarIconBase::IsAvailable()
{
+#ifdef GDK_WINDOWING_X11
char name[32];
g_snprintf(name, sizeof(name), "_NET_SYSTEM_TRAY_S%d",
gdk_x11_get_default_screen());
char name[32];
g_snprintf(name, sizeof(name), "_NET_SYSTEM_TRAY_S%d",
gdk_x11_get_default_screen());
Window manager = XGetSelectionOwner(gdk_x11_get_default_xdisplay(), atom);
return manager != None;
Window manager = XGetSelectionOwner(gdk_x11_get_default_xdisplay(), atom);
return manager != None;
+#else
+ return true;
+#endif
}
//-----------------------------------------------------------------------------
}
//-----------------------------------------------------------------------------
#include "wx/sysopt.h"
#include <gtk/gtk.h>
#include "wx/sysopt.h"
#include <gtk/gtk.h>
+#ifdef GDK_WINDOWING_X11
#include "wx/gtk/private/win_gtk.h"
#include "wx/gtk/private/win_gtk.h"
+#ifdef GDK_WINDOWING_X11
+
#include "wx/unix/utilsx11.h"
// XA_CARDINAL
#include <X11/Xatom.h>
#include "wx/unix/utilsx11.h"
// XA_CARDINAL
#include <X11/Xatom.h>
+#endif // GDK_WINDOWING_X11
+
#if wxUSE_LIBHILDON
#include <hildon-widgets/hildon-program.h>
#include <hildon-widgets/hildon-window.h>
#if wxUSE_LIBHILDON
#include <hildon-widgets/hildon-program.h>
#include <hildon-widgets/hildon-window.h>
+#ifdef GDK_WINDOWING_X11
GdkWindow* window = gtk_widget_get_window(GTK_WIDGET(win));
wxCHECK_RET(window, "wxgtk_window_set_urgency_hint: GdkWindow not realized");
GdkWindow* window = gtk_widget_get_window(GTK_WIDGET(win));
wxCHECK_RET(window, "wxgtk_window_set_urgency_hint: GdkWindow not realized");
XSetWMHints(dpy, xid, wm_hints);
XFree(wm_hints);
XSetWMHints(dpy, xid, wm_hints);
XFree(wm_hints);
+#endif // GDK_WINDOWING_X11
}
}
#define gtk_window_set_urgency_hint wxgtk_window_set_urgency_hint
}
}
#define gtk_window_set_urgency_hint wxgtk_window_set_urgency_hint
bool wxGetFrameExtents(GdkWindow* window, int* left, int* right, int* top, int* bottom)
{
bool wxGetFrameExtents(GdkWindow* window, int* left, int* right, int* top, int* bottom)
{
+#ifdef GDK_WINDOWING_X11
static GdkAtom property = gdk_atom_intern("_NET_FRAME_EXTENTS", false);
Atom xproperty = gdk_x11_atom_to_xatom_for_display(
gdk_drawable_get_display(window), property);
static GdkAtom property = gdk_atom_intern("_NET_FRAME_EXTENTS", false);
Atom xproperty = gdk_x11_atom_to_xatom_for_display(
gdk_drawable_get_display(window), property);
if (data)
XFree(data);
return success;
if (data)
XFree(data);
return success;
+#else
+ return false;
+#endif
}
//-----------------------------------------------------------------------------
}
//-----------------------------------------------------------------------------
+#ifdef GDK_WINDOWING_X11
wxX11FullScreenMethod method =
wxGetFullScreenMethodX11((WXDisplay*)GDK_DISPLAY(),
(WXWindow)GDK_ROOT_WINDOW());
wxX11FullScreenMethod method =
wxGetFullScreenMethodX11((WXDisplay*)GDK_DISPLAY(),
(WXWindow)GDK_ROOT_WINDOW());
// check if WM supports the spec and use legacy methods if it
// doesn't.
if ( method == wxX11_FS_WMSPEC )
// check if WM supports the spec and use legacy methods if it
// doesn't.
if ( method == wxX11_FS_WMSPEC )
+#endif // GDK_WINDOWING_X11
{
if (show)
gtk_window_fullscreen( GTK_WINDOW( m_widget ) );
else
gtk_window_unfullscreen( GTK_WINDOW( m_widget ) );
}
{
if (show)
gtk_window_fullscreen( GTK_WINDOW( m_widget ) );
else
gtk_window_unfullscreen( GTK_WINDOW( m_widget ) );
}
+#ifdef GDK_WINDOWING_X11
else
{
GdkWindow* window = gtk_widget_get_window(m_widget);
else
{
GdkWindow* window = gtk_widget_get_window(m_widget);
m_fsSaveFrame.width, m_fsSaveFrame.height);
}
}
m_fsSaveFrame.width, m_fsSaveFrame.height);
}
}
+#endif // GDK_WINDOWING_X11
// documented behaviour is to show the window if it's still hidden when
// showing it full screen
// documented behaviour is to show the window if it's still hidden when
// showing it full screen
GdkScreen* screen = NULL;
if (deferShow)
{
GdkScreen* screen = NULL;
if (deferShow)
{
+#ifdef GDK_WINDOWING_X11
screen = gtk_widget_get_screen(m_widget);
GdkAtom atom = gdk_atom_intern("_NET_REQUEST_FRAME_EXTENTS", false);
deferShow = gdk_x11_screen_supports_net_wm_hint(screen, atom) != 0;
screen = gtk_widget_get_screen(m_widget);
GdkAtom atom = gdk_atom_intern("_NET_REQUEST_FRAME_EXTENTS", false);
deferShow = gdk_x11_screen_supports_net_wm_hint(screen, atom) != 0;
+#else
+ deferShow = false;
+#endif
// If _NET_REQUEST_FRAME_EXTENTS not supported, don't allow changes
// to m_decorSize, it breaks saving/restoring window size with
// GetSize()/SetSize() because it makes window bigger between each
// If _NET_REQUEST_FRAME_EXTENTS not supported, don't allow changes
// to m_decorSize, it breaks saving/restoring window size with
// GetSize()/SetSize() because it makes window bigger between each
gtk_widget_set_allocation(m_widget, &alloc);
}
gtk_widget_set_allocation(m_widget, &alloc);
}
+#ifdef GDK_WINDOWING_X11
// send _NET_REQUEST_FRAME_EXTENTS
XClientMessageEvent xevent;
memset(&xevent, 0, sizeof(xevent));
// send _NET_REQUEST_FRAME_EXTENTS
XClientMessageEvent xevent;
memset(&xevent, 0, sizeof(xevent));
XSendEvent(display, DefaultRootWindow(display), false,
SubstructureNotifyMask | SubstructureRedirectMask,
(XEvent*)&xevent);
XSendEvent(display, DefaultRootWindow(display), false,
SubstructureNotifyMask | SubstructureRedirectMask,
(XEvent*)&xevent);
+#endif // GDK_WINDOWING_X11
if (gs_requestFrameExtentsStatus == 0)
{
if (gs_requestFrameExtentsStatus == 0)
{
+#ifdef GDK_WINDOWING_X11
/* Get the X Window between child and the root window.
This should usually be the WM managed XID */
static Window wxGetTopmostWindowX11(Display *dpy, Window child)
/* Get the X Window between child and the root window.
This should usually be the WM managed XID */
static Window wxGetTopmostWindowX11(Display *dpy, Window child)
+#endif // GDK_WINDOWING_X11
bool wxTopLevelWindowGTK::SetTransparent(wxByte alpha)
{
bool wxTopLevelWindowGTK::SetTransparent(wxByte alpha)
{
if (window == NULL)
return false;
if (window == NULL)
return false;
+#ifdef GDK_WINDOWING_X11
Display* dpy = GDK_WINDOW_XDISPLAY(window);
// We need to get the X Window that has the root window as the immediate parent
// and m_widget->window as a child. This should be the X Window that the WM manages and
Display* dpy = GDK_WINDOW_XDISPLAY(window);
// We need to get the X Window that has the root window as the immediate parent
// and m_widget->window as a child. This should be the X Window that the WM manages and
}
XSync(dpy, False);
return true;
}
XSync(dpy, False);
return true;
+#else // !GDK_WINDOWING_X11
+ return false;
+#endif // GDK_WINDOWING_X11 / !GDK_WINDOWING_X11
}
bool wxTopLevelWindowGTK::CanSetTransparent()
}
bool wxTopLevelWindowGTK::CanSetTransparent()
#include "wx/evtloop.h"
#include <gtk/gtk.h>
#include "wx/evtloop.h"
#include <gtk/gtk.h>
+#ifdef GDK_WINDOWING_WIN32
+#include <gdk/gdkwin32.h>
+#endif
+#ifdef GDK_WINDOWING_X11
#if wxDEBUG_LEVEL
#include "wx/gtk/assertdlg_gtk.h"
#if wxDEBUG_LEVEL
#include "wx/gtk/assertdlg_gtk.h"
#include "wx/gtk/private/event.h"
using namespace wxGTKImpl;
#include "wx/gtk/private/event.h"
using namespace wxGTKImpl;
+#ifdef GDK_WINDOWING_X11
+#else
+typedef guint KeySym;
+#endif
#include <gdk/gdkkeysyms.h>
#if GTK_CHECK_VERSION(3,0,0)
#include <gdk/gdkkeysyms.h>
#if GTK_CHECK_VERSION(3,0,0)
keysym = (KeySym)gdk_event->string[0];
}
keysym = (KeySym)gdk_event->string[0];
}
+#ifdef GDK_WINDOWING_X11
// we want to always get the same key code when the same key is
// pressed regardless of the state of the modifiers, i.e. on a
// standard US keyboard pressing '5' or '%' ('5' key with
// we want to always get the same key code when the same key is
// pressed regardless of the state of the modifiers, i.e. on a
// standard US keyboard pressing '5' or '%' ('5' key with
// use the normalized, i.e. lower register, keysym if we've
// got one
key_code = keysymNormalized ? keysymNormalized : keysym;
// use the normalized, i.e. lower register, keysym if we've
// got one
key_code = keysymNormalized ? keysymNormalized : keysym;
+#else
+ key_code = keysym;
+#endif
// as explained above, we want to have lower register key codes
// normally but for the letter keys we want to have the upper ones
// as explained above, we want to have lower register key codes
// normally but for the letter keys we want to have the upper ones
GdkDeviceManager* manager = gdk_display_get_device_manager(display);
gdk_device_warp(gdk_device_manager_get_client_pointer(manager), screen, x, y);
#else
GdkDeviceManager* manager = gdk_display_get_device_manager(display);
gdk_device_warp(gdk_device_manager_get_client_pointer(manager), screen, x, y);
#else
+#ifdef GDK_WINDOWING_X11
XWarpPointer(GDK_DISPLAY_XDISPLAY(display),
None,
GDK_WINDOW_XID(gdk_screen_get_root_window(screen)),
0, 0, 0, 0, x, y);
#endif
XWarpPointer(GDK_DISPLAY_XDISPLAY(display),
None,
GDK_WINDOW_XID(gdk_screen_get_root_window(screen)),
0, 0, 0, 0, x, y);
#endif
}
wxWindowGTK::ScrollDir wxWindowGTK::ScrollDirFromRange(GtkRange *range) const
}
wxWindowGTK::ScrollDir wxWindowGTK::ScrollDirFromRange(GtkRange *range) const
{
// Make sure GDK/X11 doesn't refresh the window
// automatically.
{
// Make sure GDK/X11 doesn't refresh the window
// automatically.
- gdk_window_set_back_pixmap( window, None, False );
+ gdk_window_set_back_pixmap( window, NULL, FALSE );
m_needsStyleChange = false;
}
else // window not realized yet
m_needsStyleChange = false;
}
else // window not realized yet