summaryrefslogtreecommitdiff
path: root/gdk/gdkdisplay.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2010-12-09 01:08:05 -0500
committerMatthias Clasen <mclasen@redhat.com>2010-12-21 12:06:55 -0500
commit06f75b3727a0f06c1192b580f37edd8f31759263 (patch)
tree4a3f34830351f17cd16baa3d407ca41eb8f28057 /gdk/gdkdisplay.c
parentde84a7b14f07eca28c31949767d17ecd8368a5fa (diff)
downloadgtk+-06f75b3727a0f06c1192b580f37edd8f31759263.tar.gz
Make GdkAppLaunchContext display-dependent
Add a GdkDisplay::get_app_launch_context vfunc, and a gdk_display_get_app_launch_context that for X11 returns a subclass. For win32 and quartz, the implementations were trivial, so we just return a new GdkAppLaunchContext without subclassing. Since the type of the context now depends on the display, gdk_app_launch_context_set_display is deprecated.
Diffstat (limited to 'gdk/gdkdisplay.c')
-rw-r--r--gdk/gdkdisplay.c35
1 files changed, 33 insertions, 2 deletions
diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
index cb8b9c2bcd..f2ba0df230 100644
--- a/gdk/gdkdisplay.c
+++ b/gdk/gdkdisplay.c
@@ -121,8 +121,7 @@ static GdkWindow* singlehead_default_window_get_pointer (GdkWindow *window
GdkModifierType *mask);
static GdkWindow* singlehead_default_window_at_pointer (GdkScreen *screen,
gint *win_x,
- gint *win_y);
-static GdkWindow *gdk_window_real_window_get_device_position (GdkDisplay *display,
+ gint *win_y);static GdkWindow *gdk_window_real_window_get_device_position (GdkDisplay *display,
GdkDevice *device,
GdkWindow *window,
gint *x,
@@ -132,6 +131,7 @@ static GdkWindow *gdk_display_real_get_window_at_device_position (GdkDisplay
GdkDevice *device,
gint *win_x,
gint *win_y);
+static GdkAppLaunchContext *gdk_display_real_get_app_launch_context (GdkDisplay *display);
static guint signals[LAST_SIGNAL] = { 0 };
@@ -179,6 +179,8 @@ gdk_display_class_init (GdkDisplayClass *class)
object_class->finalize = gdk_display_finalize;
object_class->dispose = gdk_display_dispose;
+ class->get_app_launch_context = gdk_display_real_get_app_launch_context;
+
/**
* GdkDisplay::opened:
* @display: the object on which the signal is emitted
@@ -2211,3 +2213,32 @@ gdk_add_client_message_filter (GdkAtom message_type,
gdk_display_add_client_message_filter (gdk_display_get_default (),
message_type, func, data);
}
+
+static GdkAppLaunchContext *
+gdk_display_real_get_app_launch_context (GdkDisplay *display)
+{
+ GdkAppLaunchContext *ctx;
+
+ ctx = gdk_app_launch_context_new ();
+ gdk_app_launch_context_set_display (ctx, display);
+
+ return ctx;
+}
+
+/**
+ * gdk_display_get_app_launch_context:
+ * @display: a #GdkDisplay
+ *
+ * Returns a #GdkAppLaunchContext suitable for launching
+ * applications on the given display.
+ *
+ * Returns: a new #GdkAppLaunchContext for @display.
+ * Free with g_object_unref() when done
+ *
+ * Since: 3.0
+ */
+GdkAppLaunchContext *
+gdk_display_get_app_launch_context (GdkDisplay *display)
+{
+ return GDK_DISPLAY_GET_CLASS(display)->get_app_launch_context (display);
+}