summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-03-09 11:49:59 -0700
committerMatthias Clasen <mclasen@redhat.com>2020-03-12 15:30:11 -0400
commitf020d77a23e3f55ed960843a9bfbdf1fec06a501 (patch)
tree4ac1d24145b0df0f744cbf90677f99ae53a18d41
parent81be6ff46b201dfb1dc1f581ecb6f04c10a2f8dd (diff)
downloadgtk+-f020d77a23e3f55ed960843a9bfbdf1fec06a501.tar.gz
Move fullscreen-mode to GdkToplevel
-rw-r--r--gdk/gdkinternals.h5
-rw-r--r--gdk/gdksurface.c23
-rw-r--r--gdk/gdksurfaceprivate.h1
-rw-r--r--gdk/gdktoplevel.c8
-rw-r--r--gdk/gdktoplevelprivate.h1
-rw-r--r--gdk/wayland/gdksurface-wayland.c9
-rw-r--r--gdk/x11/gdkmonitor-x11.c2
-rw-r--r--gdk/x11/gdksurface-x11.c15
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;