diff options
author | Matthias Clasen <mclasen@redhat.com> | 2010-12-09 01:08:05 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2010-12-21 12:06:55 -0500 |
commit | 06f75b3727a0f06c1192b580f37edd8f31759263 (patch) | |
tree | 4a3f34830351f17cd16baa3d407ca41eb8f28057 /gdk/gdkdisplay.c | |
parent | de84a7b14f07eca28c31949767d17ecd8368a5fa (diff) | |
download | gtk+-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.c | 35 |
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); +} |