[gtk+/gtk-3-22] Add missing file and correct some warnings from quartz: Add monitor support.
- From: John Ralls <jralls src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-3-22] Add missing file and correct some warnings from quartz: Add monitor support.
- Date: Mon, 3 Apr 2017 00:56:09 +0000 (UTC)
commit 8074626fc6ef9a8caf6cee9a815ad230a8ba4610
Author: John Ralls <jralls ceridwen us>
Date: Sun Apr 2 17:55:55 2017 -0700
Add missing file and correct some warnings from quartz: Add monitor support.
gdk/quartz/gdkdisplay-quartz.c | 2 -
gdk/quartz/gdkdisplay-quartz.h | 235 ++++++++++++++++++++++++++++++++++++++++
gdk/quartz/gdkscreen-quartz.c | 16 +++
3 files changed, 251 insertions(+), 2 deletions(-)
---
diff --git a/gdk/quartz/gdkdisplay-quartz.c b/gdk/quartz/gdkdisplay-quartz.c
index b309908..d706654 100644
--- a/gdk/quartz/gdkdisplay-quartz.c
+++ b/gdk/quartz/gdkdisplay-quartz.c
@@ -243,8 +243,6 @@ gdk_quartz_display_dispose (GObject *object)
static void
gdk_quartz_display_finalize (GObject *object)
{
- GdkQuartzDisplay *display_quartz = GDK_QUARTZ_DISPLAY (object);
-
G_OBJECT_CLASS (gdk_quartz_display_parent_class)->finalize (object);
}
diff --git a/gdk/quartz/gdkdisplay-quartz.h b/gdk/quartz/gdkdisplay-quartz.h
new file mode 100644
index 0000000..44d4ec6
--- /dev/null
+++ b/gdk/quartz/gdkdisplay-quartz.h
@@ -0,0 +1,235 @@
+/*
+ * gdkdisplay-quartz.h
+ *
+ * Copyright 2017 Tom Schoonjans
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GDK_QUARTZ_DISPLAY__
+#define __GDK_QUARTZ_DISPLAY__
+
+#include "gdkdisplayprivate.h"
+#include "gdkkeys.h"
+#include "gdkwindow.h"
+#include "gdkinternals.h"
+#include "gdkmain.h"
+
+G_BEGIN_DECLS
+
+
+struct _GdkQuartzDisplay
+{
+ GdkDisplay parent_instance;
+ /*Display *xdisplay;
+ GdkScreen *screen;
+ GList *screens;
+
+ GSource *event_source;
+
+ gint grab_count;
+ */
+ /* Visual infos for creating Windows */
+ /*int window_depth;
+ Visual *window_visual;
+ Colormap window_colormap;
+ */
+ /* Keyboard related information */
+ /*gint xkb_event_type;
+ gboolean use_xkb;
+ */
+ /* Whether we were able to turn on detectable-autorepeat using
+ * XkbSetDetectableAutorepeat. If FALSE, we'll fall back
+ * to checking the next event with XPending().
+ */
+ /*gboolean have_xkb_autorepeat;
+
+ GdkKeymap *keymap;
+ guint keymap_serial;
+
+ gboolean have_xfixes;
+ gint xfixes_event_base;
+
+ gboolean have_xcomposite;
+ gboolean have_xdamage;
+ gint xdamage_event_base;
+
+ gboolean have_randr12;
+ gboolean have_randr13;
+ gboolean have_randr15;
+ gint xrandr_event_base;
+ */
+ /* If the SECURITY extension is in place, whether this client holds
+ * a trusted authorization and so is allowed to make various requests
+ * (grabs, properties etc.) Otherwise always TRUE.
+ */
+ /*gboolean trusted_client;
+ */
+ /* drag and drop information */
+ /*GdkDragContext *current_dest_drag;
+ */
+ /* Mapping to/from virtual atoms */
+ /*GHashTable *atom_from_virtual;
+ GHashTable *atom_to_virtual;
+ */
+ /* Session Management leader window see ICCCM */
+ /*Window leader_window;
+ GdkWindow *leader_gdk_window;
+ gboolean leader_window_title_set;
+ */
+ /* List of functions to go from extension event => X window */
+ /*GSList *event_types;
+ */
+ /* X ID hashtable */
+ /*GHashTable *xid_ht;
+ */
+ /* translation queue */
+ /*GQueue *translate_queue;
+ */
+ /* input GdkWindow list */
+ /*GList *input_windows;
+ */
+ GPtrArray *monitors;
+
+ /* Startup notification */
+ /*gchar *startup_notification_id;
+ */
+ /* Time of most recent user interaction. */
+ /*gulong user_time;
+ */
+ /* Sets of atoms for DND */
+ /*guint base_dnd_atoms_precached : 1;
+ guint xdnd_atoms_precached : 1;
+ guint motif_atoms_precached : 1;
+ guint use_sync : 1;
+
+ guint have_shapes : 1;
+ guint have_input_shapes : 1;
+ gint shape_event_base;
+
+ GSList *error_traps;
+
+ gint wm_moveresize_button;
+ */
+ /* GLX information */
+ /*gint glx_version;
+ gint glx_error_base;
+ gint glx_event_base;
+ */
+ /* Translation between X server time and system-local monotonic time */
+ /*gint64 server_time_query_time;
+ gint64 server_time_offset;
+ */
+ /*guint server_time_is_monotonic_time : 1;
+
+ guint have_glx : 1;
+ */
+ /* GLX extensions we check */
+ /*guint has_glx_swap_interval : 1;
+ guint has_glx_create_context : 1;
+ guint has_glx_texture_from_pixmap : 1;
+ guint has_glx_video_sync : 1;
+ guint has_glx_buffer_age : 1;
+ guint has_glx_sync_control : 1;
+ guint has_glx_multisample : 1;
+ guint has_glx_visual_rating : 1;
+ guint has_glx_create_es2_context : 1;*/
+};
+
+struct _GdkQuartzDisplayClass
+{
+ GdkDisplayClass parent_class;
+};
+
+/* Display methods - events */
+void _gdk_quartz_display_queue_events (GdkDisplay *display);
+gboolean _gdk_quartz_display_has_pending (GdkDisplay *display);
+
+void _gdk_quartz_display_event_data_copy (GdkDisplay *display,
+ const GdkEvent *src,
+ GdkEvent *dst);
+void _gdk_quartz_display_event_data_free (GdkDisplay *display,
+ GdkEvent *event);
+
+/* Display methods - cursor */
+GdkCursor *_gdk_quartz_display_get_cursor_for_type (GdkDisplay *display,
+ GdkCursorType type);
+GdkCursor *_gdk_quartz_display_get_cursor_for_name (GdkDisplay *display,
+ const gchar *name);
+GdkCursor *_gdk_quartz_display_get_cursor_for_surface (GdkDisplay *display,
+ cairo_surface_t *surface,
+ gdouble x,
+ gdouble y);
+gboolean _gdk_quartz_display_supports_cursor_alpha (GdkDisplay *display);
+gboolean _gdk_quartz_display_supports_cursor_color (GdkDisplay *display);
+void _gdk_quartz_display_get_default_cursor_size (GdkDisplay *display,
+ guint *width,
+ guint *height);
+void _gdk_quartz_display_get_maximal_cursor_size (GdkDisplay *display,
+ guint *width,
+ guint *height);
+
+/* Display methods - window */
+void _gdk_quartz_display_before_process_all_updates (GdkDisplay *display);
+void _gdk_quartz_display_after_process_all_updates (GdkDisplay *display);
+void _gdk_quartz_display_create_window_impl (GdkDisplay *display,
+ GdkWindow *window,
+ GdkWindow *real_parent,
+ GdkScreen *screen,
+ GdkEventMask event_mask,
+ GdkWindowAttr *attributes,
+ gint attributes_mask);
+
+/* Display methods - keymap */
+GdkKeymap * _gdk_quartz_display_get_keymap (GdkDisplay *display);
+
+/* Display methods - selection */
+gboolean _gdk_quartz_display_set_selection_owner (GdkDisplay *display,
+ GdkWindow *owner,
+ GdkAtom selection,
+ guint32 time,
+ gboolean send_event);
+GdkWindow * _gdk_quartz_display_get_selection_owner (GdkDisplay *display,
+ GdkAtom selection);
+gint _gdk_quartz_display_get_selection_property (GdkDisplay *display,
+ GdkWindow *requestor,
+ guchar **data,
+ GdkAtom *ret_type,
+ gint *ret_format);
+void _gdk_quartz_display_convert_selection (GdkDisplay *display,
+ GdkWindow *requestor,
+ GdkAtom selection,
+ GdkAtom target,
+ guint32 time);
+gint _gdk_quartz_display_text_property_to_utf8_list (GdkDisplay *display,
+ GdkAtom encoding,
+ gint format,
+ const guchar *text,
+ gint length,
+ gchar ***list);
+gchar * _gdk_quartz_display_utf8_to_string_target (GdkDisplay *displayt,
+ const gchar *str);
+/*
+GdkScreen *_gdk_x11_display_screen_for_xrootwin (GdkDisplay *display,
+ Window xrootwin);
+void _gdk_x11_display_error_event (GdkDisplay *display,
+ XErrorEvent *error);
+
+GdkFilterReturn _gdk_wm_protocols_filter (GdkXEvent *xev,
+ GdkEvent *event,
+ gpointer data);
+*/
+G_END_DECLS
+
+#endif /* __GDK_QUARTZ_DISPLAY__ */
diff --git a/gdk/quartz/gdkscreen-quartz.c b/gdk/quartz/gdkscreen-quartz.c
index b7ee27c..d378148 100644
--- a/gdk/quartz/gdkscreen-quartz.c
+++ b/gdk/quartz/gdkscreen-quartz.c
@@ -374,6 +374,22 @@ gdk_quartz_screen_is_composited (GdkScreen *screen)
return TRUE;
}
+static NSScreen *
+get_nsscreen_for_monitor (gint monitor_num)
+{
+ NSArray *array;
+ NSScreen *screen;
+
+ GDK_QUARTZ_ALLOC_POOL;
+
+ array = [NSScreen screens];
+ screen = [array objectAtIndex:monitor_num];
+
+ GDK_QUARTZ_RELEASE_POOL;
+
+ return screen;
+}
+
static gint
gdk_quartz_screen_get_width_mm (GdkScreen *screen)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]