diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-03-09 11:49:59 -0700 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-03-12 15:30:11 -0400 |
commit | f020d77a23e3f55ed960843a9bfbdf1fec06a501 (patch) | |
tree | 4ac1d24145b0df0f744cbf90677f99ae53a18d41 | |
parent | 81be6ff46b201dfb1dc1f581ecb6f04c10a2f8dd (diff) | |
download | gtk+-f020d77a23e3f55ed960843a9bfbdf1fec06a501.tar.gz |
Move fullscreen-mode to GdkToplevel
-rw-r--r-- | gdk/gdkinternals.h | 5 | ||||
-rw-r--r-- | gdk/gdksurface.c | 23 | ||||
-rw-r--r-- | gdk/gdksurfaceprivate.h | 1 | ||||
-rw-r--r-- | gdk/gdktoplevel.c | 8 | ||||
-rw-r--r-- | gdk/gdktoplevelprivate.h | 1 | ||||
-rw-r--r-- | gdk/wayland/gdksurface-wayland.c | 9 | ||||
-rw-r--r-- | gdk/x11/gdkmonitor-x11.c | 2 | ||||
-rw-r--r-- | gdk/x11/gdksurface-x11.c | 15 |
8 files changed, 31 insertions, 33 deletions
diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h index 3c6271a6e2..2af0cf36ca 100644 --- a/gdk/gdkinternals.h +++ b/gdk/gdkinternals.h @@ -282,11 +282,6 @@ GdkSurface * gdk_surface_new_temp (GdkDisplay *display, const GdkRectangle *position); -void gdk_surface_set_fullscreen_mode (GdkSurface *surface, - GdkFullscreenMode mode); -GdkFullscreenMode gdk_surface_get_fullscreen_mode (GdkSurface *surface); - - G_END_DECLS #endif /* __GDK_INTERNALS_H__ */ diff --git a/gdk/gdksurface.c b/gdk/gdksurface.c index 2c77970c2e..63665e1877 100644 --- a/gdk/gdksurface.c +++ b/gdk/gdksurface.c @@ -2337,29 +2337,6 @@ gdk_surface_create_similar_surface (GdkSurface * surface, return similar_surface; } -void -gdk_surface_set_fullscreen_mode (GdkSurface *surface, - GdkFullscreenMode mode) -{ - g_return_if_fail (GDK_IS_SURFACE (surface)); - - if (surface->fullscreen_mode != mode) - { - surface->fullscreen_mode = mode; - - if (GDK_SURFACE_GET_CLASS (surface)->apply_fullscreen_mode != NULL) - GDK_SURFACE_GET_CLASS (surface)->apply_fullscreen_mode (surface); - } -} - -GdkFullscreenMode -gdk_surface_get_fullscreen_mode (GdkSurface *surface) -{ - g_return_val_if_fail (GDK_IS_SURFACE (surface), GDK_FULLSCREEN_ON_CURRENT_MONITOR); - - return surface->fullscreen_mode; -} - /** * gdk_surface_begin_resize_drag: * @surface: a toplevel #GdkSurface diff --git a/gdk/gdksurfaceprivate.h b/gdk/gdksurfaceprivate.h index 23bd733e5d..20877742c9 100644 --- a/gdk/gdksurfaceprivate.h +++ b/gdk/gdksurfaceprivate.h @@ -148,7 +148,6 @@ struct _GdkSurfaceClass /* optional */ gboolean (* beep) (GdkSurface *surface); - void (* apply_fullscreen_mode) (GdkSurface *surface); void (* begin_resize_drag) (GdkSurface *surface, GdkSurfaceEdge edge, GdkDevice *device, diff --git a/gdk/gdktoplevel.c b/gdk/gdktoplevel.c index 007f80845e..6d9e2a9955 100644 --- a/gdk/gdktoplevel.c +++ b/gdk/gdktoplevel.c @@ -164,6 +164,13 @@ gdk_toplevel_default_init (GdkToplevelInterface *iface) "Deletable", FALSE, G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY)); + g_object_interface_install_property (iface, + g_param_spec_enum ("fullscreen-mode", + "Fullscreen mode", + "Fullscreen mode", + GDK_TYPE_FULLSCREEN_MODE, + GDK_FULLSCREEN_ON_CURRENT_MONITOR, + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY)); } guint @@ -183,6 +190,7 @@ gdk_toplevel_install_properties (GObjectClass *object_class, g_object_class_override_property (object_class, first_prop + GDK_TOPLEVEL_PROP_FOCUS_ON_MAP, "focus-on-map"); g_object_class_override_property (object_class, first_prop + GDK_TOPLEVEL_PROP_DECORATED, "decorated"); g_object_class_override_property (object_class, first_prop + GDK_TOPLEVEL_PROP_DELETABLE, "deletable"); + g_object_class_override_property (object_class, first_prop + GDK_TOPLEVEL_PROP_FULLSCREEN_MODE, "fullscreen-mode"); return GDK_TOPLEVEL_NUM_PROPERTIES; } diff --git a/gdk/gdktoplevelprivate.h b/gdk/gdktoplevelprivate.h index ac1aae2725..711b114da6 100644 --- a/gdk/gdktoplevelprivate.h +++ b/gdk/gdktoplevelprivate.h @@ -38,6 +38,7 @@ typedef enum GDK_TOPLEVEL_PROP_FOCUS_ON_MAP, GDK_TOPLEVEL_PROP_DECORATED, GDK_TOPLEVEL_PROP_DELETABLE, + GDK_TOPLEVEL_PROP_FULLSCREEN_MODE, GDK_TOPLEVEL_NUM_PROPERTIES } GdkToplevelProperties; diff --git a/gdk/wayland/gdksurface-wayland.c b/gdk/wayland/gdksurface-wayland.c index 0c795e8d82..166a139913 100644 --- a/gdk/wayland/gdksurface-wayland.c +++ b/gdk/wayland/gdksurface-wayland.c @@ -4371,6 +4371,11 @@ gdk_wayland_toplevel_set_property (GObject *object, case LAST_PROP + GDK_TOPLEVEL_PROP_DELETABLE: break; + case LAST_PROP + GDK_TOPLEVEL_PROP_FULLSCREEN_MODE: + surface->fullscreen_mode = g_value_get_enum (value); + g_object_notify_by_pspec (G_OBJECT (surface), pspec); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -4433,6 +4438,10 @@ gdk_wayland_toplevel_get_property (GObject *object, case LAST_PROP + GDK_TOPLEVEL_PROP_DELETABLE: break; + case LAST_PROP + GDK_TOPLEVEL_PROP_FULLSCREEN_MODE: + g_value_set_enum (value, surface->fullscreen_mode); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; diff --git a/gdk/x11/gdkmonitor-x11.c b/gdk/x11/gdkmonitor-x11.c index 85e1924053..2cb57501ed 100644 --- a/gdk/x11/gdkmonitor-x11.c +++ b/gdk/x11/gdkmonitor-x11.c @@ -50,7 +50,7 @@ gdk_monitor_has_fullscreen_window (GdkMonitor *monitor) if ((gdk_toplevel_get_state (GDK_TOPLEVEL (surface)) & GDK_SURFACE_STATE_FULLSCREEN) == 0) continue; - if (gdk_surface_get_fullscreen_mode (surface) == GDK_FULLSCREEN_ON_ALL_MONITORS || + if (surface->fullscreen_mode == GDK_FULLSCREEN_ON_ALL_MONITORS || gdk_display_get_monitor_at_surface (monitor->display, surface) == monitor) { has_fullscreen = TRUE; diff --git a/gdk/x11/gdksurface-x11.c b/gdk/x11/gdksurface-x11.c index 222bc550e8..f67573ee6b 100644 --- a/gdk/x11/gdksurface-x11.c +++ b/gdk/x11/gdksurface-x11.c @@ -1287,7 +1287,6 @@ gdk_x11_surface_withdraw (GdkSurface *surface) GDK_SURFACE_STATE_WITHDRAWN); g_assert (!GDK_SURFACE_IS_MAPPED (surface)); - XWithdrawWindow (GDK_SURFACE_XDISPLAY (surface), GDK_SURFACE_XID (surface), 0); } @@ -3288,7 +3287,8 @@ gdk_x11_surface_fullscreen_on_monitor (GdkSurface *surface, gdk_monitor_get_geometry (monitor, &geom); gdk_x11_surface_move (surface, geom.x, geom.y); - gdk_surface_set_fullscreen_mode (surface, GDK_FULLSCREEN_ON_CURRENT_MONITOR); + surface->fullscreen_mode = GDK_FULLSCREEN_ON_CURRENT_MONITOR; + g_object_notify (G_OBJECT (surface), "fullscreen-mode"); gdk_x11_surface_fullscreen (surface); } @@ -4660,7 +4660,6 @@ gdk_x11_surface_class_init (GdkX11SurfaceClass *klass) impl_class->destroy = gdk_x11_surface_destroy; impl_class->beep = gdk_x11_surface_beep; - impl_class->apply_fullscreen_mode = gdk_x11_surface_apply_fullscreen_mode; impl_class->begin_resize_drag = gdk_x11_surface_begin_resize_drag; impl_class->begin_move_drag = gdk_x11_surface_begin_move_drag; impl_class->destroy_notify = gdk_x11_surface_destroy_notify; @@ -4889,6 +4888,12 @@ gdk_wayland_toplevel_set_property (GObject *object, g_object_notify_by_pspec (G_OBJECT (surface), pspec); break; + case LAST_PROP + GDK_TOPLEVEL_PROP_FULLSCREEN_MODE: + surface->fullscreen_mode = g_value_get_enum (value); + gdk_x11_surface_apply_fullscreen_mode (surface); + g_object_notify_by_pspec (G_OBJECT (surface), pspec); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -4964,6 +4969,10 @@ gdk_wayland_toplevel_get_property (GObject *object, } break; + case LAST_PROP + GDK_TOPLEVEL_PROP_FULLSCREEN_MODE: + g_value_set_enum (value, surface->fullscreen_mode); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; |