* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
/*
static void
gdk_offscreen_window_destroy (GdkWindow *window,
- gboolean recursing,
- gboolean foreign_destroy)
+ gboolean recursing,
+ gboolean foreign_destroy)
{
- GdkOffscreenWindow *offscreen;
-
- offscreen = GDK_OFFSCREEN_WINDOW (window->impl);
-
gdk_offscreen_window_set_embedder (window, NULL);
-
+
if (!recursing)
gdk_offscreen_window_hide (window);
}
{
cairo_surface_t *similar;
cairo_surface_t *surface;
- cairo_content_t content = CAIRO_CONTENT_COLOR;
g_return_val_if_fail (GDK_IS_OFFSCREEN_WINDOW (offscreen->impl), NULL);
similar = _gdk_window_ref_cairo_surface (offscreen->parent);
- if (gdk_window_get_visual (offscreen) ==
- gdk_screen_get_rgba_visual (gdk_window_get_screen (offscreen)))
- {
- content = CAIRO_CONTENT_COLOR_ALPHA;
- }
-
- surface = cairo_surface_create_similar (similar, content, width, height);
+ surface = cairo_surface_create_similar (similar, CAIRO_CONTENT_COLOR_ALPHA, width, height);
cairo_surface_destroy (similar);
return was_mapped;
}
+static void
+gdk_offscreen_window_set_device_cursor (GdkWindow *window,
+ GdkDevice *device,
+ GdkCursor *cursor)
+{
+}
+
static void
from_embedder (GdkWindow *window,
double embedder_x, double embedder_y,
* If you need to keep this around over window resizes, you need to
* add a reference to it.
*
- * Returns: The offscreen surface, or %NULL if not offscreen
+ * Returns: (transfer none): The offscreen surface, or %NULL if not offscreen
*/
cairo_surface_t *
gdk_offscreen_window_get_surface (GdkWindow *window)
static void
gdk_offscreen_window_move_resize_internal (GdkWindow *window,
- gint x,
- gint y,
- gint width,
- gint height,
- gboolean send_expose_events)
+ gint x,
+ gint y,
+ gint width,
+ gint height,
+ gboolean send_expose_events)
{
GdkOffscreenWindow *offscreen;
- gint dx, dy, dw, dh;
offscreen = GDK_OFFSCREEN_WINDOW (window->impl);
if (window->destroyed)
return;
- dx = x - window->x;
- dy = y - window->y;
- dw = width - window->width;
- dh = height - window->height;
-
window->x = x;
window->y = y;
if (GDK_WINDOW_IS_MAPPED (window))
{
- // TODO: Only invalidate new area, i.e. for larger windows
+ /* TODO: Only invalidate new area, i.e. for larger windows */
gdk_window_invalidate_rect (window, NULL, TRUE);
_gdk_synthesize_crossing_events_for_geometry_change (window);
}
static void
gdk_offscreen_window_move_resize (GdkWindow *window,
- gboolean with_move,
- gint x,
- gint y,
- gint width,
- gint height)
+ gboolean with_move,
+ gint x,
+ gint y,
+ gint width,
+ gint height)
{
- GdkOffscreenWindow *offscreen;
-
- offscreen = GDK_OFFSCREEN_WINDOW (window->impl);
-
if (!with_move)
{
x = window->x;
if (height < 0)
height = window->height;
- gdk_offscreen_window_move_resize_internal (window, x, y,
- width, height,
- TRUE);
+ gdk_offscreen_window_move_resize_internal (window,
+ x, y, width, height,
+ TRUE);
}
static void
static void
gdk_offscreen_window_hide (GdkWindow *window)
{
+ /* TODO: This needs updating to the new grab world */
+#if 0
GdkOffscreenWindow *offscreen;
GdkDisplay *display;
/* May need to break grabs on children */
display = gdk_window_get_display (window);
- /* TODO: This needs updating to the new grab world */
-#if 0
if (display->pointer_grab.window != NULL)
{
if (is_parent_of (window, display->pointer_grab.window))
gint *x,
gint *y,
gint *width,
- gint *height,
- gint *depth)
+ gint *height)
{
if (!GDK_WINDOW_DESTROYED (window))
{
*width = window->width;
if (height)
*height = window->height;
- if (depth)
- *depth = window->depth;
}
}
return offscreen->embedder;
}
+static void
+gdk_offscreen_window_do_nothing (GdkWindow *window)
+{
+}
+
+static void
+gdk_offscreen_window_set_boolean (GdkWindow *window,
+ gboolean setting)
+{
+}
+
+static void
+gdk_offscreen_window_set_string (GdkWindow *window,
+ const gchar *setting)
+{
+}
+
+static void
+gdk_offscreen_window_set_list (GdkWindow *window,
+ GList *list)
+{
+}
+
+static void
+gdk_offscreen_window_set_wmfunctions (GdkWindow *window,
+ GdkWMFunction functions)
+{
+}
+
+static void
+gdk_offscreen_window_set_transient_for (GdkWindow *window,
+ GdkWindow *another)
+{
+}
+
+static void
+gdk_offscreen_window_process_updates_recurse (GdkWindow *window,
+ cairo_region_t *region)
+{
+ _gdk_window_process_updates_recurse (window, region);
+}
+
static void
gdk_offscreen_window_class_init (GdkOffscreenWindowClass *klass)
{
impl_class->show = gdk_offscreen_window_show;
impl_class->hide = gdk_offscreen_window_hide;
impl_class->withdraw = gdk_offscreen_window_withdraw;
+ impl_class->set_events = gdk_offscreen_window_set_events;
+ impl_class->get_events = gdk_offscreen_window_get_events;
impl_class->raise = gdk_offscreen_window_raise;
impl_class->lower = gdk_offscreen_window_lower;
+ impl_class->restack_under = NULL;
+ impl_class->restack_toplevel = NULL;
impl_class->move_resize = gdk_offscreen_window_move_resize;
impl_class->set_background = gdk_offscreen_window_set_background;
- impl_class->get_events = gdk_offscreen_window_get_events;
- impl_class->set_events = gdk_offscreen_window_set_events;
impl_class->reparent = gdk_offscreen_window_reparent;
+ impl_class->set_device_cursor = gdk_offscreen_window_set_device_cursor;
impl_class->get_geometry = gdk_offscreen_window_get_geometry;
+ impl_class->get_root_coords = gdk_offscreen_window_get_root_coords;
+ impl_class->get_device_state = gdk_offscreen_window_get_device_state;
impl_class->shape_combine_region = gdk_offscreen_window_shape_combine_region;
impl_class->input_shape_combine_region = gdk_offscreen_window_input_shape_combine_region;
impl_class->set_static_gravities = gdk_offscreen_window_set_static_gravities;
impl_class->queue_antiexpose = gdk_offscreen_window_queue_antiexpose;
impl_class->translate = gdk_offscreen_window_translate;
- impl_class->get_root_coords = gdk_offscreen_window_get_root_coords;
- impl_class->get_device_state = gdk_offscreen_window_get_device_state;
impl_class->destroy = gdk_offscreen_window_destroy;
+ impl_class->destroy_foreign = NULL;
impl_class->resize_cairo_surface = gdk_offscreen_window_resize_cairo_surface;
+ impl_class->get_shape = NULL;
+ impl_class->get_input_shape = NULL;
+ impl_class->beep = NULL;
+
+ impl_class->focus = NULL;
+ impl_class->set_type_hint = NULL;
+ impl_class->get_type_hint = NULL;
+ impl_class->set_modal_hint = NULL;
+ impl_class->set_skip_taskbar_hint = gdk_offscreen_window_set_boolean;
+ impl_class->set_skip_pager_hint = gdk_offscreen_window_set_boolean;
+ impl_class->set_urgency_hint = gdk_offscreen_window_set_boolean;
+ impl_class->set_geometry_hints = NULL;
+ impl_class->set_title = gdk_offscreen_window_set_string;
+ impl_class->set_role = gdk_offscreen_window_set_string;
+ impl_class->set_startup_id = gdk_offscreen_window_set_string;
+ impl_class->set_transient_for = gdk_offscreen_window_set_transient_for;
+ impl_class->get_root_origin = NULL;
+ impl_class->get_frame_extents = NULL;
+ impl_class->set_override_redirect = NULL;
+ impl_class->set_accept_focus = NULL;
+ impl_class->set_focus_on_map = gdk_offscreen_window_set_boolean;
+ impl_class->set_icon_list = gdk_offscreen_window_set_list;
+ impl_class->set_icon_name = gdk_offscreen_window_set_string;
+ impl_class->iconify = gdk_offscreen_window_do_nothing;
+ impl_class->deiconify = gdk_offscreen_window_do_nothing;
+ impl_class->stick = gdk_offscreen_window_do_nothing;
+ impl_class->unstick = gdk_offscreen_window_do_nothing;
+ impl_class->maximize = gdk_offscreen_window_do_nothing;
+ impl_class->unmaximize = gdk_offscreen_window_do_nothing;
+ impl_class->fullscreen = gdk_offscreen_window_do_nothing;
+ impl_class->unfullscreen = gdk_offscreen_window_do_nothing;
+ impl_class->set_keep_above = gdk_offscreen_window_set_boolean;
+ impl_class->set_keep_below = gdk_offscreen_window_set_boolean;
+ impl_class->get_group = NULL;
+ impl_class->set_group = NULL;
+ impl_class->set_decorations = NULL;
+ impl_class->get_decorations = NULL;
+ impl_class->set_functions = gdk_offscreen_window_set_wmfunctions;
+ impl_class->begin_resize_drag = NULL;
+ impl_class->begin_move_drag = NULL;
+ impl_class->enable_synchronized_configure = gdk_offscreen_window_do_nothing;
+ impl_class->configure_finished = NULL;
+ impl_class->set_opacity = NULL;
+ impl_class->set_composited = NULL;
+ impl_class->destroy_notify = NULL;
+ impl_class->register_dnd = gdk_offscreen_window_do_nothing;
+ impl_class->drag_begin = NULL;
+ impl_class->process_updates_recurse = gdk_offscreen_window_process_updates_recurse;
+ impl_class->sync_rendering = NULL;
+ impl_class->simulate_key = NULL;
+ impl_class->simulate_button = NULL;
+ impl_class->get_property = NULL;
+ impl_class->change_property = NULL;
+ impl_class->delete_property = NULL;
}