ServerContextService: Check for mapped/unmapped
Visible does not tell us if the widget is actually visible on the screen.
This commit is contained in:
@ -45,8 +45,6 @@ struct _ServerContextService {
|
|||||||
GtkWidget *window;
|
GtkWidget *window;
|
||||||
GtkWidget *widget;
|
GtkWidget *widget;
|
||||||
|
|
||||||
gulong notify_visible_handler;
|
|
||||||
|
|
||||||
gdouble size_constraint_landscape[2];
|
gdouble size_constraint_landscape[2];
|
||||||
gdouble size_constraint_portrait[2];
|
gdouble size_constraint_portrait[2];
|
||||||
};
|
};
|
||||||
@ -111,16 +109,21 @@ on_notify_fullscreen (GObject *object,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_notify_visible (GObject *object,
|
on_notify_map (GObject *object,
|
||||||
GParamSpec *spec,
|
ServerContextService *context)
|
||||||
ServerContextService *context)
|
|
||||||
{
|
{
|
||||||
gboolean visible;
|
g_object_set (context, "visible", TRUE, NULL);
|
||||||
|
|
||||||
g_object_get (object, "visible", &visible, NULL);
|
|
||||||
g_object_set (context, "visible", visible, NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_notify_unmap (GObject *object,
|
||||||
|
ServerContextService *context)
|
||||||
|
{
|
||||||
|
g_object_set (context, "visible", FALSE, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_geometry (ServerContextService *context)
|
set_geometry (ServerContextService *context)
|
||||||
{
|
{
|
||||||
@ -193,14 +196,11 @@ make_window (ServerContextService *context)
|
|||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
g_signal_connect (context->window, "destroy",
|
g_object_connect (context->window,
|
||||||
G_CALLBACK(on_destroy),
|
"signal::destroy", G_CALLBACK(on_destroy), context,
|
||||||
context);
|
"signal::map", G_CALLBACK(on_notify_map), context,
|
||||||
|
"signal::unmap", G_CALLBACK(on_notify_unmap), context,
|
||||||
context->notify_visible_handler =
|
NULL);
|
||||||
g_signal_connect (context->window, "notify::visible",
|
|
||||||
G_CALLBACK(on_notify_visible),
|
|
||||||
context);
|
|
||||||
|
|
||||||
// The properties below are just to make hacking easier.
|
// The properties below are just to make hacking easier.
|
||||||
// The way we use layer-shell overrides some,
|
// The way we use layer-shell overrides some,
|
||||||
|
|||||||
Reference in New Issue
Block a user