/* Definitions and headers for communication with X protocol.
Copyright (C) 1989, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2003,
- 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
This file is part of GNU Emacs.
| EnterWindowMask \
| VisibilityChangeMask)
+#ifdef HAVE_X11R6_XIM
+/* Data structure passed to xim_instantiate_callback. */
+struct xim_inst_t
+{
+ struct x_display_info *dpyinfo;
+ char *resource_name;
+};
+#endif /* HAVE_X11R6_XIM */
+
/* Structure recording X pixmap and reference count.
If REFCOUNT is 0 then this record is free to be reused. */
/* Number of planes on this screen. */
int n_planes;
- /* Dimensions of this screen. */
- int height, width;
-
/* Mask of things that cause the mouse to be grabbed. */
int grabbed;
/* The cursor to use for vertical scroll bars. */
Cursor vertical_scroll_bar_cursor;
+ /* The invisible cursor used for pointer blanking. */
+ Cursor invisible_cursor;
+
#ifdef USE_GTK
/* The GDK cursor for scroll bars and popup menus. */
GdkCursor *xg_cursor;
minibuffer. */
struct frame *x_highlight_frame;
- /* The null pixel used for filling a character background with
- background color of a gc. */
- Pixmap null_pixel;
-
/* The gray pixmap. */
Pixmap gray;
/* XIM (X Input method). */
XIM xim;
XIMStyles *xim_styles;
+ struct xim_inst_t *xim_callback_data;
#endif
/* If non-null, a cache of the colors in the color map. Don't
size_t x_dnd_atoms_size;
size_t x_dnd_atoms_length;
- /* Extended window manager hints, Atoms supported by the window manager */
+ /* Extended window manager hints, Atoms supported by the window manager and
+ atoms for settig the window type. */
Atom *net_supported_atoms;
int nr_net_supported_atoms;
Window net_supported_window;
+ Atom Xatom_net_window_type, Xatom_net_window_type_tooltip;
+
+ /* Atoms dealing with maximization and fullscreen */
+ Atom Xatom_net_wm_state, Xatom_net_wm_state_fullscreen_atom,
+ Xatom_net_wm_state_maximized_horz, Xatom_net_wm_state_maximized_vert,
+ Xatom_net_wm_state_sticky;
+
+ /* XSettings atoms and windows. */
+ Atom Xatom_xsettings_sel, Xatom_xsettings_prop, Xatom_xsettings_mgr;
+ Window xsettings_window;
};
#ifdef HAVE_X_I18N
extern struct frame *x_window_to_frame P_ ((struct x_display_info *, int));
-#if defined (USE_X_TOOLKIT) || defined (USE_GTK)
extern struct frame *x_any_window_to_frame P_ ((struct x_display_info *, int));
-extern struct frame *x_non_menubar_window_to_frame P_ ((struct x_display_info *, int));
+extern struct frame *x_menubar_window_to_frame P_ ((struct x_display_info *, int));
extern struct frame *x_top_window_to_frame P_ ((struct x_display_info *, int));
+
+#if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK)
+#define x_any_window_to_frame x_window_to_frame
+#define x_top_window_to_frame x_window_to_frame
#endif
/* This is a chain of structures for all the X displays currently in use. */
extern struct x_display_info *x_display_info_for_display P_ ((Display *));
extern struct x_display_info *x_display_info_for_name P_ ((Lisp_Object));
+extern void x_set_frame_alpha P_ ((struct frame *));
extern struct x_display_info *x_term_init P_ ((Lisp_Object, char *, char *));
extern int x_display_ok P_ ((const char *));
Cursor hand_cursor;
Cursor hourglass_cursor;
Cursor horizontal_drag_cursor;
+ Cursor current_cursor;
/* Window whose cursor is hourglass_cursor. This window is temporarily
mapped to display an hourglass cursor. */
extern int x_dispatch_event P_ ((XEvent *, Display *));
extern unsigned int x_x_to_emacs_modifiers P_ ((struct x_display_info *,
unsigned));
+extern int x_display_pixel_height P_ ((struct x_display_info *));
+extern int x_display_pixel_width P_ ((struct x_display_info *));
+
+extern void x_set_sticky P_ ((struct frame *, Lisp_Object, Lisp_Object));
+extern void x_wait_for_event P_ ((struct frame *, int));
/* Defined in xselect.c */